diff --git a/.tekton/costmanagement-metrics-operator-fbc-component-v4-12-pull-request.yaml b/.tekton/costmanagement-metrics-operator-fbc-component-v4-12-pull-request.yaml index e394439..9028322 100644 --- a/.tekton/costmanagement-metrics-operator-fbc-component-v4-12-pull-request.yaml +++ b/.tekton/costmanagement-metrics-operator-fbc-component-v4-12-pull-request.yaml @@ -8,7 +8,7 @@ metadata: build.appstudio.redhat.com/target_branch: '{{target_branch}}' pipelinesascode.tekton.dev/max-keep-runs: "3" pipelinesascode.tekton.dev/on-cel-expression: event == "pull_request" && target_branch - == "main" && ( "catalog/***".pathChanged() || "Dockerfile.v4-12".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-12-pull-request.yaml".pathChanged() + == "main" && ( "catalog-old/***".pathChanged() || "Dockerfile.v4-12".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-12-pull-request.yaml".pathChanged() ) creationTimestamp: null labels: diff --git a/.tekton/costmanagement-metrics-operator-fbc-component-v4-13-pull-request.yaml b/.tekton/costmanagement-metrics-operator-fbc-component-v4-13-pull-request.yaml index 1b69859..7f52fca 100644 --- a/.tekton/costmanagement-metrics-operator-fbc-component-v4-13-pull-request.yaml +++ b/.tekton/costmanagement-metrics-operator-fbc-component-v4-13-pull-request.yaml @@ -8,7 +8,7 @@ metadata: build.appstudio.redhat.com/target_branch: '{{target_branch}}' pipelinesascode.tekton.dev/max-keep-runs: "3" pipelinesascode.tekton.dev/on-cel-expression: event == "pull_request" && target_branch - == "main" && ( "catalog/***".pathChanged() || "Dockerfile.v4-13".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-13-pull-request.yaml".pathChanged() + == "main" && ( "catalog-old/***".pathChanged() || "Dockerfile.v4-13".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-13-pull-request.yaml".pathChanged() ) creationTimestamp: null labels: diff --git a/.tekton/costmanagement-metrics-operator-fbc-component-v4-14-pull-request.yaml b/.tekton/costmanagement-metrics-operator-fbc-component-v4-14-pull-request.yaml index dd0ca9a..f8ff1fc 100644 --- a/.tekton/costmanagement-metrics-operator-fbc-component-v4-14-pull-request.yaml +++ b/.tekton/costmanagement-metrics-operator-fbc-component-v4-14-pull-request.yaml @@ -8,7 +8,7 @@ metadata: build.appstudio.redhat.com/target_branch: '{{target_branch}}' pipelinesascode.tekton.dev/max-keep-runs: "3" pipelinesascode.tekton.dev/on-cel-expression: event == "pull_request" && target_branch - == "main" && ( "catalog/***".pathChanged() || "Dockerfile.v4-14".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-14-pull-request.yaml".pathChanged() + == "main" && ( "catalog-old/***".pathChanged() || "Dockerfile.v4-14".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-14-pull-request.yaml".pathChanged() ) creationTimestamp: null labels: diff --git a/.tekton/costmanagement-metrics-operator-fbc-component-v4-15-pull-request.yaml b/.tekton/costmanagement-metrics-operator-fbc-component-v4-15-pull-request.yaml index 3f8b51b..b8efbb4 100644 --- a/.tekton/costmanagement-metrics-operator-fbc-component-v4-15-pull-request.yaml +++ b/.tekton/costmanagement-metrics-operator-fbc-component-v4-15-pull-request.yaml @@ -8,7 +8,7 @@ metadata: build.appstudio.redhat.com/target_branch: '{{target_branch}}' pipelinesascode.tekton.dev/max-keep-runs: "3" pipelinesascode.tekton.dev/on-cel-expression: event == "pull_request" && target_branch - == "main" && ( "catalog/***".pathChanged() || "Dockerfile.v4-15".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-15-pull-request.yaml".pathChanged() + == "main" && ( "catalog-old/***".pathChanged() || "Dockerfile.v4-15".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-15-pull-request.yaml".pathChanged() ) creationTimestamp: null labels: diff --git a/.tekton/costmanagement-metrics-operator-fbc-component-v4-16-pull-request.yaml b/.tekton/costmanagement-metrics-operator-fbc-component-v4-16-pull-request.yaml index a093f6f..464295f 100644 --- a/.tekton/costmanagement-metrics-operator-fbc-component-v4-16-pull-request.yaml +++ b/.tekton/costmanagement-metrics-operator-fbc-component-v4-16-pull-request.yaml @@ -8,7 +8,7 @@ metadata: build.appstudio.redhat.com/target_branch: '{{target_branch}}' pipelinesascode.tekton.dev/max-keep-runs: "3" pipelinesascode.tekton.dev/on-cel-expression: event == "pull_request" && target_branch - == "main" && ( "catalog/***".pathChanged() || "Dockerfile.v4-16".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-16-pull-request.yaml".pathChanged() + == "main" && ( "catalog-old/***".pathChanged() || "Dockerfile.v4-16".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-16-pull-request.yaml".pathChanged() ) creationTimestamp: null labels: diff --git a/.tekton/costmanagement-metrics-operator-fbc-component-v4-17-pull-request.yaml b/.tekton/costmanagement-metrics-operator-fbc-component-v4-17-pull-request.yaml index 84658ee..7449ea8 100644 --- a/.tekton/costmanagement-metrics-operator-fbc-component-v4-17-pull-request.yaml +++ b/.tekton/costmanagement-metrics-operator-fbc-component-v4-17-pull-request.yaml @@ -8,7 +8,7 @@ metadata: build.appstudio.redhat.com/target_branch: '{{target_branch}}' pipelinesascode.tekton.dev/max-keep-runs: "3" pipelinesascode.tekton.dev/on-cel-expression: event == "pull_request" && target_branch - == "main" && ( "catalog/***".pathChanged() || "Dockerfile.v4-17".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-17-pull-request.yaml".pathChanged() + == "main" && ( "catalog-old/***".pathChanged() || "Dockerfile.v4-17".pathChanged() || ".tekton/costmanagement-metrics-operator-fbc-component-v4-17-pull-request.yaml".pathChanged() ) creationTimestamp: null labels: diff --git a/Dockerfile.v4-12 b/Dockerfile.v4-12 index dccc547..5b95493 100644 --- a/Dockerfile.v4-12 +++ b/Dockerfile.v4-12 @@ -7,7 +7,7 @@ ENTRYPOINT ["/bin/opm"] CMD ["serve", "/configs", "--cache-dir=/tmp/cache"] # Copy declarative config root into image at /configs and pre-populate serve cache -ADD catalog/costmanagement-metrics-operator /configs/costmanagement-metrics-operator +ADD catalog-old/costmanagement-metrics-operator /configs/costmanagement-metrics-operator RUN ["/bin/opm", "serve", "/configs", "--cache-dir=/tmp/cache", "--cache-only"] # Set DC-specific label for the location of the DC root directory diff --git a/Dockerfile.v4-13 b/Dockerfile.v4-13 index e8294ae..53937d9 100644 --- a/Dockerfile.v4-13 +++ b/Dockerfile.v4-13 @@ -7,7 +7,7 @@ ENTRYPOINT ["/bin/opm"] CMD ["serve", "/configs", "--cache-dir=/tmp/cache"] # Copy declarative config root into image at /configs and pre-populate serve cache -ADD catalog/costmanagement-metrics-operator /configs/costmanagement-metrics-operator +ADD catalog-old/costmanagement-metrics-operator /configs/costmanagement-metrics-operator RUN ["/bin/opm", "serve", "/configs", "--cache-dir=/tmp/cache", "--cache-only"] # Set DC-specific label for the location of the DC root directory diff --git a/Dockerfile.v4-14 b/Dockerfile.v4-14 index 3be44cd..77cb059 100644 --- a/Dockerfile.v4-14 +++ b/Dockerfile.v4-14 @@ -7,7 +7,7 @@ ENTRYPOINT ["/bin/opm"] CMD ["serve", "/configs", "--cache-dir=/tmp/cache"] # Copy declarative config root into image at /configs and pre-populate serve cache -ADD catalog/costmanagement-metrics-operator /configs/costmanagement-metrics-operator +ADD catalog-old/costmanagement-metrics-operator /configs/costmanagement-metrics-operator RUN ["/bin/opm", "serve", "/configs", "--cache-dir=/tmp/cache", "--cache-only"] # Set DC-specific label for the location of the DC root directory diff --git a/Dockerfile.v4-15 b/Dockerfile.v4-15 index e7b268a..8a070ec 100644 --- a/Dockerfile.v4-15 +++ b/Dockerfile.v4-15 @@ -7,7 +7,7 @@ ENTRYPOINT ["/bin/opm"] CMD ["serve", "/configs", "--cache-dir=/tmp/cache"] # Copy declarative config root into image at /configs and pre-populate serve cache -ADD catalog/costmanagement-metrics-operator /configs/costmanagement-metrics-operator +ADD catalog-old/costmanagement-metrics-operator /configs/costmanagement-metrics-operator RUN ["/bin/opm", "serve", "/configs", "--cache-dir=/tmp/cache", "--cache-only"] # Set DC-specific label for the location of the DC root directory diff --git a/Dockerfile.v4-16 b/Dockerfile.v4-16 index 843b610..2317136 100644 --- a/Dockerfile.v4-16 +++ b/Dockerfile.v4-16 @@ -7,7 +7,7 @@ ENTRYPOINT ["/bin/opm"] CMD ["serve", "/configs", "--cache-dir=/tmp/cache"] # Copy declarative config root into image at /configs and pre-populate serve cache -ADD catalog/costmanagement-metrics-operator /configs/costmanagement-metrics-operator +ADD catalog-old/costmanagement-metrics-operator /configs/costmanagement-metrics-operator RUN ["/bin/opm", "serve", "/configs", "--cache-dir=/tmp/cache", "--cache-only"] # Set DC-specific label for the location of the DC root directory diff --git a/Makefile b/Makefile index 5b5b566..3640423 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,7 @@ DOCKER := $(shell which docker 2>/dev/null || which podman 2>/dev/null) # Add the bin directory to the PATH export PATH := $(BINDIR):$(PATH) # A place to store the generated catalogs +CATALOG_DIR_OLD=${PWD}/catalog-old CATALOG_DIR=${PWD}/catalog # A place to store the operator catalog templates @@ -43,8 +44,10 @@ $(LOCALBIN): .PHONY: catalog catalog: clean opm - mkdir -p ${CATALOG_DIR}/${OPERATOR_NAME}/ && \ - $(OPM) alpha render-template basic -o yaml ${OPERATOR_CATALOG_TEMPLATE_DIR}/${CATALOG_TEMPLATE_FILENAME} > ${CATALOG_DIR}/${OPERATOR_NAME}/catalog.yaml; + mkdir -p ${CATALOG_DIR_OLD}/${OPERATOR_NAME}/ ${CATALOG_DIR}/${OPERATOR_NAME}/ && \ + $(OPM) alpha render-template basic -o yaml ${OPERATOR_CATALOG_TEMPLATE_DIR}/${CATALOG_TEMPLATE_FILENAME} > ${CATALOG_DIR_OLD}/${OPERATOR_NAME}/catalog.yaml; + $(OPM) alpha render-template basic -o yaml ${OPERATOR_CATALOG_TEMPLATE_DIR}/${CATALOG_TEMPLATE_FILENAME} --migrate-level=bundle-object-to-csv-metadata > ${CATALOG_DIR}/${OPERATOR_NAME}/catalog.yaml; + $(OPM) validate ${CATALOG_DIR_OLD}/${OPERATOR_NAME} $(OPM) validate ${CATALOG_DIR}/${OPERATOR_NAME} .PHONY: add-new-version @@ -54,10 +57,11 @@ add-new-version: yq .PHONY: create-catalog-dir create-catalog-dir: - mkdir -p $(CATALOG_DIR) + mkdir -p $(CATALOG_DIR) $(CATALOG_DIR_OLD) .PHONY: clean clean: create-catalog-dir + find $(CATALOG_DIR_OLD) -type d -name ${OPERATOR_NAME} -exec rm -rf {} + find $(CATALOG_DIR) -type d -name ${OPERATOR_NAME} -exec rm -rf {} + diff --git a/README.md b/README.md index 6643cd2..a60fa0a 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,11 @@ File-Based Catalog for Cost Management Metrics Operator +**note**: the catalogs differ depending on OCP version: +* 4.16 or earlier, bundle metadata must use the olm.bundle.object format +* 4.17 or later, bundle metadata must use the olm.csv.metadata format +The catalog for <=4.16 is stored in [catalog-old](catalog-old), whereas >=4.17 is stored in [catalog](catalog) + ## How to update Updates are made to the [basic-template.yaml](catalog-templates/basic-template.yaml) file and then a catalog is generated from the template. The template can be updated with a Make command. diff --git a/catalog-old/costmanagement-metrics-operator/catalog.yaml b/catalog-old/costmanagement-metrics-operator/catalog.yaml new file mode 100644 index 0000000..9faf10d --- /dev/null +++ b/catalog-old/costmanagement-metrics-operator/catalog.yaml @@ -0,0 +1,581 @@ +--- +defaultChannel: stable +icon: + base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMDAgMzAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0VFMDAwMDt9Cjwvc3R5bGU+Cjx0aXRsZT5Db3N0LWljb248L3RpdGxlPgo8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjM5LjAzNzAzMzEsMTE3LjI3NTE3N2MtMy4yNjU4MDgxLTQxLjk4OTA1MTgtMzguMjU2NjgzMy03NC42NDcyMDE1LTgxLjE3ODgzMy03NC42NDcyMDE1CgkJCWMtMjcuNTI2MTUzNiwwLTUzLjE4NjEyNjcsMTMuOTk2MzQ5My02OC4xMTU1NzAxLDM3LjMyMzYwMDhjLTEuODY2MTgwNCwwLTMuNzMyMzUzMi0wLjQ2NjU0NTEtNi4wNjUwNzg3LTAuNDY2NTQ1MQoJCQljLTM0LjUyNDMzMDEsMC02Mi45ODM1Nzc3LDI3Ljk5MjY5ODctNjIuOTgzNTc3Nyw2Mi45ODM1NjYzczI3Ljk5MjY5ODcsNjIuOTgzNTY2Myw2Mi45ODM1Nzc3LDYyLjk4MzU2NjNoMTYuMzI5MDcxCgkJCWMzLjczMjM2MDgsMCw2Ljk5ODE3NjYtMy4yNjU4MDgxLDYuOTk4MTc2Ni02Ljk5ODE2ODlzLTMuMjY1ODE1Ny02Ljk5ODE2ODktNi45OTgxNzY2LTYuOTk4MTY4OWgtMTYuMzI5MDcxCgkJCWMtMjcuMDU5NjEyMywwLTQ4LjUyMDY3OTUtMjEuOTI3NjI3Ni00OC41MjA2Nzk1LTQ4LjUyMDY3NTdzMjEuOTI3NjEyMy00OC41MjA2ODMzLDQ4LjUyMDY3OTUtNDguNTIwNjgzMwoJCQljMi43OTkyNzA2LDAsNS41OTg1NDEzLDAuNDY2NTQ1MSw4LjM5NzgwNDMsMC45MzMwOTAyYzIuNzk5MjcwNiwwLjQ2NjU0NTEsNi4wNjUwNzg3LTAuOTMzMDkwMiw3LjQ2NDcyMTctMy43MzIzNjA4CgkJCWMxMi4xMzAxNzI3LTIwLjk5NDUyOTcsMzQuNTI0MzMwMS0zNC4wNTc3ODg4LDU4LjMxODEyMjktMzQuMDU3Nzg4OGMzNi44NTcwNzA5LDAsNjcuMTgyNDk1MSwzMC4zMjU0MjA0LDY3LjE4MjQ5NTEsNjcuMTgyNDc5OQoJCQljMCwzLjczMjM1MzIsMy4yNjU4MDgxLDYuOTk4MTc2Niw2Ljk5ODE2ODksNi45OTgxNzY2YzE2LjMyOTA3MSwwLDI5Ljg1ODkwMiwxMy41Mjk4MDA0LDI5Ljg1ODkwMiwyOS44NTg4NzE1CgkJCXMtMTMuNTI5ODMwOSwyOS44NTg4ODY3LTI5Ljg1ODkwMiwyOS44NTg4ODY3Yy0zLjczMjM2MDgsMC02Ljk5ODE2ODksMy4yNjU4MDgxLTYuOTk4MTY4OSw2Ljk5ODE2ODkKCQkJczMuMjY1ODA4MSw2Ljk5ODE2ODksNi45OTgxNjg5LDYuOTk4MTY4OWMyNC4yNjAzMzAyLDAsNDQuMzIxNzYyMS0yMC4wNjE0MTY2LDQ0LjMyMTc2MjEtNDQuMzIxNzYyMQoJCQlDMjc2LjM2MDYyNjIsMTM5LjIwMjc4OTMsMjYwLjAzMTU1NTIsMTIwLjU0MDk5MjcsMjM5LjAzNzAzMzEsMTE3LjI3NTE3N3oiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjA2Ljg0NTQyODUsMjIwLjg0ODE3NWM3LjQ2NDcwNjQtOC44NjQzNjQ2LDExLjY2MzYyLTIwLjUyNzk4NDYsMTEuNjYzNjItMzIuNjU4MTU3MwoJCQljMC0yOC45MjU3OTY1LTIzLjMyNzI0LTUyLjI1MzAzNjUtNTIuMjUzMDM2NS01Mi4yNTMwMzY1cy01Mi4yNTMwNDQxLDIzLjMyNzI0LTUyLjI1MzA0NDEsNTIuMjUzMDM2NQoJCQlzMjMuMzI3MjQ3Niw1Mi4yNTMwNTE4LDUyLjI1MzA0NDEsNTIuMjUzMDUxOGMxMS4xOTcwODI1LDAsMjEuOTI3NjEyMy0zLjczMjM2MDgsMzAuMzI1NDI0Mi05Ljc5NzQzOTZsMzEuNzI1MDUxOSwzMC43OTE5NjE3CgkJCWMxLjM5OTYyNzcsMS4zOTk2Mjc3LDMuMjY1ODIzNCwxLjg2NjE4MDQsNS4xMzE5ODg1LDEuODY2MTgwNGMxLjg2NjE5NTcsMCwzLjczMjM2MDgtMC45MzMwNzUsNS4xMzE5ODg1LTIuMzMyNzMzMgoJCQljMi43OTkyNzA2LTIuNzk5MjU1NCwyLjc5OTI3MDYtNy40NjQ3MDY0LDAtMTAuMjYzOTc3MUwyMDYuODQ1NDI4NSwyMjAuODQ4MTc1eiBNMTI4LjQ2NTg2NjEsMTg4LjE5MDAxNzcKCQkJYzAtMjAuOTk0NTIyMSwxNy4yNjIxNzY1LTM4LjI1NjY5ODYsMzguMjU2Njk4Ni0zOC4yNTY2OTg2czM4LjI1NjY5ODYsMTcuMjYyMTc2NSwzOC4yNTY2OTg2LDM4LjI1NjY5ODYKCQkJcy0xNy4yNjIxNzY1LDM4LjI1NjY5ODYtMzguMjU2Njk4NiwzOC4yNTY2OTg2UzEyOC40NjU4NjYxLDIwOS4xODQ1Mzk4LDEyOC40NjU4NjYxLDE4OC4xOTAwMTc3eiIvPgoJPC9nPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE3NC4yODA2Mzk2LDE4NS44NzM2MTE1YzIuMjE2Mjc4MSwwLjY4NjUzODcsNC4xMTAwMzExLDEuODcwNzEyMyw1LjY3NjYzNTcsMy41NTI1MDU1CgkJCWMxLjU2NjYwNDYsMS42ODE4MDg1LDIuNTk4NzA5MSwzLjY0OTI2MTUsMy4wOTE3MzU4LDUuOTAyNDA0OGMwLjQ5NzYxOTYsMi4yNTMxNDMzLDAuMzYzOTk4NCw0LjUyOTMyNzQtMC40MDA4Nzg5LDYuODE5MzM1OQoJCQljLTAuOTE2OTE1OSwyLjUyMDM4NTctMi40ODM1MjA1LDQuNTI5MzEyMS00LjY5OTc5ODYsNi4wMTc1OTM0Yy0yLjIxNjI2MjgsMS40ODgyODEyLTQuNjk1MjA1NywyLjI3MTU3NTktNy40NTA1NzY4LDIuMzQ5ODk5MwoJCQl2NS41MDE1NTY0YzAsMC41MzQ0ODQ5LTAuMTcwNDcxMiwwLjk3MjIxMzctMC41MTE0NTk0LDEuMzE3Nzc5NWMtMC4zNDU1NjU4LDAuMzQ1NTgxMS0wLjc4MzI5NDcsMC41MTYwNjc1LTEuMzIyMzg3NywwLjUxNjA2NzUKCQkJaC0zLjY2NzY5NDFjLTAuNTM0NTAwMSwwLTAuOTcyMjEzNy0wLjE3MDQ4NjUtMS4zMTc3Nzk1LTAuNTE2MDY3NWMtMC4zNDA5NzI5LTAuMzQ1NTY1OC0wLjUxNjA2NzUtMC43ODMyOTQ3LTAuNTE2MDY3NS0xLjMxNzc3OTUKCQkJdi01LjUwMTU1NjRjLTMuNjY3Njk0MSwwLTYuOTg5ODIyNC0xLjE0NzI5MzEtOS45Njg2NTg0LTMuNDM3MzAxNmMtMC4zODI0NDYzLTAuMzgyNDMxLTAuNjEyODIzNS0wLjg0MzIwMDctMC42ODg4NDI4LTEuMzc3NzAwOAoJCQljLTAuMDc2MDM0NS0wLjUzNDQ4NDksMC4xMTUxODg2LTEuMDMyMTA0NSwwLjU3MzYzODktMS40ODgyNTA3bDMuODk1NzgyNS0zLjg5ODA4NjUKCQkJYzAuMzA4NzAwNi0wLjIzMDM5MjUsMC42NjgxMDYxLTAuMzgyNDMxLDEuMDkyMDEwNS0wLjQ1NjE2MTVjMC40MTkyOTYzLTAuMDc4MzIzNCwwLjgyMDE1OTksMC4wMzY4NSwxLjIwMjYwNjIsMC4zNDA5NzI5CgkJCWMxLjE0NzI5MzEsMC43NjQ4NzczLDIuNDQyMDQ3MSwxLjE0NzMwODMsMy44OTM0NjMxLDEuMTQ3MzA4M2g3LjY4MDk1NGMwLjkxNjk0NjQsMCwxLjcwMDI0MTEtMC4zMjI1NDAzLDIuMzQ5ODk5My0wLjk3MjIxMzcKCQkJYzAuNjQ5Njg4Ny0wLjY0OTY4ODcsMC45NzIyMjktMS40NzQ0NTY4LDAuOTcyMjI5LTIuNDY1MTAzMWMwLTAuNjg2NTU0LTAuMjI1NzY5LTEuMzM2MjI3NC0wLjY4NjUzODctMS45NDkwMzU2CgkJCWMtMC40NTYxNjE1LTAuNjEyODIzNS0xLjAzMjExOTgtMS4wMzIxMTk4LTEuNzE4NjQzMi0xLjI2MjQ5NjlsLTExLjgwNDg0MDEtMy40MzczMTY5CgkJCWMtMi41OTg2OTM4LTAuNzY0ODc3My00Ljc3MzUyOTEtMi4xMzc5NTQ3LTYuNTMzNjQ1Ni00LjEyODQ0ODVjLTEuNzU3ODEyNS0xLjk4NTkwMDktMi43ODc2NDM0LTQuMjc1OTI0Ny0zLjA5NDAzOTktNi44NzQ2MzM4CgkJCWMtMC4xNTIwNTM4LTIuNDQ2NjU1MywwLjMwNjM5NjUtNC43MTgyMzEyLDEuMzc1Mzk2Ny02LjgxOTMzNTljMS4wNjg5Njk3LTIuMTAxMDg5NSwyLjU5ODcwOTEtMy43ODI4ODI3LDQuNTg0NjEtNS4wNDUzNzk2CgkJCWMxLjk4NTkwMDktMS4yNTc4ODg4LDQuMjAyMTc5LTEuODg5MTI5Niw2LjY0ODg0OTUtMS44ODkxMjk2aDAuMjI1NzY5di01LjUwMTU0MTEKCQkJYzAtMC41MzQ1MDAxLDAuMTc1MDk0Ni0wLjk3MjIyOSwwLjUxNjA2NzUtMS4zMTc3OTQ4YzAuMzQ1NTY1OC0wLjM0NTU4MTEsMC43ODMyNzk0LTAuNTE2MDUyMiwxLjMxNzc3OTUtMC41MTYwNTIyaDMuNjY3Njk0MQoJCQljMC41MzkwOTMsMCwwLjk3NjgyMTksMC4xNzA0NzEyLDEuMzIyMzg3NywwLjUxNjA1MjJjMC4zNDA5ODgyLDAuMzQ1NTY1OCwwLjUxMTQ1OTQsMC43ODMyOTQ3LDAuNTExNDU5NCwxLjMxNzc5NDh2NS41MDE1NDExCgkJCWMzLjY2NzY5NDEsMCw2Ljk1NzU2NTMsMS4xNDcyOTMxLDkuODYwMzgyMSwzLjQzNzMwMTZjMC40NTYxNzY4LDAuMzgyNDQ2MywwLjcyMzQxOTIsMC44NDMyMDA3LDAuODAxNzQyNiwxLjM3NzY4NTUKCQkJYzAuMDczNzE1MiwwLjUzNDUwMDEtMC4xMTUyMDM5LDAuOTkwNjQ2NC0wLjU3MTM1MDEsMS4zNzMwNzc0bC0zLjg5ODA4NjUsNC4wMTMyNzUxCgkJCWMtMC4zMDg3MTU4LDAuMjMwMzkyNS0wLjY2ODEwNjEsMC4zODI0MzEtMS4wOTIwMTA1LDAuNDU2MTYxNWMtMC40MTkyOTYzLDAuMDc4MzIzNC0wLjgyMDE1OTksMC0xLjIwMjU5MDktMC4yMjU3NjkKCQkJYy0xLjE0MjcxNTUtMC44NDMyMDA3LTIuNDQyMDc3Ni0xLjI2MjQ5NjktMy44OTgwODY1LTEuMjYyNDk2OWgtNy42NzYzNjExYy0wLjkxNjkxNTksMC0xLjcwMDIyNTgsMC4zMjI1MjUtMi4zNDk4OTkzLDAuOTcyMjEzNwoJCQljLTAuNjQ5Njg4NywwLjY0OTY3MzUtMC45NzY4MjE5LDEuNDc0NDQxNS0wLjk3NjgyMTksMi40NjUwODc5YzAsMC42ODY1NTQsMC4yMzAzOTI1LDEuMzM2MjEyMiwwLjY5MTE0NjksMS45NDkwMzU2CgkJCWMwLjQ1NjE2MTUsMC42MTI4MjM1LDEuMDMyMTE5OCwxLjAzMjExOTgsMS43MTg2NTg0LDEuMjYyNDk2OUwxNzQuMjgwNjM5NiwxODUuODczNjExNXoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K + mediatype: image/svg+xml +name: costmanagement-metrics-operator +schema: olm.package +--- +entries: +- name: costmanagement-metrics-operator.1.0.0 +- name: costmanagement-metrics-operator.1.1.0 + replaces: costmanagement-metrics-operator.1.0.0 +- name: costmanagement-metrics-operator.1.1.3 + replaces: costmanagement-metrics-operator.1.1.0 +- name: costmanagement-metrics-operator.1.1.4 + replaces: costmanagement-metrics-operator.1.1.3 +- name: costmanagement-metrics-operator.1.1.5 + replaces: costmanagement-metrics-operator.1.1.4 +- name: costmanagement-metrics-operator.1.1.6 + replaces: costmanagement-metrics-operator.1.1.5 +- name: costmanagement-metrics-operator.1.1.7 + replaces: costmanagement-metrics-operator.1.1.6 +- name: costmanagement-metrics-operator.1.1.8 + replaces: costmanagement-metrics-operator.1.1.7 +- name: costmanagement-metrics-operator.1.1.9 + replaces: costmanagement-metrics-operator.1.1.8 +- name: costmanagement-metrics-operator.1.2.0 + replaces: costmanagement-metrics-operator.1.1.9 +- name: costmanagement-metrics-operator.2.0.0 + replaces: costmanagement-metrics-operator.1.2.0 +- name: costmanagement-metrics-operator.3.0.0 + replaces: costmanagement-metrics-operator.2.0.0 +- name: costmanagement-metrics-operator.3.0.1 + replaces: costmanagement-metrics-operator.3.0.0 +- name: costmanagement-metrics-operator.3.1.0 + replaces: costmanagement-metrics-operator.3.0.1 +- name: costmanagement-metrics-operator.3.1.1 + replaces: costmanagement-metrics-operator.3.1.0 +- name: costmanagement-metrics-operator.3.2.0 + replaces: costmanagement-metrics-operator.3.1.1 +- name: costmanagement-metrics-operator.3.2.1 + replaces: costmanagement-metrics-operator.3.2.0 +- name: costmanagement-metrics-operator.3.3.0 + replaces: costmanagement-metrics-operator.3.2.1 +- name: costmanagement-metrics-operator.3.3.1 + replaces: costmanagement-metrics-operator.3.3.0 +name: stable +package: costmanagement-metrics-operator +schema: olm.channel +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:70fa64452d13ec5e1ed1abb9b87029cc8e9fec9a5288640326a43d854d01f087 +name: costmanagement-metrics-operator.1.0.0 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.0.0 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsic2VydmljZV9hZGRyZXNzIjp7ImRlZmF1bHQiOiJodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGlzIGBodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxYC4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlZmF1bHQiOjE0NDAsImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUgVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJpbmdyZXNzX3BhdGgiLCJ1cGxvYWRfY3ljbGUiLCJ1cGxvYWRfdG9nZ2xlIiwidmFsaWRhdGVfY2VydCJdLCJ0eXBlIjoib2JqZWN0In0sInZvbHVtZV9jbGFpbV90ZW1wbGF0ZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZUNsYWltVGVtcGxhdGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDIHRlbXBsYXRlLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJBY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QgLSBCZXRhKSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSAqIEFuIGV4aXN0aW5nIGN1c3RvbSByZXNvdXJjZS9vYmplY3QgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBWb2x1bWVTbmFwc2hvdCBvYmplY3QgdHlwZXMsIHRoZSBhcHByb3ByaWF0ZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkIChWb2x1bWVTbmFwc2hvdERhdGFTb3VyY2Ugb3IgQW55Vm9sdW1lRGF0YVNvdXJjZSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSB2b2x1bWUgd2lsbCBub3QgYmUgY3JlYXRlZCBhbmQgdGhlIGZhaWx1cmUgd2lsbCBiZSByZXBvcnRlZCBhcyBhbiBldmVudC4gSW4gdGhlIGZ1dHVyZSwgd2UgcGxhbiB0byBzdXBwb3J0IG1vcmUgZGF0YSBzb3VyY2UgdHlwZXMgYW5kIHRoZSBiZWhhdmlvciBvZiB0aGUgcHJvdmlzaW9uZXIgbWF5IGNoYW5nZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1jb21wdXRlLXJlc291cmNlcy1jb250YWluZXIvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvcl9jb21taXQiOnsiZGVzY3JpcHRpb24iOiJPcGVyYXRvckNvbW1pdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBjb21taXQgaGFzaCBvZiB0aGUgb3BlcmF0b3IuIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgc3RhdHVzIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgcGFja2FnaW5nIHRoZSByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3BhY2thZ2luZ190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxQYWNrYWdpbmdUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBmaWxlIHBhY2thZ2luZy4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwibWF4X3NpemVfTUIiOnsiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwibnVtYmVyX3JlcG9ydHNfc3RvcmVkIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0Q291bnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgcmVwb3J0cyBpbiBzdG9yYWdlLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwicGFja2FnZWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdlZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlIHBhY2thZ2VzIGluIHN0b3JhZ2UuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicGVyc2lzdGVudF92b2x1bWVfY2xhaW0iOnsiZGVzY3JpcHRpb24iOiJQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJBY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QgLSBCZXRhKSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSAqIEFuIGV4aXN0aW5nIGN1c3RvbSByZXNvdXJjZS9vYmplY3QgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBWb2x1bWVTbmFwc2hvdCBvYmplY3QgdHlwZXMsIHRoZSBhcHByb3ByaWF0ZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkIChWb2x1bWVTbmFwc2hvdERhdGFTb3VyY2Ugb3IgQW55Vm9sdW1lRGF0YVNvdXJjZSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSB2b2x1bWUgd2lsbCBub3QgYmUgY3JlYXRlZCBhbmQgdGhlIGZhaWx1cmUgd2lsbCBiZSByZXBvcnRlZCBhcyBhbiBldmVudC4gSW4gdGhlIGZ1dHVyZSwgd2UgcGxhbiB0byBzdXBwb3J0IG1vcmUgZGF0YSBzb3VyY2UgdHlwZXMgYW5kIHRoZSBiZWhhdmlvciBvZiB0aGUgcHJvdmlzaW9uZXIgbWF5IGNoYW5nZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1jb21wdXRlLXJlc291cmNlcy1jb250YWluZXIvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlndXJlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIGlzIGNvbmZpZ3VyZWQgdG8gY29ubmVjdCB0byBwcm9tZXRoZXVzLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0Nvbm5lY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgcHJvbWV0aGV1cyBjYW4gYmUgcXVlcmllZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3Rpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25uZWN0aW9uRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyB0ZXN0IHF1ZXJ5LiIsInR5cGUiOiJzdHJpbmcifSwic2VydmljZV9hZGRyZXNzIjp7ImRlc2NyaXB0aW9uIjoiU3ZjQWRkcmVzcyBpcyB0aGUgaW50ZXJuYWwgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlNraXBUTFNWZXJpZmljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSB0aGFub3MtcXVlcmllciBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsicHJvbWV0aGV1c19jb25maWd1cmVkIiwicHJvbWV0aGV1c19jb25uZWN0ZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXBvcnRzIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcmVwb3J0IGdlbmVyYXRpb24uIiwicHJvcGVydGllcyI6eyJkYXRhX2NvbGxlY3RlZCI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGRhdGEgd2FzIGNvbGxlY3RlZCBmb3IgdGhlIGxhc3QgcXVlcnkuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGF0YV9jb2xsZWN0aW9uX21lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGlvbk1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGEgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFfY29sbGVjdGVkIHN0YXR1cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfaG91cl9xdWVyaWVkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdEhvdXJRdWVyaWVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgdGltZSByYW5nZSBmb3Igd2hpY2ggbWV0cmljcyB3ZXJlIGxhc3QgcXVlcmllZC4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcG9ydF9tb250aCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydE1vbnRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbW9udGggZm9yIHdoaWNoIHJlcG9ydHMgYXJlIGJlaW5nIGdlbmVyYXRlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDE0NDAgbWluICgyNCBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJjcmVhdGVfc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4gQSBzb3VyY2Ugd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIGNyZWF0aW5nIHRoZSBzb3VyY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U291cmNlQ2hlY2tUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBjaGVjayB3YXMgYXR0ZW1wdGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VOYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlRGVmaW5lZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBleGlzdHMgYXMgZGVmaW5lZCBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sInNvdXJjZXNfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZXNBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgU291cmNlcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ODA2ZGRjNTM3MjBiYTBhNmIwZTZiOWFiN2IxYzRkYTU1MDJjNjZkYWUzMDA4YmZkZmNlMzZlZGViMjNlYjhkOCIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMC4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjAuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9vcGVuc2hpZnRfY29udGFpbmVyX3BsYXRmb3JtLzQuNS9odG1sL2dldHRpbmdfc3RhcnRlZF93aXRoX2Nvc3RfbWFuYWdlbWVudC9hc3NlbWJseV9pbnRyb2R1Y3Rpb25fY29zdF9tYW5hZ2VtZW50KSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQsIHVzZWQgdG8gZ2F0aGVyIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjbHVzdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBiZSBpbnN0YWxsZWQgaW4gT3BlblNoaWZ0IDQuNisuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGFuZCB1cGxvYWRzIGl0IHRvIGNvc3QgbWFuYWdlbWVudCB0byBiZSBwcm9jZXNzZWQuIFRoZSBPcGVyYXRvciBxdWVyaWVzIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMsIHdoaWNoIGFyZSB0aGVuIHBhY2thZ2VkIGFuZCB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQgYXQgW2Nsb3VkLnJlZGhhdC5jb21dKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbSkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS80LjUvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgY29zdCBtYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIGNvc3QgbWFuYWdlbWVudC5cbiogV3JpdGluZyBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0aGUgcGFja2FnZWQgcmVwb3J0cyB0byBjb3N0IG1hbmFnZW1lbnQgdGhyb3VnaCBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZS5cbiogVGhlIG9wZXJhdG9yIGNhbiBjcmVhdGUgYSBzb3VyY2UgaW4gY2xvdWQucmVkaGF0LmNvbS4gQSBzb3VyY2UgaXMgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEEgc291cmNlICoqbXVzdCoqIGV4aXN0IGluIGNsb3VkLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjbG91ZC5yZWRoYXQuY29tIGV2ZXJ5IHdlZWssIG9yIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCB0aGUgZGF0YSB3aWxsIGJlIGxvc3QuXG5cbiMjIyMgU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVxuVGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgYW5kIHVzZSB0aGUgZm9sbG93aW5nIFBWQyB3aGVuIGluc3RhbGxlZDpcblxuICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuXG5JZiBhIGRpZmZlcmVudCBQVkMgc2hvdWxkIGJlIHV0aWxpemVkLCBhIHZhbGlkIFBWQyBzaG91bGQgYmUgc3BlY2lmaWVkIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgYXMgZGVzY3JpYmVkIGluIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGJlbG93LiBUaGUgUFZDIHRvIGJlIHVzZWQgbWF5IGV4aXN0IGFscmVhZHksIG9yIHRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGl0LlxuXG5UbyB1c2UgdGhlIGRlZmF1bHQgc3BlY2lmaWNhdGlvbiwgdGhlIGZvbGxvdyBhc3N1bXB0aW9ucyBtdXN0IGJlIG1ldDpcbjEuIEEgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZGVmaW5lZC5cbjIuIER5bmFtaWMgcHJvdmlzaW9uaW5nIGZvciB0aGF0IGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGVuYWJsZWQuXG5cbklmIHRoZXNlIGFzc3VtcHRpb25zIGFyZSBub3QgbWV0LCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgZGVwbG95IGNvcnJlY3RseS4gSW4gdGhlc2UgY2FzZXMsIHN0b3JhZ2UgbXVzdCBiZSBtYW51YWxseSBjb25maWd1cmVkLiBBZnRlciBjb25maWd1cmluZyBzdG9yYWdlLCBhIHZhbGlkIFBWQyB0ZW1wbGF0ZSBzaG91bGQgYmUgc3VwcGxpZWQgaW4gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIHNwZWMgb2YgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUi5cblxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4qKk5vdGUqKiBUaGVyZSBhcmUgc2VwYXJhdGUgaW5zdHJ1Y3Rpb25zIGZvciBjb25maWd1cmluZyB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yay5cbiMjIyMjIENvbmZpZ3VyZSBhdXRoZW50aWNhdGlvblxuVGhlIGRlZmF1bHQgYXV0aGVudGljYXRpb24gZm9yIHRoZSBvcGVyYXRvciBpcyBgdG9rZW5gLiBObyBmdXJ0aGVyIHN0ZXBzIGFyZSByZXF1aXJlZCB0byBjb25maWd1cmUgdG9rZW4gYXV0aGVudGljYXRpb24uIElmIGBiYXNpY2AgaXMgdGhlIHByZWZlcnJlZCBhdXRoZW50aWNhdGlvbiBtZXRob2QsIGEgU2VjcmV0IG11c3QgYmUgY3JlYXRlZCB3aGljaCBob2xkcyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgY3JlZGVudGlhbHM6XG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgV29ya2xvYWRzYCAtXHUwMDNlIGBTZWNyZXRzYCAtXHUwMDNlIHNlbGVjdCBQcm9qZWN0OiBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ3JlYXRlYCAtXHUwMDNlIGBLZXkvVmFsdWUgU2VjcmV0YFxuMi4gR2l2ZSB0aGUgU2VjcmV0IGEgbmFtZSBhbmQgYWRkIDIga2V5czogYHVzZXJuYW1lYCBhbmQgYHBhc3N3b3JkYCAoYWxsIGxvd2VyY2FzZSkuIFRoZSB2YWx1ZXMgZm9yIHRoZXNlIGtleXMgY29ycmVzcG9uZCB0byBjbG91ZC5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vNC41L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY2xvdWQucmVkaGF0LmNvbV0oaHR0cHM6Ly9jbG91ZC5yZWRoYXQuY29tKS5cblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGZvciBhIHJlc3RyaWN0ZWQgbmV0d29ya1xuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gU3BlY2lmeSB0aGUgZGVzaXJlZCBzdG9yYWdlLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnQgVm9sdW1lIENsYWltIGNhbGxlZCBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhYCB3aXRoIDEwR2kgb2Ygc3RvcmFnZS4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIHVzZSBvciBjcmVhdGUgYSBkaWZmZXJlbnQgUFZDLCBlZGl0IHRoZSBmb2xsb3dpbmcgaW4gdGhlIHNwZWM6XG4gICAgKiBBZGQgdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiB0byB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgaW4gdGhlIHNwZWM6XG5cbiAgICAgIGBgYFxuICAgICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICAgIG5hbWU6IFx1MDAzY2luc2VydC1uYW1lXHUwMDNlXG4gICAgICAgICAgc3BlYzpcbiAgICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IFx1MDAzY2luc2VydC1jbGFzcy1uYW1lXHUwMDNlXG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG4zLiAoT3B0aW9uYWwpIFNwZWNpZnkgdGhlIGRlc2lyZWQgcmVwb3J0IHJldGVudGlvbi4gVGhlIG9wZXJhdG9yIHdpbGwgcmV0YWluIDMwIHJlcG9ydHMgYnkgZGVmYXVsdC4gVGhpcyBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IG9uZSB3ZWVrJ3Mgd29ydGggb2YgZGF0YSBpZiB1c2luZyB0aGUgZGVmYXVsdCBwYWNrYWdpbmcgY3ljbGUuIFRvIG1vZGlmeSB0aGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHM6XG4gICAgKiBDaGFuZ2UgdGhlIGBwYWNrYWdpbmdgIHNwZWMgZmllbGQgYG1heF9yZXBvcnRzX3RvX3N0b3JlYCB0byB0aGUgZGVzaXJlZCBudW1iZXIgb2YgcmVwb3J0cyB0byByZXRhaW4uIE9uY2UgdGhpcyBtYXggbnVtYmVyIGlzIHJlYWNoZWQsIHRoZSBvcGVyYXRvciB3aWxsIHN0YXJ0IHJlbW92aW5nIHRoZSBvbGRlc3QgcGFja2FnZXMgcmVtYWluaW5nIG9uIHRoZSBQVkM6XG5cbiAgICAgIGBgYFxuICAgICAgICBwYWNrYWdpbmc6XG4gICAgICAgICAgbWF4X3NpemVfTUI6IDEwMFxuICAgICAgICAgIG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMFxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogVGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzIGRpcmVjdGx5IGFmZmVjdHMgdGhlIGZyZXF1ZW5jeSB0aGF0IHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGZyb20gdGhlIFBWQy4gVGFrZSBjYXV0aW9uIGluIHNldHRpbmcgdGhpcyB0byBhIGhpZ2hlciBudW1iZXIgb2YgcmVwb3J0cywgYXMgdGhlIG9wZXJhdG9yIGNhbm5vdCB3cml0ZSBkYXRhIHRvIHRoZSBQVkMgaWYgdGhlIHN0b3JhZ2UgaXMgZnVsbC5cbjQuIFRvIGNvbmZpZ3VyZSB0aGUgb3BlcmF0b3IgdG8gcGVyZm9ybSBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgc2V0IHRoZSBgdXBsb2FkX3RvZ2dsZWAgdG8gYGZhbHNlYDpcblxuICBgYGBcbiAgICB1cGxvYWQ6XG4gICAgICB1cGxvYWRfY3ljbGU6IDM2MCxcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY2xvdWQucmVkaGF0LmNvbV0oaHR0cHM6Ly9jbG91ZC5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICBraW5kOiBQb2RcbiAgYXBpVmVyc2lvbjogdjFcbiAgbWV0YWRhdGE6XG4gICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gIHNwZWM6XG4gICAgdm9sdW1lczpcbiAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgIGNvbnRhaW5lcnM6XG4gICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJzM2MDAnXVxuICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNsb3VkLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtTb3VyY2VzIG1lbnVdKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2Nsb3VkLnJlZGhhdC5jb21dKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4iLCJkaXNwbGF5TmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NEtQQ0V0TFNCSFpXNWxjbUYwYjNJNklFRmtiMkpsSUVsc2JIVnpkSEpoZEc5eUlESXlMakV1TUN3Z1UxWkhJRVY0Y0c5eWRDQlFiSFZuTFVsdUlDNGdVMVpISUZabGNuTnBiMjQ2SURZdU1EQWdRblZwYkdRZ01Da2dJQzB0UGdvOGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJa3hoZVdWeVh6RWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWdvSklIWnBaWGRDYjNnOUlqQWdNQ0F6TURBZ016QXdJaUJ6ZEhsc1pUMGlaVzVoWW14bExXSmhZMnRuY205MWJtUTZibVYzSURBZ01DQXpNREFnTXpBd095SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStDZ2t1YzNRd2UyWnBiR3c2STBWRk1EQXdNRHQ5Q2p3dmMzUjViR1UrQ2p4MGFYUnNaVDVEYjNOMExXbGpiMjQ4TDNScGRHeGxQZ284WkdWell6NURjbVZoZEdWa0lIZHBkR2dnVTJ0bGRHTm9Mand2WkdWell6NEtQR2MrQ2drOFp6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOMk10TXk0eU5qVTRNRGd4TFRReExqazRPVEExTVRndE16Z3VNalUyTmpnek15MDNOQzQyTkRjeU1ERTFMVGd4TGpFM09EZ3pNeTAzTkM0Mk5EY3lNREUxQ2drSkNXTXRNamN1TlRJMk1UVXpOaXd3TFRVekxqRTROakV5Tmpjc01UTXVPVGsyTXpRNU15MDJPQzR4TVRVMU56QXhMRE0zTGpNeU16WXdNRGhqTFRFdU9EWTJNVGd3TkN3d0xUTXVOek15TXpVek1pMHdMalEyTmpVME5URXROaTR3TmpVd056ZzNMVEF1TkRZMk5UUTFNUW9KQ1FsakxUTTBMalV5TkRNek1ERXNNQzAyTWk0NU9ETTFOemMzTERJM0xqazVNalk1T0RjdE5qSXVPVGd6TlRjM055dzJNaTQ1T0RNMU5qWXpjekkzTGprNU1qWTVPRGNzTmpJdU9UZ3pOVFkyTXl3Mk1pNDVPRE0xTnpjM0xEWXlMams0TXpVMk5qTm9NVFl1TXpJNU1EY3hDZ2tKQ1dNekxqY3pNak0yTURnc01DdzJMams1T0RFM05qWXRNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaTAyTGprNU9ERTJPRGx6TFRNdU1qWTFPREUxTnkwMkxqazVPREUyT0RrdE5pNDVPVGd4TnpZMkxUWXVPVGs0TVRZNE9XZ3RNVFl1TXpJNU1EY3hDZ2tKQ1dNdE1qY3VNRFU1TmpFeU15d3dMVFE0TGpVeU1EWTNPVFV0TWpFdU9USTNOakkzTmkwME9DNDFNakEyTnprMUxUUTRMalV5TURZM05UZHpNakV1T1RJM05qRXlNeTAwT0M0MU1qQTJPRE16TERRNExqVXlNRFkzT1RVdE5EZ3VOVEl3Tmpnek13b0pDUWxqTWk0M09Ua3lOekEyTERBc05TNDFPVGcxTkRFekxEQXVORFkyTlRRMU1TdzRMak01Tnpnd05ETXNNQzQ1TXpNd09UQXlZekl1TnprNU1qY3dOaXd3TGpRMk5qVTBOVEVzTmk0d05qVXdOemczTFRBdU9UTXpNRGt3TWl3M0xqUTJORGN5TVRjdE15NDNNekl6TmpBNENna0pDV014TWk0eE16QXhOekkzTFRJd0xqazVORFV5T1Rjc016UXVOVEkwTXpNd01TMHpOQzR3TlRjM09EZzRMRFU0TGpNeE9ERXlNamt0TXpRdU1EVTNOemc0T0dNek5pNDROVGN3TnpBNUxEQXNOamN1TVRneU5EazFNU3d6TUM0ek1qVTBNakEwTERZM0xqRTRNalE1TlRFc05qY3VNVGd5TkRjNU9Rb0pDUWxqTUN3ekxqY3pNak0xTXpJc015NHlOalU0TURneExEWXVPVGs0TVRjMk5pdzJMams1T0RFMk9Ea3NOaTQ1T1RneE56WTJZekUyTGpNeU9UQTNNU3d3TERJNUxqZzFPRGt3TWl3eE15NDFNams0TURBMExESTVMamcxT0Rrd01pd3lPUzQ0TlRnNE56RTFDZ2tKQ1hNdE1UTXVOVEk1T0RNd09Td3lPUzQ0TlRnNE9EWTNMVEk1TGpnMU9Ea3dNaXd5T1M0NE5UZzRPRFkzWXkwekxqY3pNak0yTURnc01DMDJMams1T0RFMk9Ea3NNeTR5TmpVNE1EZ3hMVFl1T1RrNE1UWTRPU3cyTGprNU9ERTJPRGtLQ1FrSmN6TXVNalkxT0RBNE1TdzJMams1T0RFMk9Ea3NOaTQ1T1RneE5qZzVMRFl1T1RrNE1UWTRPV015TkM0eU5qQXpNekF5TERBc05EUXVNekl4TnpZeU1TMHlNQzR3TmpFME1UWTJMRFEwTGpNeU1UYzJNakV0TkRRdU16SXhOell5TVFvSkNRbERNamMyTGpNMk1EWXlOaklzTVRNNUxqSXdNamM0T1RNc01qWXdMakF6TVRVMU5USXNNVEl3TGpVME1EazVNamNzTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04zb2lMejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5NakEyTGpnME5UUXlPRFVzTWpJd0xqZzBPREUzTldNM0xqUTJORGN3TmpRdE9DNDROalF6TmpRMkxERXhMalkyTXpZeUxUSXdMalV5TnprNE5EWXNNVEV1TmpZek5qSXRNekl1TmpVNE1UVTNNd29KQ1Fsak1DMHlPQzQ1TWpVM09UWTFMVEl6TGpNeU56STBMVFV5TGpJMU16QXpOalV0TlRJdU1qVXpNRE0yTlMwMU1pNHlOVE13TXpZMWN5MDFNaTR5TlRNd05EUXhMREl6TGpNeU56STBMVFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRE0yTlFvSkNRbHpNak11TXpJM01qUTNOaXcxTWk0eU5UTXdOVEU0TERVeUxqSTFNekEwTkRFc05USXVNalV6TURVeE9HTXhNUzR4T1Rjd09ESTFMREFzTWpFdU9USTNOakV5TXkwekxqY3pNak0yTURnc016QXVNekkxTkRJME1pMDVMamM1TnpRek9UWnNNekV1TnpJMU1EVXhPU3d6TUM0M09URTVOakUzQ2drSkNXTXhMak01T1RZeU56Y3NNUzR6T1RrMk1qYzNMRE11TWpZMU9ESXpOQ3d4TGpnMk5qRTRNRFFzTlM0eE16RTVPRGcxTERFdU9EWTJNVGd3TkdNeExqZzJOakU1TlRjc01Dd3pMamN6TWpNMk1EZ3RNQzQ1TXpNd056VXNOUzR4TXpFNU9EZzFMVEl1TXpNeU56TXpNZ29KQ1Fsak1pNDNPVGt5TnpBMkxUSXVOems1TWpVMU5Dd3lMamM1T1RJM01EWXROeTQwTmpRM01EWTBMREF0TVRBdU1qWXpPVGMzTVV3eU1EWXVPRFExTkRJNE5Td3lNakF1T0RRNE1UYzFlaUJOTVRJNExqUTJOVGcyTmpFc01UZzRMakU1TURBeE56Y0tDUWtKWXpBdE1qQXVPVGswTlRJeU1Td3hOeTR5TmpJeE56WTFMVE00TGpJMU5qWTVPRFlzTXpndU1qVTJOams0Tmkwek9DNHlOVFkyT1RnMmN6TTRMakkxTmpZNU9EWXNNVGN1TWpZeU1UYzJOU3d6T0M0eU5UWTJPVGcyTERNNExqSTFOalk1T0RZS0NRa0pjeTB4Tnk0eU5qSXhOelkxTERNNExqSTFOalk1T0RZdE16Z3VNalUyTmprNE5pd3pPQzR5TlRZMk9UZzJVekV5T0M0ME5qVTROall4TERJd09TNHhPRFExTXprNExERXlPQzQwTmpVNE5qWXhMREU0T0M0eE9UQXdNVGMzZWlJdlBnb0pQQzluUGdvSlBHYytDZ2tKUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRURTNOQzR5T0RBMk16azJMREU0TlM0NE56TTJNVEUxWXpJdU1qRTJNamM0TVN3d0xqWTROalV6T0Rjc05DNHhNVEF3TXpFeExERXVPRGN3TnpFeU15dzFMalkzTmpZek5UY3NNeTQxTlRJMU1EVTFDZ2tKQ1dNeExqVTJOall3TkRZc01TNDJPREU0TURnMUxESXVOVGs0TnpBNU1Td3pMalkwT1RJMk1UVXNNeTR3T1RFM016VTRMRFV1T1RBeU5EQTBPR013TGpRNU56WXhPVFlzTWk0eU5UTXhORE16TERBdU16WXpPVGs0TkN3MExqVXlPVE15TnpRdE1DNDBNREE0TnpnNUxEWXVPREU1TXpNMU9Rb0pDUWxqTFRBdU9URTJPVEUxT1N3eUxqVXlNRE00TlRjdE1pNDBPRE0xTWpBMUxEUXVOVEk1TXpFeU1TMDBMalk1T1RjNU9EWXNOaTR3TVRjMU9UTTBZeTB5TGpJeE5qSTJNamdzTVM0ME9EZ3lPREV5TFRRdU5qazFNakExTnl3eUxqSTNNVFUzTlRrdE55NDBOVEExTnpZNExESXVNelE1T0RrNU13b0pDUWwyTlM0MU1ERTFOVFkwWXpBc01DNDFNelEwT0RRNUxUQXVNVGN3TkRjeE1pd3dMamszTWpJeE16Y3RNQzQxTVRFME5UazBMREV1TXpFM056YzVOV010TUM0ek5EVTFOalU0TERBdU16UTFOVGd4TVMwd0xqYzRNekk1TkRjc01DNDFNVFl3TmpjMUxURXVNekl5TXpnM055d3dMalV4TmpBMk56VUtDUWtKYUMwekxqWTJOelk1TkRGakxUQXVOVE0wTlRBd01Td3dMVEF1T1RjeU1qRXpOeTB3TGpFM01EUTROalV0TVM0ek1UYzNOemsxTFRBdU5URTJNRFkzTldNdE1DNHpOREE1TnpJNUxUQXVNelExTlRZMU9DMHdMalV4TmpBMk56VXRNQzQzT0RNeU9UUTNMVEF1TlRFMk1EWTNOUzB4TGpNeE56YzNPVFVLQ1FrSmRpMDFMalV3TVRVMU5qUmpMVE11TmpZM05qazBNU3d3TFRZdU9UZzVPREl5TkMweExqRTBOekk1TXpFdE9TNDVOamcyTlRnMExUTXVORE0zTXpBeE5tTXRNQzR6T0RJME5EWXpMVEF1TXpneU5ETXhMVEF1TmpFeU9ESXpOUzB3TGpnME16SXdNRGN0TUM0Mk9EZzROREk0TFRFdU16YzNOekF3T0FvSkNRbGpMVEF1TURjMk1ETTBOUzB3TGpVek5EUTRORGtzTUM0eE1UVXhPRGcyTFRFdU1ETXlNVEEwTlN3d0xqVTNNell6T0RrdE1TNDBPRGd5TlRBM2JETXVPRGsxTnpneU5TMHpMamc1T0RBNE5qVUtDUWtKWXpBdU16QTROekF3Tmkwd0xqSXpNRE01TWpVc01DNDJOamd4TURZeExUQXVNemd5TkRNeExERXVNRGt5TURFd05TMHdMalExTmpFMk1UVmpNQzQwTVRreU9UWXpMVEF1TURjNE16SXpOQ3d3TGpneU1ERTFPVGtzTUM0d016WTROU3d4TGpJd01qWXdOaklzTUM0ek5EQTVOekk1Q2drSkNXTXhMakUwTnpJNU16RXNNQzQzTmpRNE56Y3pMREl1TkRReU1EUTNNU3d4TGpFME56TXdPRE1zTXk0NE9UTTBOak14TERFdU1UUTNNekE0TTJnM0xqWTRNRGsxTkdNd0xqa3hOamswTmpRc01Dd3hMamN3TURJME1URXRNQzR6TWpJMU5EQXpMREl1TXpRNU9EazVNeTB3TGprM01qSXhNemNLQ1FrSll6QXVOalE1TmpnNE55MHdMalkwT1RZNE9EY3NNQzQ1TnpJeU1qa3RNUzQwTnpRME5UWTRMREF1T1RjeU1qSTVMVEl1TkRZMU1UQXpNV013TFRBdU5qZzJOVFUwTFRBdU1qSTFOelk1TFRFdU16TTJNakkzTkMwd0xqWTROalV6T0RjdE1TNDVORGt3TXpVMkNna0pDV010TUM0ME5UWXhOakUxTFRBdU5qRXlPREl6TlMweExqQXpNakV4T1RndE1TNHdNekl4TVRrNExURXVOekU0TmpRek1pMHhMakkyTWpRNU5qbHNMVEV4TGpnd05EZzBNREV0TXk0ME16Y3pNVFk1Q2drSkNXTXRNaTQxT1RnMk9UTTRMVEF1TnpZME9EYzNNeTAwTGpjM016VXlPVEV0TWk0eE16YzVOVFEzTFRZdU5UTXpOalExTmkwMExqRXlPRFEwT0RWakxURXVOelUzT0RFeU5TMHhMams0TlRrd01Ea3RNaTQzT0RjMk5ETTBMVFF1TWpjMU9USTBOeTB6TGpBNU5EQXpPVGt0Tmk0NE56UTJNek00Q2drSkNXTXRNQzR4TlRJd05UTTRMVEl1TkRRMk5qVTFNeXd3TGpNd05qTTVOalV0TkM0M01UZ3lNekV5TERFdU16YzFNemsyTnkwMkxqZ3hPVE16TlRsak1TNHdOamc1TmprM0xUSXVNVEF4TURnNU5Td3lMalU1T0Rjd09URXRNeTQzT0RJNE9ESTNMRFF1TlRnME5qRXROUzR3TkRVek56azJDZ2tKQ1dNeExqazROVGt3TURrdE1TNHlOVGM0T0RnNExEUXVNakF5TVRjNUxURXVPRGc1TVRJNU5pdzJMalkwT0RnME9UVXRNUzQ0T0RreE1qazJhREF1TWpJMU56WTVkaTAxTGpVd01UVTBNVEVLQ1FrSll6QXRNQzQxTXpRMU1EQXhMREF1TVRjMU1EazBOaTB3TGprM01qSXlPU3d3TGpVeE5qQTJOelV0TVM0ek1UYzNPVFE0WXpBdU16UTFOVFkxT0Mwd0xqTTBOVFU0TVRFc01DNDNPRE15TnprMExUQXVOVEUyTURVeU1pd3hMak14TnpjM09UVXRNQzQxTVRZd05USXlhRE11TmpZM05qazBNUW9KQ1Fsak1DNDFNemt3T1RNc01Dd3dMamszTmpneU1Ua3NNQzR4TnpBME56RXlMREV1TXpJeU16ZzNOeXd3TGpVeE5qQTFNakpqTUM0ek5EQTVPRGd5TERBdU16UTFOVFkxT0N3d0xqVXhNVFExT1RRc01DNDNPRE15T1RRM0xEQXVOVEV4TkRVNU5Dd3hMak14TnpjNU5EaDJOUzQxTURFMU5ERXhDZ2tKQ1dNekxqWTJOelk1TkRFc01DdzJMamsxTnpVMk5UTXNNUzR4TkRjeU9UTXhMRGt1T0RZd016Z3lNU3d6TGpRek56TXdNVFpqTUM0ME5UWXhOelk0TERBdU16Z3lORFEyTXl3d0xqY3lNelF4T1RJc01DNDRORE15TURBM0xEQXVPREF4TnpReU5pd3hMak0zTnpZNE5UVUtDUWtKWXpBdU1EY3pOekUxTWl3d0xqVXpORFV3TURFdE1DNHhNVFV5TURNNUxEQXVPVGt3TmpRMk5DMHdMalUzTVRNMU1ERXNNUzR6TnpNd056YzBiQzB6TGpnNU9EQTROalVzTkM0d01UTXlOelV4Q2drSkNXTXRNQzR6TURnM01UVTRMREF1TWpNd016a3lOUzB3TGpZMk9ERXdOakVzTUM0ek9ESTBNekV0TVM0d09USXdNVEExTERBdU5EVTJNVFl4TldNdE1DNDBNVGt5T1RZekxEQXVNRGM0TXpJek5DMHdMamd5TURFMU9Ua3NNQzB4TGpJd01qVTVNRGt0TUM0eU1qVTNOamtLQ1FrSll5MHhMakUwTWpjeE5UVXRNQzQ0TkRNeU1EQTNMVEl1TkRReU1EYzNOaTB4TGpJMk1qUTVOamt0TXk0NE9UZ3dPRFkxTFRFdU1qWXlORGsyT1dndE55NDJOell6TmpFeFl5MHdMamt4TmpreE5Ua3NNQzB4TGpjd01ESXlOVGdzTUM0ek1qSTFNalV0TWk0ek5EazRPVGt6TERBdU9UY3lNakV6TndvSkNRbGpMVEF1TmpRNU5qZzROeXd3TGpZME9UWTNNelV0TUM0NU56WTRNakU1TERFdU5EYzBORFF4TlMwd0xqazNOamd5TVRrc01pNDBOalV3T0RjNVl6QXNNQzQyT0RZMU5UUXNNQzR5TXpBek9USTFMREV1TXpNMk1qRXlNaXd3TGpZNU1URTBOamtzTVM0NU5Ea3dNelUyQ2drSkNXTXdMalExTmpFMk1UVXNNQzQyTVRJNE1qTTFMREV1TURNeU1URTVPQ3d4TGpBek1qRXhPVGdzTVM0M01UZzJOVGcwTERFdU1qWXlORGsyT1V3eE56UXVNamd3TmpNNU5pd3hPRFV1T0Rjek5qRXhOWG9pTHo0S0NUd3ZaejRLUEM5blBnbzhMM04yWno0SyIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiY29uZmlnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW1hbmFnZXItcm9sZSJ9XSwiZGVwbG95bWVudHMiOlt7Im5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7fSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvaG9tZS9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ODA2ZGRjNTM3MjBiYTBhNmIwZTZiOWFiN2IxYzRkYTU1MDJjNjZkYWUzMDA4YmZkZmNlMzZlZGViMjNlYjhkOCIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtbWFuYWdlci1yb2xlIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImVuZHBvaW50cyIsImV2ZW50cyIsInBlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwb2RzIiwic2VjcmV0cyIsInNlcnZpY2VhY2NvdW50cyIsInNlcnZpY2VzIiwic2VydmljZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvcnMuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnNlcnZpY2V2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtbWFuYWdlci1yb2xlIn1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiT3duTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJTaW5nbGVOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJNdWx0aU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImNvc3QiLCJtYW5hZ2VtZW50IiwidXNhZ2UiLCJtb25pdG9yIl0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo4MDZkZGM1MzcyMGJhMGE2YjBlNmI5YWI3YjFjNGRhNTUwMmM2NmRhZTMwMDhiZmRmY2UzNmVkZWIyM2ViOGQ4IiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3ItODA2ZGRjNTM3MjBiYTBhNmIwZTZiOWFiN2IxYzRkYTU1MDJjNjZkYWUzMDA4YmZkZmNlMzZlZGViMjNlYjhkOC1hbm5vdGF0aW9uIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo4MDZkZGM1MzcyMGJhMGE2YjBlNmI5YWI3YjFjNGRhNTUwMmM2NmRhZTMwMDhiZmRmY2UzNmVkZWIyM2ViOGQ4IiwibmFtZSI6Im1hbmFnZXIifV0sInZlcnNpb24iOiIxLjAuMCJ9fQ== +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:70fa64452d13ec5e1ed1abb9b87029cc8e9fec9a5288640326a43d854d01f087 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:806ddc53720ba0a6b0e6b9ab7b1c4da5502c66dae3008bfdfce36edeb23eb8d8 + name: costmanagement-metrics-rhel8-operator-806ddc53720ba0a6b0e6b9ab7b1c4da5502c66dae3008bfdfce36edeb23eb8d8-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:806ddc53720ba0a6b0e6b9ab7b1c4da5502c66dae3008bfdfce36edeb23eb8d8 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:f2455392ddf7fe8506a2485835cbbd9c633476344a0cd9353e46c6fa44e4667c +name: costmanagement-metrics-operator.1.1.0 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.1.0 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsic2VydmljZV9hZGRyZXNzIjp7ImRlZmF1bHQiOiJodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGlzIGBodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxYC4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlZmF1bHQiOjE0NDAsImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUgVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJpbmdyZXNzX3BhdGgiLCJ1cGxvYWRfY3ljbGUiLCJ1cGxvYWRfdG9nZ2xlIiwidmFsaWRhdGVfY2VydCJdLCJ0eXBlIjoib2JqZWN0In0sInZvbHVtZV9jbGFpbV90ZW1wbGF0ZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZUNsYWltVGVtcGxhdGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDIHRlbXBsYXRlLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJBY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QgLSBCZXRhKSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSAqIEFuIGV4aXN0aW5nIGN1c3RvbSByZXNvdXJjZS9vYmplY3QgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBWb2x1bWVTbmFwc2hvdCBvYmplY3QgdHlwZXMsIHRoZSBhcHByb3ByaWF0ZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkIChWb2x1bWVTbmFwc2hvdERhdGFTb3VyY2Ugb3IgQW55Vm9sdW1lRGF0YVNvdXJjZSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSB2b2x1bWUgd2lsbCBub3QgYmUgY3JlYXRlZCBhbmQgdGhlIGZhaWx1cmUgd2lsbCBiZSByZXBvcnRlZCBhcyBhbiBldmVudC4gSW4gdGhlIGZ1dHVyZSwgd2UgcGxhbiB0byBzdXBwb3J0IG1vcmUgZGF0YSBzb3VyY2UgdHlwZXMgYW5kIHRoZSBiZWhhdmlvciBvZiB0aGUgcHJvdmlzaW9uZXIgbWF5IGNoYW5nZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1jb21wdXRlLXJlc291cmNlcy1jb250YWluZXIvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiQWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90IC0gQmV0YSkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2Uvb2JqZWN0IHRoYXQgaW1wbGVtZW50cyBkYXRhIHBvcHVsYXRpb24gKEFscGhhKSBJbiBvcmRlciB0byB1c2UgVm9sdW1lU25hcHNob3Qgb2JqZWN0IHR5cGVzLCB0aGUgYXBwcm9wcmlhdGUgZmVhdHVyZSBnYXRlIG11c3QgYmUgZW5hYmxlZCAoVm9sdW1lU25hcHNob3REYXRhU291cmNlIG9yIEFueVZvbHVtZURhdGFTb3VyY2UpIElmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsIGl0IHdpbGwgY3JlYXRlIGEgbmV3IHZvbHVtZSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZS4gSWYgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSBpcyBub3Qgc3VwcG9ydGVkLCB0aGUgdm9sdW1lIHdpbGwgbm90IGJlIGNyZWF0ZWQgYW5kIHRoZSBmYWlsdXJlIHdpbGwgYmUgcmVwb3J0ZWQgYXMgYW4gZXZlbnQuIEluIHRoZSBmdXR1cmUsIHdlIHBsYW4gdG8gc3VwcG9ydCBtb3JlIGRhdGEgc291cmNlIHR5cGVzIGFuZCB0aGUgYmVoYXZpb3Igb2YgdGhlIHByb3Zpc2lvbmVyIG1heSBjaGFuZ2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdGFydF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFF1ZXJ5U3RhcnRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdGFydGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcXVlcnlfc3VjY2Vzc190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFF1ZXJ5U3VjY2Vzc1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN1Y2Nlc3NmdWwuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwicHJvbWV0aGV1c19jb25maWd1cmVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZ3VyZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBjb25maWd1cmVkIHRvIGNvbm5lY3QgdG8gcHJvbWV0aGV1cy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25uZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHByb21ldGhldXMgY2FuIGJlIHF1ZXJpZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29ubmVjdGlvbkVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgdGVzdCBxdWVyeS4iLCJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2VfYWRkcmVzcyI6eyJkZXNjcmlwdGlvbiI6IlN2Y0FkZHJlc3MgaXMgdGhlIGludGVybmFsIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbInByb21ldGhldXNfY29uZmlndXJlZCIsInByb21ldGhldXNfY29ubmVjdGVkIl0sInR5cGUiOiJvYmplY3QifSwicmVwb3J0cyI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydHMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHJlcG9ydCBnZW5lcmF0aW9uLiIsInByb3BlcnRpZXMiOnsiZGF0YV9jb2xsZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBkYXRhIHdhcyBjb2xsZWN0ZWQgZm9yIHRoZSBsYXN0IHF1ZXJ5LiIsInR5cGUiOiJib29sZWFuIn0sImRhdGFfY29sbGVjdGlvbl9tZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3Rpb25NZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBhIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhX2NvbGxlY3RlZCBzdGF0dXMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2hvdXJfcXVlcmllZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RIb3VyUXVlcmllZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHRpbWUgcmFuZ2UgZm9yIHdoaWNoIG1ldHJpY3Mgd2VyZSBsYXN0IHF1ZXJpZWQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXBvcnRfbW9udGgiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRNb250aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIG1vbnRoIGZvciB3aGljaCByZXBvcnRzIGFyZSBiZWluZyBnZW5lcmF0ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiB0aGUgc291cmNlIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IkNoZWNrQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggc291cmNlIGNoZWNrIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IkNyZWF0ZVNvdXJjZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIEEgc291cmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBjcmVhdGluZyB0aGUgc291cmNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFNvdXJjZUNoZWNrVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3QgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHNvdXJjZSBuYW1lIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZURlZmluZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2UgZXhpc3RzIGFzIGRlZmluZWQgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzdG9yYWdlIjp7ImRlc2NyaXB0aW9uIjoiU3RvcmFnZSBpcyBhIGZpZWxkIiwicHJvcGVydGllcyI6eyJ2b2x1bWVfbW91bnRlZCI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU1vdW50ZWQgaXMgYSBib29sIHRvIGluZGljYXRlIGlmIHN0b3JhZ2Ugdm9sdW1lIHdhcyBtb3VudGVkLiIsInR5cGUiOiJib29sZWFuIn0sInZvbHVtZV90eXBlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lVHlwZSBpcyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2b2x1bWUgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgdXBsb2FkaW5nIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJpbmdyZXNzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlcyBpbiB0aGUgbGFzdCBwYXlsb2FkIHRoYXQgd2FzIHNlbnQuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwibGFzdF9wYXlsb2FkX21hbmlmZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRNYW5pZmVzdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBtYW5pZmVzdElEIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBuYW1lIG9mIHRoZSBsYXN0IHBheWxvYWQgZmlsZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9yZXF1ZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRSZXF1ZXN0SUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaW5zaWdodHMgcmVxdWVzdCBpZCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3VwbG9hZF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxVcGxvYWRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCB1cGxvYWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF91cGxvYWRfc3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFVwbG9hZFN0YXR1cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBodHRwIHN0YXR1cyBvZiB0aGUgbGFzdCB1cGxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBzaG91bGQgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MzZmM2Y2Mzg1ZDg3MmY4NmY0OThmZTIyMWZkNGUxMTRiMjZkN2IzMWY5MDk2OWU1N2NkOTYzN2RiOWVhMDA0YyIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9vcGVuc2hpZnRfY29udGFpbmVyX3BsYXRmb3JtLzQuNS9odG1sL2dldHRpbmdfc3RhcnRlZF93aXRoX2Nvc3RfbWFuYWdlbWVudC9hc3NlbWJseV9pbnRyb2R1Y3Rpb25fY29zdF9tYW5hZ2VtZW50KSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQsIHVzZWQgdG8gZ2F0aGVyIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjbHVzdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBiZSBpbnN0YWxsZWQgaW4gT3BlblNoaWZ0IDQuNisuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGFuZCB1cGxvYWRzIGl0IHRvIGNvc3QgbWFuYWdlbWVudCB0byBiZSBwcm9jZXNzZWQuIFRoZSBPcGVyYXRvciBxdWVyaWVzIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMsIHdoaWNoIGFyZSB0aGVuIHBhY2thZ2VkIGFuZCB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQgYXQgW2Nsb3VkLnJlZGhhdC5jb21dKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbSkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS80LjUvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgY29zdCBtYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIGNvc3QgbWFuYWdlbWVudC5cbiogV3JpdGluZyBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0aGUgcGFja2FnZWQgcmVwb3J0cyB0byBjb3N0IG1hbmFnZW1lbnQgdGhyb3VnaCBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZS5cbiogVGhlIG9wZXJhdG9yIGNhbiBjcmVhdGUgYSBzb3VyY2UgaW4gY2xvdWQucmVkaGF0LmNvbS4gQSBzb3VyY2UgaXMgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEEgc291cmNlICoqbXVzdCoqIGV4aXN0IGluIGNsb3VkLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjbG91ZC5yZWRoYXQuY29tIGV2ZXJ5IHdlZWssIG9yIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCB0aGUgZGF0YSB3aWxsIGJlIGxvc3QuXG5cbiMjIyMgU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVxuVGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgYW5kIHVzZSB0aGUgZm9sbG93aW5nIFBWQyB3aGVuIGluc3RhbGxlZDpcblxuICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuXG5JZiBhIGRpZmZlcmVudCBQVkMgc2hvdWxkIGJlIHV0aWxpemVkLCBhIHZhbGlkIFBWQyBzaG91bGQgYmUgc3BlY2lmaWVkIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgYXMgZGVzY3JpYmVkIGluIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGJlbG93LiBUaGUgUFZDIHRvIGJlIHVzZWQgbWF5IGV4aXN0IGFscmVhZHksIG9yIHRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGl0LlxuXG5UbyB1c2UgdGhlIGRlZmF1bHQgc3BlY2lmaWNhdGlvbiwgdGhlIGZvbGxvdyBhc3N1bXB0aW9ucyBtdXN0IGJlIG1ldDpcbjEuIEEgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZGVmaW5lZC5cbjIuIER5bmFtaWMgcHJvdmlzaW9uaW5nIGZvciB0aGF0IGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGVuYWJsZWQuXG5cbklmIHRoZXNlIGFzc3VtcHRpb25zIGFyZSBub3QgbWV0LCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgZGVwbG95IGNvcnJlY3RseS4gSW4gdGhlc2UgY2FzZXMsIHN0b3JhZ2UgbXVzdCBiZSBtYW51YWxseSBjb25maWd1cmVkLiBBZnRlciBjb25maWd1cmluZyBzdG9yYWdlLCBhIHZhbGlkIFBWQyB0ZW1wbGF0ZSBzaG91bGQgYmUgc3VwcGxpZWQgaW4gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIHNwZWMgb2YgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUi5cblxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4qKk5vdGUqKiBUaGVyZSBhcmUgc2VwYXJhdGUgaW5zdHJ1Y3Rpb25zIGZvciBjb25maWd1cmluZyB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yay5cbiMjIyMjIENvbmZpZ3VyZSBhdXRoZW50aWNhdGlvblxuVGhlIGRlZmF1bHQgYXV0aGVudGljYXRpb24gZm9yIHRoZSBvcGVyYXRvciBpcyBgdG9rZW5gLiBObyBmdXJ0aGVyIHN0ZXBzIGFyZSByZXF1aXJlZCB0byBjb25maWd1cmUgdG9rZW4gYXV0aGVudGljYXRpb24uIElmIGBiYXNpY2AgaXMgdGhlIHByZWZlcnJlZCBhdXRoZW50aWNhdGlvbiBtZXRob2QsIGEgU2VjcmV0IG11c3QgYmUgY3JlYXRlZCB3aGljaCBob2xkcyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgY3JlZGVudGlhbHM6XG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgV29ya2xvYWRzYCAtXHUwMDNlIGBTZWNyZXRzYCAtXHUwMDNlIHNlbGVjdCBQcm9qZWN0OiBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ3JlYXRlYCAtXHUwMDNlIGBLZXkvVmFsdWUgU2VjcmV0YFxuMi4gR2l2ZSB0aGUgU2VjcmV0IGEgbmFtZSBhbmQgYWRkIDIga2V5czogYHVzZXJuYW1lYCBhbmQgYHBhc3N3b3JkYCAoYWxsIGxvd2VyY2FzZSkuIFRoZSB2YWx1ZXMgZm9yIHRoZXNlIGtleXMgY29ycmVzcG9uZCB0byBjbG91ZC5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vNC41L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY2xvdWQucmVkaGF0LmNvbV0oaHR0cHM6Ly9jbG91ZC5yZWRoYXQuY29tKS5cblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGZvciBhIHJlc3RyaWN0ZWQgbmV0d29ya1xuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gU3BlY2lmeSB0aGUgZGVzaXJlZCBzdG9yYWdlLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnQgVm9sdW1lIENsYWltIGNhbGxlZCBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhYCB3aXRoIDEwR2kgb2Ygc3RvcmFnZS4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIHVzZSBvciBjcmVhdGUgYSBkaWZmZXJlbnQgUFZDLCBlZGl0IHRoZSBmb2xsb3dpbmcgaW4gdGhlIHNwZWM6XG4gICAgKiBBZGQgdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiB0byB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgaW4gdGhlIHNwZWM6XG5cbiAgICAgIGBgYFxuICAgICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICAgIG5hbWU6IFx1MDAzY2luc2VydC1uYW1lXHUwMDNlXG4gICAgICAgICAgc3BlYzpcbiAgICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IFx1MDAzY2luc2VydC1jbGFzcy1uYW1lXHUwMDNlXG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG4zLiAoT3B0aW9uYWwpIFNwZWNpZnkgdGhlIGRlc2lyZWQgcmVwb3J0IHJldGVudGlvbi4gVGhlIG9wZXJhdG9yIHdpbGwgcmV0YWluIDMwIHJlcG9ydHMgYnkgZGVmYXVsdC4gVGhpcyBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IG9uZSB3ZWVrJ3Mgd29ydGggb2YgZGF0YSBpZiB1c2luZyB0aGUgZGVmYXVsdCBwYWNrYWdpbmcgY3ljbGUuIFRvIG1vZGlmeSB0aGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHM6XG4gICAgKiBDaGFuZ2UgdGhlIGBwYWNrYWdpbmdgIHNwZWMgZmllbGQgYG1heF9yZXBvcnRzX3RvX3N0b3JlYCB0byB0aGUgZGVzaXJlZCBudW1iZXIgb2YgcmVwb3J0cyB0byByZXRhaW4uIE9uY2UgdGhpcyBtYXggbnVtYmVyIGlzIHJlYWNoZWQsIHRoZSBvcGVyYXRvciB3aWxsIHN0YXJ0IHJlbW92aW5nIHRoZSBvbGRlc3QgcGFja2FnZXMgcmVtYWluaW5nIG9uIHRoZSBQVkM6XG5cbiAgICAgIGBgYFxuICAgICAgICBwYWNrYWdpbmc6XG4gICAgICAgICAgbWF4X3NpemVfTUI6IDEwMFxuICAgICAgICAgIG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMFxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogVGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzIGRpcmVjdGx5IGFmZmVjdHMgdGhlIGZyZXF1ZW5jeSB0aGF0IHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGZyb20gdGhlIFBWQy4gVGFrZSBjYXV0aW9uIGluIHNldHRpbmcgdGhpcyB0byBhIGhpZ2hlciBudW1iZXIgb2YgcmVwb3J0cywgYXMgdGhlIG9wZXJhdG9yIGNhbm5vdCB3cml0ZSBkYXRhIHRvIHRoZSBQVkMgaWYgdGhlIHN0b3JhZ2UgaXMgZnVsbC5cbjQuIFRvIGNvbmZpZ3VyZSB0aGUgb3BlcmF0b3IgdG8gcGVyZm9ybSBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgc2V0IHRoZSBgdXBsb2FkX3RvZ2dsZWAgdG8gYGZhbHNlYDpcblxuICBgYGBcbiAgICB1cGxvYWQ6XG4gICAgICB1cGxvYWRfY3ljbGU6IDM2MCxcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY2xvdWQucmVkaGF0LmNvbV0oaHR0cHM6Ly9jbG91ZC5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICBraW5kOiBQb2RcbiAgYXBpVmVyc2lvbjogdjFcbiAgbWV0YWRhdGE6XG4gICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gIHNwZWM6XG4gICAgdm9sdW1lczpcbiAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgIGNvbnRhaW5lcnM6XG4gICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJzM2MDAnXVxuICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNsb3VkLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtTb3VyY2VzIG1lbnVdKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2Nsb3VkLnJlZGhhdC5jb21dKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4iLCJkaXNwbGF5TmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NEtQQ0V0TFNCSFpXNWxjbUYwYjNJNklFRmtiMkpsSUVsc2JIVnpkSEpoZEc5eUlESXlMakV1TUN3Z1UxWkhJRVY0Y0c5eWRDQlFiSFZuTFVsdUlDNGdVMVpISUZabGNuTnBiMjQ2SURZdU1EQWdRblZwYkdRZ01Da2dJQzB0UGdvOGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJa3hoZVdWeVh6RWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWdvSklIWnBaWGRDYjNnOUlqQWdNQ0F6TURBZ016QXdJaUJ6ZEhsc1pUMGlaVzVoWW14bExXSmhZMnRuY205MWJtUTZibVYzSURBZ01DQXpNREFnTXpBd095SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStDZ2t1YzNRd2UyWnBiR3c2STBWRk1EQXdNRHQ5Q2p3dmMzUjViR1UrQ2p4MGFYUnNaVDVEYjNOMExXbGpiMjQ4TDNScGRHeGxQZ284WkdWell6NURjbVZoZEdWa0lIZHBkR2dnVTJ0bGRHTm9Mand2WkdWell6NEtQR2MrQ2drOFp6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOMk10TXk0eU5qVTRNRGd4TFRReExqazRPVEExTVRndE16Z3VNalUyTmpnek15MDNOQzQyTkRjeU1ERTFMVGd4TGpFM09EZ3pNeTAzTkM0Mk5EY3lNREUxQ2drSkNXTXRNamN1TlRJMk1UVXpOaXd3TFRVekxqRTROakV5Tmpjc01UTXVPVGsyTXpRNU15MDJPQzR4TVRVMU56QXhMRE0zTGpNeU16WXdNRGhqTFRFdU9EWTJNVGd3TkN3d0xUTXVOek15TXpVek1pMHdMalEyTmpVME5URXROaTR3TmpVd056ZzNMVEF1TkRZMk5UUTFNUW9KQ1FsakxUTTBMalV5TkRNek1ERXNNQzAyTWk0NU9ETTFOemMzTERJM0xqazVNalk1T0RjdE5qSXVPVGd6TlRjM055dzJNaTQ1T0RNMU5qWXpjekkzTGprNU1qWTVPRGNzTmpJdU9UZ3pOVFkyTXl3Mk1pNDVPRE0xTnpjM0xEWXlMams0TXpVMk5qTm9NVFl1TXpJNU1EY3hDZ2tKQ1dNekxqY3pNak0yTURnc01DdzJMams1T0RFM05qWXRNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaTAyTGprNU9ERTJPRGx6TFRNdU1qWTFPREUxTnkwMkxqazVPREUyT0RrdE5pNDVPVGd4TnpZMkxUWXVPVGs0TVRZNE9XZ3RNVFl1TXpJNU1EY3hDZ2tKQ1dNdE1qY3VNRFU1TmpFeU15d3dMVFE0TGpVeU1EWTNPVFV0TWpFdU9USTNOakkzTmkwME9DNDFNakEyTnprMUxUUTRMalV5TURZM05UZHpNakV1T1RJM05qRXlNeTAwT0M0MU1qQTJPRE16TERRNExqVXlNRFkzT1RVdE5EZ3VOVEl3Tmpnek13b0pDUWxqTWk0M09Ua3lOekEyTERBc05TNDFPVGcxTkRFekxEQXVORFkyTlRRMU1TdzRMak01Tnpnd05ETXNNQzQ1TXpNd09UQXlZekl1TnprNU1qY3dOaXd3TGpRMk5qVTBOVEVzTmk0d05qVXdOemczTFRBdU9UTXpNRGt3TWl3M0xqUTJORGN5TVRjdE15NDNNekl6TmpBNENna0pDV014TWk0eE16QXhOekkzTFRJd0xqazVORFV5T1Rjc016UXVOVEkwTXpNd01TMHpOQzR3TlRjM09EZzRMRFU0TGpNeE9ERXlNamt0TXpRdU1EVTNOemc0T0dNek5pNDROVGN3TnpBNUxEQXNOamN1TVRneU5EazFNU3d6TUM0ek1qVTBNakEwTERZM0xqRTRNalE1TlRFc05qY3VNVGd5TkRjNU9Rb0pDUWxqTUN3ekxqY3pNak0xTXpJc015NHlOalU0TURneExEWXVPVGs0TVRjMk5pdzJMams1T0RFMk9Ea3NOaTQ1T1RneE56WTJZekUyTGpNeU9UQTNNU3d3TERJNUxqZzFPRGt3TWl3eE15NDFNams0TURBMExESTVMamcxT0Rrd01pd3lPUzQ0TlRnNE56RTFDZ2tKQ1hNdE1UTXVOVEk1T0RNd09Td3lPUzQ0TlRnNE9EWTNMVEk1TGpnMU9Ea3dNaXd5T1M0NE5UZzRPRFkzWXkwekxqY3pNak0yTURnc01DMDJMams1T0RFMk9Ea3NNeTR5TmpVNE1EZ3hMVFl1T1RrNE1UWTRPU3cyTGprNU9ERTJPRGtLQ1FrSmN6TXVNalkxT0RBNE1TdzJMams1T0RFMk9Ea3NOaTQ1T1RneE5qZzVMRFl1T1RrNE1UWTRPV015TkM0eU5qQXpNekF5TERBc05EUXVNekl4TnpZeU1TMHlNQzR3TmpFME1UWTJMRFEwTGpNeU1UYzJNakV0TkRRdU16SXhOell5TVFvSkNRbERNamMyTGpNMk1EWXlOaklzTVRNNUxqSXdNamM0T1RNc01qWXdMakF6TVRVMU5USXNNVEl3TGpVME1EazVNamNzTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04zb2lMejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5NakEyTGpnME5UUXlPRFVzTWpJd0xqZzBPREUzTldNM0xqUTJORGN3TmpRdE9DNDROalF6TmpRMkxERXhMalkyTXpZeUxUSXdMalV5TnprNE5EWXNNVEV1TmpZek5qSXRNekl1TmpVNE1UVTNNd29KQ1Fsak1DMHlPQzQ1TWpVM09UWTFMVEl6TGpNeU56STBMVFV5TGpJMU16QXpOalV0TlRJdU1qVXpNRE0yTlMwMU1pNHlOVE13TXpZMWN5MDFNaTR5TlRNd05EUXhMREl6TGpNeU56STBMVFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRE0yTlFvSkNRbHpNak11TXpJM01qUTNOaXcxTWk0eU5UTXdOVEU0TERVeUxqSTFNekEwTkRFc05USXVNalV6TURVeE9HTXhNUzR4T1Rjd09ESTFMREFzTWpFdU9USTNOakV5TXkwekxqY3pNak0yTURnc016QXVNekkxTkRJME1pMDVMamM1TnpRek9UWnNNekV1TnpJMU1EVXhPU3d6TUM0M09URTVOakUzQ2drSkNXTXhMak01T1RZeU56Y3NNUzR6T1RrMk1qYzNMRE11TWpZMU9ESXpOQ3d4TGpnMk5qRTRNRFFzTlM0eE16RTVPRGcxTERFdU9EWTJNVGd3TkdNeExqZzJOakU1TlRjc01Dd3pMamN6TWpNMk1EZ3RNQzQ1TXpNd056VXNOUzR4TXpFNU9EZzFMVEl1TXpNeU56TXpNZ29KQ1Fsak1pNDNPVGt5TnpBMkxUSXVOems1TWpVMU5Dd3lMamM1T1RJM01EWXROeTQwTmpRM01EWTBMREF0TVRBdU1qWXpPVGMzTVV3eU1EWXVPRFExTkRJNE5Td3lNakF1T0RRNE1UYzFlaUJOTVRJNExqUTJOVGcyTmpFc01UZzRMakU1TURBeE56Y0tDUWtKWXpBdE1qQXVPVGswTlRJeU1Td3hOeTR5TmpJeE56WTFMVE00TGpJMU5qWTVPRFlzTXpndU1qVTJOams0Tmkwek9DNHlOVFkyT1RnMmN6TTRMakkxTmpZNU9EWXNNVGN1TWpZeU1UYzJOU3d6T0M0eU5UWTJPVGcyTERNNExqSTFOalk1T0RZS0NRa0pjeTB4Tnk0eU5qSXhOelkxTERNNExqSTFOalk1T0RZdE16Z3VNalUyTmprNE5pd3pPQzR5TlRZMk9UZzJVekV5T0M0ME5qVTROall4TERJd09TNHhPRFExTXprNExERXlPQzQwTmpVNE5qWXhMREU0T0M0eE9UQXdNVGMzZWlJdlBnb0pQQzluUGdvSlBHYytDZ2tKUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRURTNOQzR5T0RBMk16azJMREU0TlM0NE56TTJNVEUxWXpJdU1qRTJNamM0TVN3d0xqWTROalV6T0Rjc05DNHhNVEF3TXpFeExERXVPRGN3TnpFeU15dzFMalkzTmpZek5UY3NNeTQxTlRJMU1EVTFDZ2tKQ1dNeExqVTJOall3TkRZc01TNDJPREU0TURnMUxESXVOVGs0TnpBNU1Td3pMalkwT1RJMk1UVXNNeTR3T1RFM016VTRMRFV1T1RBeU5EQTBPR013TGpRNU56WXhPVFlzTWk0eU5UTXhORE16TERBdU16WXpPVGs0TkN3MExqVXlPVE15TnpRdE1DNDBNREE0TnpnNUxEWXVPREU1TXpNMU9Rb0pDUWxqTFRBdU9URTJPVEUxT1N3eUxqVXlNRE00TlRjdE1pNDBPRE0xTWpBMUxEUXVOVEk1TXpFeU1TMDBMalk1T1RjNU9EWXNOaTR3TVRjMU9UTTBZeTB5TGpJeE5qSTJNamdzTVM0ME9EZ3lPREV5TFRRdU5qazFNakExTnl3eUxqSTNNVFUzTlRrdE55NDBOVEExTnpZNExESXVNelE1T0RrNU13b0pDUWwyTlM0MU1ERTFOVFkwWXpBc01DNDFNelEwT0RRNUxUQXVNVGN3TkRjeE1pd3dMamszTWpJeE16Y3RNQzQxTVRFME5UazBMREV1TXpFM056YzVOV010TUM0ek5EVTFOalU0TERBdU16UTFOVGd4TVMwd0xqYzRNekk1TkRjc01DNDFNVFl3TmpjMUxURXVNekl5TXpnM055d3dMalV4TmpBMk56VUtDUWtKYUMwekxqWTJOelk1TkRGakxUQXVOVE0wTlRBd01Td3dMVEF1T1RjeU1qRXpOeTB3TGpFM01EUTROalV0TVM0ek1UYzNOemsxTFRBdU5URTJNRFkzTldNdE1DNHpOREE1TnpJNUxUQXVNelExTlRZMU9DMHdMalV4TmpBMk56VXRNQzQzT0RNeU9UUTNMVEF1TlRFMk1EWTNOUzB4TGpNeE56YzNPVFVLQ1FrSmRpMDFMalV3TVRVMU5qUmpMVE11TmpZM05qazBNU3d3TFRZdU9UZzVPREl5TkMweExqRTBOekk1TXpFdE9TNDVOamcyTlRnMExUTXVORE0zTXpBeE5tTXRNQzR6T0RJME5EWXpMVEF1TXpneU5ETXhMVEF1TmpFeU9ESXpOUzB3TGpnME16SXdNRGN0TUM0Mk9EZzROREk0TFRFdU16YzNOekF3T0FvSkNRbGpMVEF1TURjMk1ETTBOUzB3TGpVek5EUTRORGtzTUM0eE1UVXhPRGcyTFRFdU1ETXlNVEEwTlN3d0xqVTNNell6T0RrdE1TNDBPRGd5TlRBM2JETXVPRGsxTnpneU5TMHpMamc1T0RBNE5qVUtDUWtKWXpBdU16QTROekF3Tmkwd0xqSXpNRE01TWpVc01DNDJOamd4TURZeExUQXVNemd5TkRNeExERXVNRGt5TURFd05TMHdMalExTmpFMk1UVmpNQzQwTVRreU9UWXpMVEF1TURjNE16SXpOQ3d3TGpneU1ERTFPVGtzTUM0d016WTROU3d4TGpJd01qWXdOaklzTUM0ek5EQTVOekk1Q2drSkNXTXhMakUwTnpJNU16RXNNQzQzTmpRNE56Y3pMREl1TkRReU1EUTNNU3d4TGpFME56TXdPRE1zTXk0NE9UTTBOak14TERFdU1UUTNNekE0TTJnM0xqWTRNRGsxTkdNd0xqa3hOamswTmpRc01Dd3hMamN3TURJME1URXRNQzR6TWpJMU5EQXpMREl1TXpRNU9EazVNeTB3TGprM01qSXhNemNLQ1FrSll6QXVOalE1TmpnNE55MHdMalkwT1RZNE9EY3NNQzQ1TnpJeU1qa3RNUzQwTnpRME5UWTRMREF1T1RjeU1qSTVMVEl1TkRZMU1UQXpNV013TFRBdU5qZzJOVFUwTFRBdU1qSTFOelk1TFRFdU16TTJNakkzTkMwd0xqWTROalV6T0RjdE1TNDVORGt3TXpVMkNna0pDV010TUM0ME5UWXhOakUxTFRBdU5qRXlPREl6TlMweExqQXpNakV4T1RndE1TNHdNekl4TVRrNExURXVOekU0TmpRek1pMHhMakkyTWpRNU5qbHNMVEV4TGpnd05EZzBNREV0TXk0ME16Y3pNVFk1Q2drSkNXTXRNaTQxT1RnMk9UTTRMVEF1TnpZME9EYzNNeTAwTGpjM016VXlPVEV0TWk0eE16YzVOVFEzTFRZdU5UTXpOalExTmkwMExqRXlPRFEwT0RWakxURXVOelUzT0RFeU5TMHhMams0TlRrd01Ea3RNaTQzT0RjMk5ETTBMVFF1TWpjMU9USTBOeTB6TGpBNU5EQXpPVGt0Tmk0NE56UTJNek00Q2drSkNXTXRNQzR4TlRJd05UTTRMVEl1TkRRMk5qVTFNeXd3TGpNd05qTTVOalV0TkM0M01UZ3lNekV5TERFdU16YzFNemsyTnkwMkxqZ3hPVE16TlRsak1TNHdOamc1TmprM0xUSXVNVEF4TURnNU5Td3lMalU1T0Rjd09URXRNeTQzT0RJNE9ESTNMRFF1TlRnME5qRXROUzR3TkRVek56azJDZ2tKQ1dNeExqazROVGt3TURrdE1TNHlOVGM0T0RnNExEUXVNakF5TVRjNUxURXVPRGc1TVRJNU5pdzJMalkwT0RnME9UVXRNUzQ0T0RreE1qazJhREF1TWpJMU56WTVkaTAxTGpVd01UVTBNVEVLQ1FrSll6QXRNQzQxTXpRMU1EQXhMREF1TVRjMU1EazBOaTB3TGprM01qSXlPU3d3TGpVeE5qQTJOelV0TVM0ek1UYzNPVFE0WXpBdU16UTFOVFkxT0Mwd0xqTTBOVFU0TVRFc01DNDNPRE15TnprMExUQXVOVEUyTURVeU1pd3hMak14TnpjM09UVXRNQzQxTVRZd05USXlhRE11TmpZM05qazBNUW9KQ1Fsak1DNDFNemt3T1RNc01Dd3dMamszTmpneU1Ua3NNQzR4TnpBME56RXlMREV1TXpJeU16ZzNOeXd3TGpVeE5qQTFNakpqTUM0ek5EQTVPRGd5TERBdU16UTFOVFkxT0N3d0xqVXhNVFExT1RRc01DNDNPRE15T1RRM0xEQXVOVEV4TkRVNU5Dd3hMak14TnpjNU5EaDJOUzQxTURFMU5ERXhDZ2tKQ1dNekxqWTJOelk1TkRFc01DdzJMamsxTnpVMk5UTXNNUzR4TkRjeU9UTXhMRGt1T0RZd016Z3lNU3d6TGpRek56TXdNVFpqTUM0ME5UWXhOelk0TERBdU16Z3lORFEyTXl3d0xqY3lNelF4T1RJc01DNDRORE15TURBM0xEQXVPREF4TnpReU5pd3hMak0zTnpZNE5UVUtDUWtKWXpBdU1EY3pOekUxTWl3d0xqVXpORFV3TURFdE1DNHhNVFV5TURNNUxEQXVPVGt3TmpRMk5DMHdMalUzTVRNMU1ERXNNUzR6TnpNd056YzBiQzB6TGpnNU9EQTROalVzTkM0d01UTXlOelV4Q2drSkNXTXRNQzR6TURnM01UVTRMREF1TWpNd016a3lOUzB3TGpZMk9ERXdOakVzTUM0ek9ESTBNekV0TVM0d09USXdNVEExTERBdU5EVTJNVFl4TldNdE1DNDBNVGt5T1RZekxEQXVNRGM0TXpJek5DMHdMamd5TURFMU9Ua3NNQzB4TGpJd01qVTVNRGt0TUM0eU1qVTNOamtLQ1FrSll5MHhMakUwTWpjeE5UVXRNQzQ0TkRNeU1EQTNMVEl1TkRReU1EYzNOaTB4TGpJMk1qUTVOamt0TXk0NE9UZ3dPRFkxTFRFdU1qWXlORGsyT1dndE55NDJOell6TmpFeFl5MHdMamt4TmpreE5Ua3NNQzB4TGpjd01ESXlOVGdzTUM0ek1qSTFNalV0TWk0ek5EazRPVGt6TERBdU9UY3lNakV6TndvSkNRbGpMVEF1TmpRNU5qZzROeXd3TGpZME9UWTNNelV0TUM0NU56WTRNakU1TERFdU5EYzBORFF4TlMwd0xqazNOamd5TVRrc01pNDBOalV3T0RjNVl6QXNNQzQyT0RZMU5UUXNNQzR5TXpBek9USTFMREV1TXpNMk1qRXlNaXd3TGpZNU1URTBOamtzTVM0NU5Ea3dNelUyQ2drSkNXTXdMalExTmpFMk1UVXNNQzQyTVRJNE1qTTFMREV1TURNeU1URTVPQ3d4TGpBek1qRXhPVGdzTVM0M01UZzJOVGcwTERFdU1qWXlORGsyT1V3eE56UXVNamd3TmpNNU5pd3hPRFV1T0Rjek5qRXhOWG9pTHo0S0NUd3ZaejRLUEM5blBnbzhMM04yWno0SyIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiY29uZmlnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW1hbmFnZXItcm9sZSJ9XSwiZGVwbG95bWVudHMiOlt7Im5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7fSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvaG9tZS9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MzZmM2Y2Mzg1ZDg3MmY4NmY0OThmZTIyMWZkNGUxMTRiMjZkN2IzMWY5MDk2OWU1N2NkOTYzN2RiOWVhMDA0YyIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtbWFuYWdlci1yb2xlIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImVuZHBvaW50cyIsImV2ZW50cyIsInBlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwb2RzIiwic2VjcmV0cyIsInNlcnZpY2VhY2NvdW50cyIsInNlcnZpY2VzIiwic2VydmljZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvcnMuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnNlcnZpY2V2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtbWFuYWdlci1yb2xlIn1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiT3duTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJTaW5nbGVOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJNdWx0aU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImNvc3QiLCJtYW5hZ2VtZW50IiwidXNhZ2UiLCJtb25pdG9yIl0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjozNmYzZjYzODVkODcyZjg2ZjQ5OGZlMjIxZmQ0ZTExNGIyNmQ3YjMxZjkwOTY5ZTU3Y2Q5NjM3ZGI5ZWEwMDRjIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3ItMzZmM2Y2Mzg1ZDg3MmY4NmY0OThmZTIyMWZkNGUxMTRiMjZkN2IzMWY5MDk2OWU1N2NkOTYzN2RiOWVhMDA0Yy1hbm5vdGF0aW9uIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjozNmYzZjYzODVkODcyZjg2ZjQ5OGZlMjIxZmQ0ZTExNGIyNmQ3YjMxZjkwOTY5ZTU3Y2Q5NjM3ZGI5ZWEwMDRjIiwibmFtZSI6Im1hbmFnZXIifV0sInJlcGxhY2VzIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci4xLjAuMCIsInZlcnNpb24iOiIxLjEuMCJ9fQ== +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:f2455392ddf7fe8506a2485835cbbd9c633476344a0cd9353e46c6fa44e4667c + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:36f3f6385d872f86f498fe221fd4e114b26d7b31f90969e57cd9637db9ea004c + name: costmanagement-metrics-rhel8-operator-36f3f6385d872f86f498fe221fd4e114b26d7b31f90969e57cd9637db9ea004c-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:36f3f6385d872f86f498fe221fd4e114b26d7b31f90969e57cd9637db9ea004c + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:6393be8e83443f0039d5cefd2f4df992986b6b3ec16f7ed38b1a902aa7051091 +name: costmanagement-metrics-operator.1.1.3 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.1.3 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsic2VydmljZV9hZGRyZXNzIjp7ImRlZmF1bHQiOiJodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGlzIGBodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxYC4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlZmF1bHQiOjE0NDAsImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUgVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJpbmdyZXNzX3BhdGgiLCJ1cGxvYWRfY3ljbGUiLCJ1cGxvYWRfdG9nZ2xlIiwidmFsaWRhdGVfY2VydCJdLCJ0eXBlIjoib2JqZWN0In0sInZvbHVtZV9jbGFpbV90ZW1wbGF0ZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZUNsYWltVGVtcGxhdGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDIHRlbXBsYXRlLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJBY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QgLSBCZXRhKSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSAqIEFuIGV4aXN0aW5nIGN1c3RvbSByZXNvdXJjZS9vYmplY3QgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBWb2x1bWVTbmFwc2hvdCBvYmplY3QgdHlwZXMsIHRoZSBhcHByb3ByaWF0ZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkIChWb2x1bWVTbmFwc2hvdERhdGFTb3VyY2Ugb3IgQW55Vm9sdW1lRGF0YVNvdXJjZSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSB2b2x1bWUgd2lsbCBub3QgYmUgY3JlYXRlZCBhbmQgdGhlIGZhaWx1cmUgd2lsbCBiZSByZXBvcnRlZCBhcyBhbiBldmVudC4gSW4gdGhlIGZ1dHVyZSwgd2UgcGxhbiB0byBzdXBwb3J0IG1vcmUgZGF0YSBzb3VyY2UgdHlwZXMgYW5kIHRoZSBiZWhhdmlvciBvZiB0aGUgcHJvdmlzaW9uZXIgbWF5IGNoYW5nZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1jb21wdXRlLXJlc291cmNlcy1jb250YWluZXIvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiQWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90IC0gQmV0YSkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2Uvb2JqZWN0IHRoYXQgaW1wbGVtZW50cyBkYXRhIHBvcHVsYXRpb24gKEFscGhhKSBJbiBvcmRlciB0byB1c2UgVm9sdW1lU25hcHNob3Qgb2JqZWN0IHR5cGVzLCB0aGUgYXBwcm9wcmlhdGUgZmVhdHVyZSBnYXRlIG11c3QgYmUgZW5hYmxlZCAoVm9sdW1lU25hcHNob3REYXRhU291cmNlIG9yIEFueVZvbHVtZURhdGFTb3VyY2UpIElmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsIGl0IHdpbGwgY3JlYXRlIGEgbmV3IHZvbHVtZSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZS4gSWYgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSBpcyBub3Qgc3VwcG9ydGVkLCB0aGUgdm9sdW1lIHdpbGwgbm90IGJlIGNyZWF0ZWQgYW5kIHRoZSBmYWlsdXJlIHdpbGwgYmUgcmVwb3J0ZWQgYXMgYW4gZXZlbnQuIEluIHRoZSBmdXR1cmUsIHdlIHBsYW4gdG8gc3VwcG9ydCBtb3JlIGRhdGEgc291cmNlIHR5cGVzIGFuZCB0aGUgYmVoYXZpb3Igb2YgdGhlIHByb3Zpc2lvbmVyIG1heSBjaGFuZ2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdGFydF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFF1ZXJ5U3RhcnRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdGFydGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcXVlcnlfc3VjY2Vzc190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFF1ZXJ5U3VjY2Vzc1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN1Y2Nlc3NmdWwuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwicHJvbWV0aGV1c19jb25maWd1cmVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZ3VyZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBjb25maWd1cmVkIHRvIGNvbm5lY3QgdG8gcHJvbWV0aGV1cy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25uZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHByb21ldGhldXMgY2FuIGJlIHF1ZXJpZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29ubmVjdGlvbkVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgdGVzdCBxdWVyeS4iLCJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2VfYWRkcmVzcyI6eyJkZXNjcmlwdGlvbiI6IlN2Y0FkZHJlc3MgaXMgdGhlIGludGVybmFsIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbInByb21ldGhldXNfY29uZmlndXJlZCIsInByb21ldGhldXNfY29ubmVjdGVkIl0sInR5cGUiOiJvYmplY3QifSwicmVwb3J0cyI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydHMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHJlcG9ydCBnZW5lcmF0aW9uLiIsInByb3BlcnRpZXMiOnsiZGF0YV9jb2xsZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBkYXRhIHdhcyBjb2xsZWN0ZWQgZm9yIHRoZSBsYXN0IHF1ZXJ5LiIsInR5cGUiOiJib29sZWFuIn0sImRhdGFfY29sbGVjdGlvbl9tZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3Rpb25NZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBhIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhX2NvbGxlY3RlZCBzdGF0dXMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2hvdXJfcXVlcmllZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RIb3VyUXVlcmllZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHRpbWUgcmFuZ2UgZm9yIHdoaWNoIG1ldHJpY3Mgd2VyZSBsYXN0IHF1ZXJpZWQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXBvcnRfbW9udGgiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRNb250aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIG1vbnRoIGZvciB3aGljaCByZXBvcnRzIGFyZSBiZWluZyBnZW5lcmF0ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiB0aGUgc291cmNlIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IkNoZWNrQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggc291cmNlIGNoZWNrIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IkNyZWF0ZVNvdXJjZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIEEgc291cmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBjcmVhdGluZyB0aGUgc291cmNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFNvdXJjZUNoZWNrVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3QgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHNvdXJjZSBuYW1lIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZURlZmluZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2UgZXhpc3RzIGFzIGRlZmluZWQgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzdG9yYWdlIjp7ImRlc2NyaXB0aW9uIjoiU3RvcmFnZSBpcyBhIGZpZWxkIiwicHJvcGVydGllcyI6eyJ2b2x1bWVfbW91bnRlZCI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU1vdW50ZWQgaXMgYSBib29sIHRvIGluZGljYXRlIGlmIHN0b3JhZ2Ugdm9sdW1lIHdhcyBtb3VudGVkLiIsInR5cGUiOiJib29sZWFuIn0sInZvbHVtZV90eXBlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lVHlwZSBpcyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2b2x1bWUgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgdXBsb2FkaW5nIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJpbmdyZXNzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlcyBpbiB0aGUgbGFzdCBwYXlsb2FkIHRoYXQgd2FzIHNlbnQuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwibGFzdF9wYXlsb2FkX21hbmlmZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRNYW5pZmVzdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBtYW5pZmVzdElEIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBuYW1lIG9mIHRoZSBsYXN0IHBheWxvYWQgZmlsZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9yZXF1ZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRSZXF1ZXN0SUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaW5zaWdodHMgcmVxdWVzdCBpZCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3VwbG9hZF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxVcGxvYWRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCB1cGxvYWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF91cGxvYWRfc3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFVwbG9hZFN0YXR1cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBodHRwIHN0YXR1cyBvZiB0aGUgbGFzdCB1cGxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBzaG91bGQgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NzZjNWI4Zjg4N2M4OGQ3OWIwMjI1MjU5YWZlZGRmNDFiZTBiZGRlMzE2YjRkYmY4NWJiYzYxMDQ2MjEyN2UxYiIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS4zIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuMyBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojc2YzViOGY4ODdjODhkNzliMDIyNTI1OWFmZWRkZjQxYmUwYmRkZTMxNmI0ZGJmODViYmM2MTA0NjIxMjdlMWIiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojc2YzViOGY4ODdjODhkNzliMDIyNTI1OWFmZWRkZjQxYmUwYmRkZTMxNmI0ZGJmODViYmM2MTA0NjIxMjdlMWIiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci03NmM1YjhmODg3Yzg4ZDc5YjAyMjUyNTlhZmVkZGY0MWJlMGJkZGUzMTZiNGRiZjg1YmJjNjEwNDYyMTI3ZTFiLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojc2YzViOGY4ODdjODhkNzliMDIyNTI1OWFmZWRkZjQxYmUwYmRkZTMxNmI0ZGJmODViYmM2MTA0NjIxMjdlMWIiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS4wIiwidmVyc2lvbiI6IjEuMS4zIn19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:6393be8e83443f0039d5cefd2f4df992986b6b3ec16f7ed38b1a902aa7051091 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:76c5b8f887c88d79b0225259afeddf41be0bdde316b4dbf85bbc610462127e1b + name: costmanagement-metrics-rhel8-operator-76c5b8f887c88d79b0225259afeddf41be0bdde316b4dbf85bbc610462127e1b-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:76c5b8f887c88d79b0225259afeddf41be0bdde316b4dbf85bbc610462127e1b + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:e14493e3b02509690c65016297cf95fc2e4a11a7c97e0f8ca5812e66acbc6c26 +name: costmanagement-metrics-operator.1.1.4 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.1.4 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmNlMGNjZDFjNzYwODBkNGY5NzY4M2ViM2ExMWJhYzY4NDhkZmExM2QyMzFhOGFkM2Y0MGMyNDYzZDk3NzY5MSIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS40IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuNCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjJjZTBjY2QxYzc2MDgwZDRmOTc2ODNlYjNhMTFiYWM2ODQ4ZGZhMTNkMjMxYThhZDNmNDBjMjQ2M2Q5Nzc2OTEiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjJjZTBjY2QxYzc2MDgwZDRmOTc2ODNlYjNhMTFiYWM2ODQ4ZGZhMTNkMjMxYThhZDNmNDBjMjQ2M2Q5Nzc2OTEiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci0yY2UwY2NkMWM3NjA4MGQ0Zjk3NjgzZWIzYTExYmFjNjg0OGRmYTEzZDIzMWE4YWQzZjQwYzI0NjNkOTc3NjkxLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjJjZTBjY2QxYzc2MDgwZDRmOTc2ODNlYjNhMTFiYWM2ODQ4ZGZhMTNkMjMxYThhZDNmNDBjMjQ2M2Q5Nzc2OTEiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS4zIiwidmVyc2lvbiI6IjEuMS40In19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:e14493e3b02509690c65016297cf95fc2e4a11a7c97e0f8ca5812e66acbc6c26 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:2ce0ccd1c76080d4f97683eb3a11bac6848dfa13d231a8ad3f40c2463d977691 + name: costmanagement-metrics-rhel8-operator-2ce0ccd1c76080d4f97683eb3a11bac6848dfa13d231a8ad3f40c2463d977691-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:2ce0ccd1c76080d4f97683eb3a11bac6848dfa13d231a8ad3f40c2463d977691 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:ce775e3dac0fc6a04698c6a53fc38d73593cbd3100dacafb41d7b1bd9505c4e4 +name: costmanagement-metrics-operator.1.1.5 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.1.5 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZmUxNGEzNzUyN2ZhZWQ2MjYyNjMwYzZmNzZjZDg2MjU5ODI0NGEzMThkNDBlYTdkNmViYWVhMTQ2NjFiOGU5YiIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS41IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuNSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmZlMTRhMzc1MjdmYWVkNjI2MjYzMGM2Zjc2Y2Q4NjI1OTgyNDRhMzE4ZDQwZWE3ZDZlYmFlYTE0NjYxYjhlOWIiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmZlMTRhMzc1MjdmYWVkNjI2MjYzMGM2Zjc2Y2Q4NjI1OTgyNDRhMzE4ZDQwZWE3ZDZlYmFlYTE0NjYxYjhlOWIiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci1mZTE0YTM3NTI3ZmFlZDYyNjI2MzBjNmY3NmNkODYyNTk4MjQ0YTMxOGQ0MGVhN2Q2ZWJhZWExNDY2MWI4ZTliLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmZlMTRhMzc1MjdmYWVkNjI2MjYzMGM2Zjc2Y2Q4NjI1OTgyNDRhMzE4ZDQwZWE3ZDZlYmFlYTE0NjYxYjhlOWIiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS40IiwidmVyc2lvbiI6IjEuMS41In19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:ce775e3dac0fc6a04698c6a53fc38d73593cbd3100dacafb41d7b1bd9505c4e4 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:fe14a37527faed6262630c6f76cd862598244a318d40ea7d6ebaea14661b8e9b + name: costmanagement-metrics-rhel8-operator-fe14a37527faed6262630c6f76cd862598244a318d40ea7d6ebaea14661b8e9b-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:fe14a37527faed6262630c6f76cd862598244a318d40ea7d6ebaea14661b8e9b + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:020d5d1777d0dec2ae432a1cd93f7a306c7860ad05cabe19c59f9359b5d4e44e +name: costmanagement-metrics-operator.1.1.6 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.1.6 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NTIzYjY2MmZiMDUwOThlYzk0MTBjYzA2NjU1NTY0OTVmNjQwOWI0NGI4YzgwMzBjMWM0NTZlZWVlODY0ZGE2NiIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS42IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuNiBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICBzcGVjOlxuICAgICBhZmZpbml0eTpcbiAgICAgICBwb2RBZmZpbml0eTpcbiAgICAgICAgIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb246XG4gICAgICAgICAtIGxhYmVsU2VsZWN0b3I6XG4gICAgICAgICAgICAgbWF0Y2hFeHByZXNzaW9uczpcbiAgICAgICAgICAgICAtIGtleTogYXBwXG4gICAgICAgICAgICAgICBvcGVyYXRvcjogSW5cbiAgICAgICAgICAgICAgIHZhbHVlczpcbiAgICAgICAgICAgICAgIC0gY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgICAgICB0b3BvbG9neUtleToga3ViZXJuZXRlcy5pby9ob3N0bmFtZVxuICAgICAgdm9sdW1lczpcbiAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbTpcbiAgICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICAgIGNvbW1hbmQ6IFsnc2xlZXAnLCAnaW5maW5pdHknXVxuICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNvbnNvbGUucmVkaGF0LmNvbSBwbGF0Zm9ybSwgb3BlbiB0aGUgW1NvdXJjZXMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3Mvc291cmNlcy8pIHRvIGJlZ2luIGFkZGluZyBhbiBPcGVuU2hpZnQgc291cmNlIHRvIGNvc3QgbWFuYWdlbWVudDpcblxuUHJlcmVxdWlzaXRlczpcbiogVGhlIGNsdXN0ZXIgaWRlbnRpZmllciB3aGljaCBjYW4gYmUgZm91bmQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiwgdGhlIGNsdXN0ZXIgT3ZlcnZpZXcgcGFnZSwgb3IgdGhlIGNsdXN0ZXIgSGVscCBcdTAwM2UgQWJvdXQuXG5cbkNyZWF0ZSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0IHNvdXJjZXNgIHRhYlxuMy4gQ3JlYXRlIGEgbmV3IGBSZWQgSGF0IE9wZW5zaGlmdCBDb250YWluZXIgUGxhdGZvcm1gIHNvdXJjZTpcbiAgICAqIGdpdmUgdGhlIHNvdXJjZSBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2VzIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIFNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2Nsb3VkLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiYWZmaW5pdHkiOnsicG9kQWZmaW5pdHkiOnsicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6W3sibGFiZWxTZWxlY3RvciI6eyJtYXRjaEV4cHJlc3Npb25zIjpbeyJrZXkiOiJhcHAiLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiXX1dfSwidG9wb2xvZ3lLZXkiOiJrdWJlcm5ldGVzLmlvL2hvc3RuYW1lIn1dfX0sImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjUyM2I2NjJmYjA1MDk4ZWM5NDEwY2MwNjY1NTU2NDk1ZjY0MDliNDRiOGM4MDMwYzFjNDU2ZWVlZTg2NGRhNjYiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjUyM2I2NjJmYjA1MDk4ZWM5NDEwY2MwNjY1NTU2NDk1ZjY0MDliNDRiOGM4MDMwYzFjNDU2ZWVlZTg2NGRhNjYiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci01MjNiNjYyZmIwNTA5OGVjOTQxMGNjMDY2NTU1NjQ5NWY2NDA5YjQ0YjhjODAzMGMxYzQ1NmVlZWU4NjRkYTY2LWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjUyM2I2NjJmYjA1MDk4ZWM5NDEwY2MwNjY1NTU2NDk1ZjY0MDliNDRiOGM4MDMwYzFjNDU2ZWVlZTg2NGRhNjYiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS41IiwidmVyc2lvbiI6IjEuMS42In19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:020d5d1777d0dec2ae432a1cd93f7a306c7860ad05cabe19c59f9359b5d4e44e + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:523b662fb05098ec9410cc0665556495f6409b44b8c8030c1c456eeee864da66 + name: costmanagement-metrics-rhel8-operator-523b662fb05098ec9410cc0665556495f6409b44b8c8030c1c456eeee864da66-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:523b662fb05098ec9410cc0665556495f6409b44b8c8030c1c456eeee864da66 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:0abc9b30a48080d2a4a413f7818770ea4dd7b78c715a816fe5818ec75326bb69 +name: costmanagement-metrics-operator.1.1.7 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.1.7 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NGM5MTUzYjMzY2M5NDIxMzRlMmJkODU3YThjYWU0N2RlZDM4ZWI3ODk4NzRmZGUwODlkNjdiMDBkMGMyZTZmNiIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS43IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuNyBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICBzcGVjOlxuICAgICAgdm9sdW1lczpcbiAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbTpcbiAgICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICAgIGNvbW1hbmQ6IFsnc2xlZXAnLCAnaW5maW5pdHknXVxuICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNvbnNvbGUucmVkaGF0LmNvbSBwbGF0Zm9ybSwgb3BlbiB0aGUgW1NvdXJjZXMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3Mvc291cmNlcy8pIHRvIGJlZ2luIGFkZGluZyBhbiBPcGVuU2hpZnQgc291cmNlIHRvIGNvc3QgbWFuYWdlbWVudDpcblxuUHJlcmVxdWlzaXRlczpcbiogVGhlIGNsdXN0ZXIgaWRlbnRpZmllciB3aGljaCBjYW4gYmUgZm91bmQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiwgdGhlIGNsdXN0ZXIgT3ZlcnZpZXcgcGFnZSwgb3IgdGhlIGNsdXN0ZXIgSGVscCBcdTAwM2UgQWJvdXQuXG5cbkNyZWF0ZSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0IHNvdXJjZXNgIHRhYlxuMy4gQ3JlYXRlIGEgbmV3IGBSZWQgSGF0IE9wZW5zaGlmdCBDb250YWluZXIgUGxhdGZvcm1gIHNvdXJjZTpcbiAgICAqIGdpdmUgdGhlIHNvdXJjZSBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2VzIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIFNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2Nsb3VkLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NGM5MTUzYjMzY2M5NDIxMzRlMmJkODU3YThjYWU0N2RlZDM4ZWI3ODk4NzRmZGUwODlkNjdiMDBkMGMyZTZmNiIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJtYWludGFpbmVycyI6W3siZW1haWwiOiJjb3N0bWFuYWdlbWVudEByZWRoYXQuY29tIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50In1dLCJtYXR1cml0eSI6ImFscGhhIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NGM5MTUzYjMzY2M5NDIxMzRlMmJkODU3YThjYWU0N2RlZDM4ZWI3ODk4NzRmZGUwODlkNjdiMDBkMGMyZTZmNiIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLTRjOTE1M2IzM2NjOTQyMTM0ZTJiZDg1N2E4Y2FlNDdkZWQzOGViNzg5ODc0ZmRlMDg5ZDY3YjAwZDBjMmU2ZjYtYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NGM5MTUzYjMzY2M5NDIxMzRlMmJkODU3YThjYWU0N2RlZDM4ZWI3ODk4NzRmZGUwODlkNjdiMDBkMGMyZTZmNiIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4xLjYiLCJ2ZXJzaW9uIjoiMS4xLjcifX0= +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:0abc9b30a48080d2a4a413f7818770ea4dd7b78c715a816fe5818ec75326bb69 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:4c9153b33cc942134e2bd857a8cae47ded38eb789874fde089d67b00d0c2e6f6 + name: costmanagement-metrics-rhel8-operator-4c9153b33cc942134e2bd857a8cae47ded38eb789874fde089d67b00d0c2e6f6-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:4c9153b33cc942134e2bd857a8cae47ded38eb789874fde089d67b00d0c2e6f6 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:2c326d847a0d15677171c69c451a8fd34da9e652169a8c9da7a20d0b7defda28 +name: costmanagement-metrics-operator.1.1.8 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.1.8 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZDFhYTMxOGE3MjA0OTVmZGM2YjA1Mjc0NDE2YmU5MTM1YTE2YzI3YTU3YTg5ZTZmNjkyZGU0M2EzYzVjMWQwOSIsImNyZWF0ZWRBdCI6IjIwMjItMTAtMTFUMTk6MTA6MDFaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS44IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuOCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICBzcGVjOlxuICAgICBhZmZpbml0eTpcbiAgICAgICBwb2RBZmZpbml0eTpcbiAgICAgICAgIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb246XG4gICAgICAgICAtIGxhYmVsU2VsZWN0b3I6XG4gICAgICAgICAgICAgbWF0Y2hFeHByZXNzaW9uczpcbiAgICAgICAgICAgICAtIGtleTogYXBwXG4gICAgICAgICAgICAgICBvcGVyYXRvcjogSW5cbiAgICAgICAgICAgICAgIHZhbHVlczpcbiAgICAgICAgICAgICAgIC0gY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgICAgICB0b3BvbG9neUtleToga3ViZXJuZXRlcy5pby9ob3N0bmFtZVxuICAgICAgdm9sdW1lczpcbiAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbTpcbiAgICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICAgIGNvbW1hbmQ6IFsnc2xlZXAnLCAnaW5maW5pdHknXVxuICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNvbnNvbGUucmVkaGF0LmNvbSBwbGF0Zm9ybSwgb3BlbiB0aGUgW1NvdXJjZXMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3Mvc291cmNlcy8pIHRvIGJlZ2luIGFkZGluZyBhbiBPcGVuU2hpZnQgc291cmNlIHRvIGNvc3QgbWFuYWdlbWVudDpcblxuUHJlcmVxdWlzaXRlczpcbiogVGhlIGNsdXN0ZXIgaWRlbnRpZmllciB3aGljaCBjYW4gYmUgZm91bmQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiwgdGhlIGNsdXN0ZXIgT3ZlcnZpZXcgcGFnZSwgb3IgdGhlIGNsdXN0ZXIgSGVscCBcdTAwM2UgQWJvdXQuXG5cbkNyZWF0ZSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0IHNvdXJjZXNgIHRhYlxuMy4gQ3JlYXRlIGEgbmV3IGBSZWQgSGF0IE9wZW5zaGlmdCBDb250YWluZXIgUGxhdGZvcm1gIHNvdXJjZTpcbiAgICAqIGdpdmUgdGhlIHNvdXJjZSBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2VzIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIFNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2Nsb3VkLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiYWZmaW5pdHkiOnsicG9kQWZmaW5pdHkiOnsicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6W3sibGFiZWxTZWxlY3RvciI6eyJtYXRjaEV4cHJlc3Npb25zIjpbeyJrZXkiOiJhcHAiLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiXX1dfSwidG9wb2xvZ3lLZXkiOiJrdWJlcm5ldGVzLmlvL2hvc3RuYW1lIn1dfX0sImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmQxYWEzMThhNzIwNDk1ZmRjNmIwNTI3NDQxNmJlOTEzNWExNmMyN2E1N2E4OWU2ZjY5MmRlNDNhM2M1YzFkMDkiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmQxYWEzMThhNzIwNDk1ZmRjNmIwNTI3NDQxNmJlOTEzNWExNmMyN2E1N2E4OWU2ZjY5MmRlNDNhM2M1YzFkMDkiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci1kMWFhMzE4YTcyMDQ5NWZkYzZiMDUyNzQ0MTZiZTkxMzVhMTZjMjdhNTdhODllNmY2OTJkZTQzYTNjNWMxZDA5LWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmQxYWEzMThhNzIwNDk1ZmRjNmIwNTI3NDQxNmJlOTEzNWExNmMyN2E1N2E4OWU2ZjY5MmRlNDNhM2M1YzFkMDkiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS43IiwidmVyc2lvbiI6IjEuMS44In19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:2c326d847a0d15677171c69c451a8fd34da9e652169a8c9da7a20d0b7defda28 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:d1aa318a720495fdc6b05274416be9135a16c27a57a89e6f692de43a3c5c1d09 + name: costmanagement-metrics-rhel8-operator-d1aa318a720495fdc6b05274416be9135a16c27a57a89e6f692de43a3c5c1d09-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:d1aa318a720495fdc6b05274416be9135a16c27a57a89e6f692de43a3c5c1d09 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:e2a0375e814938a2e2e4bdf5d7ffa767d19bb80c7bb491c79c4d80254c5fb65e +name: costmanagement-metrics-operator.1.1.9 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.1.9 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NmJjMjJiNjYyN2IwNjdjOTFmNTVhMjM0YTVjZDAyMzNhYjRkN2FkZmM0ZjAyM2IyOWFkNjVjZTZkZGI0ZmJhMiIsImNyZWF0ZWRBdCI6IjIwMjItMTItMDFUMTg6MTI6NDhaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdmFsaWQtc3Vic2NyaXB0aW9uIjoiW1wiT3BlblNoaWZ0IEt1YmVybmV0ZXMgRW5naW5lXCIsIFwiT3BlblNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybVwiLCBcIk9wZW5TaGlmdCBQbGF0Zm9ybSBQbHVzXCJdIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL2J1aWxkZXIiOiJvcGVyYXRvci1zZGstdjAuMTkuNCIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9wcm9qZWN0X2xheW91dCI6ImdvLmt1YmVidWlsZGVyLmlvL3YyIiwicmVwb3NpdG9yeSI6Imh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZWN0LWtva3Uva29rdS1tZXRyaWNzLW9wZXJhdG9yIiwic3VwcG9ydCI6IlJlZCBIYXQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4xLjkiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWJldGExIn1dfSwiZGVzY3JpcHRpb24iOiIjIDEuMS45IENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yXG4jIyBJbnRyb2R1Y3Rpb25cblRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgYSBjb21wb25lbnQgb2YgdGhlIFtjb3N0IG1hbmFnbWVudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9kb2N1bWVudGF0aW9uL2VuLXVzL2Nvc3RfbWFuYWdlbWVudF9zZXJ2aWNlKSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQsIHVzZWQgdG8gZ2F0aGVyIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjbHVzdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBiZSBpbnN0YWxsZWQgaW4gT3BlblNoaWZ0IDQuNisuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGFuZCB1cGxvYWRzIGl0IHRvIGNvc3QgbWFuYWdlbWVudCB0byBiZSBwcm9jZXNzZWQuIFRoZSBPcGVyYXRvciBxdWVyaWVzIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMsIHdoaWNoIGFyZSB0aGVuIHBhY2thZ2VkIGFuZCB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG5cblRoaXMgb3BlcmF0b3IgaXMgY2FwYWJsZSBvZiBmdW5jdGlvbmluZyB3aXRoaW4gYSBkaXNjb25uZWN0ZWQvcmVzdHJpY3RlZCBuZXR3b3JrIChha2EgYWlyLWdhcHBlZCBtb2RlKS4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igd2lsbCBzdG9yZSB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbCBpbnN0ZWFkIG9mIGJlaW5nIHVwbG9hZGVkIHRvIGNvc3QgbWFuYWdlbWVudC4gRG9jdW1lbnRhdGlvbiBmb3IgaW5zdGFsbGluZyBhbiBvcGVyYXRvciB3aXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmsgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS5cblxuIyMgRmVhdHVyZXMgYW5kIENhcGFiaWxpdGllc1xuIyMjIyBNZXRyaWNzIGNvbGxlY3Rpb246XG5UaGUgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBjb3N0IG1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gY29zdCBtYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGEgc291cmNlIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQSBzb3VyY2UgaXMgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEEgc291cmNlICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgY29zdCBtYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBjb3N0IG1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIHRoZSBwYXlsb2FkIGlzIHJlbW92ZWQgZnJvbSB0aGUgb3BlcmF0b3IgYW5kIGlzIGdvbmUgZm9yZXZlci4gSWYgdGhlIGRhdGEgd2l0aGluIHRoZSBwYXlsb2FkIGlzIG5vdCBwcm9jZXNzZWQsIGEgZ2FwIHdpbGwgYmUgaW50cm9kdWNlZCBpbiB0aGUgdXNhZ2UgbWV0cmljcy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZpbGxlZC4gSWYgdGhpcyBvY2N1cnMsIHRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZGVsZXRlZCBmcm9tIHRoZSBQVkMgc28gdGhhdCB0aGUgb3BlcmF0b3IgY2FuIGZ1bmN0aW9uIGFzIG5vcm1hbC5cbiogVGhlIGRlZmF1bHQgcmVwb3J0IHJldGVudGlvbiBpcyAzMCByZXBvcnRzIChhYm91dCBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEpLiBUaGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgYW5kIHVwbG9hZGVkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBldmVyeSB3ZWVrLCBvciB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgdGhlIGRhdGEgd2lsbCBiZSBsb3N0LlxuXG4jIyMjIFN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcblRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGFuZCB1c2UgdGhlIGZvbGxvd2luZyBQVkMgd2hlbiBpbnN0YWxsZWQ6XG5cbiAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcblxuSWYgYSBkaWZmZXJlbnQgUFZDIHNob3VsZCBiZSB1dGlsaXplZCwgYSB2YWxpZCBQVkMgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGFzIGRlc2NyaWJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBiZWxvdy4gVGhlIFBWQyB0byBiZSB1c2VkIG1heSBleGlzdCBhbHJlYWR5LCBvciB0aGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBpdC5cblxuVG8gdXNlIHRoZSBkZWZhdWx0IHNwZWNpZmljYXRpb24sIHRoZSBmb2xsb3cgYXNzdW1wdGlvbnMgbXVzdCBiZSBtZXQ6XG4xLiBBIGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGRlZmluZWQuXG4yLiBEeW5hbWljIHByb3Zpc2lvbmluZyBmb3IgdGhhdCBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBlbmFibGVkLlxuXG5JZiB0aGVzZSBhc3N1bXB0aW9ucyBhcmUgbm90IG1ldCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IGRlcGxveSBjb3JyZWN0bHkuIEluIHRoZXNlIGNhc2VzLCBzdG9yYWdlIG11c3QgYmUgbWFudWFsbHkgY29uZmlndXJlZC4gQWZ0ZXIgY29uZmlndXJpbmcgc3RvcmFnZSwgYSB2YWxpZCBQVkMgdGVtcGxhdGUgc2hvdWxkIGJlIHN1cHBsaWVkIGluIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBzcGVjIG9mIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vNC41L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjAsXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgIGFmZmluaXR5OlxuICAgICAgIHBvZEFmZmluaXR5OlxuICAgICAgICAgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbjpcbiAgICAgICAgIC0gbGFiZWxTZWxlY3RvcjpcbiAgICAgICAgICAgICBtYXRjaEV4cHJlc3Npb25zOlxuICAgICAgICAgICAgIC0ga2V5OiBhcHBcbiAgICAgICAgICAgICAgIG9wZXJhdG9yOiBJblxuICAgICAgICAgICAgICAgdmFsdWVzOlxuICAgICAgICAgICAgICAgLSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICAgICAgIHRvcG9sb2d5S2V5OiBrdWJlcm5ldGVzLmlvL2hvc3RuYW1lXG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJhZmZpbml0eSI6eyJwb2RBZmZpbml0eSI6eyJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjpbeyJsYWJlbFNlbGVjdG9yIjp7Im1hdGNoRXhwcmVzc2lvbnMiOlt7ImtleSI6ImFwcCIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdfV19LCJ0b3BvbG9neUtleSI6Imt1YmVybmV0ZXMuaW8vaG9zdG5hbWUifV19fSwiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NmJjMjJiNjYyN2IwNjdjOTFmNTVhMjM0YTVjZDAyMzNhYjRkN2FkZmM0ZjAyM2IyOWFkNjVjZTZkZGI0ZmJhMiIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJtYWludGFpbmVycyI6W3siZW1haWwiOiJjb3N0bWFuYWdlbWVudEByZWRoYXQuY29tIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50In1dLCJtYXR1cml0eSI6ImFscGhhIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NmJjMjJiNjYyN2IwNjdjOTFmNTVhMjM0YTVjZDAyMzNhYjRkN2FkZmM0ZjAyM2IyOWFkNjVjZTZkZGI0ZmJhMiIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLTZiYzIyYjY2MjdiMDY3YzkxZjU1YTIzNGE1Y2QwMjMzYWI0ZDdhZGZjNGYwMjNiMjlhZDY1Y2U2ZGRiNGZiYTItYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NmJjMjJiNjYyN2IwNjdjOTFmNTVhMjM0YTVjZDAyMzNhYjRkN2FkZmM0ZjAyM2IyOWFkNjVjZTZkZGI0ZmJhMiIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4xLjgiLCJ2ZXJzaW9uIjoiMS4xLjkifX0= +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:e2a0375e814938a2e2e4bdf5d7ffa767d19bb80c7bb491c79c4d80254c5fb65e + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:6bc22b6627b067c91f55a234a5cd0233ab4d7adfc4f023b29ad65ce6ddb4fba2 + name: costmanagement-metrics-rhel8-operator-6bc22b6627b067c91f55a234a5cd0233ab4d7adfc4f023b29ad65ce6ddb4fba2-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:6bc22b6627b067c91f55a234a5cd0233ab4d7adfc4f023b29ad65ce6ddb4fba2 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:1fc8b1b5496df4a2f9ef9d9307b85ad14a89a4e567933d67fea50cddf662cd1c +name: costmanagement-metrics-operator.1.2.0 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 1.2.0 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmJhOGNiYWE4MjMyYTM1MDZjNmY3ZDc5MzYwMTAyYTY3ODA5MTI3NWEwMTM4ODgyZGYxNGM3ZGE4MjBlYmIxYiIsImNyZWF0ZWRBdCI6IjIwMjMtMDEtMThUMTc6MDE6MTNaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdmFsaWQtc3Vic2NyaXB0aW9uIjoiW1wiT3BlblNoaWZ0IEt1YmVybmV0ZXMgRW5naW5lXCIsIFwiT3BlblNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybVwiLCBcIk9wZW5TaGlmdCBQbGF0Zm9ybSBQbHVzXCJdIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL2J1aWxkZXIiOiJvcGVyYXRvci1zZGstdjAuMTkuNCIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9wcm9qZWN0X2xheW91dCI6ImdvLmt1YmVidWlsZGVyLmlvL3YyIiwicmVwb3NpdG9yeSI6Imh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZWN0LWtva3Uva29rdS1tZXRyaWNzLW9wZXJhdG9yIiwic3VwcG9ydCI6IlJlZCBIYXQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4yLjAiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWJldGExIn1dfSwiZGVzY3JpcHRpb24iOiIjIDEuMi4wIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yXG4jIyBJbnRyb2R1Y3Rpb25cblRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgYSBjb21wb25lbnQgb2YgdGhlIFtjb3N0IG1hbmFnbWVudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9kb2N1bWVudGF0aW9uL2VuLXVzL2Nvc3RfbWFuYWdlbWVudF9zZXJ2aWNlKSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQsIHVzZWQgdG8gZ2F0aGVyIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjbHVzdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBiZSBpbnN0YWxsZWQgaW4gT3BlblNoaWZ0IDQuNisuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGFuZCB1cGxvYWRzIGl0IHRvIGNvc3QgbWFuYWdlbWVudCB0byBiZSBwcm9jZXNzZWQuIFRoZSBPcGVyYXRvciBxdWVyaWVzIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMsIHdoaWNoIGFyZSB0aGVuIHBhY2thZ2VkIGFuZCB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG5cblRoaXMgb3BlcmF0b3IgaXMgY2FwYWJsZSBvZiBmdW5jdGlvbmluZyB3aXRoaW4gYSBkaXNjb25uZWN0ZWQvcmVzdHJpY3RlZCBuZXR3b3JrIChha2EgYWlyLWdhcHBlZCBtb2RlKS4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igd2lsbCBzdG9yZSB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbCBpbnN0ZWFkIG9mIGJlaW5nIHVwbG9hZGVkIHRvIGNvc3QgbWFuYWdlbWVudC4gRG9jdW1lbnRhdGlvbiBmb3IgaW5zdGFsbGluZyBhbiBvcGVyYXRvciB3aXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmsgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS5cblxuIyMgRmVhdHVyZXMgYW5kIENhcGFiaWxpdGllc1xuIyMjIyBNZXRyaWNzIGNvbGxlY3Rpb246XG5UaGUgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBjb3N0IG1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gY29zdCBtYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGEgc291cmNlIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQSBzb3VyY2UgaXMgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEEgc291cmNlICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgY29zdCBtYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBjb3N0IG1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIHRoZSBwYXlsb2FkIGlzIHJlbW92ZWQgZnJvbSB0aGUgb3BlcmF0b3IgYW5kIGlzIGdvbmUgZm9yZXZlci4gSWYgdGhlIGRhdGEgd2l0aGluIHRoZSBwYXlsb2FkIGlzIG5vdCBwcm9jZXNzZWQsIGEgZ2FwIHdpbGwgYmUgaW50cm9kdWNlZCBpbiB0aGUgdXNhZ2UgbWV0cmljcy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZpbGxlZC4gSWYgdGhpcyBvY2N1cnMsIHRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZGVsZXRlZCBmcm9tIHRoZSBQVkMgc28gdGhhdCB0aGUgb3BlcmF0b3IgY2FuIGZ1bmN0aW9uIGFzIG5vcm1hbC5cbiogVGhlIGRlZmF1bHQgcmVwb3J0IHJldGVudGlvbiBpcyAzMCByZXBvcnRzIChhYm91dCBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEpLiBUaGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgYW5kIHVwbG9hZGVkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBldmVyeSB3ZWVrLCBvciB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgdGhlIGRhdGEgd2lsbCBiZSBsb3N0LlxuXG4jIyMjIFN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcblRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGFuZCB1c2UgdGhlIGZvbGxvd2luZyBQVkMgd2hlbiBpbnN0YWxsZWQ6XG5cbiAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcblxuSWYgYSBkaWZmZXJlbnQgUFZDIHNob3VsZCBiZSB1dGlsaXplZCwgYSB2YWxpZCBQVkMgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGFzIGRlc2NyaWJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBiZWxvdy4gVGhlIFBWQyB0byBiZSB1c2VkIG1heSBleGlzdCBhbHJlYWR5LCBvciB0aGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBpdC5cblxuVG8gdXNlIHRoZSBkZWZhdWx0IHNwZWNpZmljYXRpb24sIHRoZSBmb2xsb3cgYXNzdW1wdGlvbnMgbXVzdCBiZSBtZXQ6XG4xLiBBIGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGRlZmluZWQuXG4yLiBEeW5hbWljIHByb3Zpc2lvbmluZyBmb3IgdGhhdCBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBlbmFibGVkLlxuXG5JZiB0aGVzZSBhc3N1bXB0aW9ucyBhcmUgbm90IG1ldCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IGRlcGxveSBjb3JyZWN0bHkuIEluIHRoZXNlIGNhc2VzLCBzdG9yYWdlIG11c3QgYmUgbWFudWFsbHkgY29uZmlndXJlZC4gQWZ0ZXIgY29uZmlndXJpbmcgc3RvcmFnZSwgYSB2YWxpZCBQVkMgdGVtcGxhdGUgc2hvdWxkIGJlIHN1cHBsaWVkIGluIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBzcGVjIG9mIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vNC41L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjAsXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJhZmZpbml0eSI6eyJwb2RBZmZpbml0eSI6eyJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjpbeyJsYWJlbFNlbGVjdG9yIjp7Im1hdGNoRXhwcmVzc2lvbnMiOlt7ImtleSI6ImFwcCIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdfV19LCJ0b3BvbG9neUtleSI6Imt1YmVybmV0ZXMuaW8vaG9zdG5hbWUifV19fSwiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmJhOGNiYWE4MjMyYTM1MDZjNmY3ZDc5MzYwMTAyYTY3ODA5MTI3NWEwMTM4ODgyZGYxNGM3ZGE4MjBlYmIxYiIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJtYWludGFpbmVycyI6W3siZW1haWwiOiJjb3N0bWFuYWdlbWVudEByZWRoYXQuY29tIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50In1dLCJtYXR1cml0eSI6ImFscGhhIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmJhOGNiYWE4MjMyYTM1MDZjNmY3ZDc5MzYwMTAyYTY3ODA5MTI3NWEwMTM4ODgyZGYxNGM3ZGE4MjBlYmIxYiIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLTJiYThjYmFhODIzMmEzNTA2YzZmN2Q3OTM2MDEwMmE2NzgwOTEyNzVhMDEzODg4MmRmMTRjN2RhODIwZWJiMWItYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmJhOGNiYWE4MjMyYTM1MDZjNmY3ZDc5MzYwMTAyYTY3ODA5MTI3NWEwMTM4ODgyZGYxNGM3ZGE4MjBlYmIxYiIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4xLjkiLCJ2ZXJzaW9uIjoiMS4yLjAifX0= +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:1fc8b1b5496df4a2f9ef9d9307b85ad14a89a4e567933d67fea50cddf662cd1c + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:2ba8cbaa8232a3506c6f7d79360102a678091275a0138882df14c7da820ebb1b + name: costmanagement-metrics-rhel8-operator-2ba8cbaa8232a3506c6f7d79360102a678091275a0138882df14c7da820ebb1b-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:2ba8cbaa8232a3506c6f7d79360102a678091275a0138882df14c7da820ebb1b + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:12338c0a58b7a2e8f1f201512a43675e1df1f3eae0feec0ffd8df4295b499a92 +name: costmanagement-metrics-operator.2.0.0 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 2.0.0 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdF9wcmV2aW91c19kYXRhIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiQ29sbGVjdFByZXZpb3VzRGF0YSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIHByZXZpb3VzIGRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgY3JlYXRpb24uIFRoaXMgdG9nZ2xlIG9ubHkgY2hhbmdlcyBvcGVyYXRvciBiZWhhdmlvciB3aGVuIGEgbmV3IENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLiBXaGVuIGB0cnVlYCwgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIGFsbCBleGlzdGluZyBQcm9tZXRoZXVzIGRhdGEgZm9yIHRoZSBjdXJyZW50IG1vbnRoLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImNvbnRleHRfdGltZW91dCI6eyJkZWZhdWx0IjoxMjAsImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIFRoZSBkZWZhdWx0IGlzIDEyMCBzZWNvbmRzLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTgwLCJtaW5pbXVtIjoxMCwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvbkNvc3RNYW5hZ2VtZW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZSByZXBvcnRzIGZvciBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcy4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvblJlc291cmNlT3B0aW1pemF0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZSByZXBvcnRzIGZvciByZXNvdXJjZS1vcHRpbWl6YXRpb24gbWV0cmljcy4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwic2VydmljZV9hZGRyZXNzIjp7ImRlZmF1bHQiOiJodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGlzIGBodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxYC4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlZmF1bHQiOjE0NDAsImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUgVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJpbmdyZXNzX3BhdGgiLCJ1cGxvYWRfY3ljbGUiLCJ1cGxvYWRfdG9nZ2xlIiwidmFsaWRhdGVfY2VydCJdLCJ0eXBlIjoib2JqZWN0In0sInZvbHVtZV9jbGFpbV90ZW1wbGF0ZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZUNsYWltVGVtcGxhdGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDIHRlbXBsYXRlLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJhY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QpICogQW4gZXhpc3RpbmcgUFZDIChQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0pIElmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsIGl0IHdpbGwgY3JlYXRlIGEgbmV3IHZvbHVtZSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZS4gSWYgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIGlzIGVuYWJsZWQsIHRoaXMgZmllbGQgd2lsbCBhbHdheXMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cyBhcyB0aGUgRGF0YVNvdXJjZVJlZiBmaWVsZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5IHZvbHVtZSBpcyBkZXNpcmVkLiBUaGlzIG1heSBiZSBhbnkgbG9jYWwgb2JqZWN0IGZyb20gYSBub24tZW1wdHkgQVBJIGdyb3VwIChub24gY29yZSBvYmplY3QpIG9yIGEgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdC4gV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QgbWF0Y2hlcyBzb21lIGluc3RhbGxlZCB2b2x1bWUgcG9wdWxhdG9yIG9yIGR5bmFtaWMgcHJvdmlzaW9uZXIuIFRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBEYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoIGlmIGJvdGggZmllbGRzIGFyZSBub24tZW1wdHksIHRoZXkgbXVzdCBoYXZlIHRoZSBzYW1lIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGJvdGggZmllbGRzIChEYXRhU291cmNlIGFuZCBEYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBUaGVyZSBhcmUgdHdvIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIERhdGFTb3VyY2UgYW5kIERhdGFTb3VyY2VSZWY6ICogV2hpbGUgRGF0YVNvdXJjZSBvbmx5IGFsbG93cyB0d28gc3BlY2lmaWMgdHlwZXMgb2Ygb2JqZWN0cywgRGF0YVNvdXJjZVJlZiAgIGFsbG93cyBhbnkgbm9uLWNvcmUgb2JqZWN0LCBhcyB3ZWxsIGFzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3RzLiAqIFdoaWxlIERhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIERhdGFTb3VyY2VSZWYgICBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgICBzcGVjaWZpZWQuIChCZXRhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoicmVzb3VyY2VzIHJlcHJlc2VudHMgdGhlIG1pbmltdW0gcmVzb3VyY2VzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIElmIFJlY292ZXJWb2x1bWVFeHBhbnNpb25GYWlsdXJlIGZlYXR1cmUgaXMgZW5hYmxlZCB1c2VycyBhcmUgYWxsb3dlZCB0byBzcGVjaWZ5IHJlc291cmNlIHJlcXVpcmVtZW50cyB0aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZSBzdGF0dXMgZmllbGQgb2YgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyBhIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJzdG9yYWdlQ2xhc3NOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgaXMgZW5hYmxlZCwgdGhpcyBmaWVsZCB3aWxsIGFsd2F5cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzIGFzIHRoZSBEYXRhU291cmNlUmVmIGZpZWxkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBsb2NhbCBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIERhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYm90aCBmaWVsZHMgKERhdGFTb3VyY2UgYW5kIERhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFRoZXJlIGFyZSB0d28gaW1wb3J0YW50IGRpZmZlcmVuY2VzIGJldHdlZW4gRGF0YVNvdXJjZSBhbmQgRGF0YVNvdXJjZVJlZjogKiBXaGlsZSBEYXRhU291cmNlIG9ubHkgYWxsb3dzIHR3byBzcGVjaWZpYyB0eXBlcyBvZiBvYmplY3RzLCBEYXRhU291cmNlUmVmICAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgRGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgRGF0YVNvdXJjZVJlZiAgIHByZXNlcnZlcyBhbGwgdmFsdWVzLCBhbmQgZ2VuZXJhdGVzIGFuIGVycm9yIGlmIGEgZGlzYWxsb3dlZCB2YWx1ZSBpcyAgIHNwZWNpZmllZC4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6InNlbGVjdG9yIGlzIGEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmcgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MgaXMgZGlzYWJsZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVkX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmcgcmVzb3VyY2Utb3B0aW16YXRpb24gbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcmV2aW91c19kYXRhX2NvbGxlY3RlZCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJQcmV2aW91c0RhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciBnYXRoZXJlZCB0aGUgYXZhaWxhYmxlIFByb21ldGhldXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlndXJlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIGlzIGNvbmZpZ3VyZWQgdG8gY29ubmVjdCB0byBwcm9tZXRoZXVzLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0Nvbm5lY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgcHJvbWV0aGV1cyBjYW4gYmUgcXVlcmllZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3Rpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25uZWN0aW9uRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyB0ZXN0IHF1ZXJ5LiIsInR5cGUiOiJzdHJpbmcifSwic2VydmljZV9hZGRyZXNzIjp7ImRlc2NyaXB0aW9uIjoiU3ZjQWRkcmVzcyBpcyB0aGUgaW50ZXJuYWwgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlNraXBUTFNWZXJpZmljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSB0aGFub3MtcXVlcmllciBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsicHJvbWV0aGV1c19jb25maWd1cmVkIiwicHJvbWV0aGV1c19jb25uZWN0ZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXBvcnRzIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcmVwb3J0IGdlbmVyYXRpb24uIiwicHJvcGVydGllcyI6eyJkYXRhX2NvbGxlY3RlZCI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGRhdGEgd2FzIGNvbGxlY3RlZCBmb3IgdGhlIGxhc3QgcXVlcnkuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGF0YV9jb2xsZWN0aW9uX21lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGlvbk1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGEgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFfY29sbGVjdGVkIHN0YXR1cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfaG91cl9xdWVyaWVkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdEhvdXJRdWVyaWVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgdGltZSByYW5nZSBmb3Igd2hpY2ggbWV0cmljcyB3ZXJlIGxhc3QgcXVlcmllZC4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcG9ydF9tb250aCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydE1vbnRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbW9udGggZm9yIHdoaWNoIHJlcG9ydHMgYXJlIGJlaW5nIGdlbmVyYXRlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDE0NDAgbWluICgyNCBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJjcmVhdGVfc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4gQSBzb3VyY2Ugd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIGNyZWF0aW5nIHRoZSBzb3VyY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U291cmNlQ2hlY2tUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBjaGVjayB3YXMgYXR0ZW1wdGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VOYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlRGVmaW5lZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBleGlzdHMgYXMgZGVmaW5lZCBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sInNvdXJjZXNfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZXNBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgU291cmNlcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGVzIGluIHRoZSBsYXN0IHBheWxvYWQgdGhhdCB3YXMgc2VudC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJsYXN0X3BheWxvYWRfbWFuaWZlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE1hbmlmZXN0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG1hbmlmZXN0SUQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGxhc3QgcGF5bG9hZCBmaWxlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX3JlcXVlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZFJlcXVlc3RJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBpbnNpZ2h0cyByZXF1ZXN0IGlkIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfdXBsb2FkX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFVwbG9hZFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIHVwbG9hZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3VwbG9hZF9zdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0VXBsb2FkU3RhdHVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGh0dHAgc3RhdHVzIG9mIHRoZSBsYXN0IHVwbG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFRvZ2dsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIHNob3VsZCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgdHJ1ZSIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF9jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInNwZWMiXSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6W10sInN0b3JlZFZlcnNpb25zIjpbXX19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiSU5TRVJULVNPVVJDRS1OQU1FXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjZmMzIwYTY0YWIxMjEyNTA5NjQ3YjhiMjU5NDQ1MzQ5YjMxOTM1ZjM5Njg3NDhiYTUzODg2MDc2ZmM0Yzg2MDYiLCJjcmVhdGVkQXQiOiIyMDIzLTA0LTIwVDE2OjA0OjM3WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjI1LjMiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjIuMC4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAyLjAuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjgrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBjb3N0IG1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYyLjAuMDpcbiogQWRkcyBtZXRyaWNzIGFuZCByZXBvcnQgZ2VuZXJhdGlvbiBmb3IgcmVzb3VyY2Ugb3B0aW1pemF0aW9uLiBUaGlzIGZlYXR1cmUgd2lsbCBjb2xsZWN0IGFkZGl0aW9uYWwgdXNhZ2UgbWV0cmljcyBhbmQgY3JlYXRlIGEgbmV3IHJlcG9ydCBpbiB0aGUgcGF5bG9hZC4gVGhlc2UgbWV0cmljcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgY2FuIGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbmAgdG8gYHRydWVgLlxuKiBDb2xsZWN0IGFsbCBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ1IgY3JlYXRpb24uIFRoaXMgZmVhdHVyZSBvbmx5IGFwcGxpZXMgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLiBUaGUgb3BlcmF0b3Igd2lsbCBjaGVjayB0aGUgbW9uaXRvcmluZyBzdGFjayBjb25maWd1cmF0aW9uIGluIHRoZSBgb3BlbnNoaWZ0LW1vbml0b3JpbmdgIG5hbWVzcGFjZS4gVGhlIG9wZXJhdG9yIHdpbGwgdXNlIHRoZSBgcmV0ZW50aW9uYCBwZXJpb2Qgc2V0IGluIHRoZSBgY2x1c3Rlci1tb25pdG9yaW5nLWNvbmZpZ2AgQ29uZmlnTWFwIGlmIGRlZmluZWQsIHVwIHRvIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBPdGhlcndpc2UgaXQgd2lsbCBmYWxsIGJhY2sgdG8gY29sbGVjdGluZyAxNCBkYXlzIG9mIGRhdGEsIGlmIGF2YWlsYWJsZS4gVGhpcyBkYXRhIGNvbGxlY3Rpb24gbWF5IGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgYGNvbGxlY3RfcHJldmlvdXNfZGF0YWAgdG8gYGZhbHNlYC4gVHVybmluZyB0aGlzIGZlYXR1cmUgb2ZmIHJlc3VsdHMgaW4gdGhlIG9wZXJhdG9yIGNvbGxlY3RpbmcgbWV0cmljcyBmcm9tIHRoZSB0aW1lIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZCwgZm9yd2FyZC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgaXMgdXNlZCB3aGVuIHRoZSBvcGVuc2hpZnQtY29uZmlnIHB1bGwtc2VjcmV0IGRvZXMgbm90IGNvbnRhaW4gYSB0b2tlbiBmb3IgYGNsb3VkLnJlZGhhdC5jb21gLlxuICAgICogYHNlY3JldF9uYW1lYCAtXHUwMDNlIFRoZSBTZWNyZXQgdXNlZCBieSB0aGUgb3BlcmF0b3Igd2hlbiB0aGUgYXV0aGVudGljYXRpb24gdHlwZSBpcyBgYmFzaWNgLiBUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCAqKm9ubHkgaWYqKiB0aGUgYXV0aGVudGljYXRpb24gdHlwZSBpcyBgYmFzaWNgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogSU5TRVJUX1NPVVJDRV9OQU1FYCAtXHUwMDNlIFRoZSBuYW1lIG9mIHRoZSBTb3VyY2UgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGluIGBjb25zb2xlLnJlZGhhdC5jb21gLiBUaGUgZGVmYXVsdCBpcyBgSU5TRVJUX1NPVVJDRV9OQU1FYCB3aGljaCBpcyBhIHBsYWNlaG9sZGVyLlxuICAgICogYGNyZWF0ZV9zb3VyY2U6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3Igd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIHRoZSBTb3VyY2UgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGEgU291cmNlIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhIFNvdXJjZSBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGEgc291cmNlXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYSBzb3VyY2UuIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtTb3VyY2VzIG1lbnVdKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL3NldHRpbmdzL3NvdXJjZXMvKSB0byBiZWdpbiBhZGRpbmcgYW4gT3BlblNoaWZ0IHNvdXJjZSB0byBjb3N0IG1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGUgc291cmNlOlxuMS4gTmF2aWdhdGUgdG8gdGhlIFNvdXJjZXMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdCBzb3VyY2VzYCB0YWJcbjMuIENyZWF0ZSBhIG5ldyBgUmVkIEhhdCBPcGVuc2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtYCBzb3VyY2U6XG4gICAgKiBnaXZlIHRoZSBzb3VyY2UgYSB1bmlxdWUgbmFtZVxuICAgICogYWRkIHRoZSBDb3N0IE1hbmFnZW1lbnQgYXBwbGljYXRpb25cbiAgICAqIGFkZCB0aGUgY2x1c3RlciBpZGVudGlmaWVyXG40LiBJbiB0aGUgU291cmNlcyB3aXphcmQsIHJldmlldyB0aGUgZGV0YWlscyBhbmQgY2xpY2sgYEZpbmlzaGAgdG8gY3JlYXRlIHRoZSBTb3VyY2UuXG5cbiMjIFVwbG9hZCB0aGUgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudFxuVXBsb2FkaW5nIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnQgaXMgZG9uZSB0aHJvdWdoIGN1cmw6XG5cbiAgICAkIGN1cmwgLXZ2dnYgLUYgXCJmaWxlPUBGSUxFX05BTUUudGFyLmd6O3R5cGU9YXBwbGljYXRpb24vdm5kLnJlZGhhdC5oY2NtLnRhcit0Z3pcIiAgaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJsYWJlbCI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tZW5hYmxlLWxlYWRlci1lbGVjdGlvbiJdLCJjb21tYW5kIjpbIi91c3IvYmluL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiXSwiZW52IjpbeyJuYW1lIjoiSU5fQ0xVU1RFUiIsInZhbHVlIjoidHJ1ZSJ9LHsibmFtZSI6IldBVENIX05BTUVTUEFDRSIsInZhbHVlRnJvbSI6eyJmaWVsZFJlZiI6eyJmaWVsZFBhdGgiOiJtZXRhZGF0YS5hbm5vdGF0aW9uc1snb2xtLnRhcmdldE5hbWVzcGFjZXMnXSJ9fX1dLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo2ZjMyMGE2NGFiMTIxMjUwOTY0N2I4YjI1OTQ0NTM0OWIzMTkzNWYzOTY4NzQ4YmE1Mzg4NjA3NmZjNGM4NjA2IiwibmFtZSI6Im1hbmFnZXIiLCJyZXNvdXJjZXMiOnsibGltaXRzIjp7ImNwdSI6IjUwMG0iLCJtZW1vcnkiOiI1MDBNaSJ9LCJyZXF1ZXN0cyI6eyJjcHUiOiIxMDBtIiwibWVtb3J5IjoiMjBNaSJ9fSwidGVybWluYXRpb25NZXNzYWdlUG9saWN5IjoiRmFsbGJhY2tUb0xvZ3NPbkVycm9yIiwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6MTAsInZvbHVtZXMiOlt7Im5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19fX19XSwicGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwidXBkYXRlIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJldmVudHMiXSwidmVyYnMiOlsiY3JlYXRlIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsiY29vcmRpbmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibGVhc2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImVuZHBvaW50cyIsImV2ZW50cyIsInBlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwb2RzIiwic2VjcmV0cyIsInNlcnZpY2VhY2NvdW50cyIsInNlcnZpY2VzIiwic2VydmljZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvcnMuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnNlcnZpY2V2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiT3duTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJTaW5nbGVOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJNdWx0aU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImNvc3QiLCJtYW5hZ2VtZW50IiwidXNhZ2UiLCJtb25pdG9yIl0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo2ZjMyMGE2NGFiMTIxMjUwOTY0N2I4YjI1OTQ0NTM0OWIzMTkzNWYzOTY4NzQ4YmE1Mzg4NjA3NmZjNGM4NjA2IiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3ItNmYzMjBhNjRhYjEyMTI1MDk2NDdiOGIyNTk0NDUzNDliMzE5MzVmMzk2ODc0OGJhNTM4ODYwNzZmYzRjODYwNi1hbm5vdGF0aW9uIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo2ZjMyMGE2NGFiMTIxMjUwOTY0N2I4YjI1OTQ0NTM0OWIzMTkzNWYzOTY4NzQ4YmE1Mzg4NjA3NmZjNGM4NjA2IiwibmFtZSI6Im1hbmFnZXIifV0sInJlcGxhY2VzIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci4xLjIuMCIsInZlcnNpb24iOiIyLjAuMCJ9fQ== +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:12338c0a58b7a2e8f1f201512a43675e1df1f3eae0feec0ffd8df4295b499a92 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:6f320a64ab1212509647b8b259445349b31935f3968748ba53886076fc4c8606 + name: costmanagement-metrics-rhel8-operator-6f320a64ab1212509647b8b259445349b31935f3968748ba53886076fc4c8606-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:6f320a64ab1212509647b8b259445349b31935f3968748ba53886076fc4c8606 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:e43e49bc3c6b361f8ece42f438748dbe1e8af0c32c1ec4786fccc0e9ff1b63f1 +name: costmanagement-metrics-operator.3.0.0 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 3.0.0 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjExLjIifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljIG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgdXNlciBhbmQgcGFzc3dvcmQgZnJvbSBhdXRoZW50aWNhdGlvbiBzZWNyZXQuIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBjcmVhdGUgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgaXMgZW5hYmxlZCwgdGhpcyBmaWVsZCB3aWxsIGFsd2F5cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzIGFzIHRoZSBEYXRhU291cmNlUmVmIGZpZWxkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBsb2NhbCBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIERhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYm90aCBmaWVsZHMgKERhdGFTb3VyY2UgYW5kIERhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFRoZXJlIGFyZSB0d28gaW1wb3J0YW50IGRpZmZlcmVuY2VzIGJldHdlZW4gRGF0YVNvdXJjZSBhbmQgRGF0YVNvdXJjZVJlZjogKiBXaGlsZSBEYXRhU291cmNlIG9ubHkgYWxsb3dzIHR3byBzcGVjaWZpYyB0eXBlcyBvZiBvYmplY3RzLCBEYXRhU291cmNlUmVmIGFsbG93cyBhbnkgbm9uLWNvcmUgb2JqZWN0LCBhcyB3ZWxsIGFzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3RzLiAqIFdoaWxlIERhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIERhdGFTb3VyY2VSZWYgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzIHNwZWNpZmllZC4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6InNlbGVjdG9yIGlzIGEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiYWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZSBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIElmIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCB0aGlzIGZpZWxkIHdpbGwgYWx3YXlzIGhhdmUgdGhlIHNhbWUgY29udGVudHMgYXMgdGhlIERhdGFTb3VyY2VSZWYgZmllbGQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJkYXRhU291cmNlUmVmIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZVJlZiBzcGVjaWZpZXMgdGhlIG9iamVjdCBmcm9tIHdoaWNoIHRvIHBvcHVsYXRlIHRoZSB2b2x1bWUgd2l0aCBkYXRhLCBpZiBhIG5vbi1lbXB0eSB2b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IGxvY2FsIG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uIGNvcmUgb2JqZWN0KSBvciBhIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3QuIFdoZW4gdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQsIHZvbHVtZSBiaW5kaW5nIHdpbGwgb25seSBzdWNjZWVkIGlmIHRoZSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljIHByb3Zpc2lvbmVyLiBUaGlzIGZpZWxkIHdpbGwgcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgRGF0YVNvdXJjZSBmaWVsZCBhbmQgYXMgc3VjaCBpZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBib3RoIGZpZWxkcyAoRGF0YVNvdXJjZSBhbmQgRGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYXV0b21hdGljYWxseSBpZiBvbmUgb2YgdGhlbSBpcyBlbXB0eSBhbmQgdGhlIG90aGVyIGlzIG5vbi1lbXB0eS4gVGhlcmUgYXJlIHR3byBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBEYXRhU291cmNlIGFuZCBEYXRhU291cmNlUmVmOiAqIFdoaWxlIERhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIERhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgRGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgRGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAoQmV0YSkgVXNpbmcgdGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBJZiBSZWNvdmVyVm9sdW1lRXhwYW5zaW9uRmFpbHVyZSBmZWF0dXJlIGlzIGVuYWJsZWQgdXNlcnMgYXJlIGFsbG93ZWQgdG8gc3BlY2lmeSByZXNvdXJjZSByZXF1aXJlbWVudHMgdGhhdCBhcmUgbG93ZXIgdGhhbiBwcmV2aW91cyB2YWx1ZSBidXQgbXVzdCBzdGlsbCBiZSBoaWdoZXIgdGhhbiBjYXBhY2l0eSByZWNvcmRlZCBpbiB0aGUgc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwcm9tZXRoZXVzIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcHJlbWV0aGV1cyBxdWVyaWVzLiIsInByb3BlcnRpZXMiOnsiY29uZmlndXJhdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgY29uZmlndXJhdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNvbnRleHRfdGltZW91dCI6eyJkZXNjcmlwdGlvbiI6IkNvbnRleHRUaW1lb3V0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdGUgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25Db3N0TWFuYWdlbWVudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyByZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImNyZWF0ZV9zb3VyY2UgcmVwcmVzZW50cyB0aGUgdG9nZ2xlIHVzZWQgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiB0aGUgc291cmNlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gQSBzb3VyY2Ugd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgc291cmNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoibGFzdF9jaGVja190aW1lIGlzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3Qgc291cmNlIHN0YXR1cyBjaGVjayB3YXMgYXR0ZW1wdGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIHJlcHJlc2VudHMgdGhlIG5hbWUgb2YgdGhlIHNvdXJjZSB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIHNvdXJjZSBuYW1lIGV4aXN0cyBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoic291cmNlc19wYXRoIGlzIHRoZSBwcmVmaXggb2YgdGhlIFNvdXJjZXMgQVBJIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGVzIGluIHRoZSBsYXN0IHBheWxvYWQgdGhhdCB3YXMgc2VudC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJsYXN0X3BheWxvYWRfbWFuaWZlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE1hbmlmZXN0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG1hbmlmZXN0SUQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGxhc3QgcGF5bG9hZCBmaWxlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX3JlcXVlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZFJlcXVlc3RJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBpbnNpZ2h0cyByZXF1ZXN0IGlkIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfdXBsb2FkX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFVwbG9hZFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIHVwbG9hZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3VwbG9hZF9zdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0VXBsb2FkU3RhdHVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGh0dHAgc3RhdHVzIG9mIHRoZSBsYXN0IHVwbG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFRvZ2dsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIHNob3VsZCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjQ5NWMwZmQ2NDlmMTA0NmViM2MzYTkxNjI4YjhhOGRmNjk5Mjg4ZDZmMDA0ZGRjYTQxYmIzYTQ2MWRiZDBkMGIiLCJjcmVhdGVkQXQiOiIyMDIzLTEwLTAyVDE2OjEwOjAxWiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjI4LjAiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMC4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAzLjAuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LiBUaGUgb3BlcmF0b3IgcnVucyBvbiB0aGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBPcGVuc2hpZnQuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzIHRoYXQgaXQgdXBsb2FkcyB0byBDb3N0IE1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pIHRvIGJlIHByb2Nlc3NlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBDb3N0IE1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBDb3N0IE1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgdGhlIHJlc3VsdHMgb2YgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIENvc3QgTWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBDb3N0IE1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYzLjAuMDpcbiogRGFpbHkgcmVwb3J0IGdlbmVyYXRpb246IE9wZXJhdG9yIHZlcnNpb25zIHByaW9yIHRvIHYzLjAuMCBnZW5lcmF0ZWQgc2VxdWVudGlhbCByZXBvcnRzLiBOb3csIHJlcG9ydHMgYXJlIGdlbmVyYXRlZCBzdGFydGluZyBhdCAwOjAwIFVUQy4gQW55IHBheWxvYWRzIGdlbmVyYXRlZCB0aHJvdWdob3V0IGEgZ2l2ZW4gZGF5IHdpbGwgY29udGFpbiBhbGwgZGF0YSBzdGFydGluZyBmcm9tIDA6MDAgVVRDLiBPbmNlIHRoZSBuZXh0IGRheSBzdGFydHMsIHRoZSBwcmV2aW91cyBkYXkncyByZXBvcnRzIGFyZSBwYWNrYWdlZCwgYW5kIHRoZSBuZXcgcmVwb3J0IGFnYWluIHN0YXJ0cyBhdCAwOjAwIFVUQyBmb3IgdGhlIGN1cnJlbnQgZGF5LlxuKiBGYWlsZWQgcXVlcnkgcmV0cnk6IEluIGFuIGF0dGVtcHQgdG8gcHJldmVudCBtaXNzaW5nIGRhdGEsIHRoZSBvcGVyYXRvciB3aWxsIHJldHJ5IHF1ZXJpZXMgZnJvbSB0aGUgbGFzdCBzdWNjZXNzZnVsIHF1ZXJ5IHRpbWUsIHVwIHRvIDUgdGltZXMuXG5cbiMjIE5ldyBpbiB2Mi4wLjA6XG4qIEFkZHMgbWV0cmljcyBhbmQgcmVwb3J0IGdlbmVyYXRpb24gZm9yIHJlc291cmNlIG9wdGltaXphdGlvbi4gVGhpcyBmZWF0dXJlIHdpbGwgY29sbGVjdCBhZGRpdGlvbmFsIHVzYWdlIG1ldHJpY3MgYW5kIGNyZWF0ZSBhIG5ldyByZXBvcnQgaW4gdGhlIHBheWxvYWQuIFRoZXNlIG1ldHJpY3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb25gIHRvIGB0cnVlYC5cbiogQ29sbGVjdCBhbGwgYXZhaWxhYmxlIFByb21ldGhldXMgZGF0YSB1cG9uIENSIGNyZWF0aW9uLiBUaGlzIGZlYXR1cmUgb25seSBhcHBsaWVzIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy4gVGhlIG9wZXJhdG9yIHdpbGwgY2hlY2sgdGhlIG1vbml0b3Jpbmcgc3RhY2sgY29uZmlndXJhdGlvbiBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UuIFRoZSBvcGVyYXRvciB3aWxsIHVzZSB0aGUgYHJldGVudGlvbmAgcGVyaW9kIHNldCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpZiBkZWZpbmVkLCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gT3RoZXJ3aXNlIGl0IHdpbGwgZmFsbCBiYWNrIHRvIGNvbGxlY3RpbmcgMTQgZGF5cyBvZiBkYXRhLCBpZiBhdmFpbGFibGUuIFRoaXMgZGF0YSBjb2xsZWN0aW9uIG1heSBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGFgIHRvIGBmYWxzZWAuIFR1cm5pbmcgdGhpcyBmZWF0dXJlIG9mZiByZXN1bHRzIGluIHRoZSBvcGVyYXRvciBjb2xsZWN0aW5nIG1ldHJpY3MgZnJvbSB0aGUgdGltZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQsIGZvcndhcmQuXG5cbiMjIExpbWl0YXRpb25zIGFuZCBQcmUtUmVxdWlzaXRlc1xuIyMjIyBMaW1pdGF0aW9ucyAoUG90ZW50aWFsIGZvciBtZXRyaWNzIGRhdGEgbG9zcylcbiogQSBzb3VyY2UgKiptdXN0KiogZXhpc3QgaW4gY29uc29sZS5yZWRoYXQuY29tIGZvciBhbiB1cGxvYWRlZCBwYXlsb2FkIHRvIGJlIHByb2Nlc3NlZCBieSBDb3N0IE1hbmFnZW1lbnQuIFRoZSBvcGVyYXRvciBzZW5kcyB0aGUgcGF5bG9hZCB0byB0aGUgUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2Ugd2hpY2ggdXN1YWxseSByZXR1cm5zIHN1Y2Nlc3NmdWxseSwgYnV0IHRoZSBvcGVyYXRvciBkb2VzIG5vdCBjdXJyZW50bHkgY29uZmlybSB3aXRoIENvc3QgTWFuYWdlbWVudCB0aGF0IHRoZSBwYXlsb2FkIHdhcyBwcm9jZXNzZWQuIEFmdGVyIEluZ3Jlc3MgYWNjZXB0cyB0aGUgdXBsb2FkZWQgcGF5bG9hZCwgaXQgaXMgZGVsZXRlZCBmcm9tIHRoZSBvcGVyYXRvci4gSWYgdGhlIGRhdGEgd2l0aGluIHRoZSBwYXlsb2FkIGlzIG5vdCBwcm9jZXNzZWQsIGEgZ2FwIHdpbGwgYmUgaW50cm9kdWNlZCBpbiB0aGUgdXNhZ2UgbWV0cmljcy4gRGF0YSBtYXkgYmUgcmVjb2xsZWN0ZWQgYnkgZGVsZXRpbmcgdGhlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLCBjcmVhdGluZyBhIG5ldyBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgYW5kIHNldHRpbmcgYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAuIFRoaXMgcmUtY29sbGVjdGlvbiBvZiBkYXRhIHdpbGwgZ2F0aGVyIGFsbCBkYXRhIHN0b3JlZCBpbiBQcm9tZXRoZXVzLCB1cCB0byA5MCBkYXlzLlxuXG4qKk5vdGUqKiBUaGUgZm9sbG93aW5nIGxpbWl0YXRpb25zIGFyZSBzcGVjaWZpYyB0byBvcGVyYXRvcnMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcms6XG4qIFRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgd2lsbCBub3QgYmUgYWJsZSB0byBnZW5lcmF0ZSBuZXcgcmVwb3J0cyBpZiB0aGUgUFZDIHN0b3JhZ2UgaXMgZnVsbC4gSWYgdGhpcyBvY2N1cnMsIHRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZGVsZXRlZCBmcm9tIHRoZSBQVkMgc28gdGhhdCB0aGUgb3BlcmF0b3IgY2FuIGZ1bmN0aW9uIGFzIG5vcm1hbC5cbiogVGhlIGRlZmF1bHQgcmVwb3J0IHJldGVudGlvbiBpcyAzMCByZXBvcnRzIChhYm91dCBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEpLiBUaGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgYW5kIHVwbG9hZGVkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBldmVyeSB3ZWVrLCBvciB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgdGhlIGRhdGEgd2lsbCBiZSBsb3N0LlxuXG4jIyMjIFN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcblRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGFuZCB1c2UgdGhlIGZvbGxvd2luZyBQVkMgd2hlbiBpbnN0YWxsZWQ6XG5cbiAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcblxuSWYgYSBkaWZmZXJlbnQgUFZDIHNob3VsZCBiZSB1dGlsaXplZCwgYSB2YWxpZCBQVkMgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGFzIGRlc2NyaWJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBiZWxvdy4gVGhlIFBWQyB0byBiZSB1c2VkIG1heSBleGlzdCBhbHJlYWR5LCBvciB0aGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBpdC5cblxuVG8gdXNlIHRoZSBkZWZhdWx0IHNwZWNpZmljYXRpb24sIHRoZSBmb2xsb3cgYXNzdW1wdGlvbnMgbXVzdCBiZSBtZXQ6XG4xLiBBIGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGRlZmluZWQuXG4yLiBEeW5hbWljIHByb3Zpc2lvbmluZyBmb3IgdGhhdCBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBlbmFibGVkLlxuXG5JZiB0aGVzZSBhc3N1bXB0aW9ucyBhcmUgbm90IG1ldCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IGRlcGxveSBjb3JyZWN0bHkuIEluIHRoZXNlIGNhc2VzLCBzdG9yYWdlIG11c3QgYmUgbWFudWFsbHkgY29uZmlndXJlZC4gQWZ0ZXIgY29uZmlndXJpbmcgc3RvcmFnZSwgYSB2YWxpZCBQVkMgdGVtcGxhdGUgc2hvdWxkIGJlIHN1cHBsaWVkIGluIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBzcGVjIG9mIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IuXG5cbiMjIENvbmZpZ3VyYWJsZSBwYXJhbWV0ZXJzOlxuICAqIGBhdXRoZW50aWNhdGlvbmA6XG4gICAgKiBgdHlwZTogdG9rZW5gIC1cdTAwM2UgVGhlIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBmb3IgY29ubmVjdGluZyB0byBgY29uc29sZS5yZWRoYXQuY29tYC4gVGhlIGRlZmF1bHQgYW5kIHByZWZlcnJlZCBtZXRob2QgaXMgYHRva2VuYC4gYGJhc2ljYCBpcyB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYC4gVGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgKipvbmx5IGlmKiogdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYC5cbiAgKiBgcGFja2FnaW5nYDpcbiAgICAqIGBtYXhfcmVwb3J0c190b19zdG9yZTogMzBgIC1cdTAwM2UgVGhlIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlIHdoZW4gY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUuIFRoZSBkZWZhdWx0IGlzIDMwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBubyBtYXhpbXVtLiBXaGVuIHRoZSBvcGVyYXRvciBpcyBub3QgY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUsIHRoaXMgcGFyYW1ldGVyIGhhcyBubyBlZmZlY3QuIFJlcG9ydHMgYXJlIHJlbW92ZWQgYXMgc29vbiBhcyB0aGV5IGFyZSB1cGxvYWRlZC5cbiAgICAqIGBtYXhfc2l6ZTogMTAwYCAtXHUwMDNlIFRoZSBtYXhpbXVtIHNpemUgZm9yIHBhY2thZ2VkIGZpbGVzIGluIE1lZ2FieXRlcyBwcmlvciB0byBjb21wcmVzc2lvbi4gVGhlIGRlZmF1bHQgaXMgMTAwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBtYXhpbXVtIG9mIDEwMC5cbiAgKiBgcHJvbWV0aGV1c19jb25maWdgOlxuICAgICogYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGNvbGxlY3RpbmcgYWxsIGF2YWlsYWJsZSBkYXRhIGluIFByb21ldGhldXMgKip1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbioqIChUaGlzIHBhcmFtZXRlciB3aWxsIHN0YXJ0IHRvIGFwcGVhciBpbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzIHRoYXQgd2VyZSBjcmVhdGVkIHByaW9yIHRvIHYyLjAuMCBidXQgd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IHVubGVzcyB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGRlbGV0ZWQgYW5kIHJlY3JlYXRlZCkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC4gVGhlIG9wZXJhdG9yIHdpbGwgZmlyc3QgbG9vayBmb3IgYSBgcmV0ZW50aW9uYCBwZXJpb2QgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlIGFuZCBnYXRoZXIgZGF0YSBvdmVyIHRoaXMgdGltZSBwZXJpb2QgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIElmIHRoaXMgY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0LCB0aGUgZGVmYXVsdCBpcyAxNCBkYXlzLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQ6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgZGlzYWJsaW5nIHRoZSBjb2xsZWN0aW9uIG9mIG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbjogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgUmVzb3VyY2UgT3B0aW1pemF0aW9uLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgY29udGV4dF90aW1lb3V0OiAxMjBgIC1cdTAwM2UgVGhlIHRpbWUgaW4gc2Vjb25kcyBiZWZvcmUgUHJvbWV0aGV1cyBxdWVyaWVzIHRpbWVvdXQgZHVlIHRvIGV4Y2VlZGluZyBjb250ZXh0IHRpbWVvdXQuIFRoZSBkZWZhdWx0IGlzIDEyMCwgd2l0aCBhIG1pbmltdW0gb2YgMTAgYW5kIG1heGltdW0gb2YgMTgwLlxuICAqIGBzb3VyY2VgOlxuICAgICogYG5hbWU6ICcnYCAtXHUwMDNlIFRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGluIGBjb25zb2xlLnJlZGhhdC5jb21gLiBJZiB0aGUgbmFtZSB2YWx1ZSBpcyBlbXB0eSwgdGhlIGRlZmF1bHQgaW50ZXJncmF0aW9uIG5hbWUgaXMgdGhlICoqY2x1c3RlciBpZCoqLlxuICAgICogYGNyZWF0ZV9zb3VyY2U6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3Igd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIHRoZSBzb3VyY2UgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGEgc291cmNlIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhIHNvdXJjZSBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSB0aGUgYG5hbWVgIGZpZWxkIHZhbHVlIHdpdGggdGhlIHByZWZlcnJlZCBuYW1lIG9mIHRoZSBzb3VyY2UgdG8gYmUgY3JlYXRlZC5cbiAgICAqIFJlcGxhY2UgdGhlIGBjcmVhdGVfc291cmNlYCBmaWVsZCB2YWx1ZSB3aXRoIGB0cnVlYC5cblxuICAgICoqTm90ZToqKiBpZiB0aGUgc291cmNlIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgc291cmNlIGV4aXN0cy5cblxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYyAoYmVsb3cgaXMgb25seSBhIHRlbXBsYXRlLiBBbnkgX3ZhbGlkXyBgUGVyc2lzdGVudFZvbHVtZUNsYWltYCBtYXkgYmUgZGVmaW5lZCBoZXJlKTpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIFNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gQ29zdCBNYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRpbmcgYSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0YCB0YWJcbjMuIENyZWF0ZSBhIG5ldyBgUmVkIEhhdCBPcGVuc2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtYCBzb3VyY2U6XG4gICAgKiBnaXZlIHRoZSBzb3VyY2UgYSB1bmlxdWUgbmFtZVxuICAgICogYWRkIHRoZSBDb3N0IE1hbmFnZW1lbnQgYXBwbGljYXRpb25cbiAgICAqIGFkZCB0aGUgY2x1c3RlciBpZGVudGlmaWVyXG40LiBJbiB0aGUgU291cmNlIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIHNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7fSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjQ5NWMwZmQ2NDlmMTA0NmViM2MzYTkxNjI4YjhhOGRmNjk5Mjg4ZDZmMDA0ZGRjYTQxYmIzYTQ2MWRiZDBkMGIiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjQ5NWMwZmQ2NDlmMTA0NmViM2MzYTkxNjI4YjhhOGRmNjk5Mjg4ZDZmMDA0ZGRjYTQxYmIzYTQ2MWRiZDBkMGIiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci00OTVjMGZkNjQ5ZjEwNDZlYjNjM2E5MTYyOGI4YThkZjY5OTI4OGQ2ZjAwNGRkY2E0MWJiM2E0NjFkYmQwZDBiLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjQ5NWMwZmQ2NDlmMTA0NmViM2MzYTkxNjI4YjhhOGRmNjk5Mjg4ZDZmMDA0ZGRjYTQxYmIzYTQ2MWRiZDBkMGIiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjIuMC4wIiwidmVyc2lvbiI6IjMuMC4wIn19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:e43e49bc3c6b361f8ece42f438748dbe1e8af0c32c1ec4786fccc0e9ff1b63f1 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:495c0fd649f1046eb3c3a91628b8a8df699288d6f004ddca41bb3a461dbd0d0b + name: costmanagement-metrics-rhel8-operator-495c0fd649f1046eb3c3a91628b8a8df699288d6f004ddca41bb3a461dbd0d0b-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:495c0fd649f1046eb3c3a91628b8a8df699288d6f004ddca41bb3a461dbd0d0b + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:afcee273a058fa1ac7643271ee775bdc1ca5d765f0ea36af3b3a6633d9fcbd73 +name: costmanagement-metrics-operator.3.0.1 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 3.0.1 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjEzLjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljIG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgdXNlciBhbmQgcGFzc3dvcmQgZnJvbSBhdXRoZW50aWNhdGlvbiBzZWNyZXQuIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBjcmVhdGUgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBXaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsIGFuZCBkYXRhU291cmNlUmVmIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2Ugd2hlbiBkYXRhU291cmNlUmVmLm5hbWVzcGFjZSBpcyBub3Qgc3BlY2lmaWVkLiBJZiB0aGUgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgdGhlbiBkYXRhU291cmNlUmVmIHdpbGwgbm90IGJlIGNvcGllZCB0byBkYXRhU291cmNlLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGRhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGJvdGggZmllbGRzIChkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBXaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgZGF0YVNvdXJjZSBpc24ndCBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYW5kIG11c3QgYmUgZW1wdHkuIFRoZXJlIGFyZSB0aHJlZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmOiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgZGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgZGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgbG9jYWwgb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3Mgb2JqZWN0cyBpbiBhbnkgbmFtZXNwYWNlcy4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIChBbHBoYSkgVXNpbmcgdGhlIG5hbWVzcGFjZSBmaWVsZCBvZiBkYXRhU291cmNlUmVmIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIE5vdGUgdGhhdCB3aGVuIGEgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgYSBnYXRld2F5Lm5ldHdvcmtpbmcuazhzLmlvL1JlZmVyZW5jZUdyYW50IG9iamVjdCBpcyByZXF1aXJlZCBpbiB0aGUgcmVmZXJlbnQgbmFtZXNwYWNlIHRvIGFsbG93IHRoYXQgbmFtZXNwYWNlJ3Mgb3duZXIgdG8gYWNjZXB0IHRoZSByZWZlcmVuY2UuIFNlZSB0aGUgUmVmZXJlbmNlR3JhbnQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gKEFscGhhKSBUaGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsiYXV0aGVudGljYXRpb24iLCJwYWNrYWdpbmciLCJwcm9tZXRoZXVzX2NvbmZpZyIsInNvdXJjZSIsInVwbG9hZCJdLCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyBkZWZpbmVzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlc2NyaXB0aW9uIjoiQVBJVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXJsIG9mIHRoZSBBUEkgZW5kcG9pbnQgZm9yIHNlcnZpY2UgaW50ZXJhY3Rpb24uIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gc3RhdHVzLiIsInByb3BlcnRpZXMiOnsiY3JlZGVudGlhbHNfZm91bmQiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbkNyZWRlbnRpYWxzRm91bmQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHVzZWQgZm9yIHVwbG9hZHMgd2VyZSBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IkF1dGhFcnJvck1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGFuIGBpbnZhbGlkIGNyZWRlbnRpYWxzYCBlcnJvciBtZXNzYWdlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jcmVkZW50aWFsX3ZlcmlmaWNhdGlvbl90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFZlcmlmaWNhdGlvblRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgY3JlZGVudGlhbHMgd2VyZSB2ZXJpZmllZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljIG9yIHRva2VuLiIsImVudW0iOlsidG9rZW4iLCJiYXNpYyJdLCJ0eXBlIjoic3RyaW5nIn0sInZhbGlkX2Jhc2ljX2F1dGgiOnsiZGVzY3JpcHRpb24iOiJWYWxpZEJhc2ljQXV0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIGdpdmVuIGJhc2ljIGF1dGggY3JlZGVudGlhbHMgYXJlIHZhbGlkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvcl9jb21taXQiOnsiZGVzY3JpcHRpb24iOiJPcGVyYXRvckNvbW1pdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBjb21taXQgaGFzaCBvZiB0aGUgb3BlcmF0b3IuIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgc3RhdHVzIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgcGFja2FnaW5nIHRoZSByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3BhY2thZ2luZ190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxQYWNrYWdpbmdUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBmaWxlIHBhY2thZ2luZy4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwibWF4X3NpemVfTUIiOnsiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwibnVtYmVyX3JlcG9ydHNfc3RvcmVkIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0Q291bnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgcmVwb3J0cyBpbiBzdG9yYWdlLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwicGFja2FnZWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdlZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlIHBhY2thZ2VzIGluIHN0b3JhZ2UuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicGVyc2lzdGVudF92b2x1bWVfY2xhaW0iOnsiZGVzY3JpcHRpb24iOiJQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJhY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QpICogQW4gZXhpc3RpbmcgUFZDIChQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0pIElmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsIGl0IHdpbGwgY3JlYXRlIGEgbmV3IHZvbHVtZSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZS4gV2hlbiB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgaXMgZW5hYmxlZCwgZGF0YVNvdXJjZSBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlUmVmLCBhbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC4gSWYgdGhlIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIHRoZW4gZGF0YVNvdXJjZVJlZiB3aWxsIG5vdCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5IHZvbHVtZSBpcyBkZXNpcmVkLiBUaGlzIG1heSBiZSBhbnkgb2JqZWN0IGZyb20gYSBub24tZW1wdHkgQVBJIGdyb3VwIChub24gY29yZSBvYmplY3QpIG9yIGEgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdC4gV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QgbWF0Y2hlcyBzb21lIGluc3RhbGxlZCB2b2x1bWUgcG9wdWxhdG9yIG9yIGR5bmFtaWMgcHJvdmlzaW9uZXIuIFRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoIGlmIGJvdGggZmllbGRzIGFyZSBub24tZW1wdHksIHRoZXkgbXVzdCBoYXZlIHRoZSBzYW1lIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdoZW4gbmFtZXNwYWNlIGlzbid0IHNwZWNpZmllZCBpbiBkYXRhU291cmNlUmVmLCBib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYXV0b21hdGljYWxseSBpZiBvbmUgb2YgdGhlbSBpcyBlbXB0eSBhbmQgdGhlIG90aGVyIGlzIG5vbi1lbXB0eS4gV2hlbiBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LiBUaGVyZSBhcmUgdGhyZWUgaW1wb3J0YW50IGRpZmZlcmVuY2VzIGJldHdlZW4gZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZjogKiBXaGlsZSBkYXRhU291cmNlIG9ubHkgYWxsb3dzIHR3byBzcGVjaWZpYyB0eXBlcyBvZiBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBhbnkgbm9uLWNvcmUgb2JqZWN0LCBhcyB3ZWxsIGFzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3RzLiAqIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWYgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzIHNwZWNpZmllZC4gKiBXaGlsZSBkYXRhU291cmNlIG9ubHkgYWxsb3dzIGxvY2FsIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIG9iamVjdHMgaW4gYW55IG5hbWVzcGFjZXMuIChCZXRhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiAoQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZXNwYWNlIjp7ImRlc2NyaXB0aW9uIjoiTmFtZXNwYWNlIGlzIHRoZSBuYW1lc3BhY2Ugb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCBOb3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuIChBbHBoYSkgVGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoicmVzb3VyY2VzIHJlcHJlc2VudHMgdGhlIG1pbmltdW0gcmVzb3VyY2VzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIElmIFJlY292ZXJWb2x1bWVFeHBhbnNpb25GYWlsdXJlIGZlYXR1cmUgaXMgZW5hYmxlZCB1c2VycyBhcmUgYWxsb3dlZCB0byBzcGVjaWZ5IHJlc291cmNlIHJlcXVpcmVtZW50cyB0aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZSBzdGF0dXMgZmllbGQgb2YgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsiY2xhaW1zIjp7ImRlc2NyaXB0aW9uIjoiQ2xhaW1zIGxpc3RzIHRoZSBuYW1lcyBvZiByZXNvdXJjZXMsIGRlZmluZWQgaW4gc3BlYy5yZXNvdXJjZUNsYWltcywgdGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci4gXG4gVGhpcyBpcyBhbiBhbHBoYSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgdGhlIER5bmFtaWNSZXNvdXJjZUFsbG9jYXRpb24gZmVhdHVyZSBnYXRlLiBcbiBUaGlzIGZpZWxkIGlzIGltbXV0YWJsZS4gSXQgY2FuIG9ubHkgYmUgc2V0IGZvciBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VDbGFpbSByZWZlcmVuY2VzIG9uZSBlbnRyeSBpbiBQb2RTcGVjLlJlc291cmNlQ2xhaW1zLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBtYXRjaCB0aGUgbmFtZSBvZiBvbmUgZW50cnkgaW4gcG9kLnNwZWMucmVzb3VyY2VDbGFpbXMgb2YgdGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlIGluc2lkZSBhIGNvbnRhaW5lci4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtbWFwLWtleXMiOlsibmFtZSJdLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoibWFwIn0sImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gUmVxdWVzdHMgY2Fubm90IGV4Y2VlZCBMaW1pdHMuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6InNlbGVjdG9yIGlzIGEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmcgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MgaXMgZGlzYWJsZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVkX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmcgcmVzb3VyY2Utb3B0aW16YXRpb24gbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcmV2aW91c19kYXRhX2NvbGxlY3RlZCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJQcmV2aW91c0RhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciBnYXRoZXJlZCB0aGUgYXZhaWxhYmxlIFByb21ldGhldXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlndXJlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIGlzIGNvbmZpZ3VyZWQgdG8gY29ubmVjdCB0byBwcm9tZXRoZXVzLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0Nvbm5lY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgcHJvbWV0aGV1cyBjYW4gYmUgcXVlcmllZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3Rpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25uZWN0aW9uRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyB0ZXN0IHF1ZXJ5LiIsInR5cGUiOiJzdHJpbmcifSwic2VydmljZV9hZGRyZXNzIjp7ImRlc2NyaXB0aW9uIjoiU3ZjQWRkcmVzcyBpcyB0aGUgaW50ZXJuYWwgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlNraXBUTFNWZXJpZmljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSB0aGFub3MtcXVlcmllciBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsicHJvbWV0aGV1c19jb25maWd1cmVkIiwicHJvbWV0aGV1c19jb25uZWN0ZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXBvcnRzIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcmVwb3J0IGdlbmVyYXRpb24uIiwicHJvcGVydGllcyI6eyJkYXRhX2NvbGxlY3RlZCI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGRhdGEgd2FzIGNvbGxlY3RlZCBmb3IgdGhlIGxhc3QgcXVlcnkuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGF0YV9jb2xsZWN0aW9uX21lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGlvbk1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGEgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFfY29sbGVjdGVkIHN0YXR1cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfaG91cl9xdWVyaWVkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdEhvdXJRdWVyaWVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgdGltZSByYW5nZSBmb3Igd2hpY2ggbWV0cmljcyB3ZXJlIGxhc3QgcXVlcmllZC4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcG9ydF9tb250aCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydE1vbnRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbW9udGggZm9yIHdoaWNoIHJlcG9ydHMgYXJlIGJlaW5nIGdlbmVyYXRlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZSByZXByZXNlbnRzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiB0aGUgc291cmNlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiY2hlY2tfY3ljbGUgaXMgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2Ugc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIHNvdXJjZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiZXJyb3IgcmVwcmVzZW50cyBhbnkgZXJyb3JzIGVuY291bnRlcmVkIHdoZW4gY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Imxhc3RfY2hlY2tfdGltZSBpcyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IHNvdXJjZSBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgdGhhdCB0aGUgb3BlcmF0b3IgYXR0ZW1wdGVkIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZV9kZWZpbmVkIHJlcHJlc2VudHMgd2hldGhlciB0aGUgZGVmaW5lZCBzb3VyY2UgbmFtZSBleGlzdHMgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sInNvdXJjZXNfcGF0aCI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzdG9yYWdlIjp7ImRlc2NyaXB0aW9uIjoiU3RvcmFnZSBpcyBhIGZpZWxkIiwicHJvcGVydGllcyI6eyJ2b2x1bWVfbW91bnRlZCI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU1vdW50ZWQgaXMgYSBib29sIHRvIGluZGljYXRlIGlmIHN0b3JhZ2Ugdm9sdW1lIHdhcyBtb3VudGVkLiIsInR5cGUiOiJib29sZWFuIn0sInZvbHVtZV90eXBlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lVHlwZSBpcyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2b2x1bWUgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgdXBsb2FkaW5nIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJpbmdyZXNzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlcyBpbiB0aGUgbGFzdCBwYXlsb2FkIHRoYXQgd2FzIHNlbnQuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwibGFzdF9wYXlsb2FkX21hbmlmZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRNYW5pZmVzdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBtYW5pZmVzdElEIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBuYW1lIG9mIHRoZSBsYXN0IHBheWxvYWQgZmlsZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9yZXF1ZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRSZXF1ZXN0SUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaW5zaWdodHMgcmVxdWVzdCBpZCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3VwbG9hZF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxVcGxvYWRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCB1cGxvYWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF91cGxvYWRfc3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFVwbG9hZFN0YXR1cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBodHRwIHN0YXR1cyBvZiB0aGUgbGFzdCB1cGxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBzaG91bGQgdXBsb2FkIHRvIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgdHJ1ZSIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF9jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInNwZWMiXSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6W10sInN0b3JlZFZlcnNpb25zIjpbXX19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjI5NzVhZDc3MmZhNzlhZGE1OThhYjVmMDU0ZTJjYmQ4MjFkY2I3MzRiZDdiMTFkMGNiYzdiMzhkN2IyOWJlNTQiLCJjcmVhdGVkQXQiOiIyMDIzLTEwLTE4VDEzOjEwOjU0WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjMyLjAiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMC4xIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAzLjAuMSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LiBUaGUgb3BlcmF0b3IgcnVucyBvbiB0aGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBPcGVuc2hpZnQuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzIHRoYXQgaXQgdXBsb2FkcyB0byBDb3N0IE1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pIHRvIGJlIHByb2Nlc3NlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBDb3N0IE1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBDb3N0IE1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgdGhlIHJlc3VsdHMgb2YgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIENvc3QgTWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBDb3N0IE1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYzLjAuMDpcbiogRGFpbHkgcmVwb3J0IGdlbmVyYXRpb246IE9wZXJhdG9yIHZlcnNpb25zIHByaW9yIHRvIHYzLjAuMCBnZW5lcmF0ZWQgc2VxdWVudGlhbCByZXBvcnRzLiBOb3csIHJlcG9ydHMgYXJlIGdlbmVyYXRlZCBzdGFydGluZyBhdCAwOjAwIFVUQy4gQW55IHBheWxvYWRzIGdlbmVyYXRlZCB0aHJvdWdob3V0IGEgZ2l2ZW4gZGF5IHdpbGwgY29udGFpbiBhbGwgZGF0YSBzdGFydGluZyBmcm9tIDA6MDAgVVRDLiBPbmNlIHRoZSBuZXh0IGRheSBzdGFydHMsIHRoZSBwcmV2aW91cyBkYXkncyByZXBvcnRzIGFyZSBwYWNrYWdlZCwgYW5kIHRoZSBuZXcgcmVwb3J0IGFnYWluIHN0YXJ0cyBhdCAwOjAwIFVUQyBmb3IgdGhlIGN1cnJlbnQgZGF5LlxuKiBGYWlsZWQgcXVlcnkgcmV0cnk6IEluIGFuIGF0dGVtcHQgdG8gcHJldmVudCBtaXNzaW5nIGRhdGEsIHRoZSBvcGVyYXRvciB3aWxsIHJldHJ5IHF1ZXJpZXMgZnJvbSB0aGUgbGFzdCBzdWNjZXNzZnVsIHF1ZXJ5IHRpbWUsIHVwIHRvIDUgdGltZXMuXG5cbiMjIE5ldyBpbiB2Mi4wLjA6XG4qIEFkZHMgbWV0cmljcyBhbmQgcmVwb3J0IGdlbmVyYXRpb24gZm9yIHJlc291cmNlIG9wdGltaXphdGlvbi4gVGhpcyBmZWF0dXJlIHdpbGwgY29sbGVjdCBhZGRpdGlvbmFsIHVzYWdlIG1ldHJpY3MgYW5kIGNyZWF0ZSBhIG5ldyByZXBvcnQgaW4gdGhlIHBheWxvYWQuIFRoZXNlIG1ldHJpY3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb25gIHRvIGB0cnVlYC5cbiogQ29sbGVjdCBhbGwgYXZhaWxhYmxlIFByb21ldGhldXMgZGF0YSB1cG9uIENSIGNyZWF0aW9uLiBUaGlzIGZlYXR1cmUgb25seSBhcHBsaWVzIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy4gVGhlIG9wZXJhdG9yIHdpbGwgY2hlY2sgdGhlIG1vbml0b3Jpbmcgc3RhY2sgY29uZmlndXJhdGlvbiBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UuIFRoZSBvcGVyYXRvciB3aWxsIHVzZSB0aGUgYHJldGVudGlvbmAgcGVyaW9kIHNldCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpZiBkZWZpbmVkLCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gT3RoZXJ3aXNlIGl0IHdpbGwgZmFsbCBiYWNrIHRvIGNvbGxlY3RpbmcgMTQgZGF5cyBvZiBkYXRhLCBpZiBhdmFpbGFibGUuIFRoaXMgZGF0YSBjb2xsZWN0aW9uIG1heSBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGFgIHRvIGBmYWxzZWAuIFR1cm5pbmcgdGhpcyBmZWF0dXJlIG9mZiByZXN1bHRzIGluIHRoZSBvcGVyYXRvciBjb2xsZWN0aW5nIG1ldHJpY3MgZnJvbSB0aGUgdGltZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQsIGZvcndhcmQuXG5cbiMjIExpbWl0YXRpb25zIGFuZCBQcmUtUmVxdWlzaXRlc1xuIyMjIyBMaW1pdGF0aW9ucyAoUG90ZW50aWFsIGZvciBtZXRyaWNzIGRhdGEgbG9zcylcbiogQSBzb3VyY2UgKiptdXN0KiogZXhpc3QgaW4gY29uc29sZS5yZWRoYXQuY29tIGZvciBhbiB1cGxvYWRlZCBwYXlsb2FkIHRvIGJlIHByb2Nlc3NlZCBieSBDb3N0IE1hbmFnZW1lbnQuIFRoZSBvcGVyYXRvciBzZW5kcyB0aGUgcGF5bG9hZCB0byB0aGUgUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2Ugd2hpY2ggdXN1YWxseSByZXR1cm5zIHN1Y2Nlc3NmdWxseSwgYnV0IHRoZSBvcGVyYXRvciBkb2VzIG5vdCBjdXJyZW50bHkgY29uZmlybSB3aXRoIENvc3QgTWFuYWdlbWVudCB0aGF0IHRoZSBwYXlsb2FkIHdhcyBwcm9jZXNzZWQuIEFmdGVyIEluZ3Jlc3MgYWNjZXB0cyB0aGUgdXBsb2FkZWQgcGF5bG9hZCwgaXQgaXMgZGVsZXRlZCBmcm9tIHRoZSBvcGVyYXRvci4gSWYgdGhlIGRhdGEgd2l0aGluIHRoZSBwYXlsb2FkIGlzIG5vdCBwcm9jZXNzZWQsIGEgZ2FwIHdpbGwgYmUgaW50cm9kdWNlZCBpbiB0aGUgdXNhZ2UgbWV0cmljcy4gRGF0YSBtYXkgYmUgcmVjb2xsZWN0ZWQgYnkgZGVsZXRpbmcgdGhlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLCBjcmVhdGluZyBhIG5ldyBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgYW5kIHNldHRpbmcgYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAuIFRoaXMgcmUtY29sbGVjdGlvbiBvZiBkYXRhIHdpbGwgZ2F0aGVyIGFsbCBkYXRhIHN0b3JlZCBpbiBQcm9tZXRoZXVzLCB1cCB0byA5MCBkYXlzLlxuXG4qKk5vdGUqKiBUaGUgZm9sbG93aW5nIGxpbWl0YXRpb25zIGFyZSBzcGVjaWZpYyB0byBvcGVyYXRvcnMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcms6XG4qIFRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgd2lsbCBub3QgYmUgYWJsZSB0byBnZW5lcmF0ZSBuZXcgcmVwb3J0cyBpZiB0aGUgUFZDIHN0b3JhZ2UgaXMgZnVsbC4gSWYgdGhpcyBvY2N1cnMsIHRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZGVsZXRlZCBmcm9tIHRoZSBQVkMgc28gdGhhdCB0aGUgb3BlcmF0b3IgY2FuIGZ1bmN0aW9uIGFzIG5vcm1hbC5cbiogVGhlIGRlZmF1bHQgcmVwb3J0IHJldGVudGlvbiBpcyAzMCByZXBvcnRzIChhYm91dCBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEpLiBUaGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgYW5kIHVwbG9hZGVkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBldmVyeSB3ZWVrLCBvciB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgdGhlIGRhdGEgd2lsbCBiZSBsb3N0LlxuXG4jIyMjIFN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcblRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGFuZCB1c2UgdGhlIGZvbGxvd2luZyBQVkMgd2hlbiBpbnN0YWxsZWQ6XG5cbiAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcblxuSWYgYSBkaWZmZXJlbnQgUFZDIHNob3VsZCBiZSB1dGlsaXplZCwgYSB2YWxpZCBQVkMgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGFzIGRlc2NyaWJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBiZWxvdy4gVGhlIFBWQyB0byBiZSB1c2VkIG1heSBleGlzdCBhbHJlYWR5LCBvciB0aGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBpdC5cblxuVG8gdXNlIHRoZSBkZWZhdWx0IHNwZWNpZmljYXRpb24sIHRoZSBmb2xsb3cgYXNzdW1wdGlvbnMgbXVzdCBiZSBtZXQ6XG4xLiBBIGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGRlZmluZWQuXG4yLiBEeW5hbWljIHByb3Zpc2lvbmluZyBmb3IgdGhhdCBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBlbmFibGVkLlxuXG5JZiB0aGVzZSBhc3N1bXB0aW9ucyBhcmUgbm90IG1ldCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IGRlcGxveSBjb3JyZWN0bHkuIEluIHRoZXNlIGNhc2VzLCBzdG9yYWdlIG11c3QgYmUgbWFudWFsbHkgY29uZmlndXJlZC4gQWZ0ZXIgY29uZmlndXJpbmcgc3RvcmFnZSwgYSB2YWxpZCBQVkMgdGVtcGxhdGUgc2hvdWxkIGJlIHN1cHBsaWVkIGluIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBzcGVjIG9mIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IuXG5cbiMjIENvbmZpZ3VyYWJsZSBwYXJhbWV0ZXJzOlxuICAqIGBhdXRoZW50aWNhdGlvbmA6XG4gICAgKiBgdHlwZTogdG9rZW5gIC1cdTAwM2UgVGhlIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBmb3IgY29ubmVjdGluZyB0byBgY29uc29sZS5yZWRoYXQuY29tYC4gVGhlIGRlZmF1bHQgYW5kIHByZWZlcnJlZCBtZXRob2QgaXMgYHRva2VuYC4gYGJhc2ljYCBpcyB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYC4gVGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgKipvbmx5IGlmKiogdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYC5cbiAgKiBgcGFja2FnaW5nYDpcbiAgICAqIGBtYXhfcmVwb3J0c190b19zdG9yZTogMzBgIC1cdTAwM2UgVGhlIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlIHdoZW4gY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUuIFRoZSBkZWZhdWx0IGlzIDMwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBubyBtYXhpbXVtLiBXaGVuIHRoZSBvcGVyYXRvciBpcyBub3QgY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUsIHRoaXMgcGFyYW1ldGVyIGhhcyBubyBlZmZlY3QuIFJlcG9ydHMgYXJlIHJlbW92ZWQgYXMgc29vbiBhcyB0aGV5IGFyZSB1cGxvYWRlZC5cbiAgICAqIGBtYXhfc2l6ZTogMTAwYCAtXHUwMDNlIFRoZSBtYXhpbXVtIHNpemUgZm9yIHBhY2thZ2VkIGZpbGVzIGluIE1lZ2FieXRlcyBwcmlvciB0byBjb21wcmVzc2lvbi4gVGhlIGRlZmF1bHQgaXMgMTAwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBtYXhpbXVtIG9mIDEwMC5cbiAgKiBgcHJvbWV0aGV1c19jb25maWdgOlxuICAgICogYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGNvbGxlY3RpbmcgYWxsIGF2YWlsYWJsZSBkYXRhIGluIFByb21ldGhldXMgKip1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbioqIChUaGlzIHBhcmFtZXRlciB3aWxsIHN0YXJ0IHRvIGFwcGVhciBpbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzIHRoYXQgd2VyZSBjcmVhdGVkIHByaW9yIHRvIHYyLjAuMCBidXQgd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IHVubGVzcyB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGRlbGV0ZWQgYW5kIHJlY3JlYXRlZCkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC4gVGhlIG9wZXJhdG9yIHdpbGwgZmlyc3QgbG9vayBmb3IgYSBgcmV0ZW50aW9uYCBwZXJpb2QgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlIGFuZCBnYXRoZXIgZGF0YSBvdmVyIHRoaXMgdGltZSBwZXJpb2QgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIElmIHRoaXMgY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0LCB0aGUgZGVmYXVsdCBpcyAxNCBkYXlzLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQ6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgZGlzYWJsaW5nIHRoZSBjb2xsZWN0aW9uIG9mIG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbjogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgUmVzb3VyY2UgT3B0aW1pemF0aW9uLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgY29udGV4dF90aW1lb3V0OiAxMjBgIC1cdTAwM2UgVGhlIHRpbWUgaW4gc2Vjb25kcyBiZWZvcmUgUHJvbWV0aGV1cyBxdWVyaWVzIHRpbWVvdXQgZHVlIHRvIGV4Y2VlZGluZyBjb250ZXh0IHRpbWVvdXQuIFRoZSBkZWZhdWx0IGlzIDEyMCwgd2l0aCBhIG1pbmltdW0gb2YgMTAgYW5kIG1heGltdW0gb2YgMTgwLlxuICAqIGBzb3VyY2VgOlxuICAgICogYG5hbWU6ICcnYCAtXHUwMDNlIFRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGluIGBjb25zb2xlLnJlZGhhdC5jb21gLiBJZiB0aGUgbmFtZSB2YWx1ZSBpcyBlbXB0eSwgdGhlIGRlZmF1bHQgaW50ZXJncmF0aW9uIG5hbWUgaXMgdGhlICoqY2x1c3RlciBpZCoqLlxuICAgICogYGNyZWF0ZV9zb3VyY2U6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3Igd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIHRoZSBzb3VyY2UgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGEgc291cmNlIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhIHNvdXJjZSBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSB0aGUgYG5hbWVgIGZpZWxkIHZhbHVlIHdpdGggdGhlIHByZWZlcnJlZCBuYW1lIG9mIHRoZSBzb3VyY2UgdG8gYmUgY3JlYXRlZC5cbiAgICAqIFJlcGxhY2UgdGhlIGBjcmVhdGVfc291cmNlYCBmaWVsZCB2YWx1ZSB3aXRoIGB0cnVlYC5cblxuICAgICoqTm90ZToqKiBpZiB0aGUgc291cmNlIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgc291cmNlIGV4aXN0cy5cblxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYyAoYmVsb3cgaXMgb25seSBhIHRlbXBsYXRlLiBBbnkgX3ZhbGlkXyBgUGVyc2lzdGVudFZvbHVtZUNsYWltYCBtYXkgYmUgZGVmaW5lZCBoZXJlKTpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIFNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gQ29zdCBNYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRpbmcgYSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0YCB0YWJcbjMuIENyZWF0ZSBhIG5ldyBgUmVkIEhhdCBPcGVuc2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtYCBzb3VyY2U6XG4gICAgKiBnaXZlIHRoZSBzb3VyY2UgYSB1bmlxdWUgbmFtZVxuICAgICogYWRkIHRoZSBDb3N0IE1hbmFnZW1lbnQgYXBwbGljYXRpb25cbiAgICAqIGFkZCB0aGUgY2x1c3RlciBpZGVudGlmaWVyXG40LiBJbiB0aGUgU291cmNlIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIHNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7fSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1sZWFkZXItZWxlY3QiXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6Mjk3NWFkNzcyZmE3OWFkYTU5OGFiNWYwNTRlMmNiZDgyMWRjYjczNGJkN2IxMWQwY2JjN2IzOGQ3YjI5YmU1NCIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJtYWludGFpbmVycyI6W3siZW1haWwiOiJjb3N0bWFuYWdlbWVudEByZWRoYXQuY29tIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50In1dLCJtYXR1cml0eSI6ImFscGhhIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6Mjk3NWFkNzcyZmE3OWFkYTU5OGFiNWYwNTRlMmNiZDgyMWRjYjczNGJkN2IxMWQwY2JjN2IzOGQ3YjI5YmU1NCIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLTI5NzVhZDc3MmZhNzlhZGE1OThhYjVmMDU0ZTJjYmQ4MjFkY2I3MzRiZDdiMTFkMGNiYzdiMzhkN2IyOWJlNTQtYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6Mjk3NWFkNzcyZmE3OWFkYTU5OGFiNWYwNTRlMmNiZDgyMWRjYjczNGJkN2IxMWQwY2JjN2IzOGQ3YjI5YmU1NCIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4wLjAiLCJ2ZXJzaW9uIjoiMy4wLjEifX0= +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:afcee273a058fa1ac7643271ee775bdc1ca5d765f0ea36af3b3a6633d9fcbd73 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:2975ad772fa79ada598ab5f054e2cbd821dcb734bd7b11d0cbc7b38d7b29be54 + name: costmanagement-metrics-rhel8-operator-2975ad772fa79ada598ab5f054e2cbd821dcb734bd7b11d0cbc7b38d7b29be54-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:2975ad772fa79ada598ab5f054e2cbd821dcb734bd7b11d0cbc7b38d7b29be54 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:d3962cd30fa64b2dee9aca114a2b91f14c01e490024e5cfaf40246f5e88072d1 +name: costmanagement-metrics-operator.3.1.0 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 3.1.0 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjEzLjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIFRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZW5kcG9pbnQgdXNlZCB0byBvYnRhaW4gdGhlIHNlcnZpY2UgYWNjb3VudCB0b2tlbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vc3NvLnJlZGhhdC5jb20vYXV0aC9yZWFsbXMvcmVkaGF0LWV4dGVybmFsL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYC4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYywgc2VydmljZS1hY2NvdW50IG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiAoZGVwcmVjYXRlZCkgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwic2VydmljZS1hY2NvdW50XCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCBmcm9tIHRoZSBzZWNyZXQgY29udGFpbmluZyBzZXJ2aWNlIGFjY291bnQgaW5mb3JtYXRpb24uIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZWZhdWx0IjoxNDQwLCJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiY3JlYXRlX3NvdXJjZSB0b2dnbGVzIHRoZSBjcmVhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvc291cmNlcy92MS4wLyIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIHNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tIG9yIGNoZWNrL2NyZWF0ZSBzb3VyY2VzLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiYWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZSBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIFdoZW4gdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIGlzIGVuYWJsZWQsIGRhdGFTb3VyY2UgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZVJlZiwgYW5kIGRhdGFTb3VyY2VSZWYgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZSB3aGVuIGRhdGFTb3VyY2VSZWYubmFtZXNwYWNlIGlzIG5vdCBzcGVjaWZpZWQuIElmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJkYXRhU291cmNlUmVmIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZVJlZiBzcGVjaWZpZXMgdGhlIG9iamVjdCBmcm9tIHdoaWNoIHRvIHBvcHVsYXRlIHRoZSB2b2x1bWUgd2l0aCBkYXRhLCBpZiBhIG5vbi1lbXB0eSB2b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uIGNvcmUgb2JqZWN0KSBvciBhIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3QuIFdoZW4gdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQsIHZvbHVtZSBiaW5kaW5nIHdpbGwgb25seSBzdWNjZWVkIGlmIHRoZSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljIHByb3Zpc2lvbmVyLiBUaGlzIGZpZWxkIHdpbGwgcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGF0YVNvdXJjZSBmaWVsZCBhbmQgYXMgc3VjaCBpZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3aGVuIG5hbWVzcGFjZSBpc24ndCBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgYm90aCBmaWVsZHMgKGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFdoZW4gbmFtZXNwYWNlIGlzIHNwZWNpZmllZCBpbiBkYXRhU291cmNlUmVmLCBkYXRhU291cmNlIGlzbid0IHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhbmQgbXVzdCBiZSBlbXB0eS4gVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6ICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyB0d28gc3BlY2lmaWMgdHlwZXMgb2Ygb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3MgYW55IG5vbi1jb3JlIG9iamVjdCwgYXMgd2VsbCBhcyBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0cy4gKiBXaGlsZSBkYXRhU291cmNlIGlnbm9yZXMgZGlzYWxsb3dlZCB2YWx1ZXMgKGRyb3BwaW5nIHRoZW0pLCBkYXRhU291cmNlUmVmIHByZXNlcnZlcyBhbGwgdmFsdWVzLCBhbmQgZ2VuZXJhdGVzIGFuIGVycm9yIGlmIGEgZGlzYWxsb3dlZCB2YWx1ZSBpcyBzcGVjaWZpZWQuICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzIGluIGFueSBuYW1lc3BhY2VzLiAoQmV0YSkgVXNpbmcgdGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4gKEFscGhhKSBVc2luZyB0aGUgbmFtZXNwYWNlIGZpZWxkIG9mIGRhdGFTb3VyY2VSZWYgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWVzcGFjZSBpcyB0aGUgbmFtZXNwYWNlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQgTm90ZSB0aGF0IHdoZW4gYSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCBhIGdhdGV3YXkubmV0d29ya2luZy5rOHMuaW8vUmVmZXJlbmNlR3JhbnQgb2JqZWN0IGlzIHJlcXVpcmVkIGluIHRoZSByZWZlcmVudCBuYW1lc3BhY2UgdG8gYWxsb3cgdGhhdCBuYW1lc3BhY2UncyBvd25lciB0byBhY2NlcHQgdGhlIHJlZmVyZW5jZS4gU2VlIHRoZSBSZWZlcmVuY2VHcmFudCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLiAoQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBJZiBSZWNvdmVyVm9sdW1lRXhwYW5zaW9uRmFpbHVyZSBmZWF0dXJlIGlzIGVuYWJsZWQgdXNlcnMgYXJlIGFsbG93ZWQgdG8gc3BlY2lmeSByZXNvdXJjZSByZXF1aXJlbWVudHMgdGhhdCBhcmUgbG93ZXIgdGhhbiBwcmV2aW91cyB2YWx1ZSBidXQgbXVzdCBzdGlsbCBiZSBoaWdoZXIgdGhhbiBjYXBhY2l0eSByZWNvcmRlZCBpbiB0aGUgc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsIHRoYXQgYXJlIHVzZWQgYnkgdGhpcyBjb250YWluZXIuIFxuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIHRoZSBEeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS4gXG4gVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mIHRoZSBQb2Qgd2hlcmUgdGhpcyBmaWVsZCBpcyB1c2VkLiBJdCBtYWtlcyB0aGF0IHJlc291cmNlIGF2YWlsYWJsZSBpbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyBhIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJzdG9yYWdlQ2xhc3NOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2tlbl91cmwiOnsiZGVzY3JpcHRpb24iOiJUb2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCB1c2VkIHRvIGdlbmVyYXRlIGEgc2VydmljZSBhY2NvdW50IHRva2VuLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIiwic2VydmljZS1hY2NvdW50Il0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBXaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsIGFuZCBkYXRhU291cmNlUmVmIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2Ugd2hlbiBkYXRhU291cmNlUmVmLm5hbWVzcGFjZSBpcyBub3Qgc3BlY2lmaWVkLiBJZiB0aGUgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgdGhlbiBkYXRhU291cmNlUmVmIHdpbGwgbm90IGJlIGNvcGllZCB0byBkYXRhU291cmNlLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGRhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGJvdGggZmllbGRzIChkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBXaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgZGF0YVNvdXJjZSBpc24ndCBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYW5kIG11c3QgYmUgZW1wdHkuIFRoZXJlIGFyZSB0aHJlZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmOiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgZGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgZGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgbG9jYWwgb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3Mgb2JqZWN0cyBpbiBhbnkgbmFtZXNwYWNlcy4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIChBbHBoYSkgVXNpbmcgdGhlIG5hbWVzcGFjZSBmaWVsZCBvZiBkYXRhU291cmNlUmVmIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIE5vdGUgdGhhdCB3aGVuIGEgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgYSBnYXRld2F5Lm5ldHdvcmtpbmcuazhzLmlvL1JlZmVyZW5jZUdyYW50IG9iamVjdCBpcyByZXF1aXJlZCBpbiB0aGUgcmVmZXJlbnQgbmFtZXNwYWNlIHRvIGFsbG93IHRoYXQgbmFtZXNwYWNlJ3Mgb3duZXIgdG8gYWNjZXB0IHRoZSByZWZlcmVuY2UuIFNlZSB0aGUgUmVmZXJlbmNlR3JhbnQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gKEFscGhhKSBUaGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwcm9tZXRoZXVzIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcHJlbWV0aGV1cyBxdWVyaWVzLiIsInByb3BlcnRpZXMiOnsiY29uZmlndXJhdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgY29uZmlndXJhdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNvbnRleHRfdGltZW91dCI6eyJkZXNjcmlwdGlvbiI6IkNvbnRleHRUaW1lb3V0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdGUgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25Db3N0TWFuYWdlbWVudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyByZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gSW50ZWdyYXRpb24gd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgaW50ZWdyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0X2NoZWNrX3RpbWUgaXMgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJjcmVhdGVkQXQiOiIyMDIzLTEyLTA5VDAxOjEyOjA0WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjMyLjAiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMS4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAzLjEuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LiBUaGUgb3BlcmF0b3IgcnVucyBvbiB0aGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBPcGVuc2hpZnQuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzIHRoYXQgaXQgdXBsb2FkcyB0byBDb3N0IE1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pIHRvIGJlIHByb2Nlc3NlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBDb3N0IE1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBDb3N0IE1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgdGhlIHJlc3VsdHMgb2YgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIENvc3QgTWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhbiBpbnRlZ3JhdGlvbiBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEFuIGludGVncmF0aW9uIGlzIHJlcXVpcmVkIGZvciBDb3N0IE1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YCBcblxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2Agb3IgYHNlcnZpY2UtYWNjb3VudGAuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICAqIGZvciBiYXNpYyBhdXRoIHR5cGUgKGRlcHJlY2F0ZWQpXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcbiAgICAgICAgICBcbiAgICAgICAgKiBmb3Igc2VydmljZS1hY2NvdW50IGF1dGggdHlwZVxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogc2VydmljZS1hY2NvdW50XG4gICAgICAgIGBgYFxuXG4zLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gY3JlYXRlIGEgY29zdCBtYW5hZ2VtZW50IGludGVncmF0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgdGhlIGBuYW1lYCBmaWVsZCB2YWx1ZSB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdG8gYmUgY3JlYXRlZC5cbiAgICAqIFJlcGxhY2UgdGhlIGBjcmVhdGVfc291cmNlYCBmaWVsZCB2YWx1ZSB3aXRoIGB0cnVlYC5cblxuICAgICoqTm90ZToqKiBpZiB0aGUgaW50ZWdyYXRpb24gYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgdGhlIGVtcHR5IHN0cmluZyB2YWx1ZSBvZiB0aGUgYG5hbWVgIGZpZWxkIHdpdGggdGhlIGV4aXN0aW5nIG5hbWUsIGFuZCBsZWF2ZSBgY3JlYXRlX3NvdXJjZWAgYXMgZmFsc2UuIFRoaXMgd2lsbCBhbGxvdyB0aGUgb3BlcmF0b3IgdG8gY29uZmlybSB0aGF0IHRoZSBpbnRlZ3JhdGlvbiBleGlzdHMuXG5cbjQuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudFZvbHVtZUNsYWltIGNhbGxlZCBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhYCB3aXRoIDEwR2kgb2Ygc3RvcmFnZS4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIHVzZSBvciBjcmVhdGUgYSBkaWZmZXJlbnQgUFZDLCBlZGl0IHRoZSBmb2xsb3dpbmcgaW4gdGhlIHNwZWM6XG4gICAgKiBBZGQgdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiB0byB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgaW4gdGhlIHNwZWM6XG5cbiAgICAgIGBgYFxuICAgICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICAgIG5hbWU6IFx1MDAzY2luc2VydC1uYW1lXHUwMDNlXG4gICAgICAgICAgc3BlYzpcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyBSZXN0cmljdGVkIE5ldHdvcmsgVXNhZ2UgKGRpc2Nvbm5lY3RlZC9haXItZ2FwcGVkIG1vZGUpXG4jIyBJbnN0YWxsYXRpb25cblRvIGluc3RhbGwgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgZm9sbG93IHRoZSBbb2xtIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS9sYXRlc3Qvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLiBUaGUgb3BlcmF0b3IgaXMgZm91bmQgaW4gdGhlIGBjb21tdW5pdHktb3BlcmF0b3JzYCBDYXRhbG9nIGluIHRoZSBgcmVnaXN0cnkucmVkaGF0LmlvL3JlZGhhdC9jb21tdW5pdHktb3BlcmF0b3ItaW5kZXg6bGF0ZXN0YCBJbmRleC4gSWYgcHJ1bmluZyB0aGUgaW5kZXggYmVmb3JlIHB1c2hpbmcgdG8gdGhlIG1pcnJvcmVkIHJlZ2lzdHJ5LCBrZWVwIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgcGFja2FnZS5cblxuV2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgb3BlcmF0b3IgcXVlcmllcyBwcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IHVzYWdlIG1ldHJpY3MsIHdyaXRlcyB0aGUgcXVlcnkgcmVzdWx0cyB0byBDU1YgZmlsZXMsIGFuZCBwYWNrYWdlcyB0aGUgcmVwb3J0cyBmb3Igc3RvcmFnZSBpbiB0aGUgUFZDLiBUaGVzZSByZXBvcnRzIHRoZW4gbmVlZCB0byBiZSBtYW51YWxseSBkb3dubG9hZGVkIGZyb20gdGhlIGNsdXN0ZXIgYW5kIHVwbG9hZGVkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS5cblxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGZvciBhIHJlc3RyaWN0ZWQgbmV0d29ya1xuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gU3BlY2lmeSB0aGUgZGVzaXJlZCBzdG9yYWdlLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnQgVm9sdW1lIENsYWltIGNhbGxlZCBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhYCB3aXRoIDEwR2kgb2Ygc3RvcmFnZS4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIHVzZSBvciBjcmVhdGUgYSBkaWZmZXJlbnQgUFZDLCBlZGl0IHRoZSBmb2xsb3dpbmcgaW4gdGhlIHNwZWM6XG4gICAgKiBBZGQgdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiB0byB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgaW4gdGhlIHNwZWMgKGJlbG93IGlzIG9ubHkgYSB0ZW1wbGF0ZS4gQW55IF92YWxpZF8gYFBlcnNpc3RlbnRWb2x1bWVDbGFpbWAgbWF5IGJlIGRlZmluZWQgaGVyZSk6XG5cbiAgICAgIGBgYFxuICAgICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICAgIG5hbWU6IFx1MDAzY2luc2VydC1uYW1lXHUwMDNlXG4gICAgICAgICAgc3BlYzpcbiAgICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IFx1MDAzY2luc2VydC1jbGFzcy1uYW1lXHUwMDNlXG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG4zLiAoT3B0aW9uYWwpIFNwZWNpZnkgdGhlIGRlc2lyZWQgcmVwb3J0IHJldGVudGlvbi4gVGhlIG9wZXJhdG9yIHdpbGwgcmV0YWluIDMwIHJlcG9ydHMgYnkgZGVmYXVsdC4gVGhpcyBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IG9uZSB3ZWVrJ3Mgd29ydGggb2YgZGF0YSBpZiB1c2luZyB0aGUgZGVmYXVsdCBwYWNrYWdpbmcgY3ljbGUuIFRvIG1vZGlmeSB0aGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHM6XG4gICAgKiBDaGFuZ2UgdGhlIGBwYWNrYWdpbmdgIHNwZWMgZmllbGQgYG1heF9yZXBvcnRzX3RvX3N0b3JlYCB0byB0aGUgZGVzaXJlZCBudW1iZXIgb2YgcmVwb3J0cyB0byByZXRhaW4uIE9uY2UgdGhpcyBtYXggbnVtYmVyIGlzIHJlYWNoZWQsIHRoZSBvcGVyYXRvciB3aWxsIHN0YXJ0IHJlbW92aW5nIHRoZSBvbGRlc3QgcGFja2FnZXMgcmVtYWluaW5nIG9uIHRoZSBQVkM6XG5cbiAgICAgIGBgYFxuICAgICAgICBwYWNrYWdpbmc6XG4gICAgICAgICAgbWF4X3NpemVfTUI6IDEwMFxuICAgICAgICAgIG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMFxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogVGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzIGRpcmVjdGx5IGFmZmVjdHMgdGhlIGZyZXF1ZW5jeSB0aGF0IHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGZyb20gdGhlIFBWQy4gVGFrZSBjYXV0aW9uIGluIHNldHRpbmcgdGhpcyB0byBhIGhpZ2hlciBudW1iZXIgb2YgcmVwb3J0cywgYXMgdGhlIG9wZXJhdG9yIGNhbm5vdCB3cml0ZSBkYXRhIHRvIHRoZSBQVkMgaWYgdGhlIHN0b3JhZ2UgaXMgZnVsbC5cbjQuIFRvIGNvbmZpZ3VyZSB0aGUgb3BlcmF0b3IgdG8gcGVyZm9ybSBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgc2V0IHRoZSBgdXBsb2FkX3RvZ2dsZWAgdG8gYGZhbHNlYDpcblxuICBgYGBcbiAgICB1cGxvYWQ6XG4gICAgICB1cGxvYWRfY3ljbGU6IDM2MFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICBzcGVjOlxuICAgICAgdm9sdW1lczpcbiAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbTpcbiAgICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICAgIGNvbW1hbmQ6IFsnc2xlZXAnLCAnaW5maW5pdHknXVxuICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYW4gSW50ZWdyYXRpb25cbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhbiBpbnRlZ3JhdGlvbi4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNvbnNvbGUucmVkaGF0LmNvbSBwbGF0Zm9ybSwgb3BlbiB0aGUgW0ludGVncmF0aW9ucyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9pbnRlZ3JhdGlvbnMvKSB0byBiZWdpbiBhZGRpbmcgYW4gT3BlblNoaWZ0IGludGVncmF0aW9uIHRvIENvc3QgTWFuYWdlbWVudDpcblxuUHJlcmVxdWlzaXRlczpcbiogVGhlIGNsdXN0ZXIgaWRlbnRpZmllciB3aGljaCBjYW4gYmUgZm91bmQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiwgdGhlIGNsdXN0ZXIgT3ZlcnZpZXcgcGFnZSwgb3IgdGhlIGNsdXN0ZXIgSGVscCBcdTAwM2UgQWJvdXQuXG5cbkNyZWF0aW5nIGFuIGludGVncmF0aW9uOlxuMS4gTmF2aWdhdGUgdG8gdGhlIEludGVncmF0aW9ucyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0YCB0YWJcbjMuIENyZWF0ZSBhIG5ldyBgUmVkIEhhdCBPcGVuc2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtYCBpbnRlZ3JhdGlvbjpcbiAgICAqIGdpdmUgdGhlIGludGVncmF0aW9uIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZSB3aXphcmQsIHJldmlldyB0aGUgZGV0YWlscyBhbmQgY2xpY2sgYEZpbmlzaGAgdG8gY3JlYXRlIHRoZSBzb3VyY2UuXG5cbiMjIFVwbG9hZCB0aGUgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudFxuVXBsb2FkaW5nIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnQgaXMgZG9uZSB0aHJvdWdoIGN1cmw6XG5cbiAgICAkIGN1cmwgLXZ2dnYgLUYgXCJmaWxlPUBGSUxFX05BTUUudGFyLmd6O3R5cGU9YXBwbGljYXRpb24vdm5kLnJlZGhhdC5oY2NtLnRhcit0Z3pcIiAgaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJsYWJlbCI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tbGVhZGVyLWVsZWN0Il0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci05OTllYjhhMGFlZjgzMzNlOTg1MTIwZWI1MjM2ZjZlNTNmODg3ZWY5MGYwMjg0MzliYjYzYmI1MjA1ZGQwMWJmLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMC4xIiwidmVyc2lvbiI6IjMuMS4wIn19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:d3962cd30fa64b2dee9aca114a2b91f14c01e490024e5cfaf40246f5e88072d1 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:999eb8a0aef8333e985120eb5236f6e53f887ef90f028439bb63bb5205dd01bf + name: costmanagement-metrics-rhel8-operator-999eb8a0aef8333e985120eb5236f6e53f887ef90f028439bb63bb5205dd01bf-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:999eb8a0aef8333e985120eb5236f6e53f887ef90f028439bb63bb5205dd01bf + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:0dba5aba9060c84b1e6d0f5c4322f39940ace6fc4b91891cfe3211df7f53895a +name: costmanagement-metrics-operator.3.1.1 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 3.1.1 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjEzLjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIFRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZW5kcG9pbnQgdXNlZCB0byBvYnRhaW4gdGhlIHNlcnZpY2UgYWNjb3VudCB0b2tlbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vc3NvLnJlZGhhdC5jb20vYXV0aC9yZWFsbXMvcmVkaGF0LWV4dGVybmFsL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYC4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYywgc2VydmljZS1hY2NvdW50IG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiAoZGVwcmVjYXRlZCkgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwic2VydmljZS1hY2NvdW50XCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCBmcm9tIHRoZSBzZWNyZXQgY29udGFpbmluZyBzZXJ2aWNlIGFjY291bnQgaW5mb3JtYXRpb24uIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZWZhdWx0IjoxNDQwLCJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiY3JlYXRlX3NvdXJjZSB0b2dnbGVzIHRoZSBjcmVhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvc291cmNlcy92MS4wLyIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIHNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tIG9yIGNoZWNrL2NyZWF0ZSBzb3VyY2VzLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiYWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZSBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIFdoZW4gdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIGlzIGVuYWJsZWQsIGRhdGFTb3VyY2UgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZVJlZiwgYW5kIGRhdGFTb3VyY2VSZWYgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZSB3aGVuIGRhdGFTb3VyY2VSZWYubmFtZXNwYWNlIGlzIG5vdCBzcGVjaWZpZWQuIElmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJkYXRhU291cmNlUmVmIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZVJlZiBzcGVjaWZpZXMgdGhlIG9iamVjdCBmcm9tIHdoaWNoIHRvIHBvcHVsYXRlIHRoZSB2b2x1bWUgd2l0aCBkYXRhLCBpZiBhIG5vbi1lbXB0eSB2b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uIGNvcmUgb2JqZWN0KSBvciBhIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3QuIFdoZW4gdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQsIHZvbHVtZSBiaW5kaW5nIHdpbGwgb25seSBzdWNjZWVkIGlmIHRoZSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljIHByb3Zpc2lvbmVyLiBUaGlzIGZpZWxkIHdpbGwgcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGF0YVNvdXJjZSBmaWVsZCBhbmQgYXMgc3VjaCBpZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3aGVuIG5hbWVzcGFjZSBpc24ndCBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgYm90aCBmaWVsZHMgKGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFdoZW4gbmFtZXNwYWNlIGlzIHNwZWNpZmllZCBpbiBkYXRhU291cmNlUmVmLCBkYXRhU291cmNlIGlzbid0IHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhbmQgbXVzdCBiZSBlbXB0eS4gVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6ICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyB0d28gc3BlY2lmaWMgdHlwZXMgb2Ygb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3MgYW55IG5vbi1jb3JlIG9iamVjdCwgYXMgd2VsbCBhcyBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0cy4gKiBXaGlsZSBkYXRhU291cmNlIGlnbm9yZXMgZGlzYWxsb3dlZCB2YWx1ZXMgKGRyb3BwaW5nIHRoZW0pLCBkYXRhU291cmNlUmVmIHByZXNlcnZlcyBhbGwgdmFsdWVzLCBhbmQgZ2VuZXJhdGVzIGFuIGVycm9yIGlmIGEgZGlzYWxsb3dlZCB2YWx1ZSBpcyBzcGVjaWZpZWQuICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzIGluIGFueSBuYW1lc3BhY2VzLiAoQmV0YSkgVXNpbmcgdGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4gKEFscGhhKSBVc2luZyB0aGUgbmFtZXNwYWNlIGZpZWxkIG9mIGRhdGFTb3VyY2VSZWYgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWVzcGFjZSBpcyB0aGUgbmFtZXNwYWNlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQgTm90ZSB0aGF0IHdoZW4gYSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCBhIGdhdGV3YXkubmV0d29ya2luZy5rOHMuaW8vUmVmZXJlbmNlR3JhbnQgb2JqZWN0IGlzIHJlcXVpcmVkIGluIHRoZSByZWZlcmVudCBuYW1lc3BhY2UgdG8gYWxsb3cgdGhhdCBuYW1lc3BhY2UncyBvd25lciB0byBhY2NlcHQgdGhlIHJlZmVyZW5jZS4gU2VlIHRoZSBSZWZlcmVuY2VHcmFudCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLiAoQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBJZiBSZWNvdmVyVm9sdW1lRXhwYW5zaW9uRmFpbHVyZSBmZWF0dXJlIGlzIGVuYWJsZWQgdXNlcnMgYXJlIGFsbG93ZWQgdG8gc3BlY2lmeSByZXNvdXJjZSByZXF1aXJlbWVudHMgdGhhdCBhcmUgbG93ZXIgdGhhbiBwcmV2aW91cyB2YWx1ZSBidXQgbXVzdCBzdGlsbCBiZSBoaWdoZXIgdGhhbiBjYXBhY2l0eSByZWNvcmRlZCBpbiB0aGUgc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsIHRoYXQgYXJlIHVzZWQgYnkgdGhpcyBjb250YWluZXIuIFxuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIHRoZSBEeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS4gXG4gVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mIHRoZSBQb2Qgd2hlcmUgdGhpcyBmaWVsZCBpcyB1c2VkLiBJdCBtYWtlcyB0aGF0IHJlc291cmNlIGF2YWlsYWJsZSBpbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyBhIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJzdG9yYWdlQ2xhc3NOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2tlbl91cmwiOnsiZGVzY3JpcHRpb24iOiJUb2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCB1c2VkIHRvIGdlbmVyYXRlIGEgc2VydmljZSBhY2NvdW50IHRva2VuLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIiwic2VydmljZS1hY2NvdW50Il0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBXaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsIGFuZCBkYXRhU291cmNlUmVmIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2Ugd2hlbiBkYXRhU291cmNlUmVmLm5hbWVzcGFjZSBpcyBub3Qgc3BlY2lmaWVkLiBJZiB0aGUgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgdGhlbiBkYXRhU291cmNlUmVmIHdpbGwgbm90IGJlIGNvcGllZCB0byBkYXRhU291cmNlLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGRhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGJvdGggZmllbGRzIChkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBXaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgZGF0YVNvdXJjZSBpc24ndCBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYW5kIG11c3QgYmUgZW1wdHkuIFRoZXJlIGFyZSB0aHJlZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmOiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgZGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgZGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgbG9jYWwgb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3Mgb2JqZWN0cyBpbiBhbnkgbmFtZXNwYWNlcy4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIChBbHBoYSkgVXNpbmcgdGhlIG5hbWVzcGFjZSBmaWVsZCBvZiBkYXRhU291cmNlUmVmIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIE5vdGUgdGhhdCB3aGVuIGEgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgYSBnYXRld2F5Lm5ldHdvcmtpbmcuazhzLmlvL1JlZmVyZW5jZUdyYW50IG9iamVjdCBpcyByZXF1aXJlZCBpbiB0aGUgcmVmZXJlbnQgbmFtZXNwYWNlIHRvIGFsbG93IHRoYXQgbmFtZXNwYWNlJ3Mgb3duZXIgdG8gYWNjZXB0IHRoZSByZWZlcmVuY2UuIFNlZSB0aGUgUmVmZXJlbmNlR3JhbnQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gKEFscGhhKSBUaGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwcm9tZXRoZXVzIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcHJlbWV0aGV1cyBxdWVyaWVzLiIsInByb3BlcnRpZXMiOnsiY29uZmlndXJhdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgY29uZmlndXJhdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNvbnRleHRfdGltZW91dCI6eyJkZXNjcmlwdGlvbiI6IkNvbnRleHRUaW1lb3V0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdGUgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25Db3N0TWFuYWdlbWVudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyByZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gSW50ZWdyYXRpb24gd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgaW50ZWdyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0X2NoZWNrX3RpbWUgaXMgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJjcmVhdGVkQXQiOiIyMDI0LTAxLTE3VDE1OjAxOjUzWiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjMyLjAiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMS4xIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAzLjEuMSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LiBUaGUgb3BlcmF0b3IgcnVucyBvbiB0aGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBPcGVuc2hpZnQuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzIHRoYXQgaXQgdXBsb2FkcyB0byBDb3N0IE1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pIHRvIGJlIHByb2Nlc3NlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBDb3N0IE1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBDb3N0IE1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgdGhlIHJlc3VsdHMgb2YgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIENvc3QgTWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhbiBpbnRlZ3JhdGlvbiBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEFuIGludGVncmF0aW9uIGlzIHJlcXVpcmVkIGZvciBDb3N0IE1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YFxuXG4zLiBTZWxlY3QgYENyZWF0ZWAuXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBGb3IgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYCBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgICogZm9yIGJhc2ljIGF1dGggdHlwZSAoZGVwcmVjYXRlZClcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IGJhc2ljXG4gICAgICAgIGBgYFxuXG4gICAgICAgICogZm9yIHNlcnZpY2UtYWNjb3VudCBhdXRoIHR5cGVcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IHNlcnZpY2UtYWNjb3VudFxuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBpbnRlZ3JhdGlvbiwgZWRpdCB0aGUgZm9sbG93aW5nIHZhbHVlcyBpbiB0aGUgYHNvdXJjZWAgZmllbGQ6XG4gICAgKiBSZXBsYWNlIHRoZSBgbmFtZWAgZmllbGQgdmFsdWUgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIGludGVncmF0aW9uIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgaW50ZWdyYXRpb24gZXhpc3RzLlxuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjIChiZWxvdyBpcyBvbmx5IGEgdGVtcGxhdGUuIEFueSBfdmFsaWRfIGBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1gIG1heSBiZSBkZWZpbmVkIGhlcmUpOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGFuIEludGVncmF0aW9uXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW50ZWdyYXRpb24uIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtJbnRlZ3JhdGlvbnMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3MvaW50ZWdyYXRpb25zLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBpbnRlZ3JhdGlvbiB0byBDb3N0IE1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGluZyBhbiBpbnRlZ3JhdGlvbjpcbjEuIE5hdmlnYXRlIHRvIHRoZSBJbnRlZ3JhdGlvbnMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdGAgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgaW50ZWdyYXRpb246XG4gICAgKiBnaXZlIHRoZSBpbnRlZ3JhdGlvbiBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2Ugd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgc291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2FwaS9pbmdyZXNzL3YxL3VwbG9hZCAtdSBVU0VSTkFNRTpQQVNTXG5cbndoZXJlIGBVU0VSTkFNRWAgYW5kIGBQQVNTYCBjb3JyZXNwb25kIHRvIHRoZSB1c2VyIGNyZWRlbnRpYWxzIGZvciBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4iLCJkaXNwbGF5TmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NEtQQ0V0TFNCSFpXNWxjbUYwYjNJNklFRmtiMkpsSUVsc2JIVnpkSEpoZEc5eUlESXlMakV1TUN3Z1UxWkhJRVY0Y0c5eWRDQlFiSFZuTFVsdUlDNGdVMVpISUZabGNuTnBiMjQ2SURZdU1EQWdRblZwYkdRZ01Da2dJQzB0UGdvOGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJa3hoZVdWeVh6RWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWdvSklIWnBaWGRDYjNnOUlqQWdNQ0F6TURBZ016QXdJaUJ6ZEhsc1pUMGlaVzVoWW14bExXSmhZMnRuY205MWJtUTZibVYzSURBZ01DQXpNREFnTXpBd095SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStDZ2t1YzNRd2UyWnBiR3c2STBWRk1EQXdNRHQ5Q2p3dmMzUjViR1UrQ2p4MGFYUnNaVDVEYjNOMExXbGpiMjQ4TDNScGRHeGxQZ284WkdWell6NURjbVZoZEdWa0lIZHBkR2dnVTJ0bGRHTm9Mand2WkdWell6NEtQR2MrQ2drOFp6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOMk10TXk0eU5qVTRNRGd4TFRReExqazRPVEExTVRndE16Z3VNalUyTmpnek15MDNOQzQyTkRjeU1ERTFMVGd4TGpFM09EZ3pNeTAzTkM0Mk5EY3lNREUxQ2drSkNXTXRNamN1TlRJMk1UVXpOaXd3TFRVekxqRTROakV5Tmpjc01UTXVPVGsyTXpRNU15MDJPQzR4TVRVMU56QXhMRE0zTGpNeU16WXdNRGhqTFRFdU9EWTJNVGd3TkN3d0xUTXVOek15TXpVek1pMHdMalEyTmpVME5URXROaTR3TmpVd056ZzNMVEF1TkRZMk5UUTFNUW9KQ1FsakxUTTBMalV5TkRNek1ERXNNQzAyTWk0NU9ETTFOemMzTERJM0xqazVNalk1T0RjdE5qSXVPVGd6TlRjM055dzJNaTQ1T0RNMU5qWXpjekkzTGprNU1qWTVPRGNzTmpJdU9UZ3pOVFkyTXl3Mk1pNDVPRE0xTnpjM0xEWXlMams0TXpVMk5qTm9NVFl1TXpJNU1EY3hDZ2tKQ1dNekxqY3pNak0yTURnc01DdzJMams1T0RFM05qWXRNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaTAyTGprNU9ERTJPRGx6TFRNdU1qWTFPREUxTnkwMkxqazVPREUyT0RrdE5pNDVPVGd4TnpZMkxUWXVPVGs0TVRZNE9XZ3RNVFl1TXpJNU1EY3hDZ2tKQ1dNdE1qY3VNRFU1TmpFeU15d3dMVFE0TGpVeU1EWTNPVFV0TWpFdU9USTNOakkzTmkwME9DNDFNakEyTnprMUxUUTRMalV5TURZM05UZHpNakV1T1RJM05qRXlNeTAwT0M0MU1qQTJPRE16TERRNExqVXlNRFkzT1RVdE5EZ3VOVEl3Tmpnek13b0pDUWxqTWk0M09Ua3lOekEyTERBc05TNDFPVGcxTkRFekxEQXVORFkyTlRRMU1TdzRMak01Tnpnd05ETXNNQzQ1TXpNd09UQXlZekl1TnprNU1qY3dOaXd3TGpRMk5qVTBOVEVzTmk0d05qVXdOemczTFRBdU9UTXpNRGt3TWl3M0xqUTJORGN5TVRjdE15NDNNekl6TmpBNENna0pDV014TWk0eE16QXhOekkzTFRJd0xqazVORFV5T1Rjc016UXVOVEkwTXpNd01TMHpOQzR3TlRjM09EZzRMRFU0TGpNeE9ERXlNamt0TXpRdU1EVTNOemc0T0dNek5pNDROVGN3TnpBNUxEQXNOamN1TVRneU5EazFNU3d6TUM0ek1qVTBNakEwTERZM0xqRTRNalE1TlRFc05qY3VNVGd5TkRjNU9Rb0pDUWxqTUN3ekxqY3pNak0xTXpJc015NHlOalU0TURneExEWXVPVGs0TVRjMk5pdzJMams1T0RFMk9Ea3NOaTQ1T1RneE56WTJZekUyTGpNeU9UQTNNU3d3TERJNUxqZzFPRGt3TWl3eE15NDFNams0TURBMExESTVMamcxT0Rrd01pd3lPUzQ0TlRnNE56RTFDZ2tKQ1hNdE1UTXVOVEk1T0RNd09Td3lPUzQ0TlRnNE9EWTNMVEk1TGpnMU9Ea3dNaXd5T1M0NE5UZzRPRFkzWXkwekxqY3pNak0yTURnc01DMDJMams1T0RFMk9Ea3NNeTR5TmpVNE1EZ3hMVFl1T1RrNE1UWTRPU3cyTGprNU9ERTJPRGtLQ1FrSmN6TXVNalkxT0RBNE1TdzJMams1T0RFMk9Ea3NOaTQ1T1RneE5qZzVMRFl1T1RrNE1UWTRPV015TkM0eU5qQXpNekF5TERBc05EUXVNekl4TnpZeU1TMHlNQzR3TmpFME1UWTJMRFEwTGpNeU1UYzJNakV0TkRRdU16SXhOell5TVFvSkNRbERNamMyTGpNMk1EWXlOaklzTVRNNUxqSXdNamM0T1RNc01qWXdMakF6TVRVMU5USXNNVEl3TGpVME1EazVNamNzTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04zb2lMejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5NakEyTGpnME5UUXlPRFVzTWpJd0xqZzBPREUzTldNM0xqUTJORGN3TmpRdE9DNDROalF6TmpRMkxERXhMalkyTXpZeUxUSXdMalV5TnprNE5EWXNNVEV1TmpZek5qSXRNekl1TmpVNE1UVTNNd29KQ1Fsak1DMHlPQzQ1TWpVM09UWTFMVEl6TGpNeU56STBMVFV5TGpJMU16QXpOalV0TlRJdU1qVXpNRE0yTlMwMU1pNHlOVE13TXpZMWN5MDFNaTR5TlRNd05EUXhMREl6TGpNeU56STBMVFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRE0yTlFvSkNRbHpNak11TXpJM01qUTNOaXcxTWk0eU5UTXdOVEU0TERVeUxqSTFNekEwTkRFc05USXVNalV6TURVeE9HTXhNUzR4T1Rjd09ESTFMREFzTWpFdU9USTNOakV5TXkwekxqY3pNak0yTURnc016QXVNekkxTkRJME1pMDVMamM1TnpRek9UWnNNekV1TnpJMU1EVXhPU3d6TUM0M09URTVOakUzQ2drSkNXTXhMak01T1RZeU56Y3NNUzR6T1RrMk1qYzNMRE11TWpZMU9ESXpOQ3d4TGpnMk5qRTRNRFFzTlM0eE16RTVPRGcxTERFdU9EWTJNVGd3TkdNeExqZzJOakU1TlRjc01Dd3pMamN6TWpNMk1EZ3RNQzQ1TXpNd056VXNOUzR4TXpFNU9EZzFMVEl1TXpNeU56TXpNZ29KQ1Fsak1pNDNPVGt5TnpBMkxUSXVOems1TWpVMU5Dd3lMamM1T1RJM01EWXROeTQwTmpRM01EWTBMREF0TVRBdU1qWXpPVGMzTVV3eU1EWXVPRFExTkRJNE5Td3lNakF1T0RRNE1UYzFlaUJOTVRJNExqUTJOVGcyTmpFc01UZzRMakU1TURBeE56Y0tDUWtKWXpBdE1qQXVPVGswTlRJeU1Td3hOeTR5TmpJeE56WTFMVE00TGpJMU5qWTVPRFlzTXpndU1qVTJOams0Tmkwek9DNHlOVFkyT1RnMmN6TTRMakkxTmpZNU9EWXNNVGN1TWpZeU1UYzJOU3d6T0M0eU5UWTJPVGcyTERNNExqSTFOalk1T0RZS0NRa0pjeTB4Tnk0eU5qSXhOelkxTERNNExqSTFOalk1T0RZdE16Z3VNalUyTmprNE5pd3pPQzR5TlRZMk9UZzJVekV5T0M0ME5qVTROall4TERJd09TNHhPRFExTXprNExERXlPQzQwTmpVNE5qWXhMREU0T0M0eE9UQXdNVGMzZWlJdlBnb0pQQzluUGdvSlBHYytDZ2tKUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRURTNOQzR5T0RBMk16azJMREU0TlM0NE56TTJNVEUxWXpJdU1qRTJNamM0TVN3d0xqWTROalV6T0Rjc05DNHhNVEF3TXpFeExERXVPRGN3TnpFeU15dzFMalkzTmpZek5UY3NNeTQxTlRJMU1EVTFDZ2tKQ1dNeExqVTJOall3TkRZc01TNDJPREU0TURnMUxESXVOVGs0TnpBNU1Td3pMalkwT1RJMk1UVXNNeTR3T1RFM016VTRMRFV1T1RBeU5EQTBPR013TGpRNU56WXhPVFlzTWk0eU5UTXhORE16TERBdU16WXpPVGs0TkN3MExqVXlPVE15TnpRdE1DNDBNREE0TnpnNUxEWXVPREU1TXpNMU9Rb0pDUWxqTFRBdU9URTJPVEUxT1N3eUxqVXlNRE00TlRjdE1pNDBPRE0xTWpBMUxEUXVOVEk1TXpFeU1TMDBMalk1T1RjNU9EWXNOaTR3TVRjMU9UTTBZeTB5TGpJeE5qSTJNamdzTVM0ME9EZ3lPREV5TFRRdU5qazFNakExTnl3eUxqSTNNVFUzTlRrdE55NDBOVEExTnpZNExESXVNelE1T0RrNU13b0pDUWwyTlM0MU1ERTFOVFkwWXpBc01DNDFNelEwT0RRNUxUQXVNVGN3TkRjeE1pd3dMamszTWpJeE16Y3RNQzQxTVRFME5UazBMREV1TXpFM056YzVOV010TUM0ek5EVTFOalU0TERBdU16UTFOVGd4TVMwd0xqYzRNekk1TkRjc01DNDFNVFl3TmpjMUxURXVNekl5TXpnM055d3dMalV4TmpBMk56VUtDUWtKYUMwekxqWTJOelk1TkRGakxUQXVOVE0wTlRBd01Td3dMVEF1T1RjeU1qRXpOeTB3TGpFM01EUTROalV0TVM0ek1UYzNOemsxTFRBdU5URTJNRFkzTldNdE1DNHpOREE1TnpJNUxUQXVNelExTlRZMU9DMHdMalV4TmpBMk56VXRNQzQzT0RNeU9UUTNMVEF1TlRFMk1EWTNOUzB4TGpNeE56YzNPVFVLQ1FrSmRpMDFMalV3TVRVMU5qUmpMVE11TmpZM05qazBNU3d3TFRZdU9UZzVPREl5TkMweExqRTBOekk1TXpFdE9TNDVOamcyTlRnMExUTXVORE0zTXpBeE5tTXRNQzR6T0RJME5EWXpMVEF1TXpneU5ETXhMVEF1TmpFeU9ESXpOUzB3TGpnME16SXdNRGN0TUM0Mk9EZzROREk0TFRFdU16YzNOekF3T0FvSkNRbGpMVEF1TURjMk1ETTBOUzB3TGpVek5EUTRORGtzTUM0eE1UVXhPRGcyTFRFdU1ETXlNVEEwTlN3d0xqVTNNell6T0RrdE1TNDBPRGd5TlRBM2JETXVPRGsxTnpneU5TMHpMamc1T0RBNE5qVUtDUWtKWXpBdU16QTROekF3Tmkwd0xqSXpNRE01TWpVc01DNDJOamd4TURZeExUQXVNemd5TkRNeExERXVNRGt5TURFd05TMHdMalExTmpFMk1UVmpNQzQwTVRreU9UWXpMVEF1TURjNE16SXpOQ3d3TGpneU1ERTFPVGtzTUM0d016WTROU3d4TGpJd01qWXdOaklzTUM0ek5EQTVOekk1Q2drSkNXTXhMakUwTnpJNU16RXNNQzQzTmpRNE56Y3pMREl1TkRReU1EUTNNU3d4TGpFME56TXdPRE1zTXk0NE9UTTBOak14TERFdU1UUTNNekE0TTJnM0xqWTRNRGsxTkdNd0xqa3hOamswTmpRc01Dd3hMamN3TURJME1URXRNQzR6TWpJMU5EQXpMREl1TXpRNU9EazVNeTB3TGprM01qSXhNemNLQ1FrSll6QXVOalE1TmpnNE55MHdMalkwT1RZNE9EY3NNQzQ1TnpJeU1qa3RNUzQwTnpRME5UWTRMREF1T1RjeU1qSTVMVEl1TkRZMU1UQXpNV013TFRBdU5qZzJOVFUwTFRBdU1qSTFOelk1TFRFdU16TTJNakkzTkMwd0xqWTROalV6T0RjdE1TNDVORGt3TXpVMkNna0pDV010TUM0ME5UWXhOakUxTFRBdU5qRXlPREl6TlMweExqQXpNakV4T1RndE1TNHdNekl4TVRrNExURXVOekU0TmpRek1pMHhMakkyTWpRNU5qbHNMVEV4TGpnd05EZzBNREV0TXk0ME16Y3pNVFk1Q2drSkNXTXRNaTQxT1RnMk9UTTRMVEF1TnpZME9EYzNNeTAwTGpjM016VXlPVEV0TWk0eE16YzVOVFEzTFRZdU5UTXpOalExTmkwMExqRXlPRFEwT0RWakxURXVOelUzT0RFeU5TMHhMams0TlRrd01Ea3RNaTQzT0RjMk5ETTBMVFF1TWpjMU9USTBOeTB6TGpBNU5EQXpPVGt0Tmk0NE56UTJNek00Q2drSkNXTXRNQzR4TlRJd05UTTRMVEl1TkRRMk5qVTFNeXd3TGpNd05qTTVOalV0TkM0M01UZ3lNekV5TERFdU16YzFNemsyTnkwMkxqZ3hPVE16TlRsak1TNHdOamc1TmprM0xUSXVNVEF4TURnNU5Td3lMalU1T0Rjd09URXRNeTQzT0RJNE9ESTNMRFF1TlRnME5qRXROUzR3TkRVek56azJDZ2tKQ1dNeExqazROVGt3TURrdE1TNHlOVGM0T0RnNExEUXVNakF5TVRjNUxURXVPRGc1TVRJNU5pdzJMalkwT0RnME9UVXRNUzQ0T0RreE1qazJhREF1TWpJMU56WTVkaTAxTGpVd01UVTBNVEVLQ1FrSll6QXRNQzQxTXpRMU1EQXhMREF1TVRjMU1EazBOaTB3TGprM01qSXlPU3d3TGpVeE5qQTJOelV0TVM0ek1UYzNPVFE0WXpBdU16UTFOVFkxT0Mwd0xqTTBOVFU0TVRFc01DNDNPRE15TnprMExUQXVOVEUyTURVeU1pd3hMak14TnpjM09UVXRNQzQxTVRZd05USXlhRE11TmpZM05qazBNUW9KQ1Fsak1DNDFNemt3T1RNc01Dd3dMamszTmpneU1Ua3NNQzR4TnpBME56RXlMREV1TXpJeU16ZzNOeXd3TGpVeE5qQTFNakpqTUM0ek5EQTVPRGd5TERBdU16UTFOVFkxT0N3d0xqVXhNVFExT1RRc01DNDNPRE15T1RRM0xEQXVOVEV4TkRVNU5Dd3hMak14TnpjNU5EaDJOUzQxTURFMU5ERXhDZ2tKQ1dNekxqWTJOelk1TkRFc01DdzJMamsxTnpVMk5UTXNNUzR4TkRjeU9UTXhMRGt1T0RZd016Z3lNU3d6TGpRek56TXdNVFpqTUM0ME5UWXhOelk0TERBdU16Z3lORFEyTXl3d0xqY3lNelF4T1RJc01DNDRORE15TURBM0xEQXVPREF4TnpReU5pd3hMak0zTnpZNE5UVUtDUWtKWXpBdU1EY3pOekUxTWl3d0xqVXpORFV3TURFdE1DNHhNVFV5TURNNUxEQXVPVGt3TmpRMk5DMHdMalUzTVRNMU1ERXNNUzR6TnpNd056YzBiQzB6TGpnNU9EQTROalVzTkM0d01UTXlOelV4Q2drSkNXTXRNQzR6TURnM01UVTRMREF1TWpNd016a3lOUzB3TGpZMk9ERXdOakVzTUM0ek9ESTBNekV0TVM0d09USXdNVEExTERBdU5EVTJNVFl4TldNdE1DNDBNVGt5T1RZekxEQXVNRGM0TXpJek5DMHdMamd5TURFMU9Ua3NNQzB4TGpJd01qVTVNRGt0TUM0eU1qVTNOamtLQ1FrSll5MHhMakUwTWpjeE5UVXRNQzQ0TkRNeU1EQTNMVEl1TkRReU1EYzNOaTB4TGpJMk1qUTVOamt0TXk0NE9UZ3dPRFkxTFRFdU1qWXlORGsyT1dndE55NDJOell6TmpFeFl5MHdMamt4TmpreE5Ua3NNQzB4TGpjd01ESXlOVGdzTUM0ek1qSTFNalV0TWk0ek5EazRPVGt6TERBdU9UY3lNakV6TndvSkNRbGpMVEF1TmpRNU5qZzROeXd3TGpZME9UWTNNelV0TUM0NU56WTRNakU1TERFdU5EYzBORFF4TlMwd0xqazNOamd5TVRrc01pNDBOalV3T0RjNVl6QXNNQzQyT0RZMU5UUXNNQzR5TXpBek9USTFMREV1TXpNMk1qRXlNaXd3TGpZNU1URTBOamtzTVM0NU5Ea3dNelUyQ2drSkNXTXdMalExTmpFMk1UVXNNQzQyTVRJNE1qTTFMREV1TURNeU1URTVPQ3d4TGpBek1qRXhPVGdzTVM0M01UZzJOVGcwTERFdU1qWXlORGsyT1V3eE56UXVNamd3TmpNNU5pd3hPRFV1T0Rjek5qRXhOWG9pTHo0S0NUd3ZaejRLUEM5blBnbzhMM04yWno0SyIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiY29uZmlnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfSx7ImFwaUdyb3VwcyI6WyJtb25pdG9yaW5nLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbInByb21ldGhldXNlcy9hcGkiXSwidmVyYnMiOlsiY3JlYXRlIiwiZ2V0IiwidXBkYXRlIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJsYWJlbCI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tbGVhZGVyLWVsZWN0Il0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci05OTllYjhhMGFlZjgzMzNlOTg1MTIwZWI1MjM2ZjZlNTNmODg3ZWY5MGYwMjg0MzliYjYzYmI1MjA1ZGQwMWJmLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMS4wIiwidmVyc2lvbiI6IjMuMS4xIn19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:0dba5aba9060c84b1e6d0f5c4322f39940ace6fc4b91891cfe3211df7f53895a + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:999eb8a0aef8333e985120eb5236f6e53f887ef90f028439bb63bb5205dd01bf + name: costmanagement-metrics-rhel8-operator-999eb8a0aef8333e985120eb5236f6e53f887ef90f028439bb63bb5205dd01bf-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:999eb8a0aef8333e985120eb5236f6e53f887ef90f028439bb63bb5205dd01bf + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:3995f83eb27886d4b35c7051728cb57721ee0ba7ccfc0727592d368400a63fc8 +name: costmanagement-metrics-operator.3.2.0 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 3.2.0 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjEzLjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIFRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZW5kcG9pbnQgdXNlZCB0byBvYnRhaW4gdGhlIHNlcnZpY2UgYWNjb3VudCB0b2tlbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vc3NvLnJlZGhhdC5jb20vYXV0aC9yZWFsbXMvcmVkaGF0LWV4dGVybmFsL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYC4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYywgc2VydmljZS1hY2NvdW50IG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiAoZGVwcmVjYXRlZCkgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwic2VydmljZS1hY2NvdW50XCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCBmcm9tIHRoZSBzZWNyZXQgY29udGFpbmluZyBzZXJ2aWNlIGFjY291bnQgaW5mb3JtYXRpb24uIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZWZhdWx0IjoxNDQwLCJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiY3JlYXRlX3NvdXJjZSB0b2dnbGVzIHRoZSBjcmVhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvc291cmNlcy92MS4wLyIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIHNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tIG9yIGNoZWNrL2NyZWF0ZSBzb3VyY2VzLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiYWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZSBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIFdoZW4gdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIGlzIGVuYWJsZWQsIGRhdGFTb3VyY2UgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZVJlZiwgYW5kIGRhdGFTb3VyY2VSZWYgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZSB3aGVuIGRhdGFTb3VyY2VSZWYubmFtZXNwYWNlIGlzIG5vdCBzcGVjaWZpZWQuIElmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJkYXRhU291cmNlUmVmIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZVJlZiBzcGVjaWZpZXMgdGhlIG9iamVjdCBmcm9tIHdoaWNoIHRvIHBvcHVsYXRlIHRoZSB2b2x1bWUgd2l0aCBkYXRhLCBpZiBhIG5vbi1lbXB0eSB2b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uIGNvcmUgb2JqZWN0KSBvciBhIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3QuIFdoZW4gdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQsIHZvbHVtZSBiaW5kaW5nIHdpbGwgb25seSBzdWNjZWVkIGlmIHRoZSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljIHByb3Zpc2lvbmVyLiBUaGlzIGZpZWxkIHdpbGwgcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGF0YVNvdXJjZSBmaWVsZCBhbmQgYXMgc3VjaCBpZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3aGVuIG5hbWVzcGFjZSBpc24ndCBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgYm90aCBmaWVsZHMgKGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFdoZW4gbmFtZXNwYWNlIGlzIHNwZWNpZmllZCBpbiBkYXRhU291cmNlUmVmLCBkYXRhU291cmNlIGlzbid0IHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhbmQgbXVzdCBiZSBlbXB0eS4gVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6ICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyB0d28gc3BlY2lmaWMgdHlwZXMgb2Ygb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3MgYW55IG5vbi1jb3JlIG9iamVjdCwgYXMgd2VsbCBhcyBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0cy4gKiBXaGlsZSBkYXRhU291cmNlIGlnbm9yZXMgZGlzYWxsb3dlZCB2YWx1ZXMgKGRyb3BwaW5nIHRoZW0pLCBkYXRhU291cmNlUmVmIHByZXNlcnZlcyBhbGwgdmFsdWVzLCBhbmQgZ2VuZXJhdGVzIGFuIGVycm9yIGlmIGEgZGlzYWxsb3dlZCB2YWx1ZSBpcyBzcGVjaWZpZWQuICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzIGluIGFueSBuYW1lc3BhY2VzLiAoQmV0YSkgVXNpbmcgdGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4gKEFscGhhKSBVc2luZyB0aGUgbmFtZXNwYWNlIGZpZWxkIG9mIGRhdGFTb3VyY2VSZWYgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWVzcGFjZSBpcyB0aGUgbmFtZXNwYWNlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQgTm90ZSB0aGF0IHdoZW4gYSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCBhIGdhdGV3YXkubmV0d29ya2luZy5rOHMuaW8vUmVmZXJlbmNlR3JhbnQgb2JqZWN0IGlzIHJlcXVpcmVkIGluIHRoZSByZWZlcmVudCBuYW1lc3BhY2UgdG8gYWxsb3cgdGhhdCBuYW1lc3BhY2UncyBvd25lciB0byBhY2NlcHQgdGhlIHJlZmVyZW5jZS4gU2VlIHRoZSBSZWZlcmVuY2VHcmFudCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLiAoQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBJZiBSZWNvdmVyVm9sdW1lRXhwYW5zaW9uRmFpbHVyZSBmZWF0dXJlIGlzIGVuYWJsZWQgdXNlcnMgYXJlIGFsbG93ZWQgdG8gc3BlY2lmeSByZXNvdXJjZSByZXF1aXJlbWVudHMgdGhhdCBhcmUgbG93ZXIgdGhhbiBwcmV2aW91cyB2YWx1ZSBidXQgbXVzdCBzdGlsbCBiZSBoaWdoZXIgdGhhbiBjYXBhY2l0eSByZWNvcmRlZCBpbiB0aGUgc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsIHRoYXQgYXJlIHVzZWQgYnkgdGhpcyBjb250YWluZXIuIFxuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIHRoZSBEeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS4gXG4gVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mIHRoZSBQb2Qgd2hlcmUgdGhpcyBmaWVsZCBpcyB1c2VkLiBJdCBtYWtlcyB0aGF0IHJlc291cmNlIGF2YWlsYWJsZSBpbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyBhIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJzdG9yYWdlQ2xhc3NOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2tlbl91cmwiOnsiZGVzY3JpcHRpb24iOiJUb2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCB1c2VkIHRvIGdlbmVyYXRlIGEgc2VydmljZSBhY2NvdW50IHRva2VuLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIiwic2VydmljZS1hY2NvdW50Il0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBXaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsIGFuZCBkYXRhU291cmNlUmVmIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2Ugd2hlbiBkYXRhU291cmNlUmVmLm5hbWVzcGFjZSBpcyBub3Qgc3BlY2lmaWVkLiBJZiB0aGUgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgdGhlbiBkYXRhU291cmNlUmVmIHdpbGwgbm90IGJlIGNvcGllZCB0byBkYXRhU291cmNlLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGRhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGJvdGggZmllbGRzIChkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBXaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgZGF0YVNvdXJjZSBpc24ndCBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYW5kIG11c3QgYmUgZW1wdHkuIFRoZXJlIGFyZSB0aHJlZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmOiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgZGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgZGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgbG9jYWwgb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3Mgb2JqZWN0cyBpbiBhbnkgbmFtZXNwYWNlcy4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIChBbHBoYSkgVXNpbmcgdGhlIG5hbWVzcGFjZSBmaWVsZCBvZiBkYXRhU291cmNlUmVmIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIE5vdGUgdGhhdCB3aGVuIGEgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgYSBnYXRld2F5Lm5ldHdvcmtpbmcuazhzLmlvL1JlZmVyZW5jZUdyYW50IG9iamVjdCBpcyByZXF1aXJlZCBpbiB0aGUgcmVmZXJlbnQgbmFtZXNwYWNlIHRvIGFsbG93IHRoYXQgbmFtZXNwYWNlJ3Mgb3duZXIgdG8gYWNjZXB0IHRoZSByZWZlcmVuY2UuIFNlZSB0aGUgUmVmZXJlbmNlR3JhbnQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gKEFscGhhKSBUaGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwcm9tZXRoZXVzIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcHJlbWV0aGV1cyBxdWVyaWVzLiIsInByb3BlcnRpZXMiOnsiY29uZmlndXJhdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgY29uZmlndXJhdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNvbnRleHRfdGltZW91dCI6eyJkZXNjcmlwdGlvbiI6IkNvbnRleHRUaW1lb3V0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdGUgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25Db3N0TWFuYWdlbWVudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyByZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gSW50ZWdyYXRpb24gd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgaW50ZWdyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0X2NoZWNrX3RpbWUgaXMgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmNlOWQyZjkzZjJjNzk5YTNhMGI2YWVlM2IwOWQ4YTk0MDQyZGMyMjFjYjYxMDViN2JkNmJmZWIyZjFjNGViY2EiLCJjcmVhdGVkQXQiOiIyMDI0LTAxLTMwVDE3OjAxOjM0WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Byb3h5LWF3YXJlIjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdGxzLXByb2ZpbGVzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXdzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXp1cmUiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1nY3AiOiJmYWxzZSIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcImRpc2Nvbm5lY3RlZFwiLCBcInByb3h5LWF3YXJlXCJdIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby92YWxpZC1zdWJzY3JpcHRpb24iOiJbXCJPcGVuU2hpZnQgS3ViZXJuZXRlcyBFbmdpbmVcIiwgXCJPcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtXCIsIFwiT3BlblNoaWZ0IFBsYXRmb3JtIFBsdXNcIl0iLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4zMy4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjQiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IiLCJzdXBwb3J0IjoiUmVkIEhhdCJ9LCJsYWJlbHMiOnsib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hbWQ2NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guYXJtNjQiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnBwYzY0bGUiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnMzOTB4Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vb3MubGludXgiOiJzdXBwb3J0ZWQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4yLjAiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWJldGExIn1dfSwiZGVzY3JpcHRpb24iOiIjIDMuMi4wIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yXG4jIyBJbnRyb2R1Y3Rpb25cblRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgYSBjb21wb25lbnQgb2YgdGhlIFtjb3N0IG1hbmFnbWVudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9kb2N1bWVudGF0aW9uL2VuLXVzL2Nvc3RfbWFuYWdlbWVudF9zZXJ2aWNlKSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQuIFRoZSBvcGVyYXRvciBydW5zIG9uIHRoZSBsYXRlc3Qgc3VwcG9ydGVkIHZlcnNpb25zIG9mIE9wZW5zaGlmdC4gVGhpcyBvcGVyYXRvciBvYnRhaW5zIE9wZW5TaGlmdCB1c2FnZSBkYXRhIGJ5IHF1ZXJ5aW5nIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMgdGhhdCBpdCB1cGxvYWRzIHRvIENvc3QgTWFuYWdlbWVudCBhdCBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkgdG8gYmUgcHJvY2Vzc2VkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG5cblRoaXMgb3BlcmF0b3IgaXMgY2FwYWJsZSBvZiBmdW5jdGlvbmluZyB3aXRoaW4gYSBkaXNjb25uZWN0ZWQvcmVzdHJpY3RlZCBuZXR3b3JrIChha2EgYWlyLWdhcHBlZCBtb2RlKS4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igd2lsbCBzdG9yZSB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbCBpbnN0ZWFkIG9mIGJlaW5nIHVwbG9hZGVkIHRvIENvc3QgTWFuYWdlbWVudC4gRG9jdW1lbnRhdGlvbiBmb3IgaW5zdGFsbGluZyBhbiBvcGVyYXRvciB3aXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmsgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS5cblxuIyMgRmVhdHVyZXMgYW5kIENhcGFiaWxpdGllc1xuIyMjIyBNZXRyaWNzIGNvbGxlY3Rpb246XG5UaGUgQ29zdE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgQ29zdCBNYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC5cbiogV3JpdGluZyB0aGUgcmVzdWx0cyBvZiBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFJlc291cmNlIE9wdGltaXphdGlvbiBtZXRyaWNzIGNvbGxlY3Rpb24uXG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBnYXRoZXIgYWxsIHByZXZpb3VzIGRhdGEgd2l0aGluIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2Qgb3IgYSBtYXhpbXVtIG9mIDkwIGRheXMuIFRoZSBkZWZhdWx0IGRhdGEgY29sbGVjdGlvbiBwZXJpb2QgaXMgdGhlIDE0IHByZXZpb3VzIGRheXMuIFRoaXMgc2V0dGluZyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gQ29zdCBNYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGFuIGludGVncmF0aW9uIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gaW50ZWdyYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBOZXcgaW4gdjMuMi4wOlxuKiBTdXBwb3J0IGZvciBhbWQ2NCwgYXJtNjQsIHBwYzY0bGUsIHMzOTB4IGFyY2hpdGVjdHVyZXNcbiogYWRkIGxpdmVuZXNzIGFuZCByZWFkaW5lc3MgcHJvYmVzIHRvIGNvbnRyb2xsZXIgUG9kXG4qIHVwZGF0ZSBwb2Qgc2VjdXJpdHkgc2V0dGluZ3Mgc28gdGhhdCB0aGUgY29udHJvbGxlciBQb2QgY2FuIHJ1biBpbiBSZXN0cmljdGVkIG1vZGUgW21vcmUgaW5mb10oaHR0cHM6Ly9zZGsub3BlcmF0b3JmcmFtZXdvcmsuaW8vZG9jcy9iZXN0LXByYWN0aWNlcy9wb2Qtc2VjdXJpdHktc3RhbmRhcmRzLylcblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YFxuXG4zLiBTZWxlY3QgYENyZWF0ZWAuXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBGb3IgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYCBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgICogZm9yIGJhc2ljIGF1dGggdHlwZSAoZGVwcmVjYXRlZClcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IGJhc2ljXG4gICAgICAgIGBgYFxuXG4gICAgICAgICogZm9yIHNlcnZpY2UtYWNjb3VudCBhdXRoIHR5cGVcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IHNlcnZpY2UtYWNjb3VudFxuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBpbnRlZ3JhdGlvbiwgZWRpdCB0aGUgZm9sbG93aW5nIHZhbHVlcyBpbiB0aGUgYHNvdXJjZWAgZmllbGQ6XG4gICAgKiBSZXBsYWNlIHRoZSBgbmFtZWAgZmllbGQgdmFsdWUgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIGludGVncmF0aW9uIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgaW50ZWdyYXRpb24gZXhpc3RzLlxuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjIChiZWxvdyBpcyBvbmx5IGEgdGVtcGxhdGUuIEFueSBfdmFsaWRfIGBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1gIG1heSBiZSBkZWZpbmVkIGhlcmUpOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGFuIEludGVncmF0aW9uXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW50ZWdyYXRpb24uIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtJbnRlZ3JhdGlvbnMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3MvaW50ZWdyYXRpb25zLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBpbnRlZ3JhdGlvbiB0byBDb3N0IE1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGluZyBhbiBpbnRlZ3JhdGlvbjpcbjEuIE5hdmlnYXRlIHRvIHRoZSBJbnRlZ3JhdGlvbnMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdGAgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgaW50ZWdyYXRpb246XG4gICAgKiBnaXZlIHRoZSBpbnRlZ3JhdGlvbiBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2Ugd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgc291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2FwaS9pbmdyZXNzL3YxL3VwbG9hZCAtdSBVU0VSTkFNRTpQQVNTXG5cbndoZXJlIGBVU0VSTkFNRWAgYW5kIGBQQVNTYCBjb3JyZXNwb25kIHRvIHRoZSB1c2VyIGNyZWRlbnRpYWxzIGZvciBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4iLCJkaXNwbGF5TmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NEtQQ0V0TFNCSFpXNWxjbUYwYjNJNklFRmtiMkpsSUVsc2JIVnpkSEpoZEc5eUlESXlMakV1TUN3Z1UxWkhJRVY0Y0c5eWRDQlFiSFZuTFVsdUlDNGdVMVpISUZabGNuTnBiMjQ2SURZdU1EQWdRblZwYkdRZ01Da2dJQzB0UGdvOGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJa3hoZVdWeVh6RWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWdvSklIWnBaWGRDYjNnOUlqQWdNQ0F6TURBZ016QXdJaUJ6ZEhsc1pUMGlaVzVoWW14bExXSmhZMnRuY205MWJtUTZibVYzSURBZ01DQXpNREFnTXpBd095SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStDZ2t1YzNRd2UyWnBiR3c2STBWRk1EQXdNRHQ5Q2p3dmMzUjViR1UrQ2p4MGFYUnNaVDVEYjNOMExXbGpiMjQ4TDNScGRHeGxQZ284WkdWell6NURjbVZoZEdWa0lIZHBkR2dnVTJ0bGRHTm9Mand2WkdWell6NEtQR2MrQ2drOFp6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOMk10TXk0eU5qVTRNRGd4TFRReExqazRPVEExTVRndE16Z3VNalUyTmpnek15MDNOQzQyTkRjeU1ERTFMVGd4TGpFM09EZ3pNeTAzTkM0Mk5EY3lNREUxQ2drSkNXTXRNamN1TlRJMk1UVXpOaXd3TFRVekxqRTROakV5Tmpjc01UTXVPVGsyTXpRNU15MDJPQzR4TVRVMU56QXhMRE0zTGpNeU16WXdNRGhqTFRFdU9EWTJNVGd3TkN3d0xUTXVOek15TXpVek1pMHdMalEyTmpVME5URXROaTR3TmpVd056ZzNMVEF1TkRZMk5UUTFNUW9KQ1FsakxUTTBMalV5TkRNek1ERXNNQzAyTWk0NU9ETTFOemMzTERJM0xqazVNalk1T0RjdE5qSXVPVGd6TlRjM055dzJNaTQ1T0RNMU5qWXpjekkzTGprNU1qWTVPRGNzTmpJdU9UZ3pOVFkyTXl3Mk1pNDVPRE0xTnpjM0xEWXlMams0TXpVMk5qTm9NVFl1TXpJNU1EY3hDZ2tKQ1dNekxqY3pNak0yTURnc01DdzJMams1T0RFM05qWXRNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaTAyTGprNU9ERTJPRGx6TFRNdU1qWTFPREUxTnkwMkxqazVPREUyT0RrdE5pNDVPVGd4TnpZMkxUWXVPVGs0TVRZNE9XZ3RNVFl1TXpJNU1EY3hDZ2tKQ1dNdE1qY3VNRFU1TmpFeU15d3dMVFE0TGpVeU1EWTNPVFV0TWpFdU9USTNOakkzTmkwME9DNDFNakEyTnprMUxUUTRMalV5TURZM05UZHpNakV1T1RJM05qRXlNeTAwT0M0MU1qQTJPRE16TERRNExqVXlNRFkzT1RVdE5EZ3VOVEl3Tmpnek13b0pDUWxqTWk0M09Ua3lOekEyTERBc05TNDFPVGcxTkRFekxEQXVORFkyTlRRMU1TdzRMak01Tnpnd05ETXNNQzQ1TXpNd09UQXlZekl1TnprNU1qY3dOaXd3TGpRMk5qVTBOVEVzTmk0d05qVXdOemczTFRBdU9UTXpNRGt3TWl3M0xqUTJORGN5TVRjdE15NDNNekl6TmpBNENna0pDV014TWk0eE16QXhOekkzTFRJd0xqazVORFV5T1Rjc016UXVOVEkwTXpNd01TMHpOQzR3TlRjM09EZzRMRFU0TGpNeE9ERXlNamt0TXpRdU1EVTNOemc0T0dNek5pNDROVGN3TnpBNUxEQXNOamN1TVRneU5EazFNU3d6TUM0ek1qVTBNakEwTERZM0xqRTRNalE1TlRFc05qY3VNVGd5TkRjNU9Rb0pDUWxqTUN3ekxqY3pNak0xTXpJc015NHlOalU0TURneExEWXVPVGs0TVRjMk5pdzJMams1T0RFMk9Ea3NOaTQ1T1RneE56WTJZekUyTGpNeU9UQTNNU3d3TERJNUxqZzFPRGt3TWl3eE15NDFNams0TURBMExESTVMamcxT0Rrd01pd3lPUzQ0TlRnNE56RTFDZ2tKQ1hNdE1UTXVOVEk1T0RNd09Td3lPUzQ0TlRnNE9EWTNMVEk1TGpnMU9Ea3dNaXd5T1M0NE5UZzRPRFkzWXkwekxqY3pNak0yTURnc01DMDJMams1T0RFMk9Ea3NNeTR5TmpVNE1EZ3hMVFl1T1RrNE1UWTRPU3cyTGprNU9ERTJPRGtLQ1FrSmN6TXVNalkxT0RBNE1TdzJMams1T0RFMk9Ea3NOaTQ1T1RneE5qZzVMRFl1T1RrNE1UWTRPV015TkM0eU5qQXpNekF5TERBc05EUXVNekl4TnpZeU1TMHlNQzR3TmpFME1UWTJMRFEwTGpNeU1UYzJNakV0TkRRdU16SXhOell5TVFvSkNRbERNamMyTGpNMk1EWXlOaklzTVRNNUxqSXdNamM0T1RNc01qWXdMakF6TVRVMU5USXNNVEl3TGpVME1EazVNamNzTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04zb2lMejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5NakEyTGpnME5UUXlPRFVzTWpJd0xqZzBPREUzTldNM0xqUTJORGN3TmpRdE9DNDROalF6TmpRMkxERXhMalkyTXpZeUxUSXdMalV5TnprNE5EWXNNVEV1TmpZek5qSXRNekl1TmpVNE1UVTNNd29KQ1Fsak1DMHlPQzQ1TWpVM09UWTFMVEl6TGpNeU56STBMVFV5TGpJMU16QXpOalV0TlRJdU1qVXpNRE0yTlMwMU1pNHlOVE13TXpZMWN5MDFNaTR5TlRNd05EUXhMREl6TGpNeU56STBMVFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRE0yTlFvSkNRbHpNak11TXpJM01qUTNOaXcxTWk0eU5UTXdOVEU0TERVeUxqSTFNekEwTkRFc05USXVNalV6TURVeE9HTXhNUzR4T1Rjd09ESTFMREFzTWpFdU9USTNOakV5TXkwekxqY3pNak0yTURnc016QXVNekkxTkRJME1pMDVMamM1TnpRek9UWnNNekV1TnpJMU1EVXhPU3d6TUM0M09URTVOakUzQ2drSkNXTXhMak01T1RZeU56Y3NNUzR6T1RrMk1qYzNMRE11TWpZMU9ESXpOQ3d4TGpnMk5qRTRNRFFzTlM0eE16RTVPRGcxTERFdU9EWTJNVGd3TkdNeExqZzJOakU1TlRjc01Dd3pMamN6TWpNMk1EZ3RNQzQ1TXpNd056VXNOUzR4TXpFNU9EZzFMVEl1TXpNeU56TXpNZ29KQ1Fsak1pNDNPVGt5TnpBMkxUSXVOems1TWpVMU5Dd3lMamM1T1RJM01EWXROeTQwTmpRM01EWTBMREF0TVRBdU1qWXpPVGMzTVV3eU1EWXVPRFExTkRJNE5Td3lNakF1T0RRNE1UYzFlaUJOTVRJNExqUTJOVGcyTmpFc01UZzRMakU1TURBeE56Y0tDUWtKWXpBdE1qQXVPVGswTlRJeU1Td3hOeTR5TmpJeE56WTFMVE00TGpJMU5qWTVPRFlzTXpndU1qVTJOams0Tmkwek9DNHlOVFkyT1RnMmN6TTRMakkxTmpZNU9EWXNNVGN1TWpZeU1UYzJOU3d6T0M0eU5UWTJPVGcyTERNNExqSTFOalk1T0RZS0NRa0pjeTB4Tnk0eU5qSXhOelkxTERNNExqSTFOalk1T0RZdE16Z3VNalUyTmprNE5pd3pPQzR5TlRZMk9UZzJVekV5T0M0ME5qVTROall4TERJd09TNHhPRFExTXprNExERXlPQzQwTmpVNE5qWXhMREU0T0M0eE9UQXdNVGMzZWlJdlBnb0pQQzluUGdvSlBHYytDZ2tKUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRURTNOQzR5T0RBMk16azJMREU0TlM0NE56TTJNVEUxWXpJdU1qRTJNamM0TVN3d0xqWTROalV6T0Rjc05DNHhNVEF3TXpFeExERXVPRGN3TnpFeU15dzFMalkzTmpZek5UY3NNeTQxTlRJMU1EVTFDZ2tKQ1dNeExqVTJOall3TkRZc01TNDJPREU0TURnMUxESXVOVGs0TnpBNU1Td3pMalkwT1RJMk1UVXNNeTR3T1RFM016VTRMRFV1T1RBeU5EQTBPR013TGpRNU56WXhPVFlzTWk0eU5UTXhORE16TERBdU16WXpPVGs0TkN3MExqVXlPVE15TnpRdE1DNDBNREE0TnpnNUxEWXVPREU1TXpNMU9Rb0pDUWxqTFRBdU9URTJPVEUxT1N3eUxqVXlNRE00TlRjdE1pNDBPRE0xTWpBMUxEUXVOVEk1TXpFeU1TMDBMalk1T1RjNU9EWXNOaTR3TVRjMU9UTTBZeTB5TGpJeE5qSTJNamdzTVM0ME9EZ3lPREV5TFRRdU5qazFNakExTnl3eUxqSTNNVFUzTlRrdE55NDBOVEExTnpZNExESXVNelE1T0RrNU13b0pDUWwyTlM0MU1ERTFOVFkwWXpBc01DNDFNelEwT0RRNUxUQXVNVGN3TkRjeE1pd3dMamszTWpJeE16Y3RNQzQxTVRFME5UazBMREV1TXpFM056YzVOV010TUM0ek5EVTFOalU0TERBdU16UTFOVGd4TVMwd0xqYzRNekk1TkRjc01DNDFNVFl3TmpjMUxURXVNekl5TXpnM055d3dMalV4TmpBMk56VUtDUWtKYUMwekxqWTJOelk1TkRGakxUQXVOVE0wTlRBd01Td3dMVEF1T1RjeU1qRXpOeTB3TGpFM01EUTROalV0TVM0ek1UYzNOemsxTFRBdU5URTJNRFkzTldNdE1DNHpOREE1TnpJNUxUQXVNelExTlRZMU9DMHdMalV4TmpBMk56VXRNQzQzT0RNeU9UUTNMVEF1TlRFMk1EWTNOUzB4TGpNeE56YzNPVFVLQ1FrSmRpMDFMalV3TVRVMU5qUmpMVE11TmpZM05qazBNU3d3TFRZdU9UZzVPREl5TkMweExqRTBOekk1TXpFdE9TNDVOamcyTlRnMExUTXVORE0zTXpBeE5tTXRNQzR6T0RJME5EWXpMVEF1TXpneU5ETXhMVEF1TmpFeU9ESXpOUzB3TGpnME16SXdNRGN0TUM0Mk9EZzROREk0TFRFdU16YzNOekF3T0FvSkNRbGpMVEF1TURjMk1ETTBOUzB3TGpVek5EUTRORGtzTUM0eE1UVXhPRGcyTFRFdU1ETXlNVEEwTlN3d0xqVTNNell6T0RrdE1TNDBPRGd5TlRBM2JETXVPRGsxTnpneU5TMHpMamc1T0RBNE5qVUtDUWtKWXpBdU16QTROekF3Tmkwd0xqSXpNRE01TWpVc01DNDJOamd4TURZeExUQXVNemd5TkRNeExERXVNRGt5TURFd05TMHdMalExTmpFMk1UVmpNQzQwTVRreU9UWXpMVEF1TURjNE16SXpOQ3d3TGpneU1ERTFPVGtzTUM0d016WTROU3d4TGpJd01qWXdOaklzTUM0ek5EQTVOekk1Q2drSkNXTXhMakUwTnpJNU16RXNNQzQzTmpRNE56Y3pMREl1TkRReU1EUTNNU3d4TGpFME56TXdPRE1zTXk0NE9UTTBOak14TERFdU1UUTNNekE0TTJnM0xqWTRNRGsxTkdNd0xqa3hOamswTmpRc01Dd3hMamN3TURJME1URXRNQzR6TWpJMU5EQXpMREl1TXpRNU9EazVNeTB3TGprM01qSXhNemNLQ1FrSll6QXVOalE1TmpnNE55MHdMalkwT1RZNE9EY3NNQzQ1TnpJeU1qa3RNUzQwTnpRME5UWTRMREF1T1RjeU1qSTVMVEl1TkRZMU1UQXpNV013TFRBdU5qZzJOVFUwTFRBdU1qSTFOelk1TFRFdU16TTJNakkzTkMwd0xqWTROalV6T0RjdE1TNDVORGt3TXpVMkNna0pDV010TUM0ME5UWXhOakUxTFRBdU5qRXlPREl6TlMweExqQXpNakV4T1RndE1TNHdNekl4TVRrNExURXVOekU0TmpRek1pMHhMakkyTWpRNU5qbHNMVEV4TGpnd05EZzBNREV0TXk0ME16Y3pNVFk1Q2drSkNXTXRNaTQxT1RnMk9UTTRMVEF1TnpZME9EYzNNeTAwTGpjM016VXlPVEV0TWk0eE16YzVOVFEzTFRZdU5UTXpOalExTmkwMExqRXlPRFEwT0RWakxURXVOelUzT0RFeU5TMHhMams0TlRrd01Ea3RNaTQzT0RjMk5ETTBMVFF1TWpjMU9USTBOeTB6TGpBNU5EQXpPVGt0Tmk0NE56UTJNek00Q2drSkNXTXRNQzR4TlRJd05UTTRMVEl1TkRRMk5qVTFNeXd3TGpNd05qTTVOalV0TkM0M01UZ3lNekV5TERFdU16YzFNemsyTnkwMkxqZ3hPVE16TlRsak1TNHdOamc1TmprM0xUSXVNVEF4TURnNU5Td3lMalU1T0Rjd09URXRNeTQzT0RJNE9ESTNMRFF1TlRnME5qRXROUzR3TkRVek56azJDZ2tKQ1dNeExqazROVGt3TURrdE1TNHlOVGM0T0RnNExEUXVNakF5TVRjNUxURXVPRGc1TVRJNU5pdzJMalkwT0RnME9UVXRNUzQ0T0RreE1qazJhREF1TWpJMU56WTVkaTAxTGpVd01UVTBNVEVLQ1FrSll6QXRNQzQxTXpRMU1EQXhMREF1TVRjMU1EazBOaTB3TGprM01qSXlPU3d3TGpVeE5qQTJOelV0TVM0ek1UYzNPVFE0WXpBdU16UTFOVFkxT0Mwd0xqTTBOVFU0TVRFc01DNDNPRE15TnprMExUQXVOVEUyTURVeU1pd3hMak14TnpjM09UVXRNQzQxTVRZd05USXlhRE11TmpZM05qazBNUW9KQ1Fsak1DNDFNemt3T1RNc01Dd3dMamszTmpneU1Ua3NNQzR4TnpBME56RXlMREV1TXpJeU16ZzNOeXd3TGpVeE5qQTFNakpqTUM0ek5EQTVPRGd5TERBdU16UTFOVFkxT0N3d0xqVXhNVFExT1RRc01DNDNPRE15T1RRM0xEQXVOVEV4TkRVNU5Dd3hMak14TnpjNU5EaDJOUzQxTURFMU5ERXhDZ2tKQ1dNekxqWTJOelk1TkRFc01DdzJMamsxTnpVMk5UTXNNUzR4TkRjeU9UTXhMRGt1T0RZd016Z3lNU3d6TGpRek56TXdNVFpqTUM0ME5UWXhOelk0TERBdU16Z3lORFEyTXl3d0xqY3lNelF4T1RJc01DNDRORE15TURBM0xEQXVPREF4TnpReU5pd3hMak0zTnpZNE5UVUtDUWtKWXpBdU1EY3pOekUxTWl3d0xqVXpORFV3TURFdE1DNHhNVFV5TURNNUxEQXVPVGt3TmpRMk5DMHdMalUzTVRNMU1ERXNNUzR6TnpNd056YzBiQzB6TGpnNU9EQTROalVzTkM0d01UTXlOelV4Q2drSkNXTXRNQzR6TURnM01UVTRMREF1TWpNd016a3lOUzB3TGpZMk9ERXdOakVzTUM0ek9ESTBNekV0TVM0d09USXdNVEExTERBdU5EVTJNVFl4TldNdE1DNDBNVGt5T1RZekxEQXVNRGM0TXpJek5DMHdMamd5TURFMU9Ua3NNQzB4TGpJd01qVTVNRGt0TUM0eU1qVTNOamtLQ1FrSll5MHhMakUwTWpjeE5UVXRNQzQ0TkRNeU1EQTNMVEl1TkRReU1EYzNOaTB4TGpJMk1qUTVOamt0TXk0NE9UZ3dPRFkxTFRFdU1qWXlORGsyT1dndE55NDJOell6TmpFeFl5MHdMamt4TmpreE5Ua3NNQzB4TGpjd01ESXlOVGdzTUM0ek1qSTFNalV0TWk0ek5EazRPVGt6TERBdU9UY3lNakV6TndvSkNRbGpMVEF1TmpRNU5qZzROeXd3TGpZME9UWTNNelV0TUM0NU56WTRNakU1TERFdU5EYzBORFF4TlMwd0xqazNOamd5TVRrc01pNDBOalV3T0RjNVl6QXNNQzQyT0RZMU5UUXNNQzR5TXpBek9USTFMREV1TXpNMk1qRXlNaXd3TGpZNU1URTBOamtzTVM0NU5Ea3dNelUyQ2drSkNXTXdMalExTmpFMk1UVXNNQzQyTVRJNE1qTTFMREV1TURNeU1URTVPQ3d4TGpBek1qRXhPVGdzTVM0M01UZzJOVGcwTERFdU1qWXlORGsyT1V3eE56UXVNamd3TmpNNU5pd3hPRFV1T0Rjek5qRXhOWG9pTHo0S0NUd3ZaejRLUEM5blBnbzhMM04yWno0SyIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiY29uZmlnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfSx7ImFwaUdyb3VwcyI6WyJtb25pdG9yaW5nLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbInByb21ldGhldXNlcy9hcGkiXSwidmVyYnMiOlsiY3JlYXRlIiwiZ2V0IiwidXBkYXRlIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJsYWJlbCI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6eyJ0eXBlIjoiUmVjcmVhdGUifSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImFmZmluaXR5Ijp7Im5vZGVBZmZpbml0eSI6eyJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7Im5vZGVTZWxlY3RvclRlcm1zIjpbeyJtYXRjaEV4cHJlc3Npb25zIjpbeyJrZXkiOiJrdWJlcm5ldGVzLmlvL2FyY2giLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImFtZDY0IiwiYXJtNjQiLCJwcGM2NGxlIiwiczM5MHgiXX0seyJrZXkiOiJrdWJlcm5ldGVzLmlvL29zIiwib3BlcmF0b3IiOiJJbiIsInZhbHVlcyI6WyJsaW51eCJdfV19XX19fSwiY29udGFpbmVycyI6W3siYXJncyI6WyItLWxlYWRlci1lbGVjdCJdLCJjb21tYW5kIjpbIi91c3IvYmluL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiXSwiZW52IjpbeyJuYW1lIjoiSU5fQ0xVU1RFUiIsInZhbHVlIjoidHJ1ZSJ9LHsibmFtZSI6IldBVENIX05BTUVTUEFDRSIsInZhbHVlRnJvbSI6eyJmaWVsZFJlZiI6eyJmaWVsZFBhdGgiOiJtZXRhZGF0YS5hbm5vdGF0aW9uc1snb2xtLnRhcmdldE5hbWVzcGFjZXMnXSJ9fX1dLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjpjZTlkMmY5M2YyYzc5OWEzYTBiNmFlZTNiMDlkOGE5NDA0MmRjMjIxY2I2MTA1YjdiZDZiZmViMmYxYzRlYmNhIiwibGl2ZW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvaGVhbHRoeiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjoxNSwicGVyaW9kU2Vjb25kcyI6MjB9LCJuYW1lIjoibWFuYWdlciIsInJlYWRpbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsicGF0aCI6Ii9yZWFkeXoiLCJwb3J0Ijo4MDgxfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6NSwicGVyaW9kU2Vjb25kcyI6MTB9LCJyZXNvdXJjZXMiOnsibGltaXRzIjp7ImNwdSI6IjUwMG0iLCJtZW1vcnkiOiI1MDBNaSJ9LCJyZXF1ZXN0cyI6eyJjcHUiOiIxMDBtIiwibWVtb3J5IjoiMjBNaSJ9fSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlY3VyaXR5Q29udGV4dCI6eyJydW5Bc05vblJvb3QiOnRydWUsInNlY2NvbXBQcm9maWxlIjp7InR5cGUiOiJSdW50aW1lRGVmYXVsdCJ9fSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6MTAsInZvbHVtZXMiOlt7Im5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19fX19XSwicGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwidXBkYXRlIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJldmVudHMiXSwidmVyYnMiOlsiY3JlYXRlIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsiY29vcmRpbmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibGVhc2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImVuZHBvaW50cyIsImV2ZW50cyIsInBlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwb2RzIiwic2VjcmV0cyIsInNlcnZpY2VhY2NvdW50cyIsInNlcnZpY2VzIiwic2VydmljZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvcnMuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnNlcnZpY2V2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiT3duTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJTaW5nbGVOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJNdWx0aU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImNvc3QiLCJtYW5hZ2VtZW50IiwidXNhZ2UiLCJtb25pdG9yIl0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJtaW5LdWJlVmVyc2lvbiI6IjEuMjQuMCIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmNlOWQyZjkzZjJjNzk5YTNhMGI2YWVlM2IwOWQ4YTk0MDQyZGMyMjFjYjYxMDViN2JkNmJmZWIyZjFjNGViY2EiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci1jZTlkMmY5M2YyYzc5OWEzYTBiNmFlZTNiMDlkOGE5NDA0MmRjMjIxY2I2MTA1YjdiZDZiZmViMmYxYzRlYmNhLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmNlOWQyZjkzZjJjNzk5YTNhMGI2YWVlM2IwOWQ4YTk0MDQyZGMyMjFjYjYxMDViN2JkNmJmZWIyZjFjNGViY2EiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMS4xIiwidmVyc2lvbiI6IjMuMi4wIn19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:3995f83eb27886d4b35c7051728cb57721ee0ba7ccfc0727592d368400a63fc8 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:ce9d2f93f2c799a3a0b6aee3b09d8a94042dc221cb6105b7bd6bfeb2f1c4ebca + name: costmanagement-metrics-rhel8-operator-ce9d2f93f2c799a3a0b6aee3b09d8a94042dc221cb6105b7bd6bfeb2f1c4ebca-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:ce9d2f93f2c799a3a0b6aee3b09d8a94042dc221cb6105b7bd6bfeb2f1c4ebca + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:a1dc9a219534acb572ea00c5749e5db7aa083682e2b381dd9faddbc907b4792b +name: costmanagement-metrics-operator.3.2.1 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 3.2.1 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVmYXVsdCI6Imh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLlxuVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ub2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVuZHBvaW50IHVzZWQgdG8gb2J0YWluIHRoZSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly9zc28ucmVkaGF0LmNvbS9hdXRoL3JlYWxtcy9yZWRoYXQtZXh0ZXJuYWwvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uXG5WYWxpZCB2YWx1ZXMgYXJlOlxuLSBcImJhc2ljXCIgKGRlcHJlY2F0ZWQpIDogRW5hYmxlcyBhdXRoZW50aWNhdGlvbiB1c2luZyB1c2VyIGFuZCBwYXNzd29yZCBmcm9tIGF1dGhlbnRpY2F0aW9uIHNlY3JldC5cbi0gXCJzZXJ2aWNlLWFjY291bnRcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgY2xpZW50X2lkIGFuZCBjbGllbnRfc2VjcmV0IGZyb20gdGhlIHNlY3JldCBjb250YWluaW5nIHNlcnZpY2UgYWNjb3VudCBpbmZvcm1hdGlvbi5cbi0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlXG5zcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmVcbnNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlclZlcnNpb24gY2Fubm90IGJlIG9idGFpbmVkIGZyb20gdGhlIENsdXN0ZXJWZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7Im1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlZmF1bHQiOjMwLCJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLlxuVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLlxuVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdF9wcmV2aW91c19kYXRhIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiQ29sbGVjdFByZXZpb3VzRGF0YSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIHByZXZpb3VzIGRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbmNyZWF0aW9uLiBUaGlzIHRvZ2dsZSBvbmx5IGNoYW5nZXMgb3BlcmF0b3IgYmVoYXZpb3Igd2hlbiBhIG5ldyBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZC4gV2hlbiBgdHJ1ZWAsIHRoZSBvcGVyYXRvciB3aWxsIGdhdGhlciBhbGxcbmV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC5cblRoZSBkZWZhdWx0IGlzIDEyMCBzZWNvbmRzLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTgwLCJtaW5pbXVtIjoxMCwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvbkNvc3RNYW5hZ2VtZW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZVxucmVwb3J0cyBmb3IgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2VuZXJhdGVcbnJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLlxuU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly90aGFub3MtcXVlcmllci5vcGVuc2hpZnQtbW9uaXRvcmluZy5zdmM6OTA5MWAuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ta2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuXG5UaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIGRlc2lyZWQgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIGludGVncmF0aW9uIHN0YXR1cyBjaGVjayBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIGRlc2lyZWQgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbnNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS5cblRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLlxuVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLlxuSWYgYGZhbHNlYCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuXG5UaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInRva2VuX3VybCI6eyJkZXNjcmlwdGlvbiI6IlRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXJsIHVzZWQgdG8gZ2VuZXJhdGUgYSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMsIHNlcnZpY2UtYWNjb3VudCBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmdcbmNvc3QtbWFuYWdlbWVudCBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiRGlzYWJsZWRNZXRyaWNzQ29sbGVjdGlvblJlc291cmNlT3B0aW1pemF0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBjb2xsZWN0aW5nXG5yZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1c1xuZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlndXJlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIGlzIGNvbmZpZ3VyZWQgdG8gY29ubmVjdCB0byBwcm9tZXRoZXVzLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0Nvbm5lY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgcHJvbWV0aGV1cyBjYW4gYmUgcXVlcmllZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3Rpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25uZWN0aW9uRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyB0ZXN0IHF1ZXJ5LiIsInR5cGUiOiJzdHJpbmcifSwic2VydmljZV9hZGRyZXNzIjp7ImRlc2NyaXB0aW9uIjoiU3ZjQWRkcmVzcyBpcyB0aGUgaW50ZXJuYWwgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlNraXBUTFNWZXJpZmljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSB0aGFub3MtcXVlcmllciBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsicHJvbWV0aGV1c19jb25maWd1cmVkIiwicHJvbWV0aGV1c19jb25uZWN0ZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXBvcnRzIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcmVwb3J0IGdlbmVyYXRpb24uIiwicHJvcGVydGllcyI6eyJkYXRhX2NvbGxlY3RlZCI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGRhdGEgd2FzIGNvbGxlY3RlZCBmb3IgdGhlIGxhc3QgcXVlcnkuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGF0YV9jb2xsZWN0aW9uX21lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGlvbk1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGEgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFfY29sbGVjdGVkIHN0YXR1cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfaG91cl9xdWVyaWVkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdEhvdXJRdWVyaWVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgdGltZSByYW5nZSBmb3Igd2hpY2ggbWV0cmljcyB3ZXJlIGxhc3QgcXVlcmllZC4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcG9ydF9tb250aCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydE1vbnRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbW9udGggZm9yIHdoaWNoIHJlcG9ydHMgYXJlIGJlaW5nIGdlbmVyYXRlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZSByZXByZXNlbnRzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIGludGVncmF0aW9uIHN0YXR1cyBjaGVjayBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImNyZWF0ZV9zb3VyY2UgcmVwcmVzZW50cyB0aGUgdG9nZ2xlIHVzZWQgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLlxuQW4gSW50ZWdyYXRpb24gd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgaW50ZWdyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0X2NoZWNrX3RpbWUgaXMgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLlxuVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInNwZWMiXSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6bnVsbCwic3RvcmVkVmVyc2lvbnMiOm51bGx9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmVlNjlkNWNiZjU5MDliZGJmZmI4NWUyYzU1ZThiODMwOTM5YWIxYzllNmMzYTY3OTU1MmJhZDhlMGM5MGU2NTciLCJjcmVhdGVkQXQiOiIyMDI0LTAzLTE5VDEzOjUxOjM3WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Byb3h5LWF3YXJlIjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdGxzLXByb2ZpbGVzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXdzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXp1cmUiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1nY3AiOiJmYWxzZSIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcImRpc2Nvbm5lY3RlZFwiLCBcInByb3h5LWF3YXJlXCJdIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby92YWxpZC1zdWJzY3JpcHRpb24iOiJbXCJPcGVuU2hpZnQgS3ViZXJuZXRlcyBFbmdpbmVcIiwgXCJPcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtXCIsIFwiT3BlblNoaWZ0IFBsYXRmb3JtIFBsdXNcIl0iLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4zMy4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjQiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IiLCJzdXBwb3J0IjoiUmVkIEhhdCJ9LCJsYWJlbHMiOnsib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hbWQ2NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guYXJtNjQiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnBwYzY0bGUiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnMzOTB4Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vb3MubGludXgiOiJzdXBwb3J0ZWQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4yLjEiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBDb25maWciLCJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwidmVyc2lvbiI6InYxYmV0YTEifV19LCJkZXNjcmlwdGlvbiI6IiMgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3JcbiMjIEludHJvZHVjdGlvblxuVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBhIGNvbXBvbmVudCBvZiB0aGUgW2Nvc3QgbWFuYWdtZW50XShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2RvY3VtZW50YXRpb24vZW4tdXMvY29zdF9tYW5hZ2VtZW50X3NlcnZpY2UpIHNlcnZpY2UgZm9yIE9wZW5zaGlmdC4gVGhlIG9wZXJhdG9yIHJ1bnMgb24gdGhlIGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbnMgb2YgT3BlbnNoaWZ0LiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBldmVyeSBob3VyIHRvIGNyZWF0ZSBtZXRyaWMgcmVwb3J0cyB0aGF0IGl0IHVwbG9hZHMgdG8gQ29zdCBNYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSB0byBiZSBwcm9jZXNzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gQ29zdCBNYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS9sYXRlc3Qvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgQ29zdCBNYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC5cbiogV3JpdGluZyB0aGUgcmVzdWx0cyBvZiBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFJlc291cmNlIE9wdGltaXphdGlvbiBtZXRyaWNzIGNvbGxlY3Rpb24uXG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBnYXRoZXIgYWxsIHByZXZpb3VzIGRhdGEgd2l0aGluIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2Qgb3IgYSBtYXhpbXVtIG9mIDkwIGRheXMuIFRoZSBkZWZhdWx0IGRhdGEgY29sbGVjdGlvbiBwZXJpb2QgaXMgdGhlIDE0IHByZXZpb3VzIGRheXMuIFRoaXMgc2V0dGluZyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gQ29zdCBNYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGFuIGludGVncmF0aW9uIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gaW50ZWdyYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBOZXcgaW4gdjMuMi4xOlxuKiBUaGUgbWluaW11bSBzdXBwb3J0ZWQgY29uZmlndXJhdGlvbiBmb3IgYHVwbG9hZF9jeWNsZWAgaXMgbm93IDYwIChtaW51dGVzKS5cbiogKEJ1Z2ZpeCkgbWFueS10by1tYW55IG1hdGNoaW5nIG5vdCBhbGxvd2VkIHF1ZXJ5IGZpeC5cbiogKEJ1Z2ZpeCkgU2VxdWVudGlhbGx5IGNvbGxlY3QgZGF0YSBkdXJpbmcgaW5pdGlhbCBpbnN0YWxsLlxuXG4jIyBOZXcgaW4gdjMuMi4wOlxuKiBTdXBwb3J0IGZvciBhbWQ2NCwgYXJtNjQsIHBwYzY0bGUsIHMzOTB4IGFyY2hpdGVjdHVyZXMuXG4qIGFkZCBsaXZlbmVzcyBhbmQgcmVhZGluZXNzIHByb2JlcyB0byBjb250cm9sbGVyIFBvZC5cbiogdXBkYXRlIHBvZCBzZWN1cml0eSBzZXR0aW5ncyBzbyB0aGF0IHRoZSBjb250cm9sbGVyIFBvZCBjYW4gcnVuIGluIFJlc3RyaWN0ZWQgbW9kZSBbbW9yZSBpbmZvXShodHRwczovL3Nkay5vcGVyYXRvcmZyYW1ld29yay5pby9kb2NzL2Jlc3QtcHJhY3RpY2VzL3BvZC1zZWN1cml0eS1zdGFuZGFyZHMvKS5cblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycyksIG1pbmltdW0gaXMgNjAgKDEgaG91cikuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YFxuXG4zLiBTZWxlY3QgYENyZWF0ZWAuXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBGb3IgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYCBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgICogZm9yIGJhc2ljIGF1dGggdHlwZSAoZGVwcmVjYXRlZClcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IGJhc2ljXG4gICAgICAgIGBgYFxuXG4gICAgICAgICogZm9yIHNlcnZpY2UtYWNjb3VudCBhdXRoIHR5cGVcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IHNlcnZpY2UtYWNjb3VudFxuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBpbnRlZ3JhdGlvbiwgZWRpdCB0aGUgZm9sbG93aW5nIHZhbHVlcyBpbiB0aGUgYHNvdXJjZWAgZmllbGQ6XG4gICAgKiBSZXBsYWNlIHRoZSBgbmFtZWAgZmllbGQgdmFsdWUgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIGludGVncmF0aW9uIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgaW50ZWdyYXRpb24gZXhpc3RzLlxuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjIChiZWxvdyBpcyBvbmx5IGEgdGVtcGxhdGUuIEFueSBfdmFsaWRfIGBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1gIG1heSBiZSBkZWZpbmVkIGhlcmUpOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGFuIEludGVncmF0aW9uXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW50ZWdyYXRpb24uIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtJbnRlZ3JhdGlvbnMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3MvaW50ZWdyYXRpb25zLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBpbnRlZ3JhdGlvbiB0byBDb3N0IE1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGluZyBhbiBpbnRlZ3JhdGlvbjpcbjEuIE5hdmlnYXRlIHRvIHRoZSBJbnRlZ3JhdGlvbnMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdGAgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgaW50ZWdyYXRpb246XG4gICAgKiBnaXZlIHRoZSBpbnRlZ3JhdGlvbiBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2Ugd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgc291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2FwaS9pbmdyZXNzL3YxL3VwbG9hZCAtdSBVU0VSTkFNRTpQQVNTXG5cbndoZXJlIGBVU0VSTkFNRWAgYW5kIGBQQVNTYCBjb3JyZXNwb25kIHRvIHRoZSB1c2VyIGNyZWRlbnRpYWxzIGZvciBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC5cbiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19LHsiYXBpR3JvdXBzIjpbIm1vbml0b3JpbmcuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsicHJvbWV0aGV1c2VzL2FwaSJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJnZXQiLCJ1cGRhdGUiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7InR5cGUiOiJSZWNyZWF0ZSJ9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiYWZmaW5pdHkiOnsibm9kZUFmZmluaXR5Ijp7InJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsibm9kZVNlbGVjdG9yVGVybXMiOlt7Im1hdGNoRXhwcmVzc2lvbnMiOlt7ImtleSI6Imt1YmVybmV0ZXMuaW8vYXJjaCIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsiYW1kNjQiLCJhcm02NCIsInBwYzY0bGUiLCJzMzkweCJdfSx7ImtleSI6Imt1YmVybmV0ZXMuaW8vb3MiLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImxpbnV4Il19XX1dfX19LCJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tbGVhZGVyLWVsZWN0Il0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmVlNjlkNWNiZjU5MDliZGJmZmI4NWUyYzU1ZThiODMwOTM5YWIxYzllNmMzYTY3OTU1MmJhZDhlMGM5MGU2NTciLCJsaXZlbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsicGF0aCI6Ii9oZWFsdGh6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjE1LCJwZXJpb2RTZWNvbmRzIjoyMH0sIm5hbWUiOiJtYW5hZ2VyIiwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjo1LCJwZXJpb2RTZWNvbmRzIjoxMH0sInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19fSwidGVybWluYXRpb25NZXNzYWdlUG9saWN5IjoiRmFsbGJhY2tUb0xvZ3NPbkVycm9yIiwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19XSwic2VjdXJpdHlDb250ZXh0Ijp7InJ1bkFzTm9uUm9vdCI6dHJ1ZSwic2VjY29tcFByb2ZpbGUiOnsidHlwZSI6IlJ1bnRpbWVEZWZhdWx0In19LCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsIm1pbkt1YmVWZXJzaW9uIjoiMS4yNC4wIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZWU2OWQ1Y2JmNTkwOWJkYmZmYjg1ZTJjNTVlOGI4MzA5MzlhYjFjOWU2YzNhNjc5NTUyYmFkOGUwYzkwZTY1NyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLWVlNjlkNWNiZjU5MDliZGJmZmI4NWUyYzU1ZThiODMwOTM5YWIxYzllNmMzYTY3OTU1MmJhZDhlMGM5MGU2NTctYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZWU2OWQ1Y2JmNTkwOWJkYmZmYjg1ZTJjNTVlOGI4MzA5MzlhYjFjOWU2YzNhNjc5NTUyYmFkOGUwYzkwZTY1NyIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4yLjAiLCJ2ZXJzaW9uIjoiMy4yLjEifX0= +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:a1dc9a219534acb572ea00c5749e5db7aa083682e2b381dd9faddbc907b4792b + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:ee69d5cbf5909bdbffb85e2c55e8b830939ab1c9e6c3a679552bad8e0c90e657 + name: costmanagement-metrics-rhel8-operator-ee69d5cbf5909bdbffb85e2c55e8b830939ab1c9e6c3a679552bad8e0c90e657-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:ee69d5cbf5909bdbffb85e2c55e8b830939ab1c9e6c3a679552bad8e0c90e657 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:226634a6f640c8095b8c61055d8c9bb4c81dc50d1cf413267b23caa488982f1b +name: costmanagement-metrics-operator.3.3.0 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 3.3.0 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVmYXVsdCI6Imh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLlxuVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ub2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVuZHBvaW50IHVzZWQgdG8gb2J0YWluIHRoZSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly9zc28ucmVkaGF0LmNvbS9hdXRoL3JlYWxtcy9yZWRoYXQtZXh0ZXJuYWwvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uXG5WYWxpZCB2YWx1ZXMgYXJlOlxuLSBcImJhc2ljXCIgKGRlcHJlY2F0ZWQpIDogRW5hYmxlcyBhdXRoZW50aWNhdGlvbiB1c2luZyB1c2VyIGFuZCBwYXNzd29yZCBmcm9tIGF1dGhlbnRpY2F0aW9uIHNlY3JldC5cbi0gXCJzZXJ2aWNlLWFjY291bnRcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgY2xpZW50X2lkIGFuZCBjbGllbnRfc2VjcmV0IGZyb20gdGhlIHNlY3JldCBjb250YWluaW5nIHNlcnZpY2UgYWNjb3VudCBpbmZvcm1hdGlvbi5cbi0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlXG5zcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmVcbnNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlclZlcnNpb24gY2Fubm90IGJlIG9idGFpbmVkIGZyb20gdGhlIENsdXN0ZXJWZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7Im1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlZmF1bHQiOjMwLCJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLlxuVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLlxuVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdF9wcmV2aW91c19kYXRhIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiQ29sbGVjdFByZXZpb3VzRGF0YSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIHByZXZpb3VzIGRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbmNyZWF0aW9uLiBUaGlzIHRvZ2dsZSBvbmx5IGNoYW5nZXMgb3BlcmF0b3IgYmVoYXZpb3Igd2hlbiBhIG5ldyBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZC4gV2hlbiBgdHJ1ZWAsIHRoZSBvcGVyYXRvciB3aWxsIGdhdGhlciBhbGxcbmV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC5cblRoZSBkZWZhdWx0IGlzIDEyMCBzZWNvbmRzLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTgwLCJtaW5pbXVtIjoxMCwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvbkNvc3RNYW5hZ2VtZW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZVxucmVwb3J0cyBmb3IgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2VuZXJhdGVcbnJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLlxuU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly90aGFub3MtcXVlcmllci5vcGVuc2hpZnQtbW9uaXRvcmluZy5zdmM6OTA5MWAuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ta2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuXG5UaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIGRlc2lyZWQgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIGludGVncmF0aW9uIHN0YXR1cyBjaGVjayBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIGRlc2lyZWQgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbnNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS5cblRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLlxuVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLlxuSWYgYGZhbHNlYCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuXG5UaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGVwcmVjYXRpb25fbm90aWNlIjp7ImRlc2NyaXB0aW9uIjoiRGVwcmVjYXRpb25Ob3RpY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgZGVwcmVjYXRpb24gbm90aWNlLiIsInR5cGUiOiJzdHJpbmcifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInRva2VuX3VybCI6eyJkZXNjcmlwdGlvbiI6IlRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXJsIHVzZWQgdG8gZ2VuZXJhdGUgYSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMsIHNlcnZpY2UtYWNjb3VudCBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmdcbmNvc3QtbWFuYWdlbWVudCBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiRGlzYWJsZWRNZXRyaWNzQ29sbGVjdGlvblJlc291cmNlT3B0aW1pemF0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBjb2xsZWN0aW5nXG5yZXNvdXJjZS1vcHRpbWl6YXRpb24gbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcmV2aW91c19kYXRhX2NvbGxlY3RlZCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJQcmV2aW91c0RhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciBnYXRoZXJlZCB0aGUgYXZhaWxhYmxlIFByb21ldGhldXNcbmRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgY3JlYXRpb24uIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25maWd1cmVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZ3VyZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBjb25maWd1cmVkIHRvIGNvbm5lY3QgdG8gcHJvbWV0aGV1cy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25uZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHByb21ldGhldXMgY2FuIGJlIHF1ZXJpZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29ubmVjdGlvbkVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgdGVzdCBxdWVyeS4iLCJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2VfYWRkcmVzcyI6eyJkZXNjcmlwdGlvbiI6IlN2Y0FkZHJlc3MgaXMgdGhlIGludGVybmFsIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbInByb21ldGhldXNfY29uZmlndXJlZCIsInByb21ldGhldXNfY29ubmVjdGVkIl0sInR5cGUiOiJvYmplY3QifSwicmVwb3J0cyI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydHMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHJlcG9ydCBnZW5lcmF0aW9uLiIsInByb3BlcnRpZXMiOnsiZGF0YV9jb2xsZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBkYXRhIHdhcyBjb2xsZWN0ZWQgZm9yIHRoZSBsYXN0IHF1ZXJ5LiIsInR5cGUiOiJib29sZWFuIn0sImRhdGFfY29sbGVjdGlvbl9tZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3Rpb25NZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBhIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhX2NvbGxlY3RlZCBzdGF0dXMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2hvdXJfcXVlcmllZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RIb3VyUXVlcmllZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHRpbWUgcmFuZ2UgZm9yIHdoaWNoIG1ldHJpY3Mgd2VyZSBsYXN0IHF1ZXJpZWQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXBvcnRfbW9udGgiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRNb250aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIG1vbnRoIGZvciB3aGljaCByZXBvcnRzIGFyZSBiZWluZyBnZW5lcmF0ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiY2hlY2tfY3ljbGUgaXMgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLlxuVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS5cbkFuIEludGVncmF0aW9uIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiZXJyb3IgcmVwcmVzZW50cyBhbnkgZXJyb3JzIGVuY291bnRlcmVkIHdoZW4gY3JlYXRpbmcgdGhlIGludGVncmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoibGFzdF9jaGVja190aW1lIGlzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3QgaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgcmVwcmVzZW50cyB0aGUgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdGhhdCB0aGUgb3BlcmF0b3IgYXR0ZW1wdGVkIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZV9kZWZpbmVkIHJlcHJlc2VudHMgd2hldGhlciB0aGUgZGVmaW5lZCBpbnRlZ3JhdGlvbiBuYW1lIGV4aXN0cyBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoic291cmNlc19wYXRoIGlzIHRoZSBwcmVmaXggb2YgdGhlIFNvdXJjZXMgQVBJIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGVzIGluIHRoZSBsYXN0IHBheWxvYWQgdGhhdCB3YXMgc2VudC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJsYXN0X3BheWxvYWRfbWFuaWZlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE1hbmlmZXN0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG1hbmlmZXN0SUQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGxhc3QgcGF5bG9hZCBmaWxlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX3JlcXVlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZFJlcXVlc3RJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBpbnNpZ2h0cyByZXF1ZXN0IGlkIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfdXBsb2FkX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFVwbG9hZFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIHVwbG9hZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3VwbG9hZF9zdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0VXBsb2FkU3RhdHVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGh0dHAgc3RhdHVzIG9mIHRoZSBsYXN0IHVwbG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFRvZ2dsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIHNob3VsZCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tLlxuVGhlIGRlZmF1bHQgaXMgdHJ1ZSIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF9jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS5cblRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOm51bGwsInN0b3JlZFZlcnNpb25zIjpudWxsfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmQxZTk0YTZlN2E1MmUxNGU5NmE5YWNiYTU0YWVhZTRjYjFhYWUwZGFkMjIwMjk4YmIyZWQwMzRmOWRmMTllZTQiLCJjcmVhdGVkQXQiOiIyMDI0LTA1LTMxVDE2OjE2OjQ2WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Byb3h5LWF3YXJlIjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdGxzLXByb2ZpbGVzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXdzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXp1cmUiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1nY3AiOiJmYWxzZSIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcImRpc2Nvbm5lY3RlZFwiLCBcInByb3h5LWF3YXJlXCJdIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby92YWxpZC1zdWJzY3JpcHRpb24iOiJbXCJPcGVuU2hpZnQgS3ViZXJuZXRlcyBFbmdpbmVcIiwgXCJPcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtXCIsIFwiT3BlblNoaWZ0IFBsYXRmb3JtIFBsdXNcIl0iLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4zMy4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjQiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IiLCJzdXBwb3J0IjoiUmVkIEhhdCJ9LCJsYWJlbHMiOnsib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hbWQ2NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guYXJtNjQiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnBwYzY0bGUiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnMzOTB4Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vb3MubGludXgiOiJzdXBwb3J0ZWQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4zLjAiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBDb25maWciLCJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwidmVyc2lvbiI6InYxYmV0YTEifV19LCJkZXNjcmlwdGlvbiI6IiMgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3JcbiMjIEludHJvZHVjdGlvblxuVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBhIGNvbXBvbmVudCBvZiB0aGUgW2Nvc3QgbWFuYWdtZW50XShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2RvY3VtZW50YXRpb24vZW4tdXMvY29zdF9tYW5hZ2VtZW50X3NlcnZpY2UpIHNlcnZpY2UgZm9yIE9wZW5zaGlmdC4gVGhlIG9wZXJhdG9yIHJ1bnMgb24gdGhlIGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbnMgb2YgT3BlbnNoaWZ0LiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBldmVyeSBob3VyIHRvIGNyZWF0ZSBtZXRyaWMgcmVwb3J0cyB0aGF0IGl0IHVwbG9hZHMgdG8gQ29zdCBNYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSB0byBiZSBwcm9jZXNzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gQ29zdCBNYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS9sYXRlc3Qvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgQ29zdCBNYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC5cbiogV3JpdGluZyB0aGUgcmVzdWx0cyBvZiBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFJlc291cmNlIE9wdGltaXphdGlvbiBtZXRyaWNzIGNvbGxlY3Rpb24uXG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBnYXRoZXIgYWxsIHByZXZpb3VzIGRhdGEgd2l0aGluIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2Qgb3IgYSBtYXhpbXVtIG9mIDkwIGRheXMuIFRoZSBkZWZhdWx0IGRhdGEgY29sbGVjdGlvbiBwZXJpb2QgaXMgdGhlIDE0IHByZXZpb3VzIGRheXMuIFRoaXMgc2V0dGluZyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gQ29zdCBNYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGFuIGludGVncmF0aW9uIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gaW50ZWdyYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBOZXcgaW4gdjMuMy4wOlxuKiBTdG9yYWdlIHJlcG9ydHMgbm93IGNvbnRhaW4gYG5vZGVgLCBgY3NpX2RyaXZlcmAsIGFuZCBgY3NpX3ZvbHVtZV9oYW5kbGVgIGZpZWxkcy5cbiogVGhlIFBWQyBjYXBhY2l0eSBpcyBub3cgcG9wdWxhdGVkIHVzaW5nIHRoZSBga3ViZV9wZXJzaXN0ZW50dm9sdW1lX2NhcGFjaXR5X2J5dGVzYCBtZXRyaWMgaW5zdGVhZCBvZiBga3ViZWxldF92b2x1bWVfc3RhdHNfY2FwYWNpdHlfYnl0ZXNgLlxuKiBUbyByZWNlaXZlIHJlc291cmNlIG9wdGltaXphdGlvbiByZWNvbW1lbmRhdGlvbnMgZm9yIHlvdXIgbmFtZXNwYWNlcywgeW91IG11c3Qgbm93IGZpcnN0IGVuYWJsZSBlYWNoIG5hbWVzcGFjZS4gVG8gZW5hYmxlIGEgbmFtZXNwYWNlLCBsYWJlbCBpdCB3aXRoIGBpbnNpZ2h0c19jb3N0X21hbmFnZW1lbnRfb3B0aW1pemF0aW9ucz0ndHJ1ZSdgLiBJbiB0aGUgQ0xJLCBydW46XG4gIGBgYFxuICAgIG9jIGxhYmVsIG5hbWVzcGFjZSBOQU1FU1BBQ0UgaW5zaWdodHNfY29zdF9tYW5hZ2VtZW50X29wdGltaXphdGlvbnM9XCJ0cnVlXCIgLS1vdmVyd3JpdGU9dHJ1ZVxuICBgYGBcbiogX19ERVBSRUNBVElPTiBOT1RJQ0VfXzogQmFzaWMgYXV0aGVudGljYXRpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGJleW9uZCBEZWNlbWJlciAzMSwgMjAyNC4gSWYgdGhlIGRlZmF1bHQgdG9rZW4gYXV0aGVudGljYXRpb24gbWV0aG9kIGNhbm5vdCBiZSB1c2VkLCB5b3UgbXVzdCBzd2l0Y2ggdG8gW3NlcnZpY2UgYWNjb3VudF0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vaWFtL3NlcnZpY2UtYWNjb3VudHMpIGF1dGhlbnRpY2F0aW9uIChbbW9yZSBvbiBjcmVhdGluZyBhIHNlcnZpY2UgYWNjb3VudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9hcnRpY2xlcy83MDM2MTk0KSkuIE9uY2UgeW91IGhhdmUgY3JlYXRlZCB5b3VyIHNlcnZpY2UgYWNjb3VudCwgZm9sbG93IFt0aGlzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZS8xLWxhdGVzdC9odG1sLXNpbmdsZS9pbnRlZ3JhdGluZ19vcGVuc2hpZnRfY29udGFpbmVyX3BsYXRmb3JtX2RhdGFfaW50b19jb3N0X21hbmFnZW1lbnQvaW5kZXgjc2VydmljZS1hY2NvdW50LWF1dGhlbnRpY2F0aW9uX2FkZGluZy1hbi1vY3AtaW50KSBvbiBob3cgdG8gY29uZmlndXJlIHlvdXIgb3BlcmF0b3IgdG8gdXNlIHNlcnZpY2UgYWNjb3VudCBhdXRoZW50aWNhdGlvbi4gU2VydmljZS1hY2NvdW50cyBtdXN0IGFsc28gYmUgdXNlZCBpZiBtYW51YWxseSB1cGxvYWRpbmcgcGF5bG9hZHMgdG8gY29uc29sZS5yZWRoYXQuY29tLlxuXG4jIyBOZXcgaW4gdjMuMi4xOlxuKiBUaGUgbWluaW11bSBzdXBwb3J0ZWQgY29uZmlndXJhdGlvbiBmb3IgYHVwbG9hZF9jeWNsZWAgaXMgbm93IDYwIChtaW51dGVzKS5cbiogKEJ1Z2ZpeCkgbWFueS10by1tYW55IG1hdGNoaW5nIG5vdCBhbGxvd2VkIHF1ZXJ5IGZpeC5cbiogKEJ1Z2ZpeCkgU2VxdWVudGlhbGx5IGNvbGxlY3QgZGF0YSBkdXJpbmcgaW5pdGlhbCBpbnN0YWxsLlxuXG4jIyBOZXcgaW4gdjMuMi4wOlxuKiBTdXBwb3J0IGZvciBhbWQ2NCwgYXJtNjQsIHBwYzY0bGUsIHMzOTB4IGFyY2hpdGVjdHVyZXMuXG4qIGFkZCBsaXZlbmVzcyBhbmQgcmVhZGluZXNzIHByb2JlcyB0byBjb250cm9sbGVyIFBvZC5cbiogdXBkYXRlIHBvZCBzZWN1cml0eSBzZXR0aW5ncyBzbyB0aGF0IHRoZSBjb250cm9sbGVyIFBvZCBjYW4gcnVuIGluIFJlc3RyaWN0ZWQgbW9kZSBbbW9yZSBpbmZvXShodHRwczovL3Nkay5vcGVyYXRvcmZyYW1ld29yay5pby9kb2NzL2Jlc3QtcHJhY3RpY2VzL3BvZC1zZWN1cml0eS1zdGFuZGFyZHMvKS5cblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycyksIG1pbmltdW0gaXMgNjAgKDEgaG91cikuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YFxuXG4zLiBTZWxlY3QgYENyZWF0ZWAuXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBGb3IgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYCBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgICogZm9yIGJhc2ljIGF1dGggdHlwZSAoZGVwcmVjYXRlZClcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IGJhc2ljXG4gICAgICAgIGBgYFxuXG4gICAgICAgICogZm9yIHNlcnZpY2UtYWNjb3VudCBhdXRoIHR5cGVcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IHNlcnZpY2UtYWNjb3VudFxuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBpbnRlZ3JhdGlvbiwgZWRpdCB0aGUgZm9sbG93aW5nIHZhbHVlcyBpbiB0aGUgYHNvdXJjZWAgZmllbGQ6XG4gICAgKiBSZXBsYWNlIHRoZSBgbmFtZWAgZmllbGQgdmFsdWUgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIGludGVncmF0aW9uIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgaW50ZWdyYXRpb24gZXhpc3RzLlxuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjIChiZWxvdyBpcyBvbmx5IGEgdGVtcGxhdGUuIEFueSBfdmFsaWRfIGBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1gIG1heSBiZSBkZWZpbmVkIGhlcmUpOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGFuIEludGVncmF0aW9uXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW50ZWdyYXRpb24uIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtJbnRlZ3JhdGlvbnMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3MvaW50ZWdyYXRpb25zLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBpbnRlZ3JhdGlvbiB0byBDb3N0IE1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGluZyBhbiBpbnRlZ3JhdGlvbjpcbjEuIE5hdmlnYXRlIHRvIHRoZSBJbnRlZ3JhdGlvbnMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdGAgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgaW50ZWdyYXRpb246XG4gICAgKiBnaXZlIHRoZSBpbnRlZ3JhdGlvbiBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2Ugd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgc291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC1IIFwiQXV0aG9yaXphdGlvbjogQmVhcmVyICR7QUNDRVNTX1RPS0VOfVwiXG5cbndoZXJlIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiBUaGUgYEFDQ0VTU19UT0tFTmAgaXMgYWNxdWlyZWQgdXNpbmcgYSBbc2VydmljZS1hY2NvdW50XShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2FydGljbGVzLzcwMzYxOTQpLlxuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX0seyJhcGlHcm91cHMiOlsibW9uaXRvcmluZy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJwcm9tZXRoZXVzZXMvYXBpIl0sInZlcmJzIjpbImNyZWF0ZSIsImdldCIsInVwZGF0ZSJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dLCJkZXBsb3ltZW50cyI6W3sibGFiZWwiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnsidHlwZSI6IlJlY3JlYXRlIn0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJhZmZpbml0eSI6eyJub2RlQWZmaW5pdHkiOnsicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJub2RlU2VsZWN0b3JUZXJtcyI6W3sibWF0Y2hFeHByZXNzaW9ucyI6W3sia2V5Ijoia3ViZXJuZXRlcy5pby9hcmNoIiwib3BlcmF0b3IiOiJJbiIsInZhbHVlcyI6WyJhbWQ2NCIsImFybTY0IiwicHBjNjRsZSIsInMzOTB4Il19LHsia2V5Ijoia3ViZXJuZXRlcy5pby9vcyIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsibGludXgiXX1dfV19fX0sImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1sZWFkZXItZWxlY3QiXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZDFlOTRhNmU3YTUyZTE0ZTk2YTlhY2JhNTRhZWFlNGNiMWFhZTBkYWQyMjAyOThiYjJlZDAzNGY5ZGYxOWVlNCIsImxpdmVuZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL2hlYWx0aHoiLCJwb3J0Ijo4MDgxfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MTUsInBlcmlvZFNlY29uZHMiOjIwfSwibmFtZSI6Im1hbmFnZXIiLCJyZWFkaW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvcmVhZHl6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjUsInBlcmlvZFNlY29uZHMiOjEwfSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInNlY3VyaXR5Q29udGV4dCI6eyJhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb24iOmZhbHNlLCJjYXBhYmlsaXRpZXMiOnsiZHJvcCI6WyJBTEwiXX19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZWN1cml0eUNvbnRleHQiOnsicnVuQXNOb25Sb290Ijp0cnVlLCJzZWNjb21wUHJvZmlsZSI6eyJ0eXBlIjoiUnVudGltZURlZmF1bHQifX0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJsaW5rcyI6W3sibmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkiLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciJ9XSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsIm1pbkt1YmVWZXJzaW9uIjoiMS4yNC4wIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZDFlOTRhNmU3YTUyZTE0ZTk2YTlhY2JhNTRhZWFlNGNiMWFhZTBkYWQyMjAyOThiYjJlZDAzNGY5ZGYxOWVlNCIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLWQxZTk0YTZlN2E1MmUxNGU5NmE5YWNiYTU0YWVhZTRjYjFhYWUwZGFkMjIwMjk4YmIyZWQwMzRmOWRmMTllZTQtYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZDFlOTRhNmU3YTUyZTE0ZTk2YTlhY2JhNTRhZWFlNGNiMWFhZTBkYWQyMjAyOThiYjJlZDAzNGY5ZGYxOWVlNCIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4yLjEiLCJ2ZXJzaW9uIjoiMy4zLjAifX0= +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:226634a6f640c8095b8c61055d8c9bb4c81dc50d1cf413267b23caa488982f1b + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:d1e94a6e7a52e14e96a9acba54aeae4cb1aae0dad220298bb2ed034f9df19ee4 + name: costmanagement-metrics-rhel8-operator-d1e94a6e7a52e14e96a9acba54aeae4cb1aae0dad220298bb2ed034f9df19ee4-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:d1e94a6e7a52e14e96a9acba54aeae4cb1aae0dad220298bb2ed034f9df19ee4 + name: manager +schema: olm.bundle +--- +image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:01cab18a6af3cc819a936ce434004d5dce4495474e62bc116643eb753c25cd91 +name: costmanagement-metrics-operator.3.3.1 +package: costmanagement-metrics-operator +properties: +- type: olm.gvk + value: + group: costmanagement-metrics-cfg.openshift.io + kind: CostManagementMetricsConfig + version: v1beta1 +- type: olm.package + value: + packageName: costmanagement-metrics-operator + version: 3.3.1 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVmYXVsdCI6Imh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLlxuVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ub2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVuZHBvaW50IHVzZWQgdG8gb2J0YWluIHRoZSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly9zc28ucmVkaGF0LmNvbS9hdXRoL3JlYWxtcy9yZWRoYXQtZXh0ZXJuYWwvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uXG5WYWxpZCB2YWx1ZXMgYXJlOlxuLSBcImJhc2ljXCIgKGRlcHJlY2F0ZWQpIDogRW5hYmxlcyBhdXRoZW50aWNhdGlvbiB1c2luZyB1c2VyIGFuZCBwYXNzd29yZCBmcm9tIGF1dGhlbnRpY2F0aW9uIHNlY3JldC5cbi0gXCJzZXJ2aWNlLWFjY291bnRcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgY2xpZW50X2lkIGFuZCBjbGllbnRfc2VjcmV0IGZyb20gdGhlIHNlY3JldCBjb250YWluaW5nIHNlcnZpY2UgYWNjb3VudCBpbmZvcm1hdGlvbi5cbi0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlXG5zcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmVcbnNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlclZlcnNpb24gY2Fubm90IGJlIG9idGFpbmVkIGZyb20gdGhlIENsdXN0ZXJWZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7Im1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlZmF1bHQiOjMwLCJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLlxuVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLlxuVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdF9wcmV2aW91c19kYXRhIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiQ29sbGVjdFByZXZpb3VzRGF0YSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIHByZXZpb3VzIGRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbmNyZWF0aW9uLiBUaGlzIHRvZ2dsZSBvbmx5IGNoYW5nZXMgb3BlcmF0b3IgYmVoYXZpb3Igd2hlbiBhIG5ldyBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZC4gV2hlbiBgdHJ1ZWAsIHRoZSBvcGVyYXRvciB3aWxsIGdhdGhlciBhbGxcbmV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC5cblRoZSBkZWZhdWx0IGlzIDEyMCBzZWNvbmRzLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTgwLCJtaW5pbXVtIjoxMCwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvbkNvc3RNYW5hZ2VtZW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZVxucmVwb3J0cyBmb3IgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2VuZXJhdGVcbnJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLlxuU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly90aGFub3MtcXVlcmllci5vcGVuc2hpZnQtbW9uaXRvcmluZy5zdmM6OTA5MWAuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ta2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuXG5UaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIGRlc2lyZWQgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIGludGVncmF0aW9uIHN0YXR1cyBjaGVjayBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIGRlc2lyZWQgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbnNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS5cblRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLlxuVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLlxuSWYgYGZhbHNlYCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuXG5UaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGVwcmVjYXRpb25fbm90aWNlIjp7ImRlc2NyaXB0aW9uIjoiRGVwcmVjYXRpb25Ob3RpY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgZGVwcmVjYXRpb24gbm90aWNlLiIsInR5cGUiOiJzdHJpbmcifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInRva2VuX3VybCI6eyJkZXNjcmlwdGlvbiI6IlRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXJsIHVzZWQgdG8gZ2VuZXJhdGUgYSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMsIHNlcnZpY2UtYWNjb3VudCBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmdcbmNvc3QtbWFuYWdlbWVudCBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiRGlzYWJsZWRNZXRyaWNzQ29sbGVjdGlvblJlc291cmNlT3B0aW1pemF0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBjb2xsZWN0aW5nXG5yZXNvdXJjZS1vcHRpbWl6YXRpb24gbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcmV2aW91c19kYXRhX2NvbGxlY3RlZCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJQcmV2aW91c0RhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciBnYXRoZXJlZCB0aGUgYXZhaWxhYmxlIFByb21ldGhldXNcbmRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgY3JlYXRpb24uIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25maWd1cmVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZ3VyZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBjb25maWd1cmVkIHRvIGNvbm5lY3QgdG8gcHJvbWV0aGV1cy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25uZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHByb21ldGhldXMgY2FuIGJlIHF1ZXJpZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29ubmVjdGlvbkVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgdGVzdCBxdWVyeS4iLCJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2VfYWRkcmVzcyI6eyJkZXNjcmlwdGlvbiI6IlN2Y0FkZHJlc3MgaXMgdGhlIGludGVybmFsIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbInByb21ldGhldXNfY29uZmlndXJlZCIsInByb21ldGhldXNfY29ubmVjdGVkIl0sInR5cGUiOiJvYmplY3QifSwicmVwb3J0cyI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydHMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHJlcG9ydCBnZW5lcmF0aW9uLiIsInByb3BlcnRpZXMiOnsiZGF0YV9jb2xsZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBkYXRhIHdhcyBjb2xsZWN0ZWQgZm9yIHRoZSBsYXN0IHF1ZXJ5LiIsInR5cGUiOiJib29sZWFuIn0sImRhdGFfY29sbGVjdGlvbl9tZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3Rpb25NZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBhIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhX2NvbGxlY3RlZCBzdGF0dXMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2hvdXJfcXVlcmllZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RIb3VyUXVlcmllZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHRpbWUgcmFuZ2UgZm9yIHdoaWNoIG1ldHJpY3Mgd2VyZSBsYXN0IHF1ZXJpZWQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXBvcnRfbW9udGgiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRNb250aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIG1vbnRoIGZvciB3aGljaCByZXBvcnRzIGFyZSBiZWluZyBnZW5lcmF0ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiY2hlY2tfY3ljbGUgaXMgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLlxuVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS5cbkFuIEludGVncmF0aW9uIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiZXJyb3IgcmVwcmVzZW50cyBhbnkgZXJyb3JzIGVuY291bnRlcmVkIHdoZW4gY3JlYXRpbmcgdGhlIGludGVncmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoibGFzdF9jaGVja190aW1lIGlzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3QgaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgcmVwcmVzZW50cyB0aGUgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdGhhdCB0aGUgb3BlcmF0b3IgYXR0ZW1wdGVkIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZV9kZWZpbmVkIHJlcHJlc2VudHMgd2hldGhlciB0aGUgZGVmaW5lZCBpbnRlZ3JhdGlvbiBuYW1lIGV4aXN0cyBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoic291cmNlc19wYXRoIGlzIHRoZSBwcmVmaXggb2YgdGhlIFNvdXJjZXMgQVBJIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGVzIGluIHRoZSBsYXN0IHBheWxvYWQgdGhhdCB3YXMgc2VudC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJsYXN0X3BheWxvYWRfbWFuaWZlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE1hbmlmZXN0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG1hbmlmZXN0SUQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGxhc3QgcGF5bG9hZCBmaWxlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX3JlcXVlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZFJlcXVlc3RJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBpbnNpZ2h0cyByZXF1ZXN0IGlkIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfdXBsb2FkX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFVwbG9hZFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIHVwbG9hZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3VwbG9hZF9zdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0VXBsb2FkU3RhdHVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGh0dHAgc3RhdHVzIG9mIHRoZSBsYXN0IHVwbG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFRvZ2dsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIHNob3VsZCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tLlxuVGhlIGRlZmF1bHQgaXMgdHJ1ZSIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF9jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS5cblRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOm51bGwsInN0b3JlZFZlcnNpb25zIjpudWxsfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYwMzgyOGQ2ZTVjMWQwYWVmM2ExMDIzMGY1MTk5YWM3NjgzMjg1MzVjZGUxMmI1OTQ5MjBiOTgxMDY4NDU0NzciLCJjcmVhdGVkQXQiOiIyMDI0LTA4LTEyVDIwOjU4OjQ5WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Byb3h5LWF3YXJlIjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdGxzLXByb2ZpbGVzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXdzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXp1cmUiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1nY3AiOiJmYWxzZSIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcImRpc2Nvbm5lY3RlZFwiLCBcInByb3h5LWF3YXJlXCJdIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby92YWxpZC1zdWJzY3JpcHRpb24iOiJbXCJPcGVuU2hpZnQgS3ViZXJuZXRlcyBFbmdpbmVcIiwgXCJPcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtXCIsIFwiT3BlblNoaWZ0IFBsYXRmb3JtIFBsdXNcIl0iLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4zNS4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjQiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IiLCJzdXBwb3J0IjoiUmVkIEhhdCJ9LCJsYWJlbHMiOnsib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hbWQ2NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guYXJtNjQiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnBwYzY0bGUiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnMzOTB4Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vb3MubGludXgiOiJzdXBwb3J0ZWQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4zLjEiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBDb25maWciLCJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwidmVyc2lvbiI6InYxYmV0YTEifV19LCJkZXNjcmlwdGlvbiI6IiMgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3JcbiMjIEludHJvZHVjdGlvblxuVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBhIGNvbXBvbmVudCBvZiB0aGUgW2Nvc3QgbWFuYWdtZW50XShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2RvY3VtZW50YXRpb24vZW4tdXMvY29zdF9tYW5hZ2VtZW50X3NlcnZpY2UpIHNlcnZpY2UgZm9yIE9wZW5zaGlmdC4gVGhlIG9wZXJhdG9yIHJ1bnMgb24gdGhlIGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbnMgb2YgT3BlbnNoaWZ0LiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBldmVyeSBob3VyIHRvIGNyZWF0ZSBtZXRyaWMgcmVwb3J0cyB0aGF0IGl0IHVwbG9hZHMgdG8gQ29zdCBNYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSB0byBiZSBwcm9jZXNzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gQ29zdCBNYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS9sYXRlc3Qvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgQ29zdCBNYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC5cbiogV3JpdGluZyB0aGUgcmVzdWx0cyBvZiBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFJlc291cmNlIE9wdGltaXphdGlvbiBtZXRyaWNzIGNvbGxlY3Rpb24uXG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBnYXRoZXIgYWxsIHByZXZpb3VzIGRhdGEgd2l0aGluIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2Qgb3IgYSBtYXhpbXVtIG9mIDkwIGRheXMuIFRoZSBkZWZhdWx0IGRhdGEgY29sbGVjdGlvbiBwZXJpb2QgaXMgdGhlIDE0IHByZXZpb3VzIGRheXMuIFRoaXMgc2V0dGluZyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gQ29zdCBNYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGFuIGludGVncmF0aW9uIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gaW50ZWdyYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBOZXcgaW4gdjMuMy4xOlxuKiBPcHRpbWl6ZSBtZW1vcnkgdXNhZ2Ugd2hlbiByZWFkaW5nIENTViBmaWxlcy5cblxuIyMgTmV3IGluIHYzLjMuMDpcbiogU3RvcmFnZSByZXBvcnRzIG5vdyBjb250YWluIGBub2RlYCwgYGNzaV9kcml2ZXJgLCBhbmQgYGNzaV92b2x1bWVfaGFuZGxlYCBmaWVsZHMuXG4qIFRoZSBQVkMgY2FwYWNpdHkgaXMgbm93IHBvcHVsYXRlZCB1c2luZyB0aGUgYGt1YmVfcGVyc2lzdGVudHZvbHVtZV9jYXBhY2l0eV9ieXRlc2AgbWV0cmljIGluc3RlYWQgb2YgYGt1YmVsZXRfdm9sdW1lX3N0YXRzX2NhcGFjaXR5X2J5dGVzYC5cbiogVG8gcmVjZWl2ZSByZXNvdXJjZSBvcHRpbWl6YXRpb24gcmVjb21tZW5kYXRpb25zIGZvciB5b3VyIG5hbWVzcGFjZXMsIHlvdSBtdXN0IG5vdyBmaXJzdCBlbmFibGUgZWFjaCBuYW1lc3BhY2UuIFRvIGVuYWJsZSBhIG5hbWVzcGFjZSwgbGFiZWwgaXQgd2l0aCBgaW5zaWdodHNfY29zdF9tYW5hZ2VtZW50X29wdGltaXphdGlvbnM9J3RydWUnYC4gSW4gdGhlIENMSSwgcnVuOlxuICBgYGBcbiAgICBvYyBsYWJlbCBuYW1lc3BhY2UgTkFNRVNQQUNFIGluc2lnaHRzX2Nvc3RfbWFuYWdlbWVudF9vcHRpbWl6YXRpb25zPVwidHJ1ZVwiIC0tb3ZlcndyaXRlPXRydWVcbiAgYGBgXG4qIF9fREVQUkVDQVRJT04gTk9USUNFX186IEJhc2ljIGF1dGhlbnRpY2F0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBiZXlvbmQgRGVjZW1iZXIgMzEsIDIwMjQuIElmIHRoZSBkZWZhdWx0IHRva2VuIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBjYW5ub3QgYmUgdXNlZCwgeW91IG11c3Qgc3dpdGNoIHRvIFtzZXJ2aWNlIGFjY291bnRdKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2lhbS9zZXJ2aWNlLWFjY291bnRzKSBhdXRoZW50aWNhdGlvbiAoW21vcmUgb24gY3JlYXRpbmcgYSBzZXJ2aWNlIGFjY291bnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vYXJ0aWNsZXMvNzAzNjE5NCkpLiBPbmNlIHlvdSBoYXZlIGNyZWF0ZWQgeW91ciBzZXJ2aWNlIGFjY291bnQsIGZvbGxvdyBbdGhpcyBkb2N1bWVudGF0aW9uXShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2RvY3VtZW50YXRpb24vZW4tdXMvY29zdF9tYW5hZ2VtZW50X3NlcnZpY2UvMS1sYXRlc3QvaHRtbC1zaW5nbGUvaW50ZWdyYXRpbmdfb3BlbnNoaWZ0X2NvbnRhaW5lcl9wbGF0Zm9ybV9kYXRhX2ludG9fY29zdF9tYW5hZ2VtZW50L2luZGV4I3NlcnZpY2UtYWNjb3VudC1hdXRoZW50aWNhdGlvbl9hZGRpbmctYW4tb2NwLWludCkgb24gaG93IHRvIGNvbmZpZ3VyZSB5b3VyIG9wZXJhdG9yIHRvIHVzZSBzZXJ2aWNlIGFjY291bnQgYXV0aGVudGljYXRpb24uIFNlcnZpY2UtYWNjb3VudHMgbXVzdCBhbHNvIGJlIHVzZWQgaWYgbWFudWFsbHkgdXBsb2FkaW5nIHBheWxvYWRzIHRvIGNvbnNvbGUucmVkaGF0LmNvbS5cblxuIyMgTmV3IGluIHYzLjIuMTpcbiogVGhlIG1pbmltdW0gc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb24gZm9yIGB1cGxvYWRfY3ljbGVgIGlzIG5vdyA2MCAobWludXRlcykuXG4qIChCdWdmaXgpIG1hbnktdG8tbWFueSBtYXRjaGluZyBub3QgYWxsb3dlZCBxdWVyeSBmaXguXG4qIChCdWdmaXgpIFNlcXVlbnRpYWxseSBjb2xsZWN0IGRhdGEgZHVyaW5nIGluaXRpYWwgaW5zdGFsbC5cblxuIyMgTmV3IGluIHYzLjIuMDpcbiogU3VwcG9ydCBmb3IgYW1kNjQsIGFybTY0LCBwcGM2NGxlLCBzMzkweCBhcmNoaXRlY3R1cmVzLlxuKiBhZGQgbGl2ZW5lc3MgYW5kIHJlYWRpbmVzcyBwcm9iZXMgdG8gY29udHJvbGxlciBQb2QuXG4qIHVwZGF0ZSBwb2Qgc2VjdXJpdHkgc2V0dGluZ3Mgc28gdGhhdCB0aGUgY29udHJvbGxlciBQb2QgY2FuIHJ1biBpbiBSZXN0cmljdGVkIG1vZGUgW21vcmUgaW5mb10oaHR0cHM6Ly9zZGsub3BlcmF0b3JmcmFtZXdvcmsuaW8vZG9jcy9iZXN0LXByYWN0aWNlcy9wb2Qtc2VjdXJpdHktc3RhbmRhcmRzLykuXG5cbiMjIE5ldyBpbiB2My4xLjA6XG4qIEFkZCBzZXJ2aWNlLWFjY291bnQgYXV0aGVudGljYXRpb24gdHlwZS5cbiogX19EZXByZWNhdGlvbiBOb3RpY2U6X18gQmFzaWMgYXV0aGVudGljYXRpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgdGhlIG9wZXJhdG9yLlxuXG4jIyBOZXcgaW4gdjMuMC4wOlxuKiBEYWlseSByZXBvcnQgZ2VuZXJhdGlvbjogT3BlcmF0b3IgdmVyc2lvbnMgcHJpb3IgdG8gdjMuMC4wIGdlbmVyYXRlZCBzZXF1ZW50aWFsIHJlcG9ydHMuIE5vdywgcmVwb3J0cyBhcmUgZ2VuZXJhdGVkIHN0YXJ0aW5nIGF0IDA6MDAgVVRDLiBBbnkgcGF5bG9hZHMgZ2VuZXJhdGVkIHRocm91Z2hvdXQgYSBnaXZlbiBkYXkgd2lsbCBjb250YWluIGFsbCBkYXRhIHN0YXJ0aW5nIGZyb20gMDowMCBVVEMuIE9uY2UgdGhlIG5leHQgZGF5IHN0YXJ0cywgdGhlIHByZXZpb3VzIGRheSdzIHJlcG9ydHMgYXJlIHBhY2thZ2VkLCBhbmQgdGhlIG5ldyByZXBvcnQgYWdhaW4gc3RhcnRzIGF0IDA6MDAgVVRDIGZvciB0aGUgY3VycmVudCBkYXkuXG4qIEZhaWxlZCBxdWVyeSByZXRyeTogSW4gYW4gYXR0ZW1wdCB0byBwcmV2ZW50IG1pc3NpbmcgZGF0YSwgdGhlIG9wZXJhdG9yIHdpbGwgcmV0cnkgcXVlcmllcyBmcm9tIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgcXVlcnkgdGltZSwgdXAgdG8gNSB0aW1lcy5cblxuIyMgTmV3IGluIHYyLjAuMDpcbiogQWRkcyBtZXRyaWNzIGFuZCByZXBvcnQgZ2VuZXJhdGlvbiBmb3IgcmVzb3VyY2Ugb3B0aW1pemF0aW9uLiBUaGlzIGZlYXR1cmUgd2lsbCBjb2xsZWN0IGFkZGl0aW9uYWwgdXNhZ2UgbWV0cmljcyBhbmQgY3JlYXRlIGEgbmV3IHJlcG9ydCBpbiB0aGUgcGF5bG9hZC4gVGhlc2UgbWV0cmljcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgY2FuIGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbmAgdG8gYHRydWVgLlxuKiBDb2xsZWN0IGFsbCBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ1IgY3JlYXRpb24uIFRoaXMgZmVhdHVyZSBvbmx5IGFwcGxpZXMgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLiBUaGUgb3BlcmF0b3Igd2lsbCBjaGVjayB0aGUgbW9uaXRvcmluZyBzdGFjayBjb25maWd1cmF0aW9uIGluIHRoZSBgb3BlbnNoaWZ0LW1vbml0b3JpbmdgIG5hbWVzcGFjZS4gVGhlIG9wZXJhdG9yIHdpbGwgdXNlIHRoZSBgcmV0ZW50aW9uYCBwZXJpb2Qgc2V0IGluIHRoZSBgY2x1c3Rlci1tb25pdG9yaW5nLWNvbmZpZ2AgQ29uZmlnTWFwIGlmIGRlZmluZWQsIHVwIHRvIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBPdGhlcndpc2UgaXQgd2lsbCBmYWxsIGJhY2sgdG8gY29sbGVjdGluZyAxNCBkYXlzIG9mIGRhdGEsIGlmIGF2YWlsYWJsZS4gVGhpcyBkYXRhIGNvbGxlY3Rpb24gbWF5IGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgYGNvbGxlY3RfcHJldmlvdXNfZGF0YWAgdG8gYGZhbHNlYC4gVHVybmluZyB0aGlzIGZlYXR1cmUgb2ZmIHJlc3VsdHMgaW4gdGhlIG9wZXJhdG9yIGNvbGxlY3RpbmcgbWV0cmljcyBmcm9tIHRoZSB0aW1lIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZCwgZm9yd2FyZC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBbiBpbnRlZ3JhdGlvbiAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IENvc3QgTWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggQ29zdCBNYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCBpdCBpcyBkZWxldGVkIGZyb20gdGhlIG9wZXJhdG9yLiBJZiB0aGUgZGF0YSB3aXRoaW4gdGhlIHBheWxvYWQgaXMgbm90IHByb2Nlc3NlZCwgYSBnYXAgd2lsbCBiZSBpbnRyb2R1Y2VkIGluIHRoZSB1c2FnZSBtZXRyaWNzLiBEYXRhIG1heSBiZSByZWNvbGxlY3RlZCBieSBkZWxldGluZyB0aGUgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGNyZWF0aW5nIGEgbmV3IGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLCBhbmQgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYC4gVGhpcyByZS1jb2xsZWN0aW9uIG9mIGRhdGEgd2lsbCBnYXRoZXIgYWxsIGRhdGEgc3RvcmVkIGluIFByb21ldGhldXMsIHVwIHRvIDkwIGRheXMuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmdWxsLiBJZiB0aGlzIG9jY3VycywgdGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkZWxldGVkIGZyb20gdGhlIFBWQyBzbyB0aGF0IHRoZSBvcGVyYXRvciBjYW4gZnVuY3Rpb24gYXMgbm9ybWFsLlxuKiBUaGUgZGVmYXVsdCByZXBvcnQgcmV0ZW50aW9uIGlzIDMwIHJlcG9ydHMgKGFib3V0IG9uZSB3ZWVrJ3Mgd29ydGggb2YgZGF0YSkuIFRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBhbmQgdXBsb2FkZWQgdG8gY29uc29sZS5yZWRoYXQuY29tIGV2ZXJ5IHdlZWssIG9yIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCB0aGUgZGF0YSB3aWxsIGJlIGxvc3QuXG5cbiMjIyMgU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVxuVGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgYW5kIHVzZSB0aGUgZm9sbG93aW5nIFBWQyB3aGVuIGluc3RhbGxlZDpcblxuICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuXG5JZiBhIGRpZmZlcmVudCBQVkMgc2hvdWxkIGJlIHV0aWxpemVkLCBhIHZhbGlkIFBWQyBzaG91bGQgYmUgc3BlY2lmaWVkIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgYXMgZGVzY3JpYmVkIGluIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGJlbG93LiBUaGUgUFZDIHRvIGJlIHVzZWQgbWF5IGV4aXN0IGFscmVhZHksIG9yIHRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGl0LlxuXG5UbyB1c2UgdGhlIGRlZmF1bHQgc3BlY2lmaWNhdGlvbiwgdGhlIGZvbGxvdyBhc3N1bXB0aW9ucyBtdXN0IGJlIG1ldDpcbjEuIEEgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZGVmaW5lZC5cbjIuIER5bmFtaWMgcHJvdmlzaW9uaW5nIGZvciB0aGF0IGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGVuYWJsZWQuXG5cbklmIHRoZXNlIGFzc3VtcHRpb25zIGFyZSBub3QgbWV0LCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgZGVwbG95IGNvcnJlY3RseS4gSW4gdGhlc2UgY2FzZXMsIHN0b3JhZ2UgbXVzdCBiZSBtYW51YWxseSBjb25maWd1cmVkLiBBZnRlciBjb25maWd1cmluZyBzdG9yYWdlLCBhIHZhbGlkIFBWQyB0ZW1wbGF0ZSBzaG91bGQgYmUgc3VwcGxpZWQgaW4gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIHNwZWMgb2YgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUi5cblxuIyMgQ29uZmlndXJhYmxlIHBhcmFtZXRlcnM6XG4gICogYGF1dGhlbnRpY2F0aW9uYDpcbiAgICAqIGB0eXBlOiB0b2tlbmAgLVx1MDAzZSBUaGUgYXV0aGVudGljYXRpb24gbWV0aG9kIGZvciBjb25uZWN0aW5nIHRvIGBjb25zb2xlLnJlZGhhdC5jb21gLiBUaGUgZGVmYXVsdCBhbmQgcHJlZmVycmVkIG1ldGhvZCBpcyBgdG9rZW5gLiBgYmFzaWNgIChkZXByZWNhdGVkKSBhbmQgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24gbWV0aG9kcyBhcmUgdXNlZCB3aGVuIHRoZSBvcGVuc2hpZnQtY29uZmlnIHB1bGwtc2VjcmV0IGRvZXMgbm90IGNvbnRhaW4gYSB0b2tlbiBmb3IgYGNvbnNvbGUucmVkaGF0LmNvbWAuXG4gICAgKiBgc2VjcmV0X25hbWVgIC1cdTAwM2UgVGhlIFNlY3JldCB1c2VkIGJ5IHRoZSBvcGVyYXRvciB3aGVuIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLiBUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCAqKm9ubHkgaWYqKiB0aGUgYXV0aGVudGljYXRpb24gdHlwZSBpcyBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgKiBgcGFja2FnaW5nYDpcbiAgICAqIGBtYXhfcmVwb3J0c190b19zdG9yZTogMzBgIC1cdTAwM2UgVGhlIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlIHdoZW4gY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUuIFRoZSBkZWZhdWx0IGlzIDMwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBubyBtYXhpbXVtLiBXaGVuIHRoZSBvcGVyYXRvciBpcyBub3QgY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUsIHRoaXMgcGFyYW1ldGVyIGhhcyBubyBlZmZlY3QuIFJlcG9ydHMgYXJlIHJlbW92ZWQgYXMgc29vbiBhcyB0aGV5IGFyZSB1cGxvYWRlZC5cbiAgICAqIGBtYXhfc2l6ZTogMTAwYCAtXHUwMDNlIFRoZSBtYXhpbXVtIHNpemUgZm9yIHBhY2thZ2VkIGZpbGVzIGluIE1lZ2FieXRlcyBwcmlvciB0byBjb21wcmVzc2lvbi4gVGhlIGRlZmF1bHQgaXMgMTAwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBtYXhpbXVtIG9mIDEwMC5cbiAgKiBgcHJvbWV0aGV1c19jb25maWdgOlxuICAgICogYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGNvbGxlY3RpbmcgYWxsIGF2YWlsYWJsZSBkYXRhIGluIFByb21ldGhldXMgKip1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbioqIChUaGlzIHBhcmFtZXRlciB3aWxsIHN0YXJ0IHRvIGFwcGVhciBpbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzIHRoYXQgd2VyZSBjcmVhdGVkIHByaW9yIHRvIHYyLjAuMCBidXQgd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IHVubGVzcyB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGRlbGV0ZWQgYW5kIHJlY3JlYXRlZCkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC4gVGhlIG9wZXJhdG9yIHdpbGwgZmlyc3QgbG9vayBmb3IgYSBgcmV0ZW50aW9uYCBwZXJpb2QgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlIGFuZCBnYXRoZXIgZGF0YSBvdmVyIHRoaXMgdGltZSBwZXJpb2QgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIElmIHRoaXMgY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0LCB0aGUgZGVmYXVsdCBpcyAxNCBkYXlzLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQ6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgZGlzYWJsaW5nIHRoZSBjb2xsZWN0aW9uIG9mIG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbjogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgUmVzb3VyY2UgT3B0aW1pemF0aW9uLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgY29udGV4dF90aW1lb3V0OiAxMjBgIC1cdTAwM2UgVGhlIHRpbWUgaW4gc2Vjb25kcyBiZWZvcmUgUHJvbWV0aGV1cyBxdWVyaWVzIHRpbWVvdXQgZHVlIHRvIGV4Y2VlZGluZyBjb250ZXh0IHRpbWVvdXQuIFRoZSBkZWZhdWx0IGlzIDEyMCwgd2l0aCBhIG1pbmltdW0gb2YgMTAgYW5kIG1heGltdW0gb2YgMTgwLlxuICAqIGBzb3VyY2VgOlxuICAgICogYG5hbWU6ICcnYCAtXHUwMDNlIFRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIElmIHRoZSBuYW1lIHZhbHVlIGlzIGVtcHR5LCB0aGUgZGVmYXVsdCBpbnRlcmdyYXRpb24gbmFtZSBpcyB0aGUgKipjbHVzdGVyIGlkKiouXG4gICAgKiBgY3JlYXRlX3NvdXJjZTogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgdGhlIGludGVncmF0aW9uIGluIGBjb25zb2xlLnJlZGhhdC5jb21gLiBUaGUgZGVmYXVsdCBpcyBGYWxzZS4gVGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJlIHN3aXRjaGVkIHRvIFRydWUgd2hlbiBhbiBpbnRlZ3JhdGlvbiBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0IGluIGBjb25zb2xlLnJlZGhhdC5jb21gIGZvciB0aGlzIGNsdXN0ZXIuXG4gICAgKiBgY2hlY2tfY3ljbGU6IDE0NDBgIC1cdTAwM2UgVGhlIHRpbWUgaW4gbWludXRlcyB0byB3YWl0IGJldHdlZW4gY2hlY2tpbmcgaWYgYW4gaW50ZWdyYXRpb24gZXhpc3RzIGZvciB0aGlzIGNsdXN0ZXIuIFRoZSBkZWZhdWx0IGlzIDE0NDAgbWludXRlcyAoMjQgaHJzKS5cbiAgKiBgdXBsb2FkYDpcbiAgICAqIGB1cGxvYWRfY3ljbGU6IDM2MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIGJldHdlZW4gcGF5bG9hZCB1cGxvYWRzLiBUaGUgZGVmYXVsdCBpcyAzNjAgKDYgaG91cnMpLCBtaW5pbXVtIGlzIDYwICgxIGhvdXIpLlxuICAgICogYHVwbG9hZF90b2dnbGU6IHRydWVgIC1cdTAwM2UgVG9nZ2xlIHRvIHR1cm4gdXBsb2FkIG9uIG9yIG9mZiAtXHUwMDNlIHRydWUgbWVhbnMgdXBsb2FkLCBmYWxzZSBtZWFucyBkbyBub3QgdXBsb2FkIChmYWxzZSA9PSBhaXItZ2FwcGVkIG1vZGUpLiBUaGUgZGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAgKiBgdXBsb2FkX3dhaXRgIC1cdTAwM2UgVGhlIGFtb3VudCBvZiB0aW1lIChpbiBzZWNvbmRzKSB0byBwYXVzZSBiZWZvcmUgdXBsb2FkaW5nIGEgcGF5bG9hZC4gVGhlIGRlZmF1bHQgaXMgYSByYW5kb20gbnVtYmVyIGJldHdlZW4gMCBhbmQgMzUuIFRoaXMgaXMgdXNlZCB0byBkZWNyZWFzZSBzZXJ2aWNlIGxvYWQsIGJ1dCBtYXkgYmUgc2V0IHRvIGAwYCBpZiBkZXNpcmVkLlxuICAqIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIC1cdTAwM2Ugc2VlIHRoZSBcIlN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcIiBzZWN0aW9uIGFib3ZlLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgaXMgdGhlIHByZWZlcnJlZCBhdXRoZW50aWNhdGlvbiBtZXRob2QsIGEgU2VjcmV0IHdoaWNoIGhvbGRzIHRoZSBjcmVkZW50aWFscyBtdXN0IGJlIGNyZWF0ZWQ6XG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgV29ya2xvYWRzYCAtXHUwMDNlIGBTZWNyZXRzYCAtXHUwMDNlIHNlbGVjdCBQcm9qZWN0OiBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ3JlYXRlYCAtXHUwMDNlIGBLZXkvVmFsdWUgU2VjcmV0YFxuMi4gR2l2ZSB0aGUgU2VjcmV0IGEgbmFtZSBhbmQgYWRkIDIga2V5cyAoYWxsIGxvd2VyY2FzZSkgZm9yIHRoZSByZXNwZWN0aXZlIGF1dGhlbnRpY2F0aW9uIHR5cGUuIFRoZSB2YWx1ZXMgZm9yIHRoZXNlIGtleXMgY29ycmVzcG9uZCB0byBjb25zb2xlLnJlZGhhdC5jb20gY3JlZGVudGlhbHM6XG4gICAgKiBiYXNpYyBhdXRoIChkZXByZWNhdGVkKTogYHVzZXJuYW1lYCBhbmQgYHBhc3N3b3JkYFxuICAgICogc2VydmljZS1hY2NvdW50IGF1dGg6IGBjbGllbnRfaWRgIGFuZCBgY2xpZW50X3NlY3JldGBcblxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2Agb3IgYHNlcnZpY2UtYWNjb3VudGAuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICAqIGZvciBiYXNpYyBhdXRoIHR5cGUgKGRlcHJlY2F0ZWQpXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuICAgICAgICAqIGZvciBzZXJ2aWNlLWFjY291bnQgYXV0aCB0eXBlXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBzZXJ2aWNlLWFjY291bnRcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgaW50ZWdyYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSB0aGUgYG5hbWVgIGZpZWxkIHZhbHVlIHdpdGggdGhlIHByZWZlcnJlZCBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBpbnRlZ3JhdGlvbiBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSB0aGUgZW1wdHkgc3RyaW5nIHZhbHVlIG9mIHRoZSBgbmFtZWAgZmllbGQgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoYXQgdGhlIGludGVncmF0aW9uIGV4aXN0cy5cblxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYyAoYmVsb3cgaXMgb25seSBhIHRlbXBsYXRlLiBBbnkgX3ZhbGlkXyBgUGVyc2lzdGVudFZvbHVtZUNsYWltYCBtYXkgYmUgZGVmaW5lZCBoZXJlKTpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhbiBJbnRlZ3JhdGlvblxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFuIGludGVncmF0aW9uLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbSW50ZWdyYXRpb25zIG1lbnVdKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL3NldHRpbmdzL2ludGVncmF0aW9ucy8pIHRvIGJlZ2luIGFkZGluZyBhbiBPcGVuU2hpZnQgaW50ZWdyYXRpb24gdG8gQ29zdCBNYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRpbmcgYW4gaW50ZWdyYXRpb246XG4xLiBOYXZpZ2F0ZSB0byB0aGUgSW50ZWdyYXRpb25zIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXRgIHRhYlxuMy4gQ3JlYXRlIGEgbmV3IGBSZWQgSGF0IE9wZW5zaGlmdCBDb250YWluZXIgUGxhdGZvcm1gIGludGVncmF0aW9uOlxuICAgICogZ2l2ZSB0aGUgaW50ZWdyYXRpb24gYSB1bmlxdWUgbmFtZVxuICAgICogYWRkIHRoZSBDb3N0IE1hbmFnZW1lbnQgYXBwbGljYXRpb25cbiAgICAqIGFkZCB0aGUgY2x1c3RlciBpZGVudGlmaWVyXG40LiBJbiB0aGUgU291cmNlIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIHNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiIGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2FwaS9pbmdyZXNzL3YxL3VwbG9hZCAtSCBcIkF1dGhvcml6YXRpb246IEJlYXJlciAke0FDQ0VTU19UT0tFTn1cIlxuXG53aGVyZSBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4gVGhlIGBBQ0NFU1NfVE9LRU5gIGlzIGFjcXVpcmVkIHVzaW5nIGEgW3NlcnZpY2UtYWNjb3VudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9hcnRpY2xlcy83MDM2MTk0KS5cbiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19LHsiYXBpR3JvdXBzIjpbIm1vbml0b3JpbmcuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsicHJvbWV0aGV1c2VzL2FwaSJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJnZXQiLCJ1cGRhdGUiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7InR5cGUiOiJSZWNyZWF0ZSJ9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiYWZmaW5pdHkiOnsibm9kZUFmZmluaXR5Ijp7InJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsibm9kZVNlbGVjdG9yVGVybXMiOlt7Im1hdGNoRXhwcmVzc2lvbnMiOlt7ImtleSI6Imt1YmVybmV0ZXMuaW8vYXJjaCIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsiYW1kNjQiLCJhcm02NCIsInBwYzY0bGUiLCJzMzkweCJdfSx7ImtleSI6Imt1YmVybmV0ZXMuaW8vb3MiLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImxpbnV4Il19XX1dfX19LCJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tbGVhZGVyLWVsZWN0Il0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYwMzgyOGQ2ZTVjMWQwYWVmM2ExMDIzMGY1MTk5YWM3NjgzMjg1MzVjZGUxMmI1OTQ5MjBiOTgxMDY4NDU0NzciLCJsaXZlbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsicGF0aCI6Ii9oZWFsdGh6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjE1LCJwZXJpb2RTZWNvbmRzIjoyMH0sIm5hbWUiOiJtYW5hZ2VyIiwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjo1LCJwZXJpb2RTZWNvbmRzIjoxMH0sInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19fSwidGVybWluYXRpb25NZXNzYWdlUG9saWN5IjoiRmFsbGJhY2tUb0xvZ3NPbkVycm9yIiwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19XSwic2VjdXJpdHlDb250ZXh0Ijp7InJ1bkFzTm9uUm9vdCI6dHJ1ZSwic2VjY29tcFByb2ZpbGUiOnsidHlwZSI6IlJ1bnRpbWVEZWZhdWx0In19LCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibGlua3MiOlt7Im5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciBzb3VyY2UgY29kZSByZXBvc2l0b3J5IiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IifV0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJtaW5LdWJlVmVyc2lvbiI6IjEuMjQuMCIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYwMzgyOGQ2ZTVjMWQwYWVmM2ExMDIzMGY1MTk5YWM3NjgzMjg1MzVjZGUxMmI1OTQ5MjBiOTgxMDY4NDU0NzciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci1mMDM4MjhkNmU1YzFkMGFlZjNhMTAyMzBmNTE5OWFjNzY4MzI4NTM1Y2RlMTJiNTk0OTIwYjk4MTA2ODQ1NDc3LWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYwMzgyOGQ2ZTVjMWQwYWVmM2ExMDIzMGY1MTk5YWM3NjgzMjg1MzVjZGUxMmI1OTQ5MjBiOTgxMDY4NDU0NzciLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMy4wIiwidmVyc2lvbiI6IjMuMy4xIn19 +relatedImages: +- image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:01cab18a6af3cc819a936ce434004d5dce4495474e62bc116643eb753c25cd91 + name: "" +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:f03828d6e5c1d0aef3a10230f5199ac768328535cde12b594920b98106845477 + name: costmanagement-metrics-rhel8-operator-f03828d6e5c1d0aef3a10230f5199ac768328535cde12b594920b98106845477-annotation +- image: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:f03828d6e5c1d0aef3a10230f5199ac768328535cde12b594920b98106845477 + name: manager +schema: olm.bundle diff --git a/catalog/costmanagement-metrics-operator/catalog.yaml b/catalog/costmanagement-metrics-operator/catalog.yaml index 9faf10d..68e40e9 100644 --- a/catalog/costmanagement-metrics-operator/catalog.yaml +++ b/catalog/costmanagement-metrics-operator/catalog.yaml @@ -61,12 +61,291 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.0.0 -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsic2VydmljZV9hZGRyZXNzIjp7ImRlZmF1bHQiOiJodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGlzIGBodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxYC4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlZmF1bHQiOjE0NDAsImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUgVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJpbmdyZXNzX3BhdGgiLCJ1cGxvYWRfY3ljbGUiLCJ1cGxvYWRfdG9nZ2xlIiwidmFsaWRhdGVfY2VydCJdLCJ0eXBlIjoib2JqZWN0In0sInZvbHVtZV9jbGFpbV90ZW1wbGF0ZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZUNsYWltVGVtcGxhdGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDIHRlbXBsYXRlLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJBY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QgLSBCZXRhKSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSAqIEFuIGV4aXN0aW5nIGN1c3RvbSByZXNvdXJjZS9vYmplY3QgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBWb2x1bWVTbmFwc2hvdCBvYmplY3QgdHlwZXMsIHRoZSBhcHByb3ByaWF0ZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkIChWb2x1bWVTbmFwc2hvdERhdGFTb3VyY2Ugb3IgQW55Vm9sdW1lRGF0YVNvdXJjZSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSB2b2x1bWUgd2lsbCBub3QgYmUgY3JlYXRlZCBhbmQgdGhlIGZhaWx1cmUgd2lsbCBiZSByZXBvcnRlZCBhcyBhbiBldmVudC4gSW4gdGhlIGZ1dHVyZSwgd2UgcGxhbiB0byBzdXBwb3J0IG1vcmUgZGF0YSBzb3VyY2UgdHlwZXMgYW5kIHRoZSBiZWhhdmlvciBvZiB0aGUgcHJvdmlzaW9uZXIgbWF5IGNoYW5nZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1jb21wdXRlLXJlc291cmNlcy1jb250YWluZXIvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvcl9jb21taXQiOnsiZGVzY3JpcHRpb24iOiJPcGVyYXRvckNvbW1pdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBjb21taXQgaGFzaCBvZiB0aGUgb3BlcmF0b3IuIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgc3RhdHVzIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgcGFja2FnaW5nIHRoZSByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3BhY2thZ2luZ190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxQYWNrYWdpbmdUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBmaWxlIHBhY2thZ2luZy4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwibWF4X3NpemVfTUIiOnsiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwibnVtYmVyX3JlcG9ydHNfc3RvcmVkIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0Q291bnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgcmVwb3J0cyBpbiBzdG9yYWdlLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwicGFja2FnZWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdlZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlIHBhY2thZ2VzIGluIHN0b3JhZ2UuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicGVyc2lzdGVudF92b2x1bWVfY2xhaW0iOnsiZGVzY3JpcHRpb24iOiJQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJBY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QgLSBCZXRhKSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSAqIEFuIGV4aXN0aW5nIGN1c3RvbSByZXNvdXJjZS9vYmplY3QgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBWb2x1bWVTbmFwc2hvdCBvYmplY3QgdHlwZXMsIHRoZSBhcHByb3ByaWF0ZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkIChWb2x1bWVTbmFwc2hvdERhdGFTb3VyY2Ugb3IgQW55Vm9sdW1lRGF0YVNvdXJjZSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSB2b2x1bWUgd2lsbCBub3QgYmUgY3JlYXRlZCBhbmQgdGhlIGZhaWx1cmUgd2lsbCBiZSByZXBvcnRlZCBhcyBhbiBldmVudC4gSW4gdGhlIGZ1dHVyZSwgd2UgcGxhbiB0byBzdXBwb3J0IG1vcmUgZGF0YSBzb3VyY2UgdHlwZXMgYW5kIHRoZSBiZWhhdmlvciBvZiB0aGUgcHJvdmlzaW9uZXIgbWF5IGNoYW5nZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1jb21wdXRlLXJlc291cmNlcy1jb250YWluZXIvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlndXJlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIGlzIGNvbmZpZ3VyZWQgdG8gY29ubmVjdCB0byBwcm9tZXRoZXVzLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0Nvbm5lY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgcHJvbWV0aGV1cyBjYW4gYmUgcXVlcmllZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3Rpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25uZWN0aW9uRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyB0ZXN0IHF1ZXJ5LiIsInR5cGUiOiJzdHJpbmcifSwic2VydmljZV9hZGRyZXNzIjp7ImRlc2NyaXB0aW9uIjoiU3ZjQWRkcmVzcyBpcyB0aGUgaW50ZXJuYWwgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlNraXBUTFNWZXJpZmljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSB0aGFub3MtcXVlcmllciBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsicHJvbWV0aGV1c19jb25maWd1cmVkIiwicHJvbWV0aGV1c19jb25uZWN0ZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXBvcnRzIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcmVwb3J0IGdlbmVyYXRpb24uIiwicHJvcGVydGllcyI6eyJkYXRhX2NvbGxlY3RlZCI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGRhdGEgd2FzIGNvbGxlY3RlZCBmb3IgdGhlIGxhc3QgcXVlcnkuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGF0YV9jb2xsZWN0aW9uX21lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGlvbk1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGEgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFfY29sbGVjdGVkIHN0YXR1cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfaG91cl9xdWVyaWVkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdEhvdXJRdWVyaWVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgdGltZSByYW5nZSBmb3Igd2hpY2ggbWV0cmljcyB3ZXJlIGxhc3QgcXVlcmllZC4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcG9ydF9tb250aCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydE1vbnRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbW9udGggZm9yIHdoaWNoIHJlcG9ydHMgYXJlIGJlaW5nIGdlbmVyYXRlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDE0NDAgbWluICgyNCBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJjcmVhdGVfc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4gQSBzb3VyY2Ugd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIGNyZWF0aW5nIHRoZSBzb3VyY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U291cmNlQ2hlY2tUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBjaGVjayB3YXMgYXR0ZW1wdGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VOYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlRGVmaW5lZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBleGlzdHMgYXMgZGVmaW5lZCBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sInNvdXJjZXNfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZXNBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgU291cmNlcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ODA2ZGRjNTM3MjBiYTBhNmIwZTZiOWFiN2IxYzRkYTU1MDJjNjZkYWUzMDA4YmZkZmNlMzZlZGViMjNlYjhkOCIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMC4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjAuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9vcGVuc2hpZnRfY29udGFpbmVyX3BsYXRmb3JtLzQuNS9odG1sL2dldHRpbmdfc3RhcnRlZF93aXRoX2Nvc3RfbWFuYWdlbWVudC9hc3NlbWJseV9pbnRyb2R1Y3Rpb25fY29zdF9tYW5hZ2VtZW50KSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQsIHVzZWQgdG8gZ2F0aGVyIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjbHVzdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBiZSBpbnN0YWxsZWQgaW4gT3BlblNoaWZ0IDQuNisuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGFuZCB1cGxvYWRzIGl0IHRvIGNvc3QgbWFuYWdlbWVudCB0byBiZSBwcm9jZXNzZWQuIFRoZSBPcGVyYXRvciBxdWVyaWVzIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMsIHdoaWNoIGFyZSB0aGVuIHBhY2thZ2VkIGFuZCB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQgYXQgW2Nsb3VkLnJlZGhhdC5jb21dKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbSkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS80LjUvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgY29zdCBtYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIGNvc3QgbWFuYWdlbWVudC5cbiogV3JpdGluZyBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0aGUgcGFja2FnZWQgcmVwb3J0cyB0byBjb3N0IG1hbmFnZW1lbnQgdGhyb3VnaCBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZS5cbiogVGhlIG9wZXJhdG9yIGNhbiBjcmVhdGUgYSBzb3VyY2UgaW4gY2xvdWQucmVkaGF0LmNvbS4gQSBzb3VyY2UgaXMgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEEgc291cmNlICoqbXVzdCoqIGV4aXN0IGluIGNsb3VkLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjbG91ZC5yZWRoYXQuY29tIGV2ZXJ5IHdlZWssIG9yIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCB0aGUgZGF0YSB3aWxsIGJlIGxvc3QuXG5cbiMjIyMgU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVxuVGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgYW5kIHVzZSB0aGUgZm9sbG93aW5nIFBWQyB3aGVuIGluc3RhbGxlZDpcblxuICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuXG5JZiBhIGRpZmZlcmVudCBQVkMgc2hvdWxkIGJlIHV0aWxpemVkLCBhIHZhbGlkIFBWQyBzaG91bGQgYmUgc3BlY2lmaWVkIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgYXMgZGVzY3JpYmVkIGluIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGJlbG93LiBUaGUgUFZDIHRvIGJlIHVzZWQgbWF5IGV4aXN0IGFscmVhZHksIG9yIHRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGl0LlxuXG5UbyB1c2UgdGhlIGRlZmF1bHQgc3BlY2lmaWNhdGlvbiwgdGhlIGZvbGxvdyBhc3N1bXB0aW9ucyBtdXN0IGJlIG1ldDpcbjEuIEEgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZGVmaW5lZC5cbjIuIER5bmFtaWMgcHJvdmlzaW9uaW5nIGZvciB0aGF0IGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGVuYWJsZWQuXG5cbklmIHRoZXNlIGFzc3VtcHRpb25zIGFyZSBub3QgbWV0LCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgZGVwbG95IGNvcnJlY3RseS4gSW4gdGhlc2UgY2FzZXMsIHN0b3JhZ2UgbXVzdCBiZSBtYW51YWxseSBjb25maWd1cmVkLiBBZnRlciBjb25maWd1cmluZyBzdG9yYWdlLCBhIHZhbGlkIFBWQyB0ZW1wbGF0ZSBzaG91bGQgYmUgc3VwcGxpZWQgaW4gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIHNwZWMgb2YgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUi5cblxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4qKk5vdGUqKiBUaGVyZSBhcmUgc2VwYXJhdGUgaW5zdHJ1Y3Rpb25zIGZvciBjb25maWd1cmluZyB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yay5cbiMjIyMjIENvbmZpZ3VyZSBhdXRoZW50aWNhdGlvblxuVGhlIGRlZmF1bHQgYXV0aGVudGljYXRpb24gZm9yIHRoZSBvcGVyYXRvciBpcyBgdG9rZW5gLiBObyBmdXJ0aGVyIHN0ZXBzIGFyZSByZXF1aXJlZCB0byBjb25maWd1cmUgdG9rZW4gYXV0aGVudGljYXRpb24uIElmIGBiYXNpY2AgaXMgdGhlIHByZWZlcnJlZCBhdXRoZW50aWNhdGlvbiBtZXRob2QsIGEgU2VjcmV0IG11c3QgYmUgY3JlYXRlZCB3aGljaCBob2xkcyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgY3JlZGVudGlhbHM6XG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgV29ya2xvYWRzYCAtXHUwMDNlIGBTZWNyZXRzYCAtXHUwMDNlIHNlbGVjdCBQcm9qZWN0OiBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ3JlYXRlYCAtXHUwMDNlIGBLZXkvVmFsdWUgU2VjcmV0YFxuMi4gR2l2ZSB0aGUgU2VjcmV0IGEgbmFtZSBhbmQgYWRkIDIga2V5czogYHVzZXJuYW1lYCBhbmQgYHBhc3N3b3JkYCAoYWxsIGxvd2VyY2FzZSkuIFRoZSB2YWx1ZXMgZm9yIHRoZXNlIGtleXMgY29ycmVzcG9uZCB0byBjbG91ZC5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vNC41L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY2xvdWQucmVkaGF0LmNvbV0oaHR0cHM6Ly9jbG91ZC5yZWRoYXQuY29tKS5cblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGZvciBhIHJlc3RyaWN0ZWQgbmV0d29ya1xuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gU3BlY2lmeSB0aGUgZGVzaXJlZCBzdG9yYWdlLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnQgVm9sdW1lIENsYWltIGNhbGxlZCBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhYCB3aXRoIDEwR2kgb2Ygc3RvcmFnZS4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIHVzZSBvciBjcmVhdGUgYSBkaWZmZXJlbnQgUFZDLCBlZGl0IHRoZSBmb2xsb3dpbmcgaW4gdGhlIHNwZWM6XG4gICAgKiBBZGQgdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiB0byB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgaW4gdGhlIHNwZWM6XG5cbiAgICAgIGBgYFxuICAgICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICAgIG5hbWU6IFx1MDAzY2luc2VydC1uYW1lXHUwMDNlXG4gICAgICAgICAgc3BlYzpcbiAgICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IFx1MDAzY2luc2VydC1jbGFzcy1uYW1lXHUwMDNlXG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG4zLiAoT3B0aW9uYWwpIFNwZWNpZnkgdGhlIGRlc2lyZWQgcmVwb3J0IHJldGVudGlvbi4gVGhlIG9wZXJhdG9yIHdpbGwgcmV0YWluIDMwIHJlcG9ydHMgYnkgZGVmYXVsdC4gVGhpcyBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IG9uZSB3ZWVrJ3Mgd29ydGggb2YgZGF0YSBpZiB1c2luZyB0aGUgZGVmYXVsdCBwYWNrYWdpbmcgY3ljbGUuIFRvIG1vZGlmeSB0aGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHM6XG4gICAgKiBDaGFuZ2UgdGhlIGBwYWNrYWdpbmdgIHNwZWMgZmllbGQgYG1heF9yZXBvcnRzX3RvX3N0b3JlYCB0byB0aGUgZGVzaXJlZCBudW1iZXIgb2YgcmVwb3J0cyB0byByZXRhaW4uIE9uY2UgdGhpcyBtYXggbnVtYmVyIGlzIHJlYWNoZWQsIHRoZSBvcGVyYXRvciB3aWxsIHN0YXJ0IHJlbW92aW5nIHRoZSBvbGRlc3QgcGFja2FnZXMgcmVtYWluaW5nIG9uIHRoZSBQVkM6XG5cbiAgICAgIGBgYFxuICAgICAgICBwYWNrYWdpbmc6XG4gICAgICAgICAgbWF4X3NpemVfTUI6IDEwMFxuICAgICAgICAgIG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMFxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogVGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzIGRpcmVjdGx5IGFmZmVjdHMgdGhlIGZyZXF1ZW5jeSB0aGF0IHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGZyb20gdGhlIFBWQy4gVGFrZSBjYXV0aW9uIGluIHNldHRpbmcgdGhpcyB0byBhIGhpZ2hlciBudW1iZXIgb2YgcmVwb3J0cywgYXMgdGhlIG9wZXJhdG9yIGNhbm5vdCB3cml0ZSBkYXRhIHRvIHRoZSBQVkMgaWYgdGhlIHN0b3JhZ2UgaXMgZnVsbC5cbjQuIFRvIGNvbmZpZ3VyZSB0aGUgb3BlcmF0b3IgdG8gcGVyZm9ybSBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgc2V0IHRoZSBgdXBsb2FkX3RvZ2dsZWAgdG8gYGZhbHNlYDpcblxuICBgYGBcbiAgICB1cGxvYWQ6XG4gICAgICB1cGxvYWRfY3ljbGU6IDM2MCxcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY2xvdWQucmVkaGF0LmNvbV0oaHR0cHM6Ly9jbG91ZC5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICBraW5kOiBQb2RcbiAgYXBpVmVyc2lvbjogdjFcbiAgbWV0YWRhdGE6XG4gICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gIHNwZWM6XG4gICAgdm9sdW1lczpcbiAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgIGNvbnRhaW5lcnM6XG4gICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJzM2MDAnXVxuICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNsb3VkLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtTb3VyY2VzIG1lbnVdKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2Nsb3VkLnJlZGhhdC5jb21dKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4iLCJkaXNwbGF5TmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NEtQQ0V0TFNCSFpXNWxjbUYwYjNJNklFRmtiMkpsSUVsc2JIVnpkSEpoZEc5eUlESXlMakV1TUN3Z1UxWkhJRVY0Y0c5eWRDQlFiSFZuTFVsdUlDNGdVMVpISUZabGNuTnBiMjQ2SURZdU1EQWdRblZwYkdRZ01Da2dJQzB0UGdvOGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJa3hoZVdWeVh6RWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWdvSklIWnBaWGRDYjNnOUlqQWdNQ0F6TURBZ016QXdJaUJ6ZEhsc1pUMGlaVzVoWW14bExXSmhZMnRuY205MWJtUTZibVYzSURBZ01DQXpNREFnTXpBd095SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStDZ2t1YzNRd2UyWnBiR3c2STBWRk1EQXdNRHQ5Q2p3dmMzUjViR1UrQ2p4MGFYUnNaVDVEYjNOMExXbGpiMjQ4TDNScGRHeGxQZ284WkdWell6NURjbVZoZEdWa0lIZHBkR2dnVTJ0bGRHTm9Mand2WkdWell6NEtQR2MrQ2drOFp6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOMk10TXk0eU5qVTRNRGd4TFRReExqazRPVEExTVRndE16Z3VNalUyTmpnek15MDNOQzQyTkRjeU1ERTFMVGd4TGpFM09EZ3pNeTAzTkM0Mk5EY3lNREUxQ2drSkNXTXRNamN1TlRJMk1UVXpOaXd3TFRVekxqRTROakV5Tmpjc01UTXVPVGsyTXpRNU15MDJPQzR4TVRVMU56QXhMRE0zTGpNeU16WXdNRGhqTFRFdU9EWTJNVGd3TkN3d0xUTXVOek15TXpVek1pMHdMalEyTmpVME5URXROaTR3TmpVd056ZzNMVEF1TkRZMk5UUTFNUW9KQ1FsakxUTTBMalV5TkRNek1ERXNNQzAyTWk0NU9ETTFOemMzTERJM0xqazVNalk1T0RjdE5qSXVPVGd6TlRjM055dzJNaTQ1T0RNMU5qWXpjekkzTGprNU1qWTVPRGNzTmpJdU9UZ3pOVFkyTXl3Mk1pNDVPRE0xTnpjM0xEWXlMams0TXpVMk5qTm9NVFl1TXpJNU1EY3hDZ2tKQ1dNekxqY3pNak0yTURnc01DdzJMams1T0RFM05qWXRNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaTAyTGprNU9ERTJPRGx6TFRNdU1qWTFPREUxTnkwMkxqazVPREUyT0RrdE5pNDVPVGd4TnpZMkxUWXVPVGs0TVRZNE9XZ3RNVFl1TXpJNU1EY3hDZ2tKQ1dNdE1qY3VNRFU1TmpFeU15d3dMVFE0TGpVeU1EWTNPVFV0TWpFdU9USTNOakkzTmkwME9DNDFNakEyTnprMUxUUTRMalV5TURZM05UZHpNakV1T1RJM05qRXlNeTAwT0M0MU1qQTJPRE16TERRNExqVXlNRFkzT1RVdE5EZ3VOVEl3Tmpnek13b0pDUWxqTWk0M09Ua3lOekEyTERBc05TNDFPVGcxTkRFekxEQXVORFkyTlRRMU1TdzRMak01Tnpnd05ETXNNQzQ1TXpNd09UQXlZekl1TnprNU1qY3dOaXd3TGpRMk5qVTBOVEVzTmk0d05qVXdOemczTFRBdU9UTXpNRGt3TWl3M0xqUTJORGN5TVRjdE15NDNNekl6TmpBNENna0pDV014TWk0eE16QXhOekkzTFRJd0xqazVORFV5T1Rjc016UXVOVEkwTXpNd01TMHpOQzR3TlRjM09EZzRMRFU0TGpNeE9ERXlNamt0TXpRdU1EVTNOemc0T0dNek5pNDROVGN3TnpBNUxEQXNOamN1TVRneU5EazFNU3d6TUM0ek1qVTBNakEwTERZM0xqRTRNalE1TlRFc05qY3VNVGd5TkRjNU9Rb0pDUWxqTUN3ekxqY3pNak0xTXpJc015NHlOalU0TURneExEWXVPVGs0TVRjMk5pdzJMams1T0RFMk9Ea3NOaTQ1T1RneE56WTJZekUyTGpNeU9UQTNNU3d3TERJNUxqZzFPRGt3TWl3eE15NDFNams0TURBMExESTVMamcxT0Rrd01pd3lPUzQ0TlRnNE56RTFDZ2tKQ1hNdE1UTXVOVEk1T0RNd09Td3lPUzQ0TlRnNE9EWTNMVEk1TGpnMU9Ea3dNaXd5T1M0NE5UZzRPRFkzWXkwekxqY3pNak0yTURnc01DMDJMams1T0RFMk9Ea3NNeTR5TmpVNE1EZ3hMVFl1T1RrNE1UWTRPU3cyTGprNU9ERTJPRGtLQ1FrSmN6TXVNalkxT0RBNE1TdzJMams1T0RFMk9Ea3NOaTQ1T1RneE5qZzVMRFl1T1RrNE1UWTRPV015TkM0eU5qQXpNekF5TERBc05EUXVNekl4TnpZeU1TMHlNQzR3TmpFME1UWTJMRFEwTGpNeU1UYzJNakV0TkRRdU16SXhOell5TVFvSkNRbERNamMyTGpNMk1EWXlOaklzTVRNNUxqSXdNamM0T1RNc01qWXdMakF6TVRVMU5USXNNVEl3TGpVME1EazVNamNzTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04zb2lMejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5NakEyTGpnME5UUXlPRFVzTWpJd0xqZzBPREUzTldNM0xqUTJORGN3TmpRdE9DNDROalF6TmpRMkxERXhMalkyTXpZeUxUSXdMalV5TnprNE5EWXNNVEV1TmpZek5qSXRNekl1TmpVNE1UVTNNd29KQ1Fsak1DMHlPQzQ1TWpVM09UWTFMVEl6TGpNeU56STBMVFV5TGpJMU16QXpOalV0TlRJdU1qVXpNRE0yTlMwMU1pNHlOVE13TXpZMWN5MDFNaTR5TlRNd05EUXhMREl6TGpNeU56STBMVFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRE0yTlFvSkNRbHpNak11TXpJM01qUTNOaXcxTWk0eU5UTXdOVEU0TERVeUxqSTFNekEwTkRFc05USXVNalV6TURVeE9HTXhNUzR4T1Rjd09ESTFMREFzTWpFdU9USTNOakV5TXkwekxqY3pNak0yTURnc016QXVNekkxTkRJME1pMDVMamM1TnpRek9UWnNNekV1TnpJMU1EVXhPU3d6TUM0M09URTVOakUzQ2drSkNXTXhMak01T1RZeU56Y3NNUzR6T1RrMk1qYzNMRE11TWpZMU9ESXpOQ3d4TGpnMk5qRTRNRFFzTlM0eE16RTVPRGcxTERFdU9EWTJNVGd3TkdNeExqZzJOakU1TlRjc01Dd3pMamN6TWpNMk1EZ3RNQzQ1TXpNd056VXNOUzR4TXpFNU9EZzFMVEl1TXpNeU56TXpNZ29KQ1Fsak1pNDNPVGt5TnpBMkxUSXVOems1TWpVMU5Dd3lMamM1T1RJM01EWXROeTQwTmpRM01EWTBMREF0TVRBdU1qWXpPVGMzTVV3eU1EWXVPRFExTkRJNE5Td3lNakF1T0RRNE1UYzFlaUJOTVRJNExqUTJOVGcyTmpFc01UZzRMakU1TURBeE56Y0tDUWtKWXpBdE1qQXVPVGswTlRJeU1Td3hOeTR5TmpJeE56WTFMVE00TGpJMU5qWTVPRFlzTXpndU1qVTJOams0Tmkwek9DNHlOVFkyT1RnMmN6TTRMakkxTmpZNU9EWXNNVGN1TWpZeU1UYzJOU3d6T0M0eU5UWTJPVGcyTERNNExqSTFOalk1T0RZS0NRa0pjeTB4Tnk0eU5qSXhOelkxTERNNExqSTFOalk1T0RZdE16Z3VNalUyTmprNE5pd3pPQzR5TlRZMk9UZzJVekV5T0M0ME5qVTROall4TERJd09TNHhPRFExTXprNExERXlPQzQwTmpVNE5qWXhMREU0T0M0eE9UQXdNVGMzZWlJdlBnb0pQQzluUGdvSlBHYytDZ2tKUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRURTNOQzR5T0RBMk16azJMREU0TlM0NE56TTJNVEUxWXpJdU1qRTJNamM0TVN3d0xqWTROalV6T0Rjc05DNHhNVEF3TXpFeExERXVPRGN3TnpFeU15dzFMalkzTmpZek5UY3NNeTQxTlRJMU1EVTFDZ2tKQ1dNeExqVTJOall3TkRZc01TNDJPREU0TURnMUxESXVOVGs0TnpBNU1Td3pMalkwT1RJMk1UVXNNeTR3T1RFM016VTRMRFV1T1RBeU5EQTBPR013TGpRNU56WXhPVFlzTWk0eU5UTXhORE16TERBdU16WXpPVGs0TkN3MExqVXlPVE15TnpRdE1DNDBNREE0TnpnNUxEWXVPREU1TXpNMU9Rb0pDUWxqTFRBdU9URTJPVEUxT1N3eUxqVXlNRE00TlRjdE1pNDBPRE0xTWpBMUxEUXVOVEk1TXpFeU1TMDBMalk1T1RjNU9EWXNOaTR3TVRjMU9UTTBZeTB5TGpJeE5qSTJNamdzTVM0ME9EZ3lPREV5TFRRdU5qazFNakExTnl3eUxqSTNNVFUzTlRrdE55NDBOVEExTnpZNExESXVNelE1T0RrNU13b0pDUWwyTlM0MU1ERTFOVFkwWXpBc01DNDFNelEwT0RRNUxUQXVNVGN3TkRjeE1pd3dMamszTWpJeE16Y3RNQzQxTVRFME5UazBMREV1TXpFM056YzVOV010TUM0ek5EVTFOalU0TERBdU16UTFOVGd4TVMwd0xqYzRNekk1TkRjc01DNDFNVFl3TmpjMUxURXVNekl5TXpnM055d3dMalV4TmpBMk56VUtDUWtKYUMwekxqWTJOelk1TkRGakxUQXVOVE0wTlRBd01Td3dMVEF1T1RjeU1qRXpOeTB3TGpFM01EUTROalV0TVM0ek1UYzNOemsxTFRBdU5URTJNRFkzTldNdE1DNHpOREE1TnpJNUxUQXVNelExTlRZMU9DMHdMalV4TmpBMk56VXRNQzQzT0RNeU9UUTNMVEF1TlRFMk1EWTNOUzB4TGpNeE56YzNPVFVLQ1FrSmRpMDFMalV3TVRVMU5qUmpMVE11TmpZM05qazBNU3d3TFRZdU9UZzVPREl5TkMweExqRTBOekk1TXpFdE9TNDVOamcyTlRnMExUTXVORE0zTXpBeE5tTXRNQzR6T0RJME5EWXpMVEF1TXpneU5ETXhMVEF1TmpFeU9ESXpOUzB3TGpnME16SXdNRGN0TUM0Mk9EZzROREk0TFRFdU16YzNOekF3T0FvSkNRbGpMVEF1TURjMk1ETTBOUzB3TGpVek5EUTRORGtzTUM0eE1UVXhPRGcyTFRFdU1ETXlNVEEwTlN3d0xqVTNNell6T0RrdE1TNDBPRGd5TlRBM2JETXVPRGsxTnpneU5TMHpMamc1T0RBNE5qVUtDUWtKWXpBdU16QTROekF3Tmkwd0xqSXpNRE01TWpVc01DNDJOamd4TURZeExUQXVNemd5TkRNeExERXVNRGt5TURFd05TMHdMalExTmpFMk1UVmpNQzQwTVRreU9UWXpMVEF1TURjNE16SXpOQ3d3TGpneU1ERTFPVGtzTUM0d016WTROU3d4TGpJd01qWXdOaklzTUM0ek5EQTVOekk1Q2drSkNXTXhMakUwTnpJNU16RXNNQzQzTmpRNE56Y3pMREl1TkRReU1EUTNNU3d4TGpFME56TXdPRE1zTXk0NE9UTTBOak14TERFdU1UUTNNekE0TTJnM0xqWTRNRGsxTkdNd0xqa3hOamswTmpRc01Dd3hMamN3TURJME1URXRNQzR6TWpJMU5EQXpMREl1TXpRNU9EazVNeTB3TGprM01qSXhNemNLQ1FrSll6QXVOalE1TmpnNE55MHdMalkwT1RZNE9EY3NNQzQ1TnpJeU1qa3RNUzQwTnpRME5UWTRMREF1T1RjeU1qSTVMVEl1TkRZMU1UQXpNV013TFRBdU5qZzJOVFUwTFRBdU1qSTFOelk1TFRFdU16TTJNakkzTkMwd0xqWTROalV6T0RjdE1TNDVORGt3TXpVMkNna0pDV010TUM0ME5UWXhOakUxTFRBdU5qRXlPREl6TlMweExqQXpNakV4T1RndE1TNHdNekl4TVRrNExURXVOekU0TmpRek1pMHhMakkyTWpRNU5qbHNMVEV4TGpnd05EZzBNREV0TXk0ME16Y3pNVFk1Q2drSkNXTXRNaTQxT1RnMk9UTTRMVEF1TnpZME9EYzNNeTAwTGpjM016VXlPVEV0TWk0eE16YzVOVFEzTFRZdU5UTXpOalExTmkwMExqRXlPRFEwT0RWakxURXVOelUzT0RFeU5TMHhMams0TlRrd01Ea3RNaTQzT0RjMk5ETTBMVFF1TWpjMU9USTBOeTB6TGpBNU5EQXpPVGt0Tmk0NE56UTJNek00Q2drSkNXTXRNQzR4TlRJd05UTTRMVEl1TkRRMk5qVTFNeXd3TGpNd05qTTVOalV0TkM0M01UZ3lNekV5TERFdU16YzFNemsyTnkwMkxqZ3hPVE16TlRsak1TNHdOamc1TmprM0xUSXVNVEF4TURnNU5Td3lMalU1T0Rjd09URXRNeTQzT0RJNE9ESTNMRFF1TlRnME5qRXROUzR3TkRVek56azJDZ2tKQ1dNeExqazROVGt3TURrdE1TNHlOVGM0T0RnNExEUXVNakF5TVRjNUxURXVPRGc1TVRJNU5pdzJMalkwT0RnME9UVXRNUzQ0T0RreE1qazJhREF1TWpJMU56WTVkaTAxTGpVd01UVTBNVEVLQ1FrSll6QXRNQzQxTXpRMU1EQXhMREF1TVRjMU1EazBOaTB3TGprM01qSXlPU3d3TGpVeE5qQTJOelV0TVM0ek1UYzNPVFE0WXpBdU16UTFOVFkxT0Mwd0xqTTBOVFU0TVRFc01DNDNPRE15TnprMExUQXVOVEUyTURVeU1pd3hMak14TnpjM09UVXRNQzQxTVRZd05USXlhRE11TmpZM05qazBNUW9KQ1Fsak1DNDFNemt3T1RNc01Dd3dMamszTmpneU1Ua3NNQzR4TnpBME56RXlMREV1TXpJeU16ZzNOeXd3TGpVeE5qQTFNakpqTUM0ek5EQTVPRGd5TERBdU16UTFOVFkxT0N3d0xqVXhNVFExT1RRc01DNDNPRE15T1RRM0xEQXVOVEV4TkRVNU5Dd3hMak14TnpjNU5EaDJOUzQxTURFMU5ERXhDZ2tKQ1dNekxqWTJOelk1TkRFc01DdzJMamsxTnpVMk5UTXNNUzR4TkRjeU9UTXhMRGt1T0RZd016Z3lNU3d6TGpRek56TXdNVFpqTUM0ME5UWXhOelk0TERBdU16Z3lORFEyTXl3d0xqY3lNelF4T1RJc01DNDRORE15TURBM0xEQXVPREF4TnpReU5pd3hMak0zTnpZNE5UVUtDUWtKWXpBdU1EY3pOekUxTWl3d0xqVXpORFV3TURFdE1DNHhNVFV5TURNNUxEQXVPVGt3TmpRMk5DMHdMalUzTVRNMU1ERXNNUzR6TnpNd056YzBiQzB6TGpnNU9EQTROalVzTkM0d01UTXlOelV4Q2drSkNXTXRNQzR6TURnM01UVTRMREF1TWpNd016a3lOUzB3TGpZMk9ERXdOakVzTUM0ek9ESTBNekV0TVM0d09USXdNVEExTERBdU5EVTJNVFl4TldNdE1DNDBNVGt5T1RZekxEQXVNRGM0TXpJek5DMHdMamd5TURFMU9Ua3NNQzB4TGpJd01qVTVNRGt0TUM0eU1qVTNOamtLQ1FrSll5MHhMakUwTWpjeE5UVXRNQzQ0TkRNeU1EQTNMVEl1TkRReU1EYzNOaTB4TGpJMk1qUTVOamt0TXk0NE9UZ3dPRFkxTFRFdU1qWXlORGsyT1dndE55NDJOell6TmpFeFl5MHdMamt4TmpreE5Ua3NNQzB4TGpjd01ESXlOVGdzTUM0ek1qSTFNalV0TWk0ek5EazRPVGt6TERBdU9UY3lNakV6TndvSkNRbGpMVEF1TmpRNU5qZzROeXd3TGpZME9UWTNNelV0TUM0NU56WTRNakU1TERFdU5EYzBORFF4TlMwd0xqazNOamd5TVRrc01pNDBOalV3T0RjNVl6QXNNQzQyT0RZMU5UUXNNQzR5TXpBek9USTFMREV1TXpNMk1qRXlNaXd3TGpZNU1URTBOamtzTVM0NU5Ea3dNelUyQ2drSkNXTXdMalExTmpFMk1UVXNNQzQyTVRJNE1qTTFMREV1TURNeU1URTVPQ3d4TGpBek1qRXhPVGdzTVM0M01UZzJOVGcwTERFdU1qWXlORGsyT1V3eE56UXVNamd3TmpNNU5pd3hPRFV1T0Rjek5qRXhOWG9pTHo0S0NUd3ZaejRLUEM5blBnbzhMM04yWno0SyIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiY29uZmlnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW1hbmFnZXItcm9sZSJ9XSwiZGVwbG95bWVudHMiOlt7Im5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7fSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvaG9tZS9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ODA2ZGRjNTM3MjBiYTBhNmIwZTZiOWFiN2IxYzRkYTU1MDJjNjZkYWUzMDA4YmZkZmNlMzZlZGViMjNlYjhkOCIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtbWFuYWdlci1yb2xlIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImVuZHBvaW50cyIsImV2ZW50cyIsInBlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwb2RzIiwic2VjcmV0cyIsInNlcnZpY2VhY2NvdW50cyIsInNlcnZpY2VzIiwic2VydmljZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvcnMuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnNlcnZpY2V2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtbWFuYWdlci1yb2xlIn1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiT3duTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJTaW5nbGVOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJNdWx0aU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImNvc3QiLCJtYW5hZ2VtZW50IiwidXNhZ2UiLCJtb25pdG9yIl0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo4MDZkZGM1MzcyMGJhMGE2YjBlNmI5YWI3YjFjNGRhNTUwMmM2NmRhZTMwMDhiZmRmY2UzNmVkZWIyM2ViOGQ4IiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3ItODA2ZGRjNTM3MjBiYTBhNmIwZTZiOWFiN2IxYzRkYTU1MDJjNjZkYWUzMDA4YmZkZmNlMzZlZGViMjNlYjhkOC1hbm5vdGF0aW9uIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo4MDZkZGM1MzcyMGJhMGE2YjBlNmI5YWI3YjFjNGRhNTUwMmM2NmRhZTMwMDhiZmRmY2UzNmVkZWIyM2ViOGQ4IiwibmFtZSI6Im1hbmFnZXIifV0sInZlcnNpb24iOiIxLjAuMCJ9fQ== + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:806ddc53720ba0a6b0e6b9ab7b1c4da5502c66dae3008bfdfce36edeb23eb8d8 + createdAt: "2021-02-16T16:03:12Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.0.0 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.5/html/getting_started_with_cost_management/assembly_introduction_cost_management) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [cloud.redhat.com](https://cloud.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). + + For more information, reach out to . + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in cloud.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in cloud.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to cloud.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to cloud.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [cloud.redhat.com](https://cloud.redhat.com). + + For more information, reach out to . + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [cloud.redhat.com](https://cloud.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', '3600'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the cloud.redhat.com platform, open the [Sources menu](https://cloud.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [cloud.redhat.com](https://cloud.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:70fa64452d13ec5e1ed1abb9b87029cc8e9fec9a5288640326a43d854d01f087 name: "" @@ -89,12 +368,291 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.1.0 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsic2VydmljZV9hZGRyZXNzIjp7ImRlZmF1bHQiOiJodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGlzIGBodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxYC4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlZmF1bHQiOjE0NDAsImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUgVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJpbmdyZXNzX3BhdGgiLCJ1cGxvYWRfY3ljbGUiLCJ1cGxvYWRfdG9nZ2xlIiwidmFsaWRhdGVfY2VydCJdLCJ0eXBlIjoib2JqZWN0In0sInZvbHVtZV9jbGFpbV90ZW1wbGF0ZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZUNsYWltVGVtcGxhdGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDIHRlbXBsYXRlLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJBY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QgLSBCZXRhKSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSAqIEFuIGV4aXN0aW5nIGN1c3RvbSByZXNvdXJjZS9vYmplY3QgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBWb2x1bWVTbmFwc2hvdCBvYmplY3QgdHlwZXMsIHRoZSBhcHByb3ByaWF0ZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkIChWb2x1bWVTbmFwc2hvdERhdGFTb3VyY2Ugb3IgQW55Vm9sdW1lRGF0YVNvdXJjZSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSB2b2x1bWUgd2lsbCBub3QgYmUgY3JlYXRlZCBhbmQgdGhlIGZhaWx1cmUgd2lsbCBiZSByZXBvcnRlZCBhcyBhbiBldmVudC4gSW4gdGhlIGZ1dHVyZSwgd2UgcGxhbiB0byBzdXBwb3J0IG1vcmUgZGF0YSBzb3VyY2UgdHlwZXMgYW5kIHRoZSBiZWhhdmlvciBvZiB0aGUgcHJvdmlzaW9uZXIgbWF5IGNoYW5nZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1jb21wdXRlLXJlc291cmNlcy1jb250YWluZXIvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiQWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90IC0gQmV0YSkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2Uvb2JqZWN0IHRoYXQgaW1wbGVtZW50cyBkYXRhIHBvcHVsYXRpb24gKEFscGhhKSBJbiBvcmRlciB0byB1c2UgVm9sdW1lU25hcHNob3Qgb2JqZWN0IHR5cGVzLCB0aGUgYXBwcm9wcmlhdGUgZmVhdHVyZSBnYXRlIG11c3QgYmUgZW5hYmxlZCAoVm9sdW1lU25hcHNob3REYXRhU291cmNlIG9yIEFueVZvbHVtZURhdGFTb3VyY2UpIElmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsIGl0IHdpbGwgY3JlYXRlIGEgbmV3IHZvbHVtZSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZS4gSWYgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSBpcyBub3Qgc3VwcG9ydGVkLCB0aGUgdm9sdW1lIHdpbGwgbm90IGJlIGNyZWF0ZWQgYW5kIHRoZSBmYWlsdXJlIHdpbGwgYmUgcmVwb3J0ZWQgYXMgYW4gZXZlbnQuIEluIHRoZSBmdXR1cmUsIHdlIHBsYW4gdG8gc3VwcG9ydCBtb3JlIGRhdGEgc291cmNlIHR5cGVzIGFuZCB0aGUgYmVoYXZpb3Igb2YgdGhlIHByb3Zpc2lvbmVyIG1heSBjaGFuZ2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdGFydF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFF1ZXJ5U3RhcnRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdGFydGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcXVlcnlfc3VjY2Vzc190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFF1ZXJ5U3VjY2Vzc1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN1Y2Nlc3NmdWwuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwicHJvbWV0aGV1c19jb25maWd1cmVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZ3VyZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBjb25maWd1cmVkIHRvIGNvbm5lY3QgdG8gcHJvbWV0aGV1cy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25uZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHByb21ldGhldXMgY2FuIGJlIHF1ZXJpZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29ubmVjdGlvbkVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgdGVzdCBxdWVyeS4iLCJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2VfYWRkcmVzcyI6eyJkZXNjcmlwdGlvbiI6IlN2Y0FkZHJlc3MgaXMgdGhlIGludGVybmFsIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbInByb21ldGhldXNfY29uZmlndXJlZCIsInByb21ldGhldXNfY29ubmVjdGVkIl0sInR5cGUiOiJvYmplY3QifSwicmVwb3J0cyI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydHMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHJlcG9ydCBnZW5lcmF0aW9uLiIsInByb3BlcnRpZXMiOnsiZGF0YV9jb2xsZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBkYXRhIHdhcyBjb2xsZWN0ZWQgZm9yIHRoZSBsYXN0IHF1ZXJ5LiIsInR5cGUiOiJib29sZWFuIn0sImRhdGFfY29sbGVjdGlvbl9tZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3Rpb25NZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBhIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhX2NvbGxlY3RlZCBzdGF0dXMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2hvdXJfcXVlcmllZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RIb3VyUXVlcmllZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHRpbWUgcmFuZ2UgZm9yIHdoaWNoIG1ldHJpY3Mgd2VyZSBsYXN0IHF1ZXJpZWQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXBvcnRfbW9udGgiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRNb250aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIG1vbnRoIGZvciB3aGljaCByZXBvcnRzIGFyZSBiZWluZyBnZW5lcmF0ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiB0aGUgc291cmNlIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IkNoZWNrQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggc291cmNlIGNoZWNrIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IkNyZWF0ZVNvdXJjZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIEEgc291cmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBjcmVhdGluZyB0aGUgc291cmNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFNvdXJjZUNoZWNrVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3QgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHNvdXJjZSBuYW1lIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZURlZmluZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2UgZXhpc3RzIGFzIGRlZmluZWQgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzdG9yYWdlIjp7ImRlc2NyaXB0aW9uIjoiU3RvcmFnZSBpcyBhIGZpZWxkIiwicHJvcGVydGllcyI6eyJ2b2x1bWVfbW91bnRlZCI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU1vdW50ZWQgaXMgYSBib29sIHRvIGluZGljYXRlIGlmIHN0b3JhZ2Ugdm9sdW1lIHdhcyBtb3VudGVkLiIsInR5cGUiOiJib29sZWFuIn0sInZvbHVtZV90eXBlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lVHlwZSBpcyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2b2x1bWUgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgdXBsb2FkaW5nIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJpbmdyZXNzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlcyBpbiB0aGUgbGFzdCBwYXlsb2FkIHRoYXQgd2FzIHNlbnQuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwibGFzdF9wYXlsb2FkX21hbmlmZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRNYW5pZmVzdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBtYW5pZmVzdElEIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBuYW1lIG9mIHRoZSBsYXN0IHBheWxvYWQgZmlsZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9yZXF1ZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRSZXF1ZXN0SUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaW5zaWdodHMgcmVxdWVzdCBpZCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3VwbG9hZF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxVcGxvYWRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCB1cGxvYWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF91cGxvYWRfc3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFVwbG9hZFN0YXR1cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBodHRwIHN0YXR1cyBvZiB0aGUgbGFzdCB1cGxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBzaG91bGQgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MzZmM2Y2Mzg1ZDg3MmY4NmY0OThmZTIyMWZkNGUxMTRiMjZkN2IzMWY5MDk2OWU1N2NkOTYzN2RiOWVhMDA0YyIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9vcGVuc2hpZnRfY29udGFpbmVyX3BsYXRmb3JtLzQuNS9odG1sL2dldHRpbmdfc3RhcnRlZF93aXRoX2Nvc3RfbWFuYWdlbWVudC9hc3NlbWJseV9pbnRyb2R1Y3Rpb25fY29zdF9tYW5hZ2VtZW50KSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQsIHVzZWQgdG8gZ2F0aGVyIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjbHVzdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBiZSBpbnN0YWxsZWQgaW4gT3BlblNoaWZ0IDQuNisuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGFuZCB1cGxvYWRzIGl0IHRvIGNvc3QgbWFuYWdlbWVudCB0byBiZSBwcm9jZXNzZWQuIFRoZSBPcGVyYXRvciBxdWVyaWVzIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMsIHdoaWNoIGFyZSB0aGVuIHBhY2thZ2VkIGFuZCB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQgYXQgW2Nsb3VkLnJlZGhhdC5jb21dKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbSkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS80LjUvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgY29zdCBtYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIGNvc3QgbWFuYWdlbWVudC5cbiogV3JpdGluZyBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0aGUgcGFja2FnZWQgcmVwb3J0cyB0byBjb3N0IG1hbmFnZW1lbnQgdGhyb3VnaCBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZS5cbiogVGhlIG9wZXJhdG9yIGNhbiBjcmVhdGUgYSBzb3VyY2UgaW4gY2xvdWQucmVkaGF0LmNvbS4gQSBzb3VyY2UgaXMgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEEgc291cmNlICoqbXVzdCoqIGV4aXN0IGluIGNsb3VkLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjbG91ZC5yZWRoYXQuY29tIGV2ZXJ5IHdlZWssIG9yIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCB0aGUgZGF0YSB3aWxsIGJlIGxvc3QuXG5cbiMjIyMgU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVxuVGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgYW5kIHVzZSB0aGUgZm9sbG93aW5nIFBWQyB3aGVuIGluc3RhbGxlZDpcblxuICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuXG5JZiBhIGRpZmZlcmVudCBQVkMgc2hvdWxkIGJlIHV0aWxpemVkLCBhIHZhbGlkIFBWQyBzaG91bGQgYmUgc3BlY2lmaWVkIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgYXMgZGVzY3JpYmVkIGluIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGJlbG93LiBUaGUgUFZDIHRvIGJlIHVzZWQgbWF5IGV4aXN0IGFscmVhZHksIG9yIHRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGl0LlxuXG5UbyB1c2UgdGhlIGRlZmF1bHQgc3BlY2lmaWNhdGlvbiwgdGhlIGZvbGxvdyBhc3N1bXB0aW9ucyBtdXN0IGJlIG1ldDpcbjEuIEEgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZGVmaW5lZC5cbjIuIER5bmFtaWMgcHJvdmlzaW9uaW5nIGZvciB0aGF0IGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGVuYWJsZWQuXG5cbklmIHRoZXNlIGFzc3VtcHRpb25zIGFyZSBub3QgbWV0LCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgZGVwbG95IGNvcnJlY3RseS4gSW4gdGhlc2UgY2FzZXMsIHN0b3JhZ2UgbXVzdCBiZSBtYW51YWxseSBjb25maWd1cmVkLiBBZnRlciBjb25maWd1cmluZyBzdG9yYWdlLCBhIHZhbGlkIFBWQyB0ZW1wbGF0ZSBzaG91bGQgYmUgc3VwcGxpZWQgaW4gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIHNwZWMgb2YgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUi5cblxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4qKk5vdGUqKiBUaGVyZSBhcmUgc2VwYXJhdGUgaW5zdHJ1Y3Rpb25zIGZvciBjb25maWd1cmluZyB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yay5cbiMjIyMjIENvbmZpZ3VyZSBhdXRoZW50aWNhdGlvblxuVGhlIGRlZmF1bHQgYXV0aGVudGljYXRpb24gZm9yIHRoZSBvcGVyYXRvciBpcyBgdG9rZW5gLiBObyBmdXJ0aGVyIHN0ZXBzIGFyZSByZXF1aXJlZCB0byBjb25maWd1cmUgdG9rZW4gYXV0aGVudGljYXRpb24uIElmIGBiYXNpY2AgaXMgdGhlIHByZWZlcnJlZCBhdXRoZW50aWNhdGlvbiBtZXRob2QsIGEgU2VjcmV0IG11c3QgYmUgY3JlYXRlZCB3aGljaCBob2xkcyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgY3JlZGVudGlhbHM6XG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgV29ya2xvYWRzYCAtXHUwMDNlIGBTZWNyZXRzYCAtXHUwMDNlIHNlbGVjdCBQcm9qZWN0OiBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ3JlYXRlYCAtXHUwMDNlIGBLZXkvVmFsdWUgU2VjcmV0YFxuMi4gR2l2ZSB0aGUgU2VjcmV0IGEgbmFtZSBhbmQgYWRkIDIga2V5czogYHVzZXJuYW1lYCBhbmQgYHBhc3N3b3JkYCAoYWxsIGxvd2VyY2FzZSkuIFRoZSB2YWx1ZXMgZm9yIHRoZXNlIGtleXMgY29ycmVzcG9uZCB0byBjbG91ZC5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vNC41L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY2xvdWQucmVkaGF0LmNvbV0oaHR0cHM6Ly9jbG91ZC5yZWRoYXQuY29tKS5cblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGZvciBhIHJlc3RyaWN0ZWQgbmV0d29ya1xuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gU3BlY2lmeSB0aGUgZGVzaXJlZCBzdG9yYWdlLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnQgVm9sdW1lIENsYWltIGNhbGxlZCBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhYCB3aXRoIDEwR2kgb2Ygc3RvcmFnZS4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIHVzZSBvciBjcmVhdGUgYSBkaWZmZXJlbnQgUFZDLCBlZGl0IHRoZSBmb2xsb3dpbmcgaW4gdGhlIHNwZWM6XG4gICAgKiBBZGQgdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiB0byB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgaW4gdGhlIHNwZWM6XG5cbiAgICAgIGBgYFxuICAgICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICAgIG5hbWU6IFx1MDAzY2luc2VydC1uYW1lXHUwMDNlXG4gICAgICAgICAgc3BlYzpcbiAgICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IFx1MDAzY2luc2VydC1jbGFzcy1uYW1lXHUwMDNlXG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG4zLiAoT3B0aW9uYWwpIFNwZWNpZnkgdGhlIGRlc2lyZWQgcmVwb3J0IHJldGVudGlvbi4gVGhlIG9wZXJhdG9yIHdpbGwgcmV0YWluIDMwIHJlcG9ydHMgYnkgZGVmYXVsdC4gVGhpcyBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IG9uZSB3ZWVrJ3Mgd29ydGggb2YgZGF0YSBpZiB1c2luZyB0aGUgZGVmYXVsdCBwYWNrYWdpbmcgY3ljbGUuIFRvIG1vZGlmeSB0aGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHM6XG4gICAgKiBDaGFuZ2UgdGhlIGBwYWNrYWdpbmdgIHNwZWMgZmllbGQgYG1heF9yZXBvcnRzX3RvX3N0b3JlYCB0byB0aGUgZGVzaXJlZCBudW1iZXIgb2YgcmVwb3J0cyB0byByZXRhaW4uIE9uY2UgdGhpcyBtYXggbnVtYmVyIGlzIHJlYWNoZWQsIHRoZSBvcGVyYXRvciB3aWxsIHN0YXJ0IHJlbW92aW5nIHRoZSBvbGRlc3QgcGFja2FnZXMgcmVtYWluaW5nIG9uIHRoZSBQVkM6XG5cbiAgICAgIGBgYFxuICAgICAgICBwYWNrYWdpbmc6XG4gICAgICAgICAgbWF4X3NpemVfTUI6IDEwMFxuICAgICAgICAgIG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMFxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogVGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzIGRpcmVjdGx5IGFmZmVjdHMgdGhlIGZyZXF1ZW5jeSB0aGF0IHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGZyb20gdGhlIFBWQy4gVGFrZSBjYXV0aW9uIGluIHNldHRpbmcgdGhpcyB0byBhIGhpZ2hlciBudW1iZXIgb2YgcmVwb3J0cywgYXMgdGhlIG9wZXJhdG9yIGNhbm5vdCB3cml0ZSBkYXRhIHRvIHRoZSBQVkMgaWYgdGhlIHN0b3JhZ2UgaXMgZnVsbC5cbjQuIFRvIGNvbmZpZ3VyZSB0aGUgb3BlcmF0b3IgdG8gcGVyZm9ybSBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgc2V0IHRoZSBgdXBsb2FkX3RvZ2dsZWAgdG8gYGZhbHNlYDpcblxuICBgYGBcbiAgICB1cGxvYWQ6XG4gICAgICB1cGxvYWRfY3ljbGU6IDM2MCxcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY2xvdWQucmVkaGF0LmNvbV0oaHR0cHM6Ly9jbG91ZC5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICBraW5kOiBQb2RcbiAgYXBpVmVyc2lvbjogdjFcbiAgbWV0YWRhdGE6XG4gICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gIHNwZWM6XG4gICAgdm9sdW1lczpcbiAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgIGNvbnRhaW5lcnM6XG4gICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJzM2MDAnXVxuICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNsb3VkLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtTb3VyY2VzIG1lbnVdKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2Nsb3VkLnJlZGhhdC5jb21dKGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4iLCJkaXNwbGF5TmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NEtQQ0V0TFNCSFpXNWxjbUYwYjNJNklFRmtiMkpsSUVsc2JIVnpkSEpoZEc5eUlESXlMakV1TUN3Z1UxWkhJRVY0Y0c5eWRDQlFiSFZuTFVsdUlDNGdVMVpISUZabGNuTnBiMjQ2SURZdU1EQWdRblZwYkdRZ01Da2dJQzB0UGdvOGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJa3hoZVdWeVh6RWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWdvSklIWnBaWGRDYjNnOUlqQWdNQ0F6TURBZ016QXdJaUJ6ZEhsc1pUMGlaVzVoWW14bExXSmhZMnRuY205MWJtUTZibVYzSURBZ01DQXpNREFnTXpBd095SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStDZ2t1YzNRd2UyWnBiR3c2STBWRk1EQXdNRHQ5Q2p3dmMzUjViR1UrQ2p4MGFYUnNaVDVEYjNOMExXbGpiMjQ4TDNScGRHeGxQZ284WkdWell6NURjbVZoZEdWa0lIZHBkR2dnVTJ0bGRHTm9Mand2WkdWell6NEtQR2MrQ2drOFp6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOMk10TXk0eU5qVTRNRGd4TFRReExqazRPVEExTVRndE16Z3VNalUyTmpnek15MDNOQzQyTkRjeU1ERTFMVGd4TGpFM09EZ3pNeTAzTkM0Mk5EY3lNREUxQ2drSkNXTXRNamN1TlRJMk1UVXpOaXd3TFRVekxqRTROakV5Tmpjc01UTXVPVGsyTXpRNU15MDJPQzR4TVRVMU56QXhMRE0zTGpNeU16WXdNRGhqTFRFdU9EWTJNVGd3TkN3d0xUTXVOek15TXpVek1pMHdMalEyTmpVME5URXROaTR3TmpVd056ZzNMVEF1TkRZMk5UUTFNUW9KQ1FsakxUTTBMalV5TkRNek1ERXNNQzAyTWk0NU9ETTFOemMzTERJM0xqazVNalk1T0RjdE5qSXVPVGd6TlRjM055dzJNaTQ1T0RNMU5qWXpjekkzTGprNU1qWTVPRGNzTmpJdU9UZ3pOVFkyTXl3Mk1pNDVPRE0xTnpjM0xEWXlMams0TXpVMk5qTm9NVFl1TXpJNU1EY3hDZ2tKQ1dNekxqY3pNak0yTURnc01DdzJMams1T0RFM05qWXRNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaTAyTGprNU9ERTJPRGx6TFRNdU1qWTFPREUxTnkwMkxqazVPREUyT0RrdE5pNDVPVGd4TnpZMkxUWXVPVGs0TVRZNE9XZ3RNVFl1TXpJNU1EY3hDZ2tKQ1dNdE1qY3VNRFU1TmpFeU15d3dMVFE0TGpVeU1EWTNPVFV0TWpFdU9USTNOakkzTmkwME9DNDFNakEyTnprMUxUUTRMalV5TURZM05UZHpNakV1T1RJM05qRXlNeTAwT0M0MU1qQTJPRE16TERRNExqVXlNRFkzT1RVdE5EZ3VOVEl3Tmpnek13b0pDUWxqTWk0M09Ua3lOekEyTERBc05TNDFPVGcxTkRFekxEQXVORFkyTlRRMU1TdzRMak01Tnpnd05ETXNNQzQ1TXpNd09UQXlZekl1TnprNU1qY3dOaXd3TGpRMk5qVTBOVEVzTmk0d05qVXdOemczTFRBdU9UTXpNRGt3TWl3M0xqUTJORGN5TVRjdE15NDNNekl6TmpBNENna0pDV014TWk0eE16QXhOekkzTFRJd0xqazVORFV5T1Rjc016UXVOVEkwTXpNd01TMHpOQzR3TlRjM09EZzRMRFU0TGpNeE9ERXlNamt0TXpRdU1EVTNOemc0T0dNek5pNDROVGN3TnpBNUxEQXNOamN1TVRneU5EazFNU3d6TUM0ek1qVTBNakEwTERZM0xqRTRNalE1TlRFc05qY3VNVGd5TkRjNU9Rb0pDUWxqTUN3ekxqY3pNak0xTXpJc015NHlOalU0TURneExEWXVPVGs0TVRjMk5pdzJMams1T0RFMk9Ea3NOaTQ1T1RneE56WTJZekUyTGpNeU9UQTNNU3d3TERJNUxqZzFPRGt3TWl3eE15NDFNams0TURBMExESTVMamcxT0Rrd01pd3lPUzQ0TlRnNE56RTFDZ2tKQ1hNdE1UTXVOVEk1T0RNd09Td3lPUzQ0TlRnNE9EWTNMVEk1TGpnMU9Ea3dNaXd5T1M0NE5UZzRPRFkzWXkwekxqY3pNak0yTURnc01DMDJMams1T0RFMk9Ea3NNeTR5TmpVNE1EZ3hMVFl1T1RrNE1UWTRPU3cyTGprNU9ERTJPRGtLQ1FrSmN6TXVNalkxT0RBNE1TdzJMams1T0RFMk9Ea3NOaTQ1T1RneE5qZzVMRFl1T1RrNE1UWTRPV015TkM0eU5qQXpNekF5TERBc05EUXVNekl4TnpZeU1TMHlNQzR3TmpFME1UWTJMRFEwTGpNeU1UYzJNakV0TkRRdU16SXhOell5TVFvSkNRbERNamMyTGpNMk1EWXlOaklzTVRNNUxqSXdNamM0T1RNc01qWXdMakF6TVRVMU5USXNNVEl3TGpVME1EazVNamNzTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04zb2lMejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5NakEyTGpnME5UUXlPRFVzTWpJd0xqZzBPREUzTldNM0xqUTJORGN3TmpRdE9DNDROalF6TmpRMkxERXhMalkyTXpZeUxUSXdMalV5TnprNE5EWXNNVEV1TmpZek5qSXRNekl1TmpVNE1UVTNNd29KQ1Fsak1DMHlPQzQ1TWpVM09UWTFMVEl6TGpNeU56STBMVFV5TGpJMU16QXpOalV0TlRJdU1qVXpNRE0yTlMwMU1pNHlOVE13TXpZMWN5MDFNaTR5TlRNd05EUXhMREl6TGpNeU56STBMVFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRE0yTlFvSkNRbHpNak11TXpJM01qUTNOaXcxTWk0eU5UTXdOVEU0TERVeUxqSTFNekEwTkRFc05USXVNalV6TURVeE9HTXhNUzR4T1Rjd09ESTFMREFzTWpFdU9USTNOakV5TXkwekxqY3pNak0yTURnc016QXVNekkxTkRJME1pMDVMamM1TnpRek9UWnNNekV1TnpJMU1EVXhPU3d6TUM0M09URTVOakUzQ2drSkNXTXhMak01T1RZeU56Y3NNUzR6T1RrMk1qYzNMRE11TWpZMU9ESXpOQ3d4TGpnMk5qRTRNRFFzTlM0eE16RTVPRGcxTERFdU9EWTJNVGd3TkdNeExqZzJOakU1TlRjc01Dd3pMamN6TWpNMk1EZ3RNQzQ1TXpNd056VXNOUzR4TXpFNU9EZzFMVEl1TXpNeU56TXpNZ29KQ1Fsak1pNDNPVGt5TnpBMkxUSXVOems1TWpVMU5Dd3lMamM1T1RJM01EWXROeTQwTmpRM01EWTBMREF0TVRBdU1qWXpPVGMzTVV3eU1EWXVPRFExTkRJNE5Td3lNakF1T0RRNE1UYzFlaUJOTVRJNExqUTJOVGcyTmpFc01UZzRMakU1TURBeE56Y0tDUWtKWXpBdE1qQXVPVGswTlRJeU1Td3hOeTR5TmpJeE56WTFMVE00TGpJMU5qWTVPRFlzTXpndU1qVTJOams0Tmkwek9DNHlOVFkyT1RnMmN6TTRMakkxTmpZNU9EWXNNVGN1TWpZeU1UYzJOU3d6T0M0eU5UWTJPVGcyTERNNExqSTFOalk1T0RZS0NRa0pjeTB4Tnk0eU5qSXhOelkxTERNNExqSTFOalk1T0RZdE16Z3VNalUyTmprNE5pd3pPQzR5TlRZMk9UZzJVekV5T0M0ME5qVTROall4TERJd09TNHhPRFExTXprNExERXlPQzQwTmpVNE5qWXhMREU0T0M0eE9UQXdNVGMzZWlJdlBnb0pQQzluUGdvSlBHYytDZ2tKUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRURTNOQzR5T0RBMk16azJMREU0TlM0NE56TTJNVEUxWXpJdU1qRTJNamM0TVN3d0xqWTROalV6T0Rjc05DNHhNVEF3TXpFeExERXVPRGN3TnpFeU15dzFMalkzTmpZek5UY3NNeTQxTlRJMU1EVTFDZ2tKQ1dNeExqVTJOall3TkRZc01TNDJPREU0TURnMUxESXVOVGs0TnpBNU1Td3pMalkwT1RJMk1UVXNNeTR3T1RFM016VTRMRFV1T1RBeU5EQTBPR013TGpRNU56WXhPVFlzTWk0eU5UTXhORE16TERBdU16WXpPVGs0TkN3MExqVXlPVE15TnpRdE1DNDBNREE0TnpnNUxEWXVPREU1TXpNMU9Rb0pDUWxqTFRBdU9URTJPVEUxT1N3eUxqVXlNRE00TlRjdE1pNDBPRE0xTWpBMUxEUXVOVEk1TXpFeU1TMDBMalk1T1RjNU9EWXNOaTR3TVRjMU9UTTBZeTB5TGpJeE5qSTJNamdzTVM0ME9EZ3lPREV5TFRRdU5qazFNakExTnl3eUxqSTNNVFUzTlRrdE55NDBOVEExTnpZNExESXVNelE1T0RrNU13b0pDUWwyTlM0MU1ERTFOVFkwWXpBc01DNDFNelEwT0RRNUxUQXVNVGN3TkRjeE1pd3dMamszTWpJeE16Y3RNQzQxTVRFME5UazBMREV1TXpFM056YzVOV010TUM0ek5EVTFOalU0TERBdU16UTFOVGd4TVMwd0xqYzRNekk1TkRjc01DNDFNVFl3TmpjMUxURXVNekl5TXpnM055d3dMalV4TmpBMk56VUtDUWtKYUMwekxqWTJOelk1TkRGakxUQXVOVE0wTlRBd01Td3dMVEF1T1RjeU1qRXpOeTB3TGpFM01EUTROalV0TVM0ek1UYzNOemsxTFRBdU5URTJNRFkzTldNdE1DNHpOREE1TnpJNUxUQXVNelExTlRZMU9DMHdMalV4TmpBMk56VXRNQzQzT0RNeU9UUTNMVEF1TlRFMk1EWTNOUzB4TGpNeE56YzNPVFVLQ1FrSmRpMDFMalV3TVRVMU5qUmpMVE11TmpZM05qazBNU3d3TFRZdU9UZzVPREl5TkMweExqRTBOekk1TXpFdE9TNDVOamcyTlRnMExUTXVORE0zTXpBeE5tTXRNQzR6T0RJME5EWXpMVEF1TXpneU5ETXhMVEF1TmpFeU9ESXpOUzB3TGpnME16SXdNRGN0TUM0Mk9EZzROREk0TFRFdU16YzNOekF3T0FvSkNRbGpMVEF1TURjMk1ETTBOUzB3TGpVek5EUTRORGtzTUM0eE1UVXhPRGcyTFRFdU1ETXlNVEEwTlN3d0xqVTNNell6T0RrdE1TNDBPRGd5TlRBM2JETXVPRGsxTnpneU5TMHpMamc1T0RBNE5qVUtDUWtKWXpBdU16QTROekF3Tmkwd0xqSXpNRE01TWpVc01DNDJOamd4TURZeExUQXVNemd5TkRNeExERXVNRGt5TURFd05TMHdMalExTmpFMk1UVmpNQzQwTVRreU9UWXpMVEF1TURjNE16SXpOQ3d3TGpneU1ERTFPVGtzTUM0d016WTROU3d4TGpJd01qWXdOaklzTUM0ek5EQTVOekk1Q2drSkNXTXhMakUwTnpJNU16RXNNQzQzTmpRNE56Y3pMREl1TkRReU1EUTNNU3d4TGpFME56TXdPRE1zTXk0NE9UTTBOak14TERFdU1UUTNNekE0TTJnM0xqWTRNRGsxTkdNd0xqa3hOamswTmpRc01Dd3hMamN3TURJME1URXRNQzR6TWpJMU5EQXpMREl1TXpRNU9EazVNeTB3TGprM01qSXhNemNLQ1FrSll6QXVOalE1TmpnNE55MHdMalkwT1RZNE9EY3NNQzQ1TnpJeU1qa3RNUzQwTnpRME5UWTRMREF1T1RjeU1qSTVMVEl1TkRZMU1UQXpNV013TFRBdU5qZzJOVFUwTFRBdU1qSTFOelk1TFRFdU16TTJNakkzTkMwd0xqWTROalV6T0RjdE1TNDVORGt3TXpVMkNna0pDV010TUM0ME5UWXhOakUxTFRBdU5qRXlPREl6TlMweExqQXpNakV4T1RndE1TNHdNekl4TVRrNExURXVOekU0TmpRek1pMHhMakkyTWpRNU5qbHNMVEV4TGpnd05EZzBNREV0TXk0ME16Y3pNVFk1Q2drSkNXTXRNaTQxT1RnMk9UTTRMVEF1TnpZME9EYzNNeTAwTGpjM016VXlPVEV0TWk0eE16YzVOVFEzTFRZdU5UTXpOalExTmkwMExqRXlPRFEwT0RWakxURXVOelUzT0RFeU5TMHhMams0TlRrd01Ea3RNaTQzT0RjMk5ETTBMVFF1TWpjMU9USTBOeTB6TGpBNU5EQXpPVGt0Tmk0NE56UTJNek00Q2drSkNXTXRNQzR4TlRJd05UTTRMVEl1TkRRMk5qVTFNeXd3TGpNd05qTTVOalV0TkM0M01UZ3lNekV5TERFdU16YzFNemsyTnkwMkxqZ3hPVE16TlRsak1TNHdOamc1TmprM0xUSXVNVEF4TURnNU5Td3lMalU1T0Rjd09URXRNeTQzT0RJNE9ESTNMRFF1TlRnME5qRXROUzR3TkRVek56azJDZ2tKQ1dNeExqazROVGt3TURrdE1TNHlOVGM0T0RnNExEUXVNakF5TVRjNUxURXVPRGc1TVRJNU5pdzJMalkwT0RnME9UVXRNUzQ0T0RreE1qazJhREF1TWpJMU56WTVkaTAxTGpVd01UVTBNVEVLQ1FrSll6QXRNQzQxTXpRMU1EQXhMREF1TVRjMU1EazBOaTB3TGprM01qSXlPU3d3TGpVeE5qQTJOelV0TVM0ek1UYzNPVFE0WXpBdU16UTFOVFkxT0Mwd0xqTTBOVFU0TVRFc01DNDNPRE15TnprMExUQXVOVEUyTURVeU1pd3hMak14TnpjM09UVXRNQzQxTVRZd05USXlhRE11TmpZM05qazBNUW9KQ1Fsak1DNDFNemt3T1RNc01Dd3dMamszTmpneU1Ua3NNQzR4TnpBME56RXlMREV1TXpJeU16ZzNOeXd3TGpVeE5qQTFNakpqTUM0ek5EQTVPRGd5TERBdU16UTFOVFkxT0N3d0xqVXhNVFExT1RRc01DNDNPRE15T1RRM0xEQXVOVEV4TkRVNU5Dd3hMak14TnpjNU5EaDJOUzQxTURFMU5ERXhDZ2tKQ1dNekxqWTJOelk1TkRFc01DdzJMamsxTnpVMk5UTXNNUzR4TkRjeU9UTXhMRGt1T0RZd016Z3lNU3d6TGpRek56TXdNVFpqTUM0ME5UWXhOelk0TERBdU16Z3lORFEyTXl3d0xqY3lNelF4T1RJc01DNDRORE15TURBM0xEQXVPREF4TnpReU5pd3hMak0zTnpZNE5UVUtDUWtKWXpBdU1EY3pOekUxTWl3d0xqVXpORFV3TURFdE1DNHhNVFV5TURNNUxEQXVPVGt3TmpRMk5DMHdMalUzTVRNMU1ERXNNUzR6TnpNd056YzBiQzB6TGpnNU9EQTROalVzTkM0d01UTXlOelV4Q2drSkNXTXRNQzR6TURnM01UVTRMREF1TWpNd016a3lOUzB3TGpZMk9ERXdOakVzTUM0ek9ESTBNekV0TVM0d09USXdNVEExTERBdU5EVTJNVFl4TldNdE1DNDBNVGt5T1RZekxEQXVNRGM0TXpJek5DMHdMamd5TURFMU9Ua3NNQzB4TGpJd01qVTVNRGt0TUM0eU1qVTNOamtLQ1FrSll5MHhMakUwTWpjeE5UVXRNQzQ0TkRNeU1EQTNMVEl1TkRReU1EYzNOaTB4TGpJMk1qUTVOamt0TXk0NE9UZ3dPRFkxTFRFdU1qWXlORGsyT1dndE55NDJOell6TmpFeFl5MHdMamt4TmpreE5Ua3NNQzB4TGpjd01ESXlOVGdzTUM0ek1qSTFNalV0TWk0ek5EazRPVGt6TERBdU9UY3lNakV6TndvSkNRbGpMVEF1TmpRNU5qZzROeXd3TGpZME9UWTNNelV0TUM0NU56WTRNakU1TERFdU5EYzBORFF4TlMwd0xqazNOamd5TVRrc01pNDBOalV3T0RjNVl6QXNNQzQyT0RZMU5UUXNNQzR5TXpBek9USTFMREV1TXpNMk1qRXlNaXd3TGpZNU1URTBOamtzTVM0NU5Ea3dNelUyQ2drSkNXTXdMalExTmpFMk1UVXNNQzQyTVRJNE1qTTFMREV1TURNeU1URTVPQ3d4TGpBek1qRXhPVGdzTVM0M01UZzJOVGcwTERFdU1qWXlORGsyT1V3eE56UXVNamd3TmpNNU5pd3hPRFV1T0Rjek5qRXhOWG9pTHo0S0NUd3ZaejRLUEM5blBnbzhMM04yWno0SyIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiY29uZmlnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW1hbmFnZXItcm9sZSJ9XSwiZGVwbG95bWVudHMiOlt7Im5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7fSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvaG9tZS9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MzZmM2Y2Mzg1ZDg3MmY4NmY0OThmZTIyMWZkNGUxMTRiMjZkN2IzMWY5MDk2OWU1N2NkOTYzN2RiOWVhMDA0YyIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtbWFuYWdlci1yb2xlIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImVuZHBvaW50cyIsImV2ZW50cyIsInBlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwb2RzIiwic2VjcmV0cyIsInNlcnZpY2VhY2NvdW50cyIsInNlcnZpY2VzIiwic2VydmljZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvcnMuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnNlcnZpY2V2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtbWFuYWdlci1yb2xlIn1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiT3duTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJTaW5nbGVOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJNdWx0aU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImNvc3QiLCJtYW5hZ2VtZW50IiwidXNhZ2UiLCJtb25pdG9yIl0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjozNmYzZjYzODVkODcyZjg2ZjQ5OGZlMjIxZmQ0ZTExNGIyNmQ3YjMxZjkwOTY5ZTU3Y2Q5NjM3ZGI5ZWEwMDRjIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3ItMzZmM2Y2Mzg1ZDg3MmY4NmY0OThmZTIyMWZkNGUxMTRiMjZkN2IzMWY5MDk2OWU1N2NkOTYzN2RiOWVhMDA0Yy1hbm5vdGF0aW9uIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjozNmYzZjYzODVkODcyZjg2ZjQ5OGZlMjIxZmQ0ZTExNGIyNmQ3YjMxZjkwOTY5ZTU3Y2Q5NjM3ZGI5ZWEwMDRjIiwibmFtZSI6Im1hbmFnZXIifV0sInJlcGxhY2VzIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci4xLjAuMCIsInZlcnNpb24iOiIxLjEuMCJ9fQ== + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:36f3f6385d872f86f498fe221fd4e114b26d7b31f90969e57cd9637db9ea004c + createdAt: "2021-02-16T16:03:12Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.1.0 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.5/html/getting_started_with_cost_management/assembly_introduction_cost_management) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [cloud.redhat.com](https://cloud.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). + + For more information, reach out to . + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in cloud.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in cloud.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to cloud.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to cloud.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [cloud.redhat.com](https://cloud.redhat.com). + + For more information, reach out to . + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [cloud.redhat.com](https://cloud.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', '3600'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the cloud.redhat.com platform, open the [Sources menu](https://cloud.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [cloud.redhat.com](https://cloud.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:f2455392ddf7fe8506a2485835cbbd9c633476344a0cd9353e46c6fa44e4667c name: "" @@ -117,12 +675,291 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.1.3 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsic2VydmljZV9hZGRyZXNzIjp7ImRlZmF1bHQiOiJodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGlzIGBodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxYC4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlZmF1bHQiOjE0NDAsImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUgVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJpbmdyZXNzX3BhdGgiLCJ1cGxvYWRfY3ljbGUiLCJ1cGxvYWRfdG9nZ2xlIiwidmFsaWRhdGVfY2VydCJdLCJ0eXBlIjoib2JqZWN0In0sInZvbHVtZV9jbGFpbV90ZW1wbGF0ZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZUNsYWltVGVtcGxhdGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDIHRlbXBsYXRlLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJBY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QgLSBCZXRhKSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSAqIEFuIGV4aXN0aW5nIGN1c3RvbSByZXNvdXJjZS9vYmplY3QgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBWb2x1bWVTbmFwc2hvdCBvYmplY3QgdHlwZXMsIHRoZSBhcHByb3ByaWF0ZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkIChWb2x1bWVTbmFwc2hvdERhdGFTb3VyY2Ugb3IgQW55Vm9sdW1lRGF0YVNvdXJjZSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSB2b2x1bWUgd2lsbCBub3QgYmUgY3JlYXRlZCBhbmQgdGhlIGZhaWx1cmUgd2lsbCBiZSByZXBvcnRlZCBhcyBhbiBldmVudC4gSW4gdGhlIGZ1dHVyZSwgd2UgcGxhbiB0byBzdXBwb3J0IG1vcmUgZGF0YSBzb3VyY2UgdHlwZXMgYW5kIHRoZSBiZWhhdmlvciBvZiB0aGUgcHJvdmlzaW9uZXIgbWF5IGNoYW5nZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1jb21wdXRlLXJlc291cmNlcy1jb250YWluZXIvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiQWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90IC0gQmV0YSkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2Uvb2JqZWN0IHRoYXQgaW1wbGVtZW50cyBkYXRhIHBvcHVsYXRpb24gKEFscGhhKSBJbiBvcmRlciB0byB1c2UgVm9sdW1lU25hcHNob3Qgb2JqZWN0IHR5cGVzLCB0aGUgYXBwcm9wcmlhdGUgZmVhdHVyZSBnYXRlIG11c3QgYmUgZW5hYmxlZCAoVm9sdW1lU25hcHNob3REYXRhU291cmNlIG9yIEFueVZvbHVtZURhdGFTb3VyY2UpIElmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsIGl0IHdpbGwgY3JlYXRlIGEgbmV3IHZvbHVtZSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZS4gSWYgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSBpcyBub3Qgc3VwcG9ydGVkLCB0aGUgdm9sdW1lIHdpbGwgbm90IGJlIGNyZWF0ZWQgYW5kIHRoZSBmYWlsdXJlIHdpbGwgYmUgcmVwb3J0ZWQgYXMgYW4gZXZlbnQuIEluIHRoZSBmdXR1cmUsIHdlIHBsYW4gdG8gc3VwcG9ydCBtb3JlIGRhdGEgc291cmNlIHR5cGVzIGFuZCB0aGUgYmVoYXZpb3Igb2YgdGhlIHByb3Zpc2lvbmVyIG1heSBjaGFuZ2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdGFydF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFF1ZXJ5U3RhcnRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdGFydGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcXVlcnlfc3VjY2Vzc190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFF1ZXJ5U3VjY2Vzc1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN1Y2Nlc3NmdWwuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwicHJvbWV0aGV1c19jb25maWd1cmVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZ3VyZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBjb25maWd1cmVkIHRvIGNvbm5lY3QgdG8gcHJvbWV0aGV1cy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25uZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHByb21ldGhldXMgY2FuIGJlIHF1ZXJpZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29ubmVjdGlvbkVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgdGVzdCBxdWVyeS4iLCJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2VfYWRkcmVzcyI6eyJkZXNjcmlwdGlvbiI6IlN2Y0FkZHJlc3MgaXMgdGhlIGludGVybmFsIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbInByb21ldGhldXNfY29uZmlndXJlZCIsInByb21ldGhldXNfY29ubmVjdGVkIl0sInR5cGUiOiJvYmplY3QifSwicmVwb3J0cyI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydHMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHJlcG9ydCBnZW5lcmF0aW9uLiIsInByb3BlcnRpZXMiOnsiZGF0YV9jb2xsZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBkYXRhIHdhcyBjb2xsZWN0ZWQgZm9yIHRoZSBsYXN0IHF1ZXJ5LiIsInR5cGUiOiJib29sZWFuIn0sImRhdGFfY29sbGVjdGlvbl9tZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3Rpb25NZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBhIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhX2NvbGxlY3RlZCBzdGF0dXMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2hvdXJfcXVlcmllZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RIb3VyUXVlcmllZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHRpbWUgcmFuZ2UgZm9yIHdoaWNoIG1ldHJpY3Mgd2VyZSBsYXN0IHF1ZXJpZWQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXBvcnRfbW9udGgiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRNb250aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIG1vbnRoIGZvciB3aGljaCByZXBvcnRzIGFyZSBiZWluZyBnZW5lcmF0ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiB0aGUgc291cmNlIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IkNoZWNrQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggc291cmNlIGNoZWNrIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IkNyZWF0ZVNvdXJjZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIEEgc291cmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBjcmVhdGluZyB0aGUgc291cmNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFNvdXJjZUNoZWNrVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3QgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHNvdXJjZSBuYW1lIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZURlZmluZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2UgZXhpc3RzIGFzIGRlZmluZWQgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzdG9yYWdlIjp7ImRlc2NyaXB0aW9uIjoiU3RvcmFnZSBpcyBhIGZpZWxkIiwicHJvcGVydGllcyI6eyJ2b2x1bWVfbW91bnRlZCI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU1vdW50ZWQgaXMgYSBib29sIHRvIGluZGljYXRlIGlmIHN0b3JhZ2Ugdm9sdW1lIHdhcyBtb3VudGVkLiIsInR5cGUiOiJib29sZWFuIn0sInZvbHVtZV90eXBlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lVHlwZSBpcyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2b2x1bWUgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgdXBsb2FkaW5nIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJpbmdyZXNzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlcyBpbiB0aGUgbGFzdCBwYXlsb2FkIHRoYXQgd2FzIHNlbnQuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwibGFzdF9wYXlsb2FkX21hbmlmZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRNYW5pZmVzdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBtYW5pZmVzdElEIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBuYW1lIG9mIHRoZSBsYXN0IHBheWxvYWQgZmlsZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9yZXF1ZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRSZXF1ZXN0SUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaW5zaWdodHMgcmVxdWVzdCBpZCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3VwbG9hZF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxVcGxvYWRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCB1cGxvYWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF91cGxvYWRfc3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFVwbG9hZFN0YXR1cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBodHRwIHN0YXR1cyBvZiB0aGUgbGFzdCB1cGxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBzaG91bGQgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NzZjNWI4Zjg4N2M4OGQ3OWIwMjI1MjU5YWZlZGRmNDFiZTBiZGRlMzE2YjRkYmY4NWJiYzYxMDQ2MjEyN2UxYiIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS4zIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuMyBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojc2YzViOGY4ODdjODhkNzliMDIyNTI1OWFmZWRkZjQxYmUwYmRkZTMxNmI0ZGJmODViYmM2MTA0NjIxMjdlMWIiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojc2YzViOGY4ODdjODhkNzliMDIyNTI1OWFmZWRkZjQxYmUwYmRkZTMxNmI0ZGJmODViYmM2MTA0NjIxMjdlMWIiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci03NmM1YjhmODg3Yzg4ZDc5YjAyMjUyNTlhZmVkZGY0MWJlMGJkZGUzMTZiNGRiZjg1YmJjNjEwNDYyMTI3ZTFiLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojc2YzViOGY4ODdjODhkNzliMDIyNTI1OWFmZWRkZjQxYmUwYmRkZTMxNmI0ZGJmODViYmM2MTA0NjIxMjdlMWIiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS4wIiwidmVyc2lvbiI6IjEuMS4zIn19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:76c5b8f887c88d79b0225259afeddf41be0bdde316b4dbf85bbc610462127e1b + createdAt: "2021-02-16T16:03:12Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.1.3 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [console.redhat.com](https://console.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + For more information, reach out to . + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + For more information, reach out to . + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:6393be8e83443f0039d5cefd2f4df992986b6b3ec16f7ed38b1a902aa7051091 name: "" @@ -145,12 +982,291 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.1.4 -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmNlMGNjZDFjNzYwODBkNGY5NzY4M2ViM2ExMWJhYzY4NDhkZmExM2QyMzFhOGFkM2Y0MGMyNDYzZDk3NzY5MSIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS40IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuNCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjJjZTBjY2QxYzc2MDgwZDRmOTc2ODNlYjNhMTFiYWM2ODQ4ZGZhMTNkMjMxYThhZDNmNDBjMjQ2M2Q5Nzc2OTEiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjJjZTBjY2QxYzc2MDgwZDRmOTc2ODNlYjNhMTFiYWM2ODQ4ZGZhMTNkMjMxYThhZDNmNDBjMjQ2M2Q5Nzc2OTEiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci0yY2UwY2NkMWM3NjA4MGQ0Zjk3NjgzZWIzYTExYmFjNjg0OGRmYTEzZDIzMWE4YWQzZjQwYzI0NjNkOTc3NjkxLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjJjZTBjY2QxYzc2MDgwZDRmOTc2ODNlYjNhMTFiYWM2ODQ4ZGZhMTNkMjMxYThhZDNmNDBjMjQ2M2Q5Nzc2OTEiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS4zIiwidmVyc2lvbiI6IjEuMS40In19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:2ce0ccd1c76080d4f97683eb3a11bac6848dfa13d231a8ad3f40c2463d977691 + createdAt: "2021-02-16T16:03:12Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.1.4 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [console.redhat.com](https://console.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + For more information, reach out to . + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + For more information, reach out to . + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:e14493e3b02509690c65016297cf95fc2e4a11a7c97e0f8ca5812e66acbc6c26 name: "" @@ -173,12 +1289,291 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.1.5 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZmUxNGEzNzUyN2ZhZWQ2MjYyNjMwYzZmNzZjZDg2MjU5ODI0NGEzMThkNDBlYTdkNmViYWVhMTQ2NjFiOGU5YiIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS41IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuNSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmZlMTRhMzc1MjdmYWVkNjI2MjYzMGM2Zjc2Y2Q4NjI1OTgyNDRhMzE4ZDQwZWE3ZDZlYmFlYTE0NjYxYjhlOWIiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmZlMTRhMzc1MjdmYWVkNjI2MjYzMGM2Zjc2Y2Q4NjI1OTgyNDRhMzE4ZDQwZWE3ZDZlYmFlYTE0NjYxYjhlOWIiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci1mZTE0YTM3NTI3ZmFlZDYyNjI2MzBjNmY3NmNkODYyNTk4MjQ0YTMxOGQ0MGVhN2Q2ZWJhZWExNDY2MWI4ZTliLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmZlMTRhMzc1MjdmYWVkNjI2MjYzMGM2Zjc2Y2Q4NjI1OTgyNDRhMzE4ZDQwZWE3ZDZlYmFlYTE0NjYxYjhlOWIiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS40IiwidmVyc2lvbiI6IjEuMS41In19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:fe14a37527faed6262630c6f76cd862598244a318d40ea7d6ebaea14661b8e9b + createdAt: "2021-02-16T16:03:12Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.1.5 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [console.redhat.com](https://console.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + For more information, reach out to . + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + For more information, reach out to . + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:ce775e3dac0fc6a04698c6a53fc38d73593cbd3100dacafb41d7b1bd9505c4e4 name: "" @@ -201,12 +1596,301 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.1.6 -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NTIzYjY2MmZiMDUwOThlYzk0MTBjYzA2NjU1NTY0OTVmNjQwOWI0NGI4YzgwMzBjMWM0NTZlZWVlODY0ZGE2NiIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS42IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuNiBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICBzcGVjOlxuICAgICBhZmZpbml0eTpcbiAgICAgICBwb2RBZmZpbml0eTpcbiAgICAgICAgIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb246XG4gICAgICAgICAtIGxhYmVsU2VsZWN0b3I6XG4gICAgICAgICAgICAgbWF0Y2hFeHByZXNzaW9uczpcbiAgICAgICAgICAgICAtIGtleTogYXBwXG4gICAgICAgICAgICAgICBvcGVyYXRvcjogSW5cbiAgICAgICAgICAgICAgIHZhbHVlczpcbiAgICAgICAgICAgICAgIC0gY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgICAgICB0b3BvbG9neUtleToga3ViZXJuZXRlcy5pby9ob3N0bmFtZVxuICAgICAgdm9sdW1lczpcbiAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbTpcbiAgICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICAgIGNvbW1hbmQ6IFsnc2xlZXAnLCAnaW5maW5pdHknXVxuICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNvbnNvbGUucmVkaGF0LmNvbSBwbGF0Zm9ybSwgb3BlbiB0aGUgW1NvdXJjZXMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3Mvc291cmNlcy8pIHRvIGJlZ2luIGFkZGluZyBhbiBPcGVuU2hpZnQgc291cmNlIHRvIGNvc3QgbWFuYWdlbWVudDpcblxuUHJlcmVxdWlzaXRlczpcbiogVGhlIGNsdXN0ZXIgaWRlbnRpZmllciB3aGljaCBjYW4gYmUgZm91bmQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiwgdGhlIGNsdXN0ZXIgT3ZlcnZpZXcgcGFnZSwgb3IgdGhlIGNsdXN0ZXIgSGVscCBcdTAwM2UgQWJvdXQuXG5cbkNyZWF0ZSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0IHNvdXJjZXNgIHRhYlxuMy4gQ3JlYXRlIGEgbmV3IGBSZWQgSGF0IE9wZW5zaGlmdCBDb250YWluZXIgUGxhdGZvcm1gIHNvdXJjZTpcbiAgICAqIGdpdmUgdGhlIHNvdXJjZSBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2VzIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIFNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2Nsb3VkLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiYWZmaW5pdHkiOnsicG9kQWZmaW5pdHkiOnsicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6W3sibGFiZWxTZWxlY3RvciI6eyJtYXRjaEV4cHJlc3Npb25zIjpbeyJrZXkiOiJhcHAiLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiXX1dfSwidG9wb2xvZ3lLZXkiOiJrdWJlcm5ldGVzLmlvL2hvc3RuYW1lIn1dfX0sImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjUyM2I2NjJmYjA1MDk4ZWM5NDEwY2MwNjY1NTU2NDk1ZjY0MDliNDRiOGM4MDMwYzFjNDU2ZWVlZTg2NGRhNjYiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjUyM2I2NjJmYjA1MDk4ZWM5NDEwY2MwNjY1NTU2NDk1ZjY0MDliNDRiOGM4MDMwYzFjNDU2ZWVlZTg2NGRhNjYiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci01MjNiNjYyZmIwNTA5OGVjOTQxMGNjMDY2NTU1NjQ5NWY2NDA5YjQ0YjhjODAzMGMxYzQ1NmVlZWU4NjRkYTY2LWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjUyM2I2NjJmYjA1MDk4ZWM5NDEwY2MwNjY1NTU2NDk1ZjY0MDliNDRiOGM4MDMwYzFjNDU2ZWVlZTg2NGRhNjYiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS41IiwidmVyc2lvbiI6IjEuMS42In19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:523b662fb05098ec9410cc0665556495f6409b44b8c8030c1c456eeee864da66 + createdAt: "2021-02-16T16:03:12Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.1.6 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [console.redhat.com](https://console.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - costmanagement-metrics-operator + topologyKey: kubernetes.io/hostname + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:020d5d1777d0dec2ae432a1cd93f7a306c7860ad05cabe19c59f9359b5d4e44e name: "" @@ -229,12 +1913,291 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.1.7 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NGM5MTUzYjMzY2M5NDIxMzRlMmJkODU3YThjYWU0N2RlZDM4ZWI3ODk4NzRmZGUwODlkNjdiMDBkMGMyZTZmNiIsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTZUMTY6MDM6MTJaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS43IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuNyBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICBzcGVjOlxuICAgICAgdm9sdW1lczpcbiAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbTpcbiAgICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICAgIGNvbW1hbmQ6IFsnc2xlZXAnLCAnaW5maW5pdHknXVxuICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNvbnNvbGUucmVkaGF0LmNvbSBwbGF0Zm9ybSwgb3BlbiB0aGUgW1NvdXJjZXMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3Mvc291cmNlcy8pIHRvIGJlZ2luIGFkZGluZyBhbiBPcGVuU2hpZnQgc291cmNlIHRvIGNvc3QgbWFuYWdlbWVudDpcblxuUHJlcmVxdWlzaXRlczpcbiogVGhlIGNsdXN0ZXIgaWRlbnRpZmllciB3aGljaCBjYW4gYmUgZm91bmQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiwgdGhlIGNsdXN0ZXIgT3ZlcnZpZXcgcGFnZSwgb3IgdGhlIGNsdXN0ZXIgSGVscCBcdTAwM2UgQWJvdXQuXG5cbkNyZWF0ZSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0IHNvdXJjZXNgIHRhYlxuMy4gQ3JlYXRlIGEgbmV3IGBSZWQgSGF0IE9wZW5zaGlmdCBDb250YWluZXIgUGxhdGZvcm1gIHNvdXJjZTpcbiAgICAqIGdpdmUgdGhlIHNvdXJjZSBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2VzIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIFNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2Nsb3VkLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NGM5MTUzYjMzY2M5NDIxMzRlMmJkODU3YThjYWU0N2RlZDM4ZWI3ODk4NzRmZGUwODlkNjdiMDBkMGMyZTZmNiIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJtYWludGFpbmVycyI6W3siZW1haWwiOiJjb3N0bWFuYWdlbWVudEByZWRoYXQuY29tIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50In1dLCJtYXR1cml0eSI6ImFscGhhIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NGM5MTUzYjMzY2M5NDIxMzRlMmJkODU3YThjYWU0N2RlZDM4ZWI3ODk4NzRmZGUwODlkNjdiMDBkMGMyZTZmNiIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLTRjOTE1M2IzM2NjOTQyMTM0ZTJiZDg1N2E4Y2FlNDdkZWQzOGViNzg5ODc0ZmRlMDg5ZDY3YjAwZDBjMmU2ZjYtYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NGM5MTUzYjMzY2M5NDIxMzRlMmJkODU3YThjYWU0N2RlZDM4ZWI3ODk4NzRmZGUwODlkNjdiMDBkMGMyZTZmNiIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4xLjYiLCJ2ZXJzaW9uIjoiMS4xLjcifX0= + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:4c9153b33cc942134e2bd857a8cae47ded38eb789874fde089d67b00d0c2e6f6 + createdAt: "2021-02-16T16:03:12Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.1.7 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [console.redhat.com](https://console.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:0abc9b30a48080d2a4a413f7818770ea4dd7b78c715a816fe5818ec75326bb69 name: "" @@ -257,12 +2220,301 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.1.8 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZDFhYTMxOGE3MjA0OTVmZGM2YjA1Mjc0NDE2YmU5MTM1YTE2YzI3YTU3YTg5ZTZmNjkyZGU0M2EzYzVjMWQwOSIsImNyZWF0ZWRBdCI6IjIwMjItMTAtMTFUMTk6MTA6MDFaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYwLjE5LjQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS44IiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAxLjEuOCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjYrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIChgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmApIGNvbGxlY3RzIHRoZSBtZXRyaWNzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgYnk6XG4qIFF1ZXJ5aW5nIFByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgbWV0cmljcyBmb3IgY29zdCBtYW5hZ2VtZW50LlxuKiBXcml0aW5nIFByb21ldGhldXMgcXVlcmllcyB0byBDU1YgcmVwb3J0IGZpbGVzLlxuKiBQYWNrYWdpbmcgdGhlIENTViByZXBvcnQgZmlsZXMgaW50byB0YXJiYWxscy5cblxuIyMjIyBBZGRpdGlvbmFsIENhcGFiaWxpdGllczpcbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgbXVzdCBiZSBjcmVhdGVkIHdoaWNoIGhvbGRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjcmVkZW50aWFsczpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgIChhbGwgbG93ZXJjYXNlKS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFscy5cbjMuIFNlbGVjdCBgQ3JlYXRlYC5cbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIEZvciBgYmFzaWNgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2AuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogYmFzaWNcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgc291cmNlLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBzb3VyY2UgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgYElOU0VSVC1TT1VSQ0UtTkFNRWAgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoZSBzb3VyY2UgZXhpc3RzLlxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtLzQuNS9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwLFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICBzcGVjOlxuICAgICBhZmZpbml0eTpcbiAgICAgICBwb2RBZmZpbml0eTpcbiAgICAgICAgIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb246XG4gICAgICAgICAtIGxhYmVsU2VsZWN0b3I6XG4gICAgICAgICAgICAgbWF0Y2hFeHByZXNzaW9uczpcbiAgICAgICAgICAgICAtIGtleTogYXBwXG4gICAgICAgICAgICAgICBvcGVyYXRvcjogSW5cbiAgICAgICAgICAgICAgIHZhbHVlczpcbiAgICAgICAgICAgICAgIC0gY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgICAgICB0b3BvbG9neUtleToga3ViZXJuZXRlcy5pby9ob3N0bmFtZVxuICAgICAgdm9sdW1lczpcbiAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbTpcbiAgICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICAgIGNvbW1hbmQ6IFsnc2xlZXAnLCAnaW5maW5pdHknXVxuICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYSBzb3VyY2VcbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHNvdXJjZS4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNvbnNvbGUucmVkaGF0LmNvbSBwbGF0Zm9ybSwgb3BlbiB0aGUgW1NvdXJjZXMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3Mvc291cmNlcy8pIHRvIGJlZ2luIGFkZGluZyBhbiBPcGVuU2hpZnQgc291cmNlIHRvIGNvc3QgbWFuYWdlbWVudDpcblxuUHJlcmVxdWlzaXRlczpcbiogVGhlIGNsdXN0ZXIgaWRlbnRpZmllciB3aGljaCBjYW4gYmUgZm91bmQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiwgdGhlIGNsdXN0ZXIgT3ZlcnZpZXcgcGFnZSwgb3IgdGhlIGNsdXN0ZXIgSGVscCBcdTAwM2UgQWJvdXQuXG5cbkNyZWF0ZSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0IHNvdXJjZXNgIHRhYlxuMy4gQ3JlYXRlIGEgbmV3IGBSZWQgSGF0IE9wZW5zaGlmdCBDb250YWluZXIgUGxhdGZvcm1gIHNvdXJjZTpcbiAgICAqIGdpdmUgdGhlIHNvdXJjZSBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2VzIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIFNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2Nsb3VkLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiYWZmaW5pdHkiOnsicG9kQWZmaW5pdHkiOnsicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6W3sibGFiZWxTZWxlY3RvciI6eyJtYXRjaEV4cHJlc3Npb25zIjpbeyJrZXkiOiJhcHAiLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiXX1dfSwidG9wb2xvZ3lLZXkiOiJrdWJlcm5ldGVzLmlvL2hvc3RuYW1lIn1dfX0sImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmQxYWEzMThhNzIwNDk1ZmRjNmIwNTI3NDQxNmJlOTEzNWExNmMyN2E1N2E4OWU2ZjY5MmRlNDNhM2M1YzFkMDkiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmQxYWEzMThhNzIwNDk1ZmRjNmIwNTI3NDQxNmJlOTEzNWExNmMyN2E1N2E4OWU2ZjY5MmRlNDNhM2M1YzFkMDkiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci1kMWFhMzE4YTcyMDQ5NWZkYzZiMDUyNzQ0MTZiZTkxMzVhMTZjMjdhNTdhODllNmY2OTJkZTQzYTNjNWMxZDA5LWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmQxYWEzMThhNzIwNDk1ZmRjNmIwNTI3NDQxNmJlOTEzNWExNmMyN2E1N2E4OWU2ZjY5MmRlNDNhM2M1YzFkMDkiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjEuMS43IiwidmVyc2lvbiI6IjEuMS44In19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:d1aa318a720495fdc6b05274416be9135a16c27a57a89e6f692de43a3c5c1d09 + createdAt: "2022-10-11T19:10:01Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.1.8 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [console.redhat.com](https://console.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - costmanagement-metrics-operator + topologyKey: kubernetes.io/hostname + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:2c326d847a0d15677171c69c451a8fd34da9e652169a8c9da7a20d0b7defda28 name: "" @@ -285,12 +2537,303 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.1.9 -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NmJjMjJiNjYyN2IwNjdjOTFmNTVhMjM0YTVjZDAyMzNhYjRkN2FkZmM0ZjAyM2IyOWFkNjVjZTZkZGI0ZmJhMiIsImNyZWF0ZWRBdCI6IjIwMjItMTItMDFUMTg6MTI6NDhaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdmFsaWQtc3Vic2NyaXB0aW9uIjoiW1wiT3BlblNoaWZ0IEt1YmVybmV0ZXMgRW5naW5lXCIsIFwiT3BlblNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybVwiLCBcIk9wZW5TaGlmdCBQbGF0Zm9ybSBQbHVzXCJdIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL2J1aWxkZXIiOiJvcGVyYXRvci1zZGstdjAuMTkuNCIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9wcm9qZWN0X2xheW91dCI6ImdvLmt1YmVidWlsZGVyLmlvL3YyIiwicmVwb3NpdG9yeSI6Imh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZWN0LWtva3Uva29rdS1tZXRyaWNzLW9wZXJhdG9yIiwic3VwcG9ydCI6IlJlZCBIYXQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4xLjkiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWJldGExIn1dfSwiZGVzY3JpcHRpb24iOiIjIDEuMS45IENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yXG4jIyBJbnRyb2R1Y3Rpb25cblRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgYSBjb21wb25lbnQgb2YgdGhlIFtjb3N0IG1hbmFnbWVudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9kb2N1bWVudGF0aW9uL2VuLXVzL2Nvc3RfbWFuYWdlbWVudF9zZXJ2aWNlKSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQsIHVzZWQgdG8gZ2F0aGVyIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjbHVzdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBiZSBpbnN0YWxsZWQgaW4gT3BlblNoaWZ0IDQuNisuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGFuZCB1cGxvYWRzIGl0IHRvIGNvc3QgbWFuYWdlbWVudCB0byBiZSBwcm9jZXNzZWQuIFRoZSBPcGVyYXRvciBxdWVyaWVzIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMsIHdoaWNoIGFyZSB0aGVuIHBhY2thZ2VkIGFuZCB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG5cblRoaXMgb3BlcmF0b3IgaXMgY2FwYWJsZSBvZiBmdW5jdGlvbmluZyB3aXRoaW4gYSBkaXNjb25uZWN0ZWQvcmVzdHJpY3RlZCBuZXR3b3JrIChha2EgYWlyLWdhcHBlZCBtb2RlKS4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igd2lsbCBzdG9yZSB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbCBpbnN0ZWFkIG9mIGJlaW5nIHVwbG9hZGVkIHRvIGNvc3QgbWFuYWdlbWVudC4gRG9jdW1lbnRhdGlvbiBmb3IgaW5zdGFsbGluZyBhbiBvcGVyYXRvciB3aXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmsgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS5cblxuIyMgRmVhdHVyZXMgYW5kIENhcGFiaWxpdGllc1xuIyMjIyBNZXRyaWNzIGNvbGxlY3Rpb246XG5UaGUgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBjb3N0IG1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gY29zdCBtYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGEgc291cmNlIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQSBzb3VyY2UgaXMgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEEgc291cmNlICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgY29zdCBtYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBjb3N0IG1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIHRoZSBwYXlsb2FkIGlzIHJlbW92ZWQgZnJvbSB0aGUgb3BlcmF0b3IgYW5kIGlzIGdvbmUgZm9yZXZlci4gSWYgdGhlIGRhdGEgd2l0aGluIHRoZSBwYXlsb2FkIGlzIG5vdCBwcm9jZXNzZWQsIGEgZ2FwIHdpbGwgYmUgaW50cm9kdWNlZCBpbiB0aGUgdXNhZ2UgbWV0cmljcy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZpbGxlZC4gSWYgdGhpcyBvY2N1cnMsIHRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZGVsZXRlZCBmcm9tIHRoZSBQVkMgc28gdGhhdCB0aGUgb3BlcmF0b3IgY2FuIGZ1bmN0aW9uIGFzIG5vcm1hbC5cbiogVGhlIGRlZmF1bHQgcmVwb3J0IHJldGVudGlvbiBpcyAzMCByZXBvcnRzIChhYm91dCBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEpLiBUaGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgYW5kIHVwbG9hZGVkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBldmVyeSB3ZWVrLCBvciB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgdGhlIGRhdGEgd2lsbCBiZSBsb3N0LlxuXG4jIyMjIFN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcblRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGFuZCB1c2UgdGhlIGZvbGxvd2luZyBQVkMgd2hlbiBpbnN0YWxsZWQ6XG5cbiAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcblxuSWYgYSBkaWZmZXJlbnQgUFZDIHNob3VsZCBiZSB1dGlsaXplZCwgYSB2YWxpZCBQVkMgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGFzIGRlc2NyaWJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBiZWxvdy4gVGhlIFBWQyB0byBiZSB1c2VkIG1heSBleGlzdCBhbHJlYWR5LCBvciB0aGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBpdC5cblxuVG8gdXNlIHRoZSBkZWZhdWx0IHNwZWNpZmljYXRpb24sIHRoZSBmb2xsb3cgYXNzdW1wdGlvbnMgbXVzdCBiZSBtZXQ6XG4xLiBBIGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGRlZmluZWQuXG4yLiBEeW5hbWljIHByb3Zpc2lvbmluZyBmb3IgdGhhdCBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBlbmFibGVkLlxuXG5JZiB0aGVzZSBhc3N1bXB0aW9ucyBhcmUgbm90IG1ldCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IGRlcGxveSBjb3JyZWN0bHkuIEluIHRoZXNlIGNhc2VzLCBzdG9yYWdlIG11c3QgYmUgbWFudWFsbHkgY29uZmlndXJlZC4gQWZ0ZXIgY29uZmlndXJpbmcgc3RvcmFnZSwgYSB2YWxpZCBQVkMgdGVtcGxhdGUgc2hvdWxkIGJlIHN1cHBsaWVkIGluIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBzcGVjIG9mIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vNC41L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjAsXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgIGFmZmluaXR5OlxuICAgICAgIHBvZEFmZmluaXR5OlxuICAgICAgICAgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbjpcbiAgICAgICAgIC0gbGFiZWxTZWxlY3RvcjpcbiAgICAgICAgICAgICBtYXRjaEV4cHJlc3Npb25zOlxuICAgICAgICAgICAgIC0ga2V5OiBhcHBcbiAgICAgICAgICAgICAgIG9wZXJhdG9yOiBJblxuICAgICAgICAgICAgICAgdmFsdWVzOlxuICAgICAgICAgICAgICAgLSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICAgICAgIHRvcG9sb2d5S2V5OiBrdWJlcm5ldGVzLmlvL2hvc3RuYW1lXG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJhZmZpbml0eSI6eyJwb2RBZmZpbml0eSI6eyJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjpbeyJsYWJlbFNlbGVjdG9yIjp7Im1hdGNoRXhwcmVzc2lvbnMiOlt7ImtleSI6ImFwcCIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdfV19LCJ0b3BvbG9neUtleSI6Imt1YmVybmV0ZXMuaW8vaG9zdG5hbWUifV19fSwiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NmJjMjJiNjYyN2IwNjdjOTFmNTVhMjM0YTVjZDAyMzNhYjRkN2FkZmM0ZjAyM2IyOWFkNjVjZTZkZGI0ZmJhMiIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJtYWludGFpbmVycyI6W3siZW1haWwiOiJjb3N0bWFuYWdlbWVudEByZWRoYXQuY29tIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50In1dLCJtYXR1cml0eSI6ImFscGhhIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NmJjMjJiNjYyN2IwNjdjOTFmNTVhMjM0YTVjZDAyMzNhYjRkN2FkZmM0ZjAyM2IyOWFkNjVjZTZkZGI0ZmJhMiIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLTZiYzIyYjY2MjdiMDY3YzkxZjU1YTIzNGE1Y2QwMjMzYWI0ZDdhZGZjNGYwMjNiMjlhZDY1Y2U2ZGRiNGZiYTItYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6NmJjMjJiNjYyN2IwNjdjOTFmNTVhMjM0YTVjZDAyMzNhYjRkN2FkZmM0ZjAyM2IyOWFkNjVjZTZkZGI0ZmJhMiIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4xLjgiLCJ2ZXJzaW9uIjoiMS4xLjkifX0= + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:6bc22b6627b067c91f55a234a5cd0233ab4d7adfc4f023b29ad65ce6ddb4fba2 + createdAt: "2022-12-01T18:12:48Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.1.9 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [console.redhat.com](https://console.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - costmanagement-metrics-operator + topologyKey: kubernetes.io/hostname + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:e2a0375e814938a2e2e4bdf5d7ffa767d19bb80c7bb491c79c4d80254c5fb65e name: "" @@ -313,12 +2856,293 @@ properties: value: packageName: costmanagement-metrics-operator version: 1.2.0 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBkZXNpcmVkIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZSBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTb3VyY2VzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIFNvdXJjZXMgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6IkFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgKiBBbiBleGlzdGluZyBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbXBsZW1lbnRzIGRhdGEgcG9wdWxhdGlvbiAoQWxwaGEpIEluIG9yZGVyIHRvIHVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZXMgdGhhdCBpbXBsZW1lbnQgZGF0YSBwb3B1bGF0aW9uLCB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgbXVzdCBiZSBlbmFibGVkLiBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLWNvbXB1dGUtcmVzb3VyY2VzLWNvbnRhaW5lci8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtY29tcHV0ZS1yZXNvdXJjZXMtY29udGFpbmVyLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXMiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBwcmVtZXRoZXVzIHF1ZXJpZXMuIiwicHJvcGVydGllcyI6eyJjb25maWd1cmF0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0ZSB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJDaGVja0N5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBjaGVjayBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJDcmVhdGVTb3VyY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBzb3VyY2Ugc2hvdWxkIGJlIGNyZWF0ZWQgaWYgbm90IGZvdW5kLiBBIHNvdXJjZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIHVwbG9hZF90b2dnbGUgaXMgYGZhbHNlYC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZUVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTb3VyY2VDaGVja1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbmFtZSBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlX2RlZmluZWQiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VEZWZpbmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIGV4aXN0cyBhcyBkZWZpbmVkIG9uIGNsb3VkLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjbG91ZC5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7fSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJjaGVja19jeWNsZVwiOiAxNDQwLFxuICAgICAgICBcImNyZWF0ZV9zb3VyY2VcIjogZmFsc2UsXG4gICAgICAgIFwibmFtZVwiOiBcIklOU0VSVC1TT1VSQ0UtTkFNRVwiXG4gICAgICB9LFxuICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICBcInVwbG9hZF9jeWNsZVwiOiAzNjAsXG4gICAgICAgIFwidXBsb2FkX3RvZ2dsZVwiOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiTW9uaXRvcmluZyIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmJhOGNiYWE4MjMyYTM1MDZjNmY3ZDc5MzYwMTAyYTY3ODA5MTI3NWEwMTM4ODgyZGYxNGM3ZGE4MjBlYmIxYiIsImNyZWF0ZWRBdCI6IjIwMjMtMDEtMThUMTc6MDE6MTNaIiwiZGVzY3JpcHRpb24iOiJBIEdvbGFuZy1iYXNlZCBPcGVuU2hpZnQgT3BlcmF0b3IgdGhhdCBnZW5lcmF0ZXMgYW5kIHVwbG9hZHMgT3BlblNoaWZ0IHVzYWdlIG1ldHJpY3MgdG8gY29zdCBtYW5hZ2VtZW50LiIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcIkRpc2Nvbm5lY3RlZFwiXSIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdmFsaWQtc3Vic2NyaXB0aW9uIjoiW1wiT3BlblNoaWZ0IEt1YmVybmV0ZXMgRW5naW5lXCIsIFwiT3BlblNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybVwiLCBcIk9wZW5TaGlmdCBQbGF0Zm9ybSBQbHVzXCJdIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL2J1aWxkZXIiOiJvcGVyYXRvci1zZGstdjAuMTkuNCIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9wcm9qZWN0X2xheW91dCI6ImdvLmt1YmVidWlsZGVyLmlvL3YyIiwicmVwb3NpdG9yeSI6Imh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZWN0LWtva3Uva29rdS1tZXRyaWNzLW9wZXJhdG9yIiwic3VwcG9ydCI6IlJlZCBIYXQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4yLjAiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWJldGExIn1dfSwiZGVzY3JpcHRpb24iOiIjIDEuMi4wIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yXG4jIyBJbnRyb2R1Y3Rpb25cblRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgYSBjb21wb25lbnQgb2YgdGhlIFtjb3N0IG1hbmFnbWVudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9kb2N1bWVudGF0aW9uL2VuLXVzL2Nvc3RfbWFuYWdlbWVudF9zZXJ2aWNlKSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQsIHVzZWQgdG8gZ2F0aGVyIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjbHVzdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBiZSBpbnN0YWxsZWQgaW4gT3BlblNoaWZ0IDQuNisuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGFuZCB1cGxvYWRzIGl0IHRvIGNvc3QgbWFuYWdlbWVudCB0byBiZSBwcm9jZXNzZWQuIFRoZSBPcGVyYXRvciBxdWVyaWVzIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMsIHdoaWNoIGFyZSB0aGVuIHBhY2thZ2VkIGFuZCB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG5cblRoaXMgb3BlcmF0b3IgaXMgY2FwYWJsZSBvZiBmdW5jdGlvbmluZyB3aXRoaW4gYSBkaXNjb25uZWN0ZWQvcmVzdHJpY3RlZCBuZXR3b3JrIChha2EgYWlyLWdhcHBlZCBtb2RlKS4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igd2lsbCBzdG9yZSB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbCBpbnN0ZWFkIG9mIGJlaW5nIHVwbG9hZGVkIHRvIGNvc3QgbWFuYWdlbWVudC4gRG9jdW1lbnRhdGlvbiBmb3IgaW5zdGFsbGluZyBhbiBvcGVyYXRvciB3aXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmsgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS5cblxuIyMgRmVhdHVyZXMgYW5kIENhcGFiaWxpdGllc1xuIyMjIyBNZXRyaWNzIGNvbGxlY3Rpb246XG5UaGUgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBjb3N0IG1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gY29zdCBtYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGEgc291cmNlIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQSBzb3VyY2UgaXMgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEEgc291cmNlICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgY29zdCBtYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBjb3N0IG1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIHRoZSBwYXlsb2FkIGlzIHJlbW92ZWQgZnJvbSB0aGUgb3BlcmF0b3IgYW5kIGlzIGdvbmUgZm9yZXZlci4gSWYgdGhlIGRhdGEgd2l0aGluIHRoZSBwYXlsb2FkIGlzIG5vdCBwcm9jZXNzZWQsIGEgZ2FwIHdpbGwgYmUgaW50cm9kdWNlZCBpbiB0aGUgdXNhZ2UgbWV0cmljcy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZpbGxlZC4gSWYgdGhpcyBvY2N1cnMsIHRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZGVsZXRlZCBmcm9tIHRoZSBQVkMgc28gdGhhdCB0aGUgb3BlcmF0b3IgY2FuIGZ1bmN0aW9uIGFzIG5vcm1hbC5cbiogVGhlIGRlZmF1bHQgcmVwb3J0IHJldGVudGlvbiBpcyAzMCByZXBvcnRzIChhYm91dCBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEpLiBUaGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgYW5kIHVwbG9hZGVkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBldmVyeSB3ZWVrLCBvciB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgdGhlIGRhdGEgd2lsbCBiZSBsb3N0LlxuXG4jIyMjIFN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcblRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGFuZCB1c2UgdGhlIGZvbGxvd2luZyBQVkMgd2hlbiBpbnN0YWxsZWQ6XG5cbiAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcblxuSWYgYSBkaWZmZXJlbnQgUFZDIHNob3VsZCBiZSB1dGlsaXplZCwgYSB2YWxpZCBQVkMgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGFzIGRlc2NyaWJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBiZWxvdy4gVGhlIFBWQyB0byBiZSB1c2VkIG1heSBleGlzdCBhbHJlYWR5LCBvciB0aGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBpdC5cblxuVG8gdXNlIHRoZSBkZWZhdWx0IHNwZWNpZmljYXRpb24sIHRoZSBmb2xsb3cgYXNzdW1wdGlvbnMgbXVzdCBiZSBtZXQ6XG4xLiBBIGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGRlZmluZWQuXG4yLiBEeW5hbWljIHByb3Zpc2lvbmluZyBmb3IgdGhhdCBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBlbmFibGVkLlxuXG5JZiB0aGVzZSBhc3N1bXB0aW9ucyBhcmUgbm90IG1ldCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IGRlcGxveSBjb3JyZWN0bHkuIEluIHRoZXNlIGNhc2VzLCBzdG9yYWdlIG11c3QgYmUgbWFudWFsbHkgY29uZmlndXJlZC4gQWZ0ZXIgY29uZmlndXJpbmcgc3RvcmFnZSwgYSB2YWxpZCBQVkMgdGVtcGxhdGUgc2hvdWxkIGJlIHN1cHBsaWVkIGluIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBzcGVjIG9mIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vNC41L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjAsXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIHNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gY29zdCBtYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRlIHNvdXJjZTpcbjEuIE5hdmlnYXRlIHRvIHRoZSBTb3VyY2VzIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXQgc291cmNlc2AgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgc291cmNlOlxuICAgICogZ2l2ZSB0aGUgc291cmNlIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZXMgd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgU291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJhZmZpbml0eSI6eyJwb2RBZmZpbml0eSI6eyJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjpbeyJsYWJlbFNlbGVjdG9yIjp7Im1hdGNoRXhwcmVzc2lvbnMiOlt7ImtleSI6ImFwcCIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdfV19LCJ0b3BvbG9neUtleSI6Imt1YmVybmV0ZXMuaW8vaG9zdG5hbWUifV19fSwiY29udGFpbmVycyI6W3siYXJncyI6WyItLWVuYWJsZS1sZWFkZXItZWxlY3Rpb24iXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmJhOGNiYWE4MjMyYTM1MDZjNmY3ZDc5MzYwMTAyYTY3ODA5MTI3NWEwMTM4ODgyZGYxNGM3ZGE4MjBlYmIxYiIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJtYWludGFpbmVycyI6W3siZW1haWwiOiJjb3N0bWFuYWdlbWVudEByZWRoYXQuY29tIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50In1dLCJtYXR1cml0eSI6ImFscGhhIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmJhOGNiYWE4MjMyYTM1MDZjNmY3ZDc5MzYwMTAyYTY3ODA5MTI3NWEwMTM4ODgyZGYxNGM3ZGE4MjBlYmIxYiIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLTJiYThjYmFhODIzMmEzNTA2YzZmN2Q3OTM2MDEwMmE2NzgwOTEyNzVhMDEzODg4MmRmMTRjN2RhODIwZWJiMWItYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6MmJhOGNiYWE4MjMyYTM1MDZjNmY3ZDc5MzYwMTAyYTY3ODA5MTI3NWEwMTM4ODgyZGYxNGM3ZGE4MjBlYmIxYiIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMS4xLjkiLCJ2ZXJzaW9uIjoiMS4yLjAifX0= + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": {}, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "false" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:2ba8cbaa8232a3506c6f7d79360102a678091275a0138882df14c7da820ebb1b + createdAt: "2023-01-18T17:01:13Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 1.2.0 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.6+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [console.redhat.com](https://console.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/4.5/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360, + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:1fc8b1b5496df4a2f9ef9d9307b85ad14a89a4e567933d67fea50cddf662cd1c name: "" @@ -341,12 +3165,326 @@ properties: value: packageName: costmanagement-metrics-operator version: 2.0.0 -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjMuMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibGlzdEtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdMaXN0IiwicGx1cmFsIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyIsInNpbmd1bGFyIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL2Nsb3VkLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY2xvdWQucmVkaGF0LmNvbWAuIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gb2JqZWN0LiIsInByb3BlcnRpZXMiOnsic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4gVmFsaWQgdmFsdWVzIGFyZTogLSBcImJhc2ljXCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwidG9rZW5cIiAoZGVmYXVsdCk6IFVzZXMgY2x1c3RlciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkLiBPbmx5IHNldCB0aGlzIHZhbHVlIGlmIHRoZSBjbHVzdGVyVmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVmYXVsdCI6MzAsImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIFRoZSBkZWZhdWx0IGlzIDMwIHJlcG9ydHMgd2hpY2ggY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSA3IGRheXMgd29ydGggb2YgZGF0YSBnaXZlbiB0aGUgb3RoZXIgZGVmYXVsdCB2YWx1ZXMuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZWZhdWx0IjoxMDAsImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4gVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdF9wcmV2aW91c19kYXRhIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiQ29sbGVjdFByZXZpb3VzRGF0YSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIHByZXZpb3VzIGRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgY3JlYXRpb24uIFRoaXMgdG9nZ2xlIG9ubHkgY2hhbmdlcyBvcGVyYXRvciBiZWhhdmlvciB3aGVuIGEgbmV3IENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLiBXaGVuIGB0cnVlYCwgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIGFsbCBleGlzdGluZyBQcm9tZXRoZXVzIGRhdGEgZm9yIHRoZSBjdXJyZW50IG1vbnRoLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImNvbnRleHRfdGltZW91dCI6eyJkZWZhdWx0IjoxMjAsImRlc2NyaXB0aW9uIjoiQ29udGV4dFRpbWVvdXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIFRoZSBkZWZhdWx0IGlzIDEyMCBzZWNvbmRzLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTgwLCJtaW5pbXVtIjoxMCwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvbkNvc3RNYW5hZ2VtZW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZSByZXBvcnRzIGZvciBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcy4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvblJlc291cmNlT3B0aW1pemF0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZSByZXBvcnRzIGZvciByZXNvdXJjZS1vcHRpbWl6YXRpb24gbWV0cmljcy4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwic2VydmljZV9hZGRyZXNzIjp7ImRlZmF1bHQiOiJodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGlzIGBodHRwczovL3RoYW5vcy1xdWVyaWVyLm9wZW5zaGlmdC1tb25pdG9yaW5nLnN2Yzo5MDkxYC4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlZmF1bHQiOjE0NDAsImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUgVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBzaG91bGQgYmUgY3JlYXRlZCBpZiBub3QgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZU5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gU291cmNlc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBTb3VyY2VzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNsb3VkLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJpbmdyZXNzX3BhdGgiLCJ1cGxvYWRfY3ljbGUiLCJ1cGxvYWRfdG9nZ2xlIiwidmFsaWRhdGVfY2VydCJdLCJ0eXBlIjoib2JqZWN0In0sInZvbHVtZV9jbGFpbV90ZW1wbGF0ZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZUNsYWltVGVtcGxhdGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDIHRlbXBsYXRlLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJhY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QpICogQW4gZXhpc3RpbmcgUFZDIChQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0pIElmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsIGl0IHdpbGwgY3JlYXRlIGEgbmV3IHZvbHVtZSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZS4gSWYgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIGlzIGVuYWJsZWQsIHRoaXMgZmllbGQgd2lsbCBhbHdheXMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cyBhcyB0aGUgRGF0YVNvdXJjZVJlZiBmaWVsZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5IHZvbHVtZSBpcyBkZXNpcmVkLiBUaGlzIG1heSBiZSBhbnkgbG9jYWwgb2JqZWN0IGZyb20gYSBub24tZW1wdHkgQVBJIGdyb3VwIChub24gY29yZSBvYmplY3QpIG9yIGEgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdC4gV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QgbWF0Y2hlcyBzb21lIGluc3RhbGxlZCB2b2x1bWUgcG9wdWxhdG9yIG9yIGR5bmFtaWMgcHJvdmlzaW9uZXIuIFRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBEYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoIGlmIGJvdGggZmllbGRzIGFyZSBub24tZW1wdHksIHRoZXkgbXVzdCBoYXZlIHRoZSBzYW1lIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGJvdGggZmllbGRzIChEYXRhU291cmNlIGFuZCBEYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBUaGVyZSBhcmUgdHdvIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIERhdGFTb3VyY2UgYW5kIERhdGFTb3VyY2VSZWY6ICogV2hpbGUgRGF0YVNvdXJjZSBvbmx5IGFsbG93cyB0d28gc3BlY2lmaWMgdHlwZXMgb2Ygb2JqZWN0cywgRGF0YVNvdXJjZVJlZiAgIGFsbG93cyBhbnkgbm9uLWNvcmUgb2JqZWN0LCBhcyB3ZWxsIGFzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3RzLiAqIFdoaWxlIERhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIERhdGFTb3VyY2VSZWYgICBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgICBzcGVjaWZpZWQuIChCZXRhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoicmVzb3VyY2VzIHJlcHJlc2VudHMgdGhlIG1pbmltdW0gcmVzb3VyY2VzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIElmIFJlY292ZXJWb2x1bWVFeHBhbnNpb25GYWlsdXJlIGZlYXR1cmUgaXMgZW5hYmxlZCB1c2VycyBhcmUgYWxsb3dlZCB0byBzcGVjaWZ5IHJlc291cmNlIHJlcXVpcmVtZW50cyB0aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZSBzdGF0dXMgZmllbGQgb2YgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyBhIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJzdG9yYWdlQ2xhc3NOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIl0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgaXMgZW5hYmxlZCwgdGhpcyBmaWVsZCB3aWxsIGFsd2F5cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzIGFzIHRoZSBEYXRhU291cmNlUmVmIGZpZWxkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBsb2NhbCBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIERhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYm90aCBmaWVsZHMgKERhdGFTb3VyY2UgYW5kIERhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFRoZXJlIGFyZSB0d28gaW1wb3J0YW50IGRpZmZlcmVuY2VzIGJldHdlZW4gRGF0YVNvdXJjZSBhbmQgRGF0YVNvdXJjZVJlZjogKiBXaGlsZSBEYXRhU291cmNlIG9ubHkgYWxsb3dzIHR3byBzcGVjaWZpYyB0eXBlcyBvZiBvYmplY3RzLCBEYXRhU291cmNlUmVmICAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgRGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgRGF0YVNvdXJjZVJlZiAgIHByZXNlcnZlcyBhbGwgdmFsdWVzLCBhbmQgZ2VuZXJhdGVzIGFuIGVycm9yIGlmIGEgZGlzYWxsb3dlZCB2YWx1ZSBpcyAgIHNwZWNpZmllZC4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6InNlbGVjdG9yIGlzIGEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmcgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MgaXMgZGlzYWJsZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVkX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmcgcmVzb3VyY2Utb3B0aW16YXRpb24gbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcmV2aW91c19kYXRhX2NvbGxlY3RlZCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJQcmV2aW91c0RhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciBnYXRoZXJlZCB0aGUgYXZhaWxhYmxlIFByb21ldGhldXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlndXJlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIGlzIGNvbmZpZ3VyZWQgdG8gY29ubmVjdCB0byBwcm9tZXRoZXVzLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0Nvbm5lY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgcHJvbWV0aGV1cyBjYW4gYmUgcXVlcmllZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3Rpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25uZWN0aW9uRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyB0ZXN0IHF1ZXJ5LiIsInR5cGUiOiJzdHJpbmcifSwic2VydmljZV9hZGRyZXNzIjp7ImRlc2NyaXB0aW9uIjoiU3ZjQWRkcmVzcyBpcyB0aGUgaW50ZXJuYWwgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlNraXBUTFNWZXJpZmljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSB0aGFub3MtcXVlcmllciBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsicHJvbWV0aGV1c19jb25maWd1cmVkIiwicHJvbWV0aGV1c19jb25uZWN0ZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXBvcnRzIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcmVwb3J0IGdlbmVyYXRpb24uIiwicHJvcGVydGllcyI6eyJkYXRhX2NvbGxlY3RlZCI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGRhdGEgd2FzIGNvbGxlY3RlZCBmb3IgdGhlIGxhc3QgcXVlcnkuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGF0YV9jb2xsZWN0aW9uX21lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGlvbk1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGEgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFfY29sbGVjdGVkIHN0YXR1cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfaG91cl9xdWVyaWVkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdEhvdXJRdWVyaWVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgdGltZSByYW5nZSBmb3Igd2hpY2ggbWV0cmljcyB3ZXJlIGxhc3QgcXVlcmllZC4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcG9ydF9tb250aCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydE1vbnRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbW9udGggZm9yIHdoaWNoIHJlcG9ydHMgYXJlIGJlaW5nIGdlbmVyYXRlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBzb3VyY2Ugb24gY2xvdWQucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiQ2hlY2tDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2UgY2hlY2sgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDE0NDAgbWluICgyNCBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJjcmVhdGVfc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiQ3JlYXRlU291cmNlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgc291cmNlIHNob3VsZCBiZSBjcmVhdGVkIGlmIG5vdCBmb3VuZC4gQSBzb3VyY2Ugd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIGNyZWF0aW5nIHRoZSBzb3VyY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U291cmNlQ2hlY2tUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBjaGVjayB3YXMgYXR0ZW1wdGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJTb3VyY2VOYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG5hbWUgb24gY2xvdWQucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlRGVmaW5lZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHNvdXJjZSBleGlzdHMgYXMgZGVmaW5lZCBvbiBjbG91ZC5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sInNvdXJjZXNfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZXNBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgU291cmNlcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGVzIGluIHRoZSBsYXN0IHBheWxvYWQgdGhhdCB3YXMgc2VudC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJsYXN0X3BheWxvYWRfbWFuaWZlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE1hbmlmZXN0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG1hbmlmZXN0SUQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGxhc3QgcGF5bG9hZCBmaWxlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX3JlcXVlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZFJlcXVlc3RJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBpbnNpZ2h0cyByZXF1ZXN0IGlkIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfdXBsb2FkX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFVwbG9hZFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIHVwbG9hZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3VwbG9hZF9zdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0VXBsb2FkU3RhdHVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGh0dHAgc3RhdHVzIG9mIHRoZSBsYXN0IHVwbG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFRvZ2dsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIHNob3VsZCB1cGxvYWQgdG8gY2xvdWQucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgdHJ1ZSIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF9jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInNwZWMiXSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6W10sInN0b3JlZFZlcnNpb25zIjpbXX19 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiSU5TRVJULVNPVVJDRS1OQU1FXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjZmMzIwYTY0YWIxMjEyNTA5NjQ3YjhiMjU5NDQ1MzQ5YjMxOTM1ZjM5Njg3NDhiYTUzODg2MDc2ZmM0Yzg2MDYiLCJjcmVhdGVkQXQiOiIyMDIzLTA0LTIwVDE2OjA0OjM3WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjI1LjMiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjIuMC4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAyLjAuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LCB1c2VkIHRvIGdhdGhlciB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2x1c3Rlci4gSXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgaW5zdGFsbGVkIGluIE9wZW5TaGlmdCA0LjgrLiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBhbmQgdXBsb2FkcyBpdCB0byBjb3N0IG1hbmFnZW1lbnQgdG8gYmUgcHJvY2Vzc2VkLiBUaGUgT3BlcmF0b3IgcXVlcmllcyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzLCB3aGljaCBhcmUgdGhlbiBwYWNrYWdlZCBhbmQgdXBsb2FkZWQgdG8gY29zdCBtYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBjb3N0IG1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIGNvc3QgbWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBjb3N0IG1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIGNvc3QgbWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBjb3N0IG1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYyLjAuMDpcbiogQWRkcyBtZXRyaWNzIGFuZCByZXBvcnQgZ2VuZXJhdGlvbiBmb3IgcmVzb3VyY2Ugb3B0aW1pemF0aW9uLiBUaGlzIGZlYXR1cmUgd2lsbCBjb2xsZWN0IGFkZGl0aW9uYWwgdXNhZ2UgbWV0cmljcyBhbmQgY3JlYXRlIGEgbmV3IHJlcG9ydCBpbiB0aGUgcGF5bG9hZC4gVGhlc2UgbWV0cmljcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgY2FuIGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbmAgdG8gYHRydWVgLlxuKiBDb2xsZWN0IGFsbCBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ1IgY3JlYXRpb24uIFRoaXMgZmVhdHVyZSBvbmx5IGFwcGxpZXMgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLiBUaGUgb3BlcmF0b3Igd2lsbCBjaGVjayB0aGUgbW9uaXRvcmluZyBzdGFjayBjb25maWd1cmF0aW9uIGluIHRoZSBgb3BlbnNoaWZ0LW1vbml0b3JpbmdgIG5hbWVzcGFjZS4gVGhlIG9wZXJhdG9yIHdpbGwgdXNlIHRoZSBgcmV0ZW50aW9uYCBwZXJpb2Qgc2V0IGluIHRoZSBgY2x1c3Rlci1tb25pdG9yaW5nLWNvbmZpZ2AgQ29uZmlnTWFwIGlmIGRlZmluZWQsIHVwIHRvIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBPdGhlcndpc2UgaXQgd2lsbCBmYWxsIGJhY2sgdG8gY29sbGVjdGluZyAxNCBkYXlzIG9mIGRhdGEsIGlmIGF2YWlsYWJsZS4gVGhpcyBkYXRhIGNvbGxlY3Rpb24gbWF5IGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgYGNvbGxlY3RfcHJldmlvdXNfZGF0YWAgdG8gYGZhbHNlYC4gVHVybmluZyB0aGlzIGZlYXR1cmUgb2ZmIHJlc3VsdHMgaW4gdGhlIG9wZXJhdG9yIGNvbGxlY3RpbmcgbWV0cmljcyBmcm9tIHRoZSB0aW1lIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZCwgZm9yd2FyZC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBIHNvdXJjZSAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGNvc3QgbWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggY29zdCBtYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCB0aGUgcGF5bG9hZCBpcyByZW1vdmVkIGZyb20gdGhlIG9wZXJhdG9yIGFuZCBpcyBnb25lIGZvcmV2ZXIuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmaWxsZWQuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgaXMgdXNlZCB3aGVuIHRoZSBvcGVuc2hpZnQtY29uZmlnIHB1bGwtc2VjcmV0IGRvZXMgbm90IGNvbnRhaW4gYSB0b2tlbiBmb3IgYGNsb3VkLnJlZGhhdC5jb21gLlxuICAgICogYHNlY3JldF9uYW1lYCAtXHUwMDNlIFRoZSBTZWNyZXQgdXNlZCBieSB0aGUgb3BlcmF0b3Igd2hlbiB0aGUgYXV0aGVudGljYXRpb24gdHlwZSBpcyBgYmFzaWNgLiBUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCAqKm9ubHkgaWYqKiB0aGUgYXV0aGVudGljYXRpb24gdHlwZSBpcyBgYmFzaWNgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogSU5TRVJUX1NPVVJDRV9OQU1FYCAtXHUwMDNlIFRoZSBuYW1lIG9mIHRoZSBTb3VyY2UgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGluIGBjb25zb2xlLnJlZGhhdC5jb21gLiBUaGUgZGVmYXVsdCBpcyBgSU5TRVJUX1NPVVJDRV9OQU1FYCB3aGljaCBpcyBhIHBsYWNlaG9sZGVyLlxuICAgICogYGNyZWF0ZV9zb3VyY2U6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3Igd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIHRoZSBTb3VyY2UgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGEgU291cmNlIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhIFNvdXJjZSBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIHNvdXJjZSBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBgSU5TRVJULVNPVVJDRS1OQU1FYCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhlIHNvdXJjZSBleGlzdHMuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGEgc291cmNlXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYSBzb3VyY2UuIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtTb3VyY2VzIG1lbnVdKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL3NldHRpbmdzL3NvdXJjZXMvKSB0byBiZWdpbiBhZGRpbmcgYW4gT3BlblNoaWZ0IHNvdXJjZSB0byBjb3N0IG1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGUgc291cmNlOlxuMS4gTmF2aWdhdGUgdG8gdGhlIFNvdXJjZXMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdCBzb3VyY2VzYCB0YWJcbjMuIENyZWF0ZSBhIG5ldyBgUmVkIEhhdCBPcGVuc2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtYCBzb3VyY2U6XG4gICAgKiBnaXZlIHRoZSBzb3VyY2UgYSB1bmlxdWUgbmFtZVxuICAgICogYWRkIHRoZSBDb3N0IE1hbmFnZW1lbnQgYXBwbGljYXRpb25cbiAgICAqIGFkZCB0aGUgY2x1c3RlciBpZGVudGlmaWVyXG40LiBJbiB0aGUgU291cmNlcyB3aXphcmQsIHJldmlldyB0aGUgZGV0YWlscyBhbmQgY2xpY2sgYEZpbmlzaGAgdG8gY3JlYXRlIHRoZSBTb3VyY2UuXG5cbiMjIFVwbG9hZCB0aGUgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudFxuVXBsb2FkaW5nIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnQgaXMgZG9uZSB0aHJvdWdoIGN1cmw6XG5cbiAgICAkIGN1cmwgLXZ2dnYgLUYgXCJmaWxlPUBGSUxFX05BTUUudGFyLmd6O3R5cGU9YXBwbGljYXRpb24vdm5kLnJlZGhhdC5oY2NtLnRhcit0Z3pcIiAgaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJsYWJlbCI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tZW5hYmxlLWxlYWRlci1lbGVjdGlvbiJdLCJjb21tYW5kIjpbIi91c3IvYmluL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiXSwiZW52IjpbeyJuYW1lIjoiSU5fQ0xVU1RFUiIsInZhbHVlIjoidHJ1ZSJ9LHsibmFtZSI6IldBVENIX05BTUVTUEFDRSIsInZhbHVlRnJvbSI6eyJmaWVsZFJlZiI6eyJmaWVsZFBhdGgiOiJtZXRhZGF0YS5hbm5vdGF0aW9uc1snb2xtLnRhcmdldE5hbWVzcGFjZXMnXSJ9fX1dLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo2ZjMyMGE2NGFiMTIxMjUwOTY0N2I4YjI1OTQ0NTM0OWIzMTkzNWYzOTY4NzQ4YmE1Mzg4NjA3NmZjNGM4NjA2IiwibmFtZSI6Im1hbmFnZXIiLCJyZXNvdXJjZXMiOnsibGltaXRzIjp7ImNwdSI6IjUwMG0iLCJtZW1vcnkiOiI1MDBNaSJ9LCJyZXF1ZXN0cyI6eyJjcHUiOiIxMDBtIiwibWVtb3J5IjoiMjBNaSJ9fSwidGVybWluYXRpb25NZXNzYWdlUG9saWN5IjoiRmFsbGJhY2tUb0xvZ3NPbkVycm9yIiwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6MTAsInZvbHVtZXMiOlt7Im5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19fX19XSwicGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwidXBkYXRlIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJldmVudHMiXSwidmVyYnMiOlsiY3JlYXRlIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsiY29vcmRpbmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibGVhc2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImVuZHBvaW50cyIsImV2ZW50cyIsInBlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwb2RzIiwic2VjcmV0cyIsInNlcnZpY2VhY2NvdW50cyIsInNlcnZpY2VzIiwic2VydmljZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvcnMuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnNlcnZpY2V2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiT3duTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJTaW5nbGVOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJNdWx0aU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImNvc3QiLCJtYW5hZ2VtZW50IiwidXNhZ2UiLCJtb25pdG9yIl0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo2ZjMyMGE2NGFiMTIxMjUwOTY0N2I4YjI1OTQ0NTM0OWIzMTkzNWYzOTY4NzQ4YmE1Mzg4NjA3NmZjNGM4NjA2IiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3ItNmYzMjBhNjRhYjEyMTI1MDk2NDdiOGIyNTk0NDUzNDliMzE5MzVmMzk2ODc0OGJhNTM4ODYwNzZmYzRjODYwNi1hbm5vdGF0aW9uIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1Njo2ZjMyMGE2NGFiMTIxMjUwOTY0N2I4YjI1OTQ0NTM0OWIzMTkzNWYzOTY4NzQ4YmE1Mzg4NjA3NmZjNGM4NjA2IiwibmFtZSI6Im1hbmFnZXIifV0sInJlcGxhY2VzIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci4xLjIuMCIsInZlcnNpb24iOiIyLjAuMCJ9fQ== + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": { + "collect_previous_data": true, + "context_timeout": 120, + "disable_metrics_collection_cost_management": false, + "disable_metrics_collection_resource_optimization": false + }, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "INSERT-SOURCE-NAME" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "true" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:6f320a64ab1212509647b8b259445349b31935f3968748ba53886076fc4c8606 + createdAt: "2023-04-20T16:04:37Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v1.25.3 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 2.0.0 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift, used to gather the required information from the cluster. It is recommended to be installed in OpenShift 4.8+. This operator obtains OpenShift usage data by querying Prometheus and uploads it to cost management to be processed. The Operator queries Prometheus every hour to create metric reports, which are then packaged and uploaded to cost management at [console.redhat.com](https://console.redhat.com). For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to cost management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The CostManagement Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for cost management by: + * Querying Prometheus to gather the necessary metrics for cost management. + * Writing Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * Resource Optimization metrics collection. + * The operator can be configured to gather all previous data within the configured retention period or a maximum of 90 days. The default data collection period is the 14 previous days. This setting is only applicable to newly created CostManagementMetricsConfigs. + * The operator can be configured to automatically upload the packaged reports to cost management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for cost management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## New in v2.0.0: + * Adds metrics and report generation for resource optimization. This feature will collect additional usage metrics and create a new report in the payload. These metrics are enabled by default, but can be disabled by setting `disable_metrics_collection_resource_optimization` to `true`. + * Collect all available Prometheus data upon CR creation. This feature only applies to newly created CostManagementMetricsConfigs. The operator will check the monitoring stack configuration in the `openshift-monitoring` namespace. The operator will use the `retention` period set in the `cluster-monitoring-config` ConfigMap if defined, up to a maximum of 90 days. Otherwise it will fall back to collecting 14 days of data, if available. This data collection may be disabled by setting `collect_previous_data` to `false`. Turning this feature off results in the operator collecting metrics from the time the CostManagementMetricsConfig is created, forward. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by cost management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with cost management that the payload was processed. After Ingress accepts the uploaded payload, the payload is removed from the operator and is gone forever. If the data within the payload is not processed, a gap will be introduced in the usage metrics. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is filled. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configurable parameters: + * `authentication`: + * `type: token` -> The authentication method for connecting to `console.redhat.com`. The default and preferred method is `token`. `basic` is used when the openshift-config pull-secret does not contain a token for `cloud.redhat.com`. + * `secret_name` -> The Secret used by the operator when the authentication type is `basic`. This parameter is required **only if** the authentication type is `basic`. + * `packaging`: + * `max_reports_to_store: 30` -> The number of reports to store when configured in air-gapped mode. The default is 30, with a minimum of 1 and no maximum. When the operator is not configured in air-gapped mode, this parameter has no effect. Reports are removed as soon as they are uploaded. + * `max_size: 100` -> The maximum size for packaged files in Megabytes prior to compression. The default is 100, with a minimum of 1 and maximum of 100. + * `prometheus_config`: + * `collect_previous_data: true` -> Toggle for collecting all available data in Prometheus **upon CostManagementMetricsConfig creation** (This parameter will start to appear in CostManagementMetricsConfigs that were created prior to v2.0.0 but will not have any effect unless the CostManagementMetricsConfig is deleted and recreated). The default is `true`. The operator will first look for a `retention` period in the `cluster-monitoring-config` ConfigMap in the `openshift-monitoring` namespace and gather data over this time period up to a maximum of 90 days. If this configuration is not set, the default is 14 days. (New in v2.0.0) + * `disable_metrics_collection_cost_management: false` -> Toggle for disabling the collection of metrics for Cost Management. The default is false. (New in v2.0.0) + * `disable_metrics_collection_resource_optimization: false` -> Toggle for disabling the collection of metrics for Resource Optimization. The default is false. (New in v2.0.0) + * `context_timeout: 120` -> The time in seconds before Prometheus queries timeout due to exceeding context timeout. The default is 120, with a minimum of 10 and maximum of 180. + * `source`: + * `name: INSERT_SOURCE_NAME` -> The name of the Source the operator will create in `console.redhat.com`. The default is `INSERT_SOURCE_NAME` which is a placeholder. + * `create_source: false` -> Toggle for whether or not the operator will create the Source in `console.redhat.com`. The default is False. This parameter should be switched to True when a Source does not already exist in `console.redhat.com` for this cluster. + * `check_cycle: 1440` -> The time in minutes to wait between checking if a Source exists for this cluster. The default is 1440 minutes (24 hrs). + * `upload`: + * `upload_cycle: 360` -> The time in minutes between payload uploads. The default is 360 (6 hours). + * `upload_toggle: true` -> Toggle to turn upload on or off -> true means upload, false means do not upload (false == air-gapped mode). The default is `true`. + * `upload_wait` -> The amount of time (in seconds) to pause before uploading a payload. The default is a random number between 0 and 35. This is used to decrease service load, but may be set to `0` if desired. + * `volume_claim_template` -> see the "Storage configuration prerequisite" section above. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace `INSERT-SOURCE-NAME` with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace `INSERT-SOURCE-NAME` with the existing name, and leave `create_source` as false. This will allow the operator to confirm the source exists. + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360 + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to cost management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Create source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat sources` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Sources wizard, review the details and click `Finish` to create the Source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://console.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:12338c0a58b7a2e8f1f201512a43675e1df1f3eae0feec0ffd8df4295b499a92 name: "" @@ -369,12 +3507,331 @@ properties: value: packageName: costmanagement-metrics-operator version: 3.0.0 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjExLjIifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljIG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgdXNlciBhbmQgcGFzc3dvcmQgZnJvbSBhdXRoZW50aWNhdGlvbiBzZWNyZXQuIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBjcmVhdGUgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBJZiB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgaXMgZW5hYmxlZCwgdGhpcyBmaWVsZCB3aWxsIGFsd2F5cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzIGFzIHRoZSBEYXRhU291cmNlUmVmIGZpZWxkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBsb2NhbCBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIERhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYm90aCBmaWVsZHMgKERhdGFTb3VyY2UgYW5kIERhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFRoZXJlIGFyZSB0d28gaW1wb3J0YW50IGRpZmZlcmVuY2VzIGJldHdlZW4gRGF0YVNvdXJjZSBhbmQgRGF0YVNvdXJjZVJlZjogKiBXaGlsZSBEYXRhU291cmNlIG9ubHkgYWxsb3dzIHR3byBzcGVjaWZpYyB0eXBlcyBvZiBvYmplY3RzLCBEYXRhU291cmNlUmVmIGFsbG93cyBhbnkgbm9uLWNvcmUgb2JqZWN0LCBhcyB3ZWxsIGFzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3RzLiAqIFdoaWxlIERhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIERhdGFTb3VyY2VSZWYgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzIHNwZWNpZmllZC4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6InNlbGVjdG9yIGlzIGEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYyBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiYWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZSBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIElmIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCB0aGlzIGZpZWxkIHdpbGwgYWx3YXlzIGhhdmUgdGhlIHNhbWUgY29udGVudHMgYXMgdGhlIERhdGFTb3VyY2VSZWYgZmllbGQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJkYXRhU291cmNlUmVmIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZVJlZiBzcGVjaWZpZXMgdGhlIG9iamVjdCBmcm9tIHdoaWNoIHRvIHBvcHVsYXRlIHRoZSB2b2x1bWUgd2l0aCBkYXRhLCBpZiBhIG5vbi1lbXB0eSB2b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IGxvY2FsIG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uIGNvcmUgb2JqZWN0KSBvciBhIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3QuIFdoZW4gdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQsIHZvbHVtZSBiaW5kaW5nIHdpbGwgb25seSBzdWNjZWVkIGlmIHRoZSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljIHByb3Zpc2lvbmVyLiBUaGlzIGZpZWxkIHdpbGwgcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgRGF0YVNvdXJjZSBmaWVsZCBhbmQgYXMgc3VjaCBpZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBib3RoIGZpZWxkcyAoRGF0YVNvdXJjZSBhbmQgRGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYXV0b21hdGljYWxseSBpZiBvbmUgb2YgdGhlbSBpcyBlbXB0eSBhbmQgdGhlIG90aGVyIGlzIG5vbi1lbXB0eS4gVGhlcmUgYXJlIHR3byBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBEYXRhU291cmNlIGFuZCBEYXRhU291cmNlUmVmOiAqIFdoaWxlIERhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIERhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgRGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgRGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAoQmV0YSkgVXNpbmcgdGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBJZiBSZWNvdmVyVm9sdW1lRXhwYW5zaW9uRmFpbHVyZSBmZWF0dXJlIGlzIGVuYWJsZWQgdXNlcnMgYXJlIGFsbG93ZWQgdG8gc3BlY2lmeSByZXNvdXJjZSByZXF1aXJlbWVudHMgdGhhdCBhcmUgbG93ZXIgdGhhbiBwcmV2aW91cyB2YWx1ZSBidXQgbXVzdCBzdGlsbCBiZSBoaWdoZXIgdGhhbiBjYXBhY2l0eSByZWNvcmRlZCBpbiB0aGUgc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwcm9tZXRoZXVzIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcHJlbWV0aGV1cyBxdWVyaWVzLiIsInByb3BlcnRpZXMiOnsiY29uZmlndXJhdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgY29uZmlndXJhdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNvbnRleHRfdGltZW91dCI6eyJkZXNjcmlwdGlvbiI6IkNvbnRleHRUaW1lb3V0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdGUgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25Db3N0TWFuYWdlbWVudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyByZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImNyZWF0ZV9zb3VyY2UgcmVwcmVzZW50cyB0aGUgdG9nZ2xlIHVzZWQgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiB0aGUgc291cmNlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gQSBzb3VyY2Ugd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgc291cmNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoibGFzdF9jaGVja190aW1lIGlzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3Qgc291cmNlIHN0YXR1cyBjaGVjayB3YXMgYXR0ZW1wdGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIHJlcHJlc2VudHMgdGhlIG5hbWUgb2YgdGhlIHNvdXJjZSB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIHNvdXJjZSBuYW1lIGV4aXN0cyBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoic291cmNlc19wYXRoIGlzIHRoZSBwcmVmaXggb2YgdGhlIFNvdXJjZXMgQVBJIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGVzIGluIHRoZSBsYXN0IHBheWxvYWQgdGhhdCB3YXMgc2VudC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJsYXN0X3BheWxvYWRfbWFuaWZlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE1hbmlmZXN0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG1hbmlmZXN0SUQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGxhc3QgcGF5bG9hZCBmaWxlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX3JlcXVlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZFJlcXVlc3RJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBpbnNpZ2h0cyByZXF1ZXN0IGlkIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfdXBsb2FkX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFVwbG9hZFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIHVwbG9hZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3VwbG9hZF9zdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0VXBsb2FkU3RhdHVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGh0dHAgc3RhdHVzIG9mIHRoZSBsYXN0IHVwbG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFRvZ2dsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIHNob3VsZCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0= -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjQ5NWMwZmQ2NDlmMTA0NmViM2MzYTkxNjI4YjhhOGRmNjk5Mjg4ZDZmMDA0ZGRjYTQxYmIzYTQ2MWRiZDBkMGIiLCJjcmVhdGVkQXQiOiIyMDIzLTEwLTAyVDE2OjEwOjAxWiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjI4LjAiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMC4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAzLjAuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LiBUaGUgb3BlcmF0b3IgcnVucyBvbiB0aGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBPcGVuc2hpZnQuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzIHRoYXQgaXQgdXBsb2FkcyB0byBDb3N0IE1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pIHRvIGJlIHByb2Nlc3NlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBDb3N0IE1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBDb3N0IE1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgdGhlIHJlc3VsdHMgb2YgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIENvc3QgTWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBDb3N0IE1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYzLjAuMDpcbiogRGFpbHkgcmVwb3J0IGdlbmVyYXRpb246IE9wZXJhdG9yIHZlcnNpb25zIHByaW9yIHRvIHYzLjAuMCBnZW5lcmF0ZWQgc2VxdWVudGlhbCByZXBvcnRzLiBOb3csIHJlcG9ydHMgYXJlIGdlbmVyYXRlZCBzdGFydGluZyBhdCAwOjAwIFVUQy4gQW55IHBheWxvYWRzIGdlbmVyYXRlZCB0aHJvdWdob3V0IGEgZ2l2ZW4gZGF5IHdpbGwgY29udGFpbiBhbGwgZGF0YSBzdGFydGluZyBmcm9tIDA6MDAgVVRDLiBPbmNlIHRoZSBuZXh0IGRheSBzdGFydHMsIHRoZSBwcmV2aW91cyBkYXkncyByZXBvcnRzIGFyZSBwYWNrYWdlZCwgYW5kIHRoZSBuZXcgcmVwb3J0IGFnYWluIHN0YXJ0cyBhdCAwOjAwIFVUQyBmb3IgdGhlIGN1cnJlbnQgZGF5LlxuKiBGYWlsZWQgcXVlcnkgcmV0cnk6IEluIGFuIGF0dGVtcHQgdG8gcHJldmVudCBtaXNzaW5nIGRhdGEsIHRoZSBvcGVyYXRvciB3aWxsIHJldHJ5IHF1ZXJpZXMgZnJvbSB0aGUgbGFzdCBzdWNjZXNzZnVsIHF1ZXJ5IHRpbWUsIHVwIHRvIDUgdGltZXMuXG5cbiMjIE5ldyBpbiB2Mi4wLjA6XG4qIEFkZHMgbWV0cmljcyBhbmQgcmVwb3J0IGdlbmVyYXRpb24gZm9yIHJlc291cmNlIG9wdGltaXphdGlvbi4gVGhpcyBmZWF0dXJlIHdpbGwgY29sbGVjdCBhZGRpdGlvbmFsIHVzYWdlIG1ldHJpY3MgYW5kIGNyZWF0ZSBhIG5ldyByZXBvcnQgaW4gdGhlIHBheWxvYWQuIFRoZXNlIG1ldHJpY3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb25gIHRvIGB0cnVlYC5cbiogQ29sbGVjdCBhbGwgYXZhaWxhYmxlIFByb21ldGhldXMgZGF0YSB1cG9uIENSIGNyZWF0aW9uLiBUaGlzIGZlYXR1cmUgb25seSBhcHBsaWVzIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy4gVGhlIG9wZXJhdG9yIHdpbGwgY2hlY2sgdGhlIG1vbml0b3Jpbmcgc3RhY2sgY29uZmlndXJhdGlvbiBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UuIFRoZSBvcGVyYXRvciB3aWxsIHVzZSB0aGUgYHJldGVudGlvbmAgcGVyaW9kIHNldCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpZiBkZWZpbmVkLCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gT3RoZXJ3aXNlIGl0IHdpbGwgZmFsbCBiYWNrIHRvIGNvbGxlY3RpbmcgMTQgZGF5cyBvZiBkYXRhLCBpZiBhdmFpbGFibGUuIFRoaXMgZGF0YSBjb2xsZWN0aW9uIG1heSBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGFgIHRvIGBmYWxzZWAuIFR1cm5pbmcgdGhpcyBmZWF0dXJlIG9mZiByZXN1bHRzIGluIHRoZSBvcGVyYXRvciBjb2xsZWN0aW5nIG1ldHJpY3MgZnJvbSB0aGUgdGltZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQsIGZvcndhcmQuXG5cbiMjIExpbWl0YXRpb25zIGFuZCBQcmUtUmVxdWlzaXRlc1xuIyMjIyBMaW1pdGF0aW9ucyAoUG90ZW50aWFsIGZvciBtZXRyaWNzIGRhdGEgbG9zcylcbiogQSBzb3VyY2UgKiptdXN0KiogZXhpc3QgaW4gY29uc29sZS5yZWRoYXQuY29tIGZvciBhbiB1cGxvYWRlZCBwYXlsb2FkIHRvIGJlIHByb2Nlc3NlZCBieSBDb3N0IE1hbmFnZW1lbnQuIFRoZSBvcGVyYXRvciBzZW5kcyB0aGUgcGF5bG9hZCB0byB0aGUgUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2Ugd2hpY2ggdXN1YWxseSByZXR1cm5zIHN1Y2Nlc3NmdWxseSwgYnV0IHRoZSBvcGVyYXRvciBkb2VzIG5vdCBjdXJyZW50bHkgY29uZmlybSB3aXRoIENvc3QgTWFuYWdlbWVudCB0aGF0IHRoZSBwYXlsb2FkIHdhcyBwcm9jZXNzZWQuIEFmdGVyIEluZ3Jlc3MgYWNjZXB0cyB0aGUgdXBsb2FkZWQgcGF5bG9hZCwgaXQgaXMgZGVsZXRlZCBmcm9tIHRoZSBvcGVyYXRvci4gSWYgdGhlIGRhdGEgd2l0aGluIHRoZSBwYXlsb2FkIGlzIG5vdCBwcm9jZXNzZWQsIGEgZ2FwIHdpbGwgYmUgaW50cm9kdWNlZCBpbiB0aGUgdXNhZ2UgbWV0cmljcy4gRGF0YSBtYXkgYmUgcmVjb2xsZWN0ZWQgYnkgZGVsZXRpbmcgdGhlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLCBjcmVhdGluZyBhIG5ldyBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgYW5kIHNldHRpbmcgYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAuIFRoaXMgcmUtY29sbGVjdGlvbiBvZiBkYXRhIHdpbGwgZ2F0aGVyIGFsbCBkYXRhIHN0b3JlZCBpbiBQcm9tZXRoZXVzLCB1cCB0byA5MCBkYXlzLlxuXG4qKk5vdGUqKiBUaGUgZm9sbG93aW5nIGxpbWl0YXRpb25zIGFyZSBzcGVjaWZpYyB0byBvcGVyYXRvcnMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcms6XG4qIFRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgd2lsbCBub3QgYmUgYWJsZSB0byBnZW5lcmF0ZSBuZXcgcmVwb3J0cyBpZiB0aGUgUFZDIHN0b3JhZ2UgaXMgZnVsbC4gSWYgdGhpcyBvY2N1cnMsIHRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZGVsZXRlZCBmcm9tIHRoZSBQVkMgc28gdGhhdCB0aGUgb3BlcmF0b3IgY2FuIGZ1bmN0aW9uIGFzIG5vcm1hbC5cbiogVGhlIGRlZmF1bHQgcmVwb3J0IHJldGVudGlvbiBpcyAzMCByZXBvcnRzIChhYm91dCBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEpLiBUaGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgYW5kIHVwbG9hZGVkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBldmVyeSB3ZWVrLCBvciB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgdGhlIGRhdGEgd2lsbCBiZSBsb3N0LlxuXG4jIyMjIFN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcblRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGFuZCB1c2UgdGhlIGZvbGxvd2luZyBQVkMgd2hlbiBpbnN0YWxsZWQ6XG5cbiAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcblxuSWYgYSBkaWZmZXJlbnQgUFZDIHNob3VsZCBiZSB1dGlsaXplZCwgYSB2YWxpZCBQVkMgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGFzIGRlc2NyaWJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBiZWxvdy4gVGhlIFBWQyB0byBiZSB1c2VkIG1heSBleGlzdCBhbHJlYWR5LCBvciB0aGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBpdC5cblxuVG8gdXNlIHRoZSBkZWZhdWx0IHNwZWNpZmljYXRpb24sIHRoZSBmb2xsb3cgYXNzdW1wdGlvbnMgbXVzdCBiZSBtZXQ6XG4xLiBBIGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGRlZmluZWQuXG4yLiBEeW5hbWljIHByb3Zpc2lvbmluZyBmb3IgdGhhdCBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBlbmFibGVkLlxuXG5JZiB0aGVzZSBhc3N1bXB0aW9ucyBhcmUgbm90IG1ldCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IGRlcGxveSBjb3JyZWN0bHkuIEluIHRoZXNlIGNhc2VzLCBzdG9yYWdlIG11c3QgYmUgbWFudWFsbHkgY29uZmlndXJlZC4gQWZ0ZXIgY29uZmlndXJpbmcgc3RvcmFnZSwgYSB2YWxpZCBQVkMgdGVtcGxhdGUgc2hvdWxkIGJlIHN1cHBsaWVkIGluIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBzcGVjIG9mIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IuXG5cbiMjIENvbmZpZ3VyYWJsZSBwYXJhbWV0ZXJzOlxuICAqIGBhdXRoZW50aWNhdGlvbmA6XG4gICAgKiBgdHlwZTogdG9rZW5gIC1cdTAwM2UgVGhlIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBmb3IgY29ubmVjdGluZyB0byBgY29uc29sZS5yZWRoYXQuY29tYC4gVGhlIGRlZmF1bHQgYW5kIHByZWZlcnJlZCBtZXRob2QgaXMgYHRva2VuYC4gYGJhc2ljYCBpcyB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYC4gVGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgKipvbmx5IGlmKiogdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYC5cbiAgKiBgcGFja2FnaW5nYDpcbiAgICAqIGBtYXhfcmVwb3J0c190b19zdG9yZTogMzBgIC1cdTAwM2UgVGhlIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlIHdoZW4gY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUuIFRoZSBkZWZhdWx0IGlzIDMwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBubyBtYXhpbXVtLiBXaGVuIHRoZSBvcGVyYXRvciBpcyBub3QgY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUsIHRoaXMgcGFyYW1ldGVyIGhhcyBubyBlZmZlY3QuIFJlcG9ydHMgYXJlIHJlbW92ZWQgYXMgc29vbiBhcyB0aGV5IGFyZSB1cGxvYWRlZC5cbiAgICAqIGBtYXhfc2l6ZTogMTAwYCAtXHUwMDNlIFRoZSBtYXhpbXVtIHNpemUgZm9yIHBhY2thZ2VkIGZpbGVzIGluIE1lZ2FieXRlcyBwcmlvciB0byBjb21wcmVzc2lvbi4gVGhlIGRlZmF1bHQgaXMgMTAwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBtYXhpbXVtIG9mIDEwMC5cbiAgKiBgcHJvbWV0aGV1c19jb25maWdgOlxuICAgICogYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGNvbGxlY3RpbmcgYWxsIGF2YWlsYWJsZSBkYXRhIGluIFByb21ldGhldXMgKip1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbioqIChUaGlzIHBhcmFtZXRlciB3aWxsIHN0YXJ0IHRvIGFwcGVhciBpbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzIHRoYXQgd2VyZSBjcmVhdGVkIHByaW9yIHRvIHYyLjAuMCBidXQgd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IHVubGVzcyB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGRlbGV0ZWQgYW5kIHJlY3JlYXRlZCkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC4gVGhlIG9wZXJhdG9yIHdpbGwgZmlyc3QgbG9vayBmb3IgYSBgcmV0ZW50aW9uYCBwZXJpb2QgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlIGFuZCBnYXRoZXIgZGF0YSBvdmVyIHRoaXMgdGltZSBwZXJpb2QgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIElmIHRoaXMgY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0LCB0aGUgZGVmYXVsdCBpcyAxNCBkYXlzLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQ6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgZGlzYWJsaW5nIHRoZSBjb2xsZWN0aW9uIG9mIG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbjogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgUmVzb3VyY2UgT3B0aW1pemF0aW9uLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgY29udGV4dF90aW1lb3V0OiAxMjBgIC1cdTAwM2UgVGhlIHRpbWUgaW4gc2Vjb25kcyBiZWZvcmUgUHJvbWV0aGV1cyBxdWVyaWVzIHRpbWVvdXQgZHVlIHRvIGV4Y2VlZGluZyBjb250ZXh0IHRpbWVvdXQuIFRoZSBkZWZhdWx0IGlzIDEyMCwgd2l0aCBhIG1pbmltdW0gb2YgMTAgYW5kIG1heGltdW0gb2YgMTgwLlxuICAqIGBzb3VyY2VgOlxuICAgICogYG5hbWU6ICcnYCAtXHUwMDNlIFRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGluIGBjb25zb2xlLnJlZGhhdC5jb21gLiBJZiB0aGUgbmFtZSB2YWx1ZSBpcyBlbXB0eSwgdGhlIGRlZmF1bHQgaW50ZXJncmF0aW9uIG5hbWUgaXMgdGhlICoqY2x1c3RlciBpZCoqLlxuICAgICogYGNyZWF0ZV9zb3VyY2U6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3Igd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIHRoZSBzb3VyY2UgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGEgc291cmNlIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhIHNvdXJjZSBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSB0aGUgYG5hbWVgIGZpZWxkIHZhbHVlIHdpdGggdGhlIHByZWZlcnJlZCBuYW1lIG9mIHRoZSBzb3VyY2UgdG8gYmUgY3JlYXRlZC5cbiAgICAqIFJlcGxhY2UgdGhlIGBjcmVhdGVfc291cmNlYCBmaWVsZCB2YWx1ZSB3aXRoIGB0cnVlYC5cblxuICAgICoqTm90ZToqKiBpZiB0aGUgc291cmNlIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgc291cmNlIGV4aXN0cy5cblxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYyAoYmVsb3cgaXMgb25seSBhIHRlbXBsYXRlLiBBbnkgX3ZhbGlkXyBgUGVyc2lzdGVudFZvbHVtZUNsYWltYCBtYXkgYmUgZGVmaW5lZCBoZXJlKTpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIFNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gQ29zdCBNYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRpbmcgYSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0YCB0YWJcbjMuIENyZWF0ZSBhIG5ldyBgUmVkIEhhdCBPcGVuc2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtYCBzb3VyY2U6XG4gICAgKiBnaXZlIHRoZSBzb3VyY2UgYSB1bmlxdWUgbmFtZVxuICAgICogYWRkIHRoZSBDb3N0IE1hbmFnZW1lbnQgYXBwbGljYXRpb25cbiAgICAqIGFkZCB0aGUgY2x1c3RlciBpZGVudGlmaWVyXG40LiBJbiB0aGUgU291cmNlIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIHNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7fSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1lbmFibGUtbGVhZGVyLWVsZWN0aW9uIl0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjQ5NWMwZmQ2NDlmMTA0NmViM2MzYTkxNjI4YjhhOGRmNjk5Mjg4ZDZmMDA0ZGRjYTQxYmIzYTQ2MWRiZDBkMGIiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjQ5NWMwZmQ2NDlmMTA0NmViM2MzYTkxNjI4YjhhOGRmNjk5Mjg4ZDZmMDA0ZGRjYTQxYmIzYTQ2MWRiZDBkMGIiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci00OTVjMGZkNjQ5ZjEwNDZlYjNjM2E5MTYyOGI4YThkZjY5OTI4OGQ2ZjAwNGRkY2E0MWJiM2E0NjFkYmQwZDBiLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjQ5NWMwZmQ2NDlmMTA0NmViM2MzYTkxNjI4YjhhOGRmNjk5Mjg4ZDZmMDA0ZGRjYTQxYmIzYTQ2MWRiZDBkMGIiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjIuMC4wIiwidmVyc2lvbiI6IjMuMC4wIn19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": { + "collect_previous_data": true, + "context_timeout": 120, + "disable_metrics_collection_cost_management": false, + "disable_metrics_collection_resource_optimization": false + }, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "true" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:495c0fd649f1046eb3c3a91628b8a8df699288d6f004ddca41bb3a461dbd0d0b + createdAt: "2023-10-02T16:10:01Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v1.28.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 3.0.0 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift. The operator runs on the latest supported versions of Openshift. This operator obtains OpenShift usage data by querying Prometheus every hour to create metric reports that it uploads to Cost Management at [console.redhat.com](https://console.redhat.com) to be processed. For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to Cost Management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The CostManagement Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for Cost Management by: + * Querying Prometheus to gather the necessary metrics for Cost Management. + * Writing the results of Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * Resource Optimization metrics collection. + * The operator can be configured to gather all previous data within the configured retention period or a maximum of 90 days. The default data collection period is the 14 previous days. This setting is only applicable to newly created CostManagementMetricsConfigs. + * The operator can be configured to automatically upload the packaged reports to Cost Management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for Cost Management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## New in v3.0.0: + * Daily report generation: Operator versions prior to v3.0.0 generated sequential reports. Now, reports are generated starting at 0:00 UTC. Any payloads generated throughout a given day will contain all data starting from 0:00 UTC. Once the next day starts, the previous day's reports are packaged, and the new report again starts at 0:00 UTC for the current day. + * Failed query retry: In an attempt to prevent missing data, the operator will retry queries from the last successful query time, up to 5 times. + + ## New in v2.0.0: + * Adds metrics and report generation for resource optimization. This feature will collect additional usage metrics and create a new report in the payload. These metrics are enabled by default, but can be disabled by setting `disable_metrics_collection_resource_optimization` to `true`. + * Collect all available Prometheus data upon CR creation. This feature only applies to newly created CostManagementMetricsConfigs. The operator will check the monitoring stack configuration in the `openshift-monitoring` namespace. The operator will use the `retention` period set in the `cluster-monitoring-config` ConfigMap if defined, up to a maximum of 90 days. Otherwise it will fall back to collecting 14 days of data, if available. This data collection may be disabled by setting `collect_previous_data` to `false`. Turning this feature off results in the operator collecting metrics from the time the CostManagementMetricsConfig is created, forward. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by Cost Management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with Cost Management that the payload was processed. After Ingress accepts the uploaded payload, it is deleted from the operator. If the data within the payload is not processed, a gap will be introduced in the usage metrics. Data may be recollected by deleting the `CostManagementMetricsConfig`, creating a new `CostManagementMetricsConfig`, and setting `collect_previous_data: true`. This re-collection of data will gather all data stored in Prometheus, up to 90 days. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is full. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configurable parameters: + * `authentication`: + * `type: token` -> The authentication method for connecting to `console.redhat.com`. The default and preferred method is `token`. `basic` is used when the openshift-config pull-secret does not contain a token for `console.redhat.com`. + * `secret_name` -> The Secret used by the operator when the authentication type is `basic`. This parameter is required **only if** the authentication type is `basic`. + * `packaging`: + * `max_reports_to_store: 30` -> The number of reports to store when configured in air-gapped mode. The default is 30, with a minimum of 1 and no maximum. When the operator is not configured in air-gapped mode, this parameter has no effect. Reports are removed as soon as they are uploaded. + * `max_size: 100` -> The maximum size for packaged files in Megabytes prior to compression. The default is 100, with a minimum of 1 and maximum of 100. + * `prometheus_config`: + * `collect_previous_data: true` -> Toggle for collecting all available data in Prometheus **upon CostManagementMetricsConfig creation** (This parameter will start to appear in CostManagementMetricsConfigs that were created prior to v2.0.0 but will not have any effect unless the CostManagementMetricsConfig is deleted and recreated). The default is `true`. The operator will first look for a `retention` period in the `cluster-monitoring-config` ConfigMap in the `openshift-monitoring` namespace and gather data over this time period up to a maximum of 90 days. If this configuration is not set, the default is 14 days. (New in v2.0.0) + * `disable_metrics_collection_cost_management: false` -> Toggle for disabling the collection of metrics for Cost Management. The default is false. (New in v2.0.0) + * `disable_metrics_collection_resource_optimization: false` -> Toggle for disabling the collection of metrics for Resource Optimization. The default is false. (New in v2.0.0) + * `context_timeout: 120` -> The time in seconds before Prometheus queries timeout due to exceeding context timeout. The default is 120, with a minimum of 10 and maximum of 180. + * `source`: + * `name: ''` -> The name of the source the operator will create in `console.redhat.com`. If the name value is empty, the default intergration name is the **cluster id**. + * `create_source: false` -> Toggle for whether or not the operator will create the source in `console.redhat.com`. The default is False. This parameter should be switched to True when a source does not already exist in `console.redhat.com` for this cluster. + * `check_cycle: 1440` -> The time in minutes to wait between checking if a source exists for this cluster. The default is 1440 minutes (24 hrs). + * `upload`: + * `upload_cycle: 360` -> The time in minutes between payload uploads. The default is 360 (6 hours). + * `upload_toggle: true` -> Toggle to turn upload on or off -> true means upload, false means do not upload (false == air-gapped mode). The default is `true`. + * `upload_wait` -> The amount of time (in seconds) to pause before uploading a payload. The default is a random number between 0 and 35. This is used to decrease service load, but may be set to `0` if desired. + * `volume_claim_template` -> see the "Storage configuration prerequisite" section above. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace the `name` field value with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace the empty string value of the `name` field with the existing name, and leave `create_source` as false. This will allow the operator to confirm that the source exists. + + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec (below is only a template. Any _valid_ `PersistentVolumeClaim` may be defined here): + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360 + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a Source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to Cost Management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Creating a source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Source wizard, review the details and click `Finish` to create the source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://console.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:e43e49bc3c6b361f8ece42f438748dbe1e8af0c32c1ec4786fccc0e9ff1b63f1 name: "" @@ -397,12 +3854,331 @@ properties: value: packageName: costmanagement-metrics-operator version: 3.0.1 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjEzLjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljIG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgdXNlciBhbmQgcGFzc3dvcmQgZnJvbSBhdXRoZW50aWNhdGlvbiBzZWNyZXQuIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHNvdXJjZSBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBzb3VyY2Ugb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBjcmVhdGUgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifSwic291cmNlc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL3NvdXJjZXMvdjEuMC8iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS4gSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiBUaGUgZGVmYXVsdCBpcyBgL2FwaS9pbmdyZXNzL3YxL3VwbG9hZGAuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVmYXVsdCI6MzYwLCJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLiBJZiBgZmFsc2VgLCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgdXBsb2FkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBvciBjaGVjay9jcmVhdGUgc291cmNlcy4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImluZ3Jlc3NfcGF0aCIsInVwbG9hZF9jeWNsZSIsInVwbG9hZF90b2dnbGUiLCJ2YWxpZGF0ZV9jZXJ0Il0sInR5cGUiOiJvYmplY3QifSwidm9sdW1lX2NsYWltX3RlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lQ2xhaW1UZW1wbGF0ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMgdGVtcGxhdGUuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBXaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsIGFuZCBkYXRhU291cmNlUmVmIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2Ugd2hlbiBkYXRhU291cmNlUmVmLm5hbWVzcGFjZSBpcyBub3Qgc3BlY2lmaWVkLiBJZiB0aGUgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgdGhlbiBkYXRhU291cmNlUmVmIHdpbGwgbm90IGJlIGNvcGllZCB0byBkYXRhU291cmNlLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGRhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGJvdGggZmllbGRzIChkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBXaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgZGF0YVNvdXJjZSBpc24ndCBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYW5kIG11c3QgYmUgZW1wdHkuIFRoZXJlIGFyZSB0aHJlZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmOiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgZGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgZGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgbG9jYWwgb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3Mgb2JqZWN0cyBpbiBhbnkgbmFtZXNwYWNlcy4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIChBbHBoYSkgVXNpbmcgdGhlIG5hbWVzcGFjZSBmaWVsZCBvZiBkYXRhU291cmNlUmVmIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIE5vdGUgdGhhdCB3aGVuIGEgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgYSBnYXRld2F5Lm5ldHdvcmtpbmcuazhzLmlvL1JlZmVyZW5jZUdyYW50IG9iamVjdCBpcyByZXF1aXJlZCBpbiB0aGUgcmVmZXJlbnQgbmFtZXNwYWNlIHRvIGFsbG93IHRoYXQgbmFtZXNwYWNlJ3Mgb3duZXIgdG8gYWNjZXB0IHRoZSByZWZlcmVuY2UuIFNlZSB0aGUgUmVmZXJlbmNlR3JhbnQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gKEFscGhhKSBUaGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsiYXV0aGVudGljYXRpb24iLCJwYWNrYWdpbmciLCJwcm9tZXRoZXVzX2NvbmZpZyIsInNvdXJjZSIsInVwbG9hZCJdLCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyBkZWZpbmVzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcuIiwicHJvcGVydGllcyI6eyJhcGlfdXJsIjp7ImRlc2NyaXB0aW9uIjoiQVBJVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXJsIG9mIHRoZSBBUEkgZW5kcG9pbnQgZm9yIHNlcnZpY2UgaW50ZXJhY3Rpb24uIiwidHlwZSI6InN0cmluZyJ9LCJhdXRoZW50aWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gc3RhdHVzLiIsInByb3BlcnRpZXMiOnsiY3JlZGVudGlhbHNfZm91bmQiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbkNyZWRlbnRpYWxzRm91bmQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHVzZWQgZm9yIHVwbG9hZHMgd2VyZSBmb3VuZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IkF1dGhFcnJvck1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGFuIGBpbnZhbGlkIGNyZWRlbnRpYWxzYCBlcnJvciBtZXNzYWdlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jcmVkZW50aWFsX3ZlcmlmaWNhdGlvbl90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFZlcmlmaWNhdGlvblRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgY3JlZGVudGlhbHMgd2VyZSB2ZXJpZmllZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljIG9yIHRva2VuLiIsImVudW0iOlsidG9rZW4iLCJiYXNpYyJdLCJ0eXBlIjoic3RyaW5nIn0sInZhbGlkX2Jhc2ljX2F1dGgiOnsiZGVzY3JpcHRpb24iOiJWYWxpZEJhc2ljQXV0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIGdpdmVuIGJhc2ljIGF1dGggY3JlZGVudGlhbHMgYXJlIHZhbGlkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvcl9jb21taXQiOnsiZGVzY3JpcHRpb24iOiJPcGVyYXRvckNvbW1pdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBjb21taXQgaGFzaCBvZiB0aGUgb3BlcmF0b3IuIiwidHlwZSI6InN0cmluZyJ9LCJwYWNrYWdpbmciOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmcgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYWNrYWdpbmcgc3RhdHVzIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgcGFja2FnaW5nIHRoZSByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3BhY2thZ2luZ190aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxQYWNrYWdpbmdUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBmaWxlIHBhY2thZ2luZy4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwibWF4X3NpemVfTUIiOnsiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwibnVtYmVyX3JlcG9ydHNfc3RvcmVkIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0Q291bnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgcmVwb3J0cyBpbiBzdG9yYWdlLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwicGFja2FnZWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdlZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlIHBhY2thZ2VzIGluIHN0b3JhZ2UuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicGVyc2lzdGVudF92b2x1bWVfY2xhaW0iOnsiZGVzY3JpcHRpb24iOiJQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgUFZDLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbWJlZGRlZE1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIHJlbGV2YW50IHRvIGFuIEVtYmVkZGVkUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYW4gdW5zdHJ1Y3R1cmVkIGtleSB2YWx1ZSBtYXAgc3RvcmVkIHdpdGggYSByZXNvdXJjZSB0aGF0IG1heSBiZSBzZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90IHF1ZXJ5YWJsZSBhbmQgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIG1vZGlmeWluZyBvYmplY3RzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucyIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJNYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIChzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UuIElzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgcmVzb3VyY2VzLCBhbHRob3VnaCBzb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lIGF1dG9tYXRpY2FsbHkuIE5hbWUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBjcmVhdGlvbiBpZGVtcG90ZW5jZSBhbmQgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgYmUgdXBkYXRlZC4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMjbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgY2hhcmFjdGVyaXN0aWNzIG9mIGEgdm9sdW1lIHJlcXVlc3RlZCBieSBhIHBvZCBhdXRob3IuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInByb3BlcnRpZXMiOnsiYWNjZXNzTW9kZXMiOnsiZGVzY3JpcHRpb24iOiJhY2Nlc3NNb2RlcyBjb250YWlucyB0aGUgZGVzaXJlZCBhY2Nlc3MgbW9kZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOiAqIEFuIGV4aXN0aW5nIFZvbHVtZVNuYXBzaG90IG9iamVjdCAoc25hcHNob3Quc3RvcmFnZS5rOHMuaW8vVm9sdW1lU25hcHNob3QpICogQW4gZXhpc3RpbmcgUFZDIChQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0pIElmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsIGl0IHdpbGwgY3JlYXRlIGEgbmV3IHZvbHVtZSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZS4gV2hlbiB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgaXMgZW5hYmxlZCwgZGF0YVNvdXJjZSBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlUmVmLCBhbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC4gSWYgdGhlIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIHRoZW4gZGF0YVNvdXJjZVJlZiB3aWxsIG5vdCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5IHZvbHVtZSBpcyBkZXNpcmVkLiBUaGlzIG1heSBiZSBhbnkgb2JqZWN0IGZyb20gYSBub24tZW1wdHkgQVBJIGdyb3VwIChub24gY29yZSBvYmplY3QpIG9yIGEgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdC4gV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QgbWF0Y2hlcyBzb21lIGluc3RhbGxlZCB2b2x1bWUgcG9wdWxhdG9yIG9yIGR5bmFtaWMgcHJvdmlzaW9uZXIuIFRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoIGlmIGJvdGggZmllbGRzIGFyZSBub24tZW1wdHksIHRoZXkgbXVzdCBoYXZlIHRoZSBzYW1lIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdoZW4gbmFtZXNwYWNlIGlzbid0IHNwZWNpZmllZCBpbiBkYXRhU291cmNlUmVmLCBib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYXV0b21hdGljYWxseSBpZiBvbmUgb2YgdGhlbSBpcyBlbXB0eSBhbmQgdGhlIG90aGVyIGlzIG5vbi1lbXB0eS4gV2hlbiBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LiBUaGVyZSBhcmUgdGhyZWUgaW1wb3J0YW50IGRpZmZlcmVuY2VzIGJldHdlZW4gZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZjogKiBXaGlsZSBkYXRhU291cmNlIG9ubHkgYWxsb3dzIHR3byBzcGVjaWZpYyB0eXBlcyBvZiBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBhbnkgbm9uLWNvcmUgb2JqZWN0LCBhcyB3ZWxsIGFzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3RzLiAqIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWYgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzIHNwZWNpZmllZC4gKiBXaGlsZSBkYXRhU291cmNlIG9ubHkgYWxsb3dzIGxvY2FsIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIG9iamVjdHMgaW4gYW55IG5hbWVzcGFjZXMuIChCZXRhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiAoQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZXNwYWNlIjp7ImRlc2NyaXB0aW9uIjoiTmFtZXNwYWNlIGlzIHRoZSBuYW1lc3BhY2Ugb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCBOb3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuIChBbHBoYSkgVGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoicmVzb3VyY2VzIHJlcHJlc2VudHMgdGhlIG1pbmltdW0gcmVzb3VyY2VzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIElmIFJlY292ZXJWb2x1bWVFeHBhbnNpb25GYWlsdXJlIGZlYXR1cmUgaXMgZW5hYmxlZCB1c2VycyBhcmUgYWxsb3dlZCB0byBzcGVjaWZ5IHJlc291cmNlIHJlcXVpcmVtZW50cyB0aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZSBzdGF0dXMgZmllbGQgb2YgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3Jlc291cmNlcyIsInByb3BlcnRpZXMiOnsiY2xhaW1zIjp7ImRlc2NyaXB0aW9uIjoiQ2xhaW1zIGxpc3RzIHRoZSBuYW1lcyBvZiByZXNvdXJjZXMsIGRlZmluZWQgaW4gc3BlYy5yZXNvdXJjZUNsYWltcywgdGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci4gXG4gVGhpcyBpcyBhbiBhbHBoYSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgdGhlIER5bmFtaWNSZXNvdXJjZUFsbG9jYXRpb24gZmVhdHVyZSBnYXRlLiBcbiBUaGlzIGZpZWxkIGlzIGltbXV0YWJsZS4gSXQgY2FuIG9ubHkgYmUgc2V0IGZvciBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VDbGFpbSByZWZlcmVuY2VzIG9uZSBlbnRyeSBpbiBQb2RTcGVjLlJlc291cmNlQ2xhaW1zLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBtYXRjaCB0aGUgbmFtZSBvZiBvbmUgZW50cnkgaW4gcG9kLnNwZWMucmVzb3VyY2VDbGFpbXMgb2YgdGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlIGluc2lkZSBhIGNvbnRhaW5lci4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtbWFwLWtleXMiOlsibmFtZSJdLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoibWFwIn0sImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC4gSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBvdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gUmVxdWVzdHMgY2Fubm90IGV4Y2VlZCBMaW1pdHMuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6InNlbGVjdG9yIGlzIGEgbGFiZWwgcXVlcnkgb3ZlciB2b2x1bWVzIHRvIGNvbnNpZGVyIGZvciBiaW5kaW5nLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjY2xhc3MtMSIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW9kZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU1vZGUgZGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmcgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MgaXMgZGlzYWJsZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVkX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmcgcmVzb3VyY2Utb3B0aW16YXRpb24gbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcmV2aW91c19kYXRhX2NvbGxlY3RlZCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJQcmV2aW91c0RhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciBnYXRoZXJlZCB0aGUgYXZhaWxhYmxlIFByb21ldGhldXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlndXJlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIGlzIGNvbmZpZ3VyZWQgdG8gY29ubmVjdCB0byBwcm9tZXRoZXVzLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0Nvbm5lY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgcHJvbWV0aGV1cyBjYW4gYmUgcXVlcmllZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3Rpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25uZWN0aW9uRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyB0ZXN0IHF1ZXJ5LiIsInR5cGUiOiJzdHJpbmcifSwic2VydmljZV9hZGRyZXNzIjp7ImRlc2NyaXB0aW9uIjoiU3ZjQWRkcmVzcyBpcyB0aGUgaW50ZXJuYWwgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlNraXBUTFNWZXJpZmljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSB0aGFub3MtcXVlcmllciBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsicHJvbWV0aGV1c19jb25maWd1cmVkIiwicHJvbWV0aGV1c19jb25uZWN0ZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXBvcnRzIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcmVwb3J0IGdlbmVyYXRpb24uIiwicHJvcGVydGllcyI6eyJkYXRhX2NvbGxlY3RlZCI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGRhdGEgd2FzIGNvbGxlY3RlZCBmb3IgdGhlIGxhc3QgcXVlcnkuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGF0YV9jb2xsZWN0aW9uX21lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGlvbk1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGEgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFfY29sbGVjdGVkIHN0YXR1cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfaG91cl9xdWVyaWVkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdEhvdXJRdWVyaWVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgdGltZSByYW5nZSBmb3Igd2hpY2ggbWV0cmljcyB3ZXJlIGxhc3QgcXVlcmllZC4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcG9ydF9tb250aCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydE1vbnRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbW9udGggZm9yIHdoaWNoIHJlcG9ydHMgYXJlIGJlaW5nIGdlbmVyYXRlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZSByZXByZXNlbnRzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiB0aGUgc291cmNlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiY2hlY2tfY3ljbGUgaXMgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBzb3VyY2Ugc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIHNvdXJjZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiZXJyb3IgcmVwcmVzZW50cyBhbnkgZXJyb3JzIGVuY291bnRlcmVkIHdoZW4gY3JlYXRpbmcgdGhlIHNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY2hlY2tfdGltZSI6eyJkZXNjcmlwdGlvbiI6Imxhc3RfY2hlY2tfdGltZSBpcyB0aGUgdGltZSB0aGF0IHRoZSBsYXN0IHNvdXJjZSBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgdGhhdCB0aGUgb3BlcmF0b3IgYXR0ZW1wdGVkIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZV9kZWZpbmVkIHJlcHJlc2VudHMgd2hldGhlciB0aGUgZGVmaW5lZCBzb3VyY2UgbmFtZSBleGlzdHMgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sInNvdXJjZXNfcGF0aCI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzdG9yYWdlIjp7ImRlc2NyaXB0aW9uIjoiU3RvcmFnZSBpcyBhIGZpZWxkIiwicHJvcGVydGllcyI6eyJ2b2x1bWVfbW91bnRlZCI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZU1vdW50ZWQgaXMgYSBib29sIHRvIGluZGljYXRlIGlmIHN0b3JhZ2Ugdm9sdW1lIHdhcyBtb3VudGVkLiIsInR5cGUiOiJib29sZWFuIn0sInZvbHVtZV90eXBlIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lVHlwZSBpcyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2b2x1bWUgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJlcnJvciI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgZXJyb3IgZW5jb3VudGVyZWQgdXBsb2FkaW5nIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJpbmdyZXNzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfZmlsZXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZEZpbGVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGlzdCBvZiBmaWxlcyBpbiB0aGUgbGFzdCBwYXlsb2FkIHRoYXQgd2FzIHNlbnQuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwibGFzdF9wYXlsb2FkX21hbmlmZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRNYW5pZmVzdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBtYW5pZmVzdElEIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBuYW1lIG9mIHRoZSBsYXN0IHBheWxvYWQgZmlsZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9yZXF1ZXN0X2lkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRSZXF1ZXN0SUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaW5zaWdodHMgcmVxdWVzdCBpZCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9zdWNjZXNzZnVsX3VwbG9hZF90aW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFN1Y2Nlc3NmdWxVcGxvYWRUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIHRpbWUgb2YgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCB1cGxvYWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF91cGxvYWRfc3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFVwbG9hZFN0YXR1cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBodHRwIHN0YXR1cyBvZiB0aGUgbGFzdCB1cGxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBzaG91bGQgdXBsb2FkIHRvIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgdHJ1ZSIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF9jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS4gVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInNwZWMiXSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6W10sInN0b3JlZFZlcnNpb25zIjpbXX19 -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjI5NzVhZDc3MmZhNzlhZGE1OThhYjVmMDU0ZTJjYmQ4MjFkY2I3MzRiZDdiMTFkMGNiYzdiMzhkN2IyOWJlNTQiLCJjcmVhdGVkQXQiOiIyMDIzLTEwLTE4VDEzOjEwOjU0WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjMyLjAiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMC4xIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAzLjAuMSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LiBUaGUgb3BlcmF0b3IgcnVucyBvbiB0aGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBPcGVuc2hpZnQuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzIHRoYXQgaXQgdXBsb2FkcyB0byBDb3N0IE1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pIHRvIGJlIHByb2Nlc3NlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBDb3N0IE1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBDb3N0IE1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgdGhlIHJlc3VsdHMgb2YgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIENvc3QgTWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhIHNvdXJjZSBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEEgc291cmNlIGlzIHJlcXVpcmVkIGZvciBDb3N0IE1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYzLjAuMDpcbiogRGFpbHkgcmVwb3J0IGdlbmVyYXRpb246IE9wZXJhdG9yIHZlcnNpb25zIHByaW9yIHRvIHYzLjAuMCBnZW5lcmF0ZWQgc2VxdWVudGlhbCByZXBvcnRzLiBOb3csIHJlcG9ydHMgYXJlIGdlbmVyYXRlZCBzdGFydGluZyBhdCAwOjAwIFVUQy4gQW55IHBheWxvYWRzIGdlbmVyYXRlZCB0aHJvdWdob3V0IGEgZ2l2ZW4gZGF5IHdpbGwgY29udGFpbiBhbGwgZGF0YSBzdGFydGluZyBmcm9tIDA6MDAgVVRDLiBPbmNlIHRoZSBuZXh0IGRheSBzdGFydHMsIHRoZSBwcmV2aW91cyBkYXkncyByZXBvcnRzIGFyZSBwYWNrYWdlZCwgYW5kIHRoZSBuZXcgcmVwb3J0IGFnYWluIHN0YXJ0cyBhdCAwOjAwIFVUQyBmb3IgdGhlIGN1cnJlbnQgZGF5LlxuKiBGYWlsZWQgcXVlcnkgcmV0cnk6IEluIGFuIGF0dGVtcHQgdG8gcHJldmVudCBtaXNzaW5nIGRhdGEsIHRoZSBvcGVyYXRvciB3aWxsIHJldHJ5IHF1ZXJpZXMgZnJvbSB0aGUgbGFzdCBzdWNjZXNzZnVsIHF1ZXJ5IHRpbWUsIHVwIHRvIDUgdGltZXMuXG5cbiMjIE5ldyBpbiB2Mi4wLjA6XG4qIEFkZHMgbWV0cmljcyBhbmQgcmVwb3J0IGdlbmVyYXRpb24gZm9yIHJlc291cmNlIG9wdGltaXphdGlvbi4gVGhpcyBmZWF0dXJlIHdpbGwgY29sbGVjdCBhZGRpdGlvbmFsIHVzYWdlIG1ldHJpY3MgYW5kIGNyZWF0ZSBhIG5ldyByZXBvcnQgaW4gdGhlIHBheWxvYWQuIFRoZXNlIG1ldHJpY3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb25gIHRvIGB0cnVlYC5cbiogQ29sbGVjdCBhbGwgYXZhaWxhYmxlIFByb21ldGhldXMgZGF0YSB1cG9uIENSIGNyZWF0aW9uLiBUaGlzIGZlYXR1cmUgb25seSBhcHBsaWVzIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy4gVGhlIG9wZXJhdG9yIHdpbGwgY2hlY2sgdGhlIG1vbml0b3Jpbmcgc3RhY2sgY29uZmlndXJhdGlvbiBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UuIFRoZSBvcGVyYXRvciB3aWxsIHVzZSB0aGUgYHJldGVudGlvbmAgcGVyaW9kIHNldCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpZiBkZWZpbmVkLCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gT3RoZXJ3aXNlIGl0IHdpbGwgZmFsbCBiYWNrIHRvIGNvbGxlY3RpbmcgMTQgZGF5cyBvZiBkYXRhLCBpZiBhdmFpbGFibGUuIFRoaXMgZGF0YSBjb2xsZWN0aW9uIG1heSBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGFgIHRvIGBmYWxzZWAuIFR1cm5pbmcgdGhpcyBmZWF0dXJlIG9mZiByZXN1bHRzIGluIHRoZSBvcGVyYXRvciBjb2xsZWN0aW5nIG1ldHJpY3MgZnJvbSB0aGUgdGltZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQsIGZvcndhcmQuXG5cbiMjIExpbWl0YXRpb25zIGFuZCBQcmUtUmVxdWlzaXRlc1xuIyMjIyBMaW1pdGF0aW9ucyAoUG90ZW50aWFsIGZvciBtZXRyaWNzIGRhdGEgbG9zcylcbiogQSBzb3VyY2UgKiptdXN0KiogZXhpc3QgaW4gY29uc29sZS5yZWRoYXQuY29tIGZvciBhbiB1cGxvYWRlZCBwYXlsb2FkIHRvIGJlIHByb2Nlc3NlZCBieSBDb3N0IE1hbmFnZW1lbnQuIFRoZSBvcGVyYXRvciBzZW5kcyB0aGUgcGF5bG9hZCB0byB0aGUgUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2Ugd2hpY2ggdXN1YWxseSByZXR1cm5zIHN1Y2Nlc3NmdWxseSwgYnV0IHRoZSBvcGVyYXRvciBkb2VzIG5vdCBjdXJyZW50bHkgY29uZmlybSB3aXRoIENvc3QgTWFuYWdlbWVudCB0aGF0IHRoZSBwYXlsb2FkIHdhcyBwcm9jZXNzZWQuIEFmdGVyIEluZ3Jlc3MgYWNjZXB0cyB0aGUgdXBsb2FkZWQgcGF5bG9hZCwgaXQgaXMgZGVsZXRlZCBmcm9tIHRoZSBvcGVyYXRvci4gSWYgdGhlIGRhdGEgd2l0aGluIHRoZSBwYXlsb2FkIGlzIG5vdCBwcm9jZXNzZWQsIGEgZ2FwIHdpbGwgYmUgaW50cm9kdWNlZCBpbiB0aGUgdXNhZ2UgbWV0cmljcy4gRGF0YSBtYXkgYmUgcmVjb2xsZWN0ZWQgYnkgZGVsZXRpbmcgdGhlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLCBjcmVhdGluZyBhIG5ldyBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgYW5kIHNldHRpbmcgYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAuIFRoaXMgcmUtY29sbGVjdGlvbiBvZiBkYXRhIHdpbGwgZ2F0aGVyIGFsbCBkYXRhIHN0b3JlZCBpbiBQcm9tZXRoZXVzLCB1cCB0byA5MCBkYXlzLlxuXG4qKk5vdGUqKiBUaGUgZm9sbG93aW5nIGxpbWl0YXRpb25zIGFyZSBzcGVjaWZpYyB0byBvcGVyYXRvcnMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcms6XG4qIFRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgd2lsbCBub3QgYmUgYWJsZSB0byBnZW5lcmF0ZSBuZXcgcmVwb3J0cyBpZiB0aGUgUFZDIHN0b3JhZ2UgaXMgZnVsbC4gSWYgdGhpcyBvY2N1cnMsIHRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZGVsZXRlZCBmcm9tIHRoZSBQVkMgc28gdGhhdCB0aGUgb3BlcmF0b3IgY2FuIGZ1bmN0aW9uIGFzIG5vcm1hbC5cbiogVGhlIGRlZmF1bHQgcmVwb3J0IHJldGVudGlvbiBpcyAzMCByZXBvcnRzIChhYm91dCBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEpLiBUaGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgYW5kIHVwbG9hZGVkIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBldmVyeSB3ZWVrLCBvciB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgdGhlIGRhdGEgd2lsbCBiZSBsb3N0LlxuXG4jIyMjIFN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcblRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGFuZCB1c2UgdGhlIGZvbGxvd2luZyBQVkMgd2hlbiBpbnN0YWxsZWQ6XG5cbiAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcblxuSWYgYSBkaWZmZXJlbnQgUFZDIHNob3VsZCBiZSB1dGlsaXplZCwgYSB2YWxpZCBQVkMgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGFzIGRlc2NyaWJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBiZWxvdy4gVGhlIFBWQyB0byBiZSB1c2VkIG1heSBleGlzdCBhbHJlYWR5LCBvciB0aGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBpdC5cblxuVG8gdXNlIHRoZSBkZWZhdWx0IHNwZWNpZmljYXRpb24sIHRoZSBmb2xsb3cgYXNzdW1wdGlvbnMgbXVzdCBiZSBtZXQ6XG4xLiBBIGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGRlZmluZWQuXG4yLiBEeW5hbWljIHByb3Zpc2lvbmluZyBmb3IgdGhhdCBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBlbmFibGVkLlxuXG5JZiB0aGVzZSBhc3N1bXB0aW9ucyBhcmUgbm90IG1ldCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IGRlcGxveSBjb3JyZWN0bHkuIEluIHRoZXNlIGNhc2VzLCBzdG9yYWdlIG11c3QgYmUgbWFudWFsbHkgY29uZmlndXJlZC4gQWZ0ZXIgY29uZmlndXJpbmcgc3RvcmFnZSwgYSB2YWxpZCBQVkMgdGVtcGxhdGUgc2hvdWxkIGJlIHN1cHBsaWVkIGluIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBzcGVjIG9mIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IuXG5cbiMjIENvbmZpZ3VyYWJsZSBwYXJhbWV0ZXJzOlxuICAqIGBhdXRoZW50aWNhdGlvbmA6XG4gICAgKiBgdHlwZTogdG9rZW5gIC1cdTAwM2UgVGhlIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBmb3IgY29ubmVjdGluZyB0byBgY29uc29sZS5yZWRoYXQuY29tYC4gVGhlIGRlZmF1bHQgYW5kIHByZWZlcnJlZCBtZXRob2QgaXMgYHRva2VuYC4gYGJhc2ljYCBpcyB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYC4gVGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgKipvbmx5IGlmKiogdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYC5cbiAgKiBgcGFja2FnaW5nYDpcbiAgICAqIGBtYXhfcmVwb3J0c190b19zdG9yZTogMzBgIC1cdTAwM2UgVGhlIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlIHdoZW4gY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUuIFRoZSBkZWZhdWx0IGlzIDMwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBubyBtYXhpbXVtLiBXaGVuIHRoZSBvcGVyYXRvciBpcyBub3QgY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUsIHRoaXMgcGFyYW1ldGVyIGhhcyBubyBlZmZlY3QuIFJlcG9ydHMgYXJlIHJlbW92ZWQgYXMgc29vbiBhcyB0aGV5IGFyZSB1cGxvYWRlZC5cbiAgICAqIGBtYXhfc2l6ZTogMTAwYCAtXHUwMDNlIFRoZSBtYXhpbXVtIHNpemUgZm9yIHBhY2thZ2VkIGZpbGVzIGluIE1lZ2FieXRlcyBwcmlvciB0byBjb21wcmVzc2lvbi4gVGhlIGRlZmF1bHQgaXMgMTAwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBtYXhpbXVtIG9mIDEwMC5cbiAgKiBgcHJvbWV0aGV1c19jb25maWdgOlxuICAgICogYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGNvbGxlY3RpbmcgYWxsIGF2YWlsYWJsZSBkYXRhIGluIFByb21ldGhldXMgKip1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbioqIChUaGlzIHBhcmFtZXRlciB3aWxsIHN0YXJ0IHRvIGFwcGVhciBpbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzIHRoYXQgd2VyZSBjcmVhdGVkIHByaW9yIHRvIHYyLjAuMCBidXQgd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IHVubGVzcyB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGRlbGV0ZWQgYW5kIHJlY3JlYXRlZCkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC4gVGhlIG9wZXJhdG9yIHdpbGwgZmlyc3QgbG9vayBmb3IgYSBgcmV0ZW50aW9uYCBwZXJpb2QgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlIGFuZCBnYXRoZXIgZGF0YSBvdmVyIHRoaXMgdGltZSBwZXJpb2QgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIElmIHRoaXMgY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0LCB0aGUgZGVmYXVsdCBpcyAxNCBkYXlzLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQ6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgZGlzYWJsaW5nIHRoZSBjb2xsZWN0aW9uIG9mIG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbjogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgUmVzb3VyY2UgT3B0aW1pemF0aW9uLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgY29udGV4dF90aW1lb3V0OiAxMjBgIC1cdTAwM2UgVGhlIHRpbWUgaW4gc2Vjb25kcyBiZWZvcmUgUHJvbWV0aGV1cyBxdWVyaWVzIHRpbWVvdXQgZHVlIHRvIGV4Y2VlZGluZyBjb250ZXh0IHRpbWVvdXQuIFRoZSBkZWZhdWx0IGlzIDEyMCwgd2l0aCBhIG1pbmltdW0gb2YgMTAgYW5kIG1heGltdW0gb2YgMTgwLlxuICAqIGBzb3VyY2VgOlxuICAgICogYG5hbWU6ICcnYCAtXHUwMDNlIFRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGluIGBjb25zb2xlLnJlZGhhdC5jb21gLiBJZiB0aGUgbmFtZSB2YWx1ZSBpcyBlbXB0eSwgdGhlIGRlZmF1bHQgaW50ZXJncmF0aW9uIG5hbWUgaXMgdGhlICoqY2x1c3RlciBpZCoqLlxuICAgICogYGNyZWF0ZV9zb3VyY2U6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3Igd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIHRoZSBzb3VyY2UgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGEgc291cmNlIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhIHNvdXJjZSBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIGlzIHRoZSBwcmVmZXJyZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBhIFNlY3JldCBtdXN0IGJlIGNyZWF0ZWQgd2hpY2ggaG9sZHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNyZWRlbnRpYWxzOlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYFdvcmtsb2Fkc2AgLVx1MDAzZSBgU2VjcmV0c2AgLVx1MDAzZSBzZWxlY3QgUHJvamVjdDogYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENyZWF0ZWAgLVx1MDAzZSBgS2V5L1ZhbHVlIFNlY3JldGBcbjIuIEdpdmUgdGhlIFNlY3JldCBhIG5hbWUgYW5kIGFkZCAyIGtleXM6IGB1c2VybmFtZWAgYW5kIGBwYXNzd29yZGAgKGFsbCBsb3dlcmNhc2UpLiBUaGUgdmFsdWVzIGZvciB0aGVzZSBrZXlzIGNvcnJlc3BvbmQgdG8gY29uc29sZS5yZWRoYXQuY29tIGNyZWRlbnRpYWxzLlxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBzb3VyY2UsIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSB0aGUgYG5hbWVgIGZpZWxkIHZhbHVlIHdpdGggdGhlIHByZWZlcnJlZCBuYW1lIG9mIHRoZSBzb3VyY2UgdG8gYmUgY3JlYXRlZC5cbiAgICAqIFJlcGxhY2UgdGhlIGBjcmVhdGVfc291cmNlYCBmaWVsZCB2YWx1ZSB3aXRoIGB0cnVlYC5cblxuICAgICoqTm90ZToqKiBpZiB0aGUgc291cmNlIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgc291cmNlIGV4aXN0cy5cblxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYyAoYmVsb3cgaXMgb25seSBhIHRlbXBsYXRlLiBBbnkgX3ZhbGlkXyBgUGVyc2lzdGVudFZvbHVtZUNsYWltYCBtYXkgYmUgZGVmaW5lZCBoZXJlKTpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhIFNvdXJjZVxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgc291cmNlLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbU291cmNlcyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9zb3VyY2VzLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBzb3VyY2UgdG8gQ29zdCBNYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRpbmcgYSBzb3VyY2U6XG4xLiBOYXZpZ2F0ZSB0byB0aGUgU291cmNlcyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0YCB0YWJcbjMuIENyZWF0ZSBhIG5ldyBgUmVkIEhhdCBPcGVuc2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtYCBzb3VyY2U6XG4gICAgKiBnaXZlIHRoZSBzb3VyY2UgYSB1bmlxdWUgbmFtZVxuICAgICogYWRkIHRoZSBDb3N0IE1hbmFnZW1lbnQgYXBwbGljYXRpb25cbiAgICAqIGFkZCB0aGUgY2x1c3RlciBpZGVudGlmaWVyXG40LiBJbiB0aGUgU291cmNlIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIHNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiICBodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9hcGkvaW5ncmVzcy92MS91cGxvYWQgLXUgVVNFUk5BTUU6UEFTU1xuXG53aGVyZSBgVVNFUk5BTUVgIGFuZCBgUEFTU2AgY29ycmVzcG9uZCB0byB0aGUgdXNlciBjcmVkZW50aWFscyBmb3IgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLCBhbmQgYEZJTEVfTkFNRWAgaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9ydCB0byB1cGxvYWQuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7fSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1sZWFkZXItZWxlY3QiXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6Mjk3NWFkNzcyZmE3OWFkYTU5OGFiNWYwNTRlMmNiZDgyMWRjYjczNGJkN2IxMWQwY2JjN2IzOGQ3YjI5YmU1NCIsIm5hbWUiOiJtYW5hZ2VyIiwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJtYWludGFpbmVycyI6W3siZW1haWwiOiJjb3N0bWFuYWdlbWVudEByZWRoYXQuY29tIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50In1dLCJtYXR1cml0eSI6ImFscGhhIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6Mjk3NWFkNzcyZmE3OWFkYTU5OGFiNWYwNTRlMmNiZDgyMWRjYjczNGJkN2IxMWQwY2JjN2IzOGQ3YjI5YmU1NCIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLTI5NzVhZDc3MmZhNzlhZGE1OThhYjVmMDU0ZTJjYmQ4MjFkY2I3MzRiZDdiMTFkMGNiYzdiMzhkN2IyOWJlNTQtYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6Mjk3NWFkNzcyZmE3OWFkYTU5OGFiNWYwNTRlMmNiZDgyMWRjYjczNGJkN2IxMWQwY2JjN2IzOGQ3YjI5YmU1NCIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4wLjAiLCJ2ZXJzaW9uIjoiMy4wLjEifX0= + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": { + "collect_previous_data": true, + "context_timeout": 120, + "disable_metrics_collection_cost_management": false, + "disable_metrics_collection_resource_optimization": false + }, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "true" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:2975ad772fa79ada598ab5f054e2cbd821dcb734bd7b11d0cbc7b38d7b29be54 + createdAt: "2023-10-18T13:10:54Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v1.32.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 3.0.1 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift. The operator runs on the latest supported versions of Openshift. This operator obtains OpenShift usage data by querying Prometheus every hour to create metric reports that it uploads to Cost Management at [console.redhat.com](https://console.redhat.com) to be processed. For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to Cost Management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The CostManagement Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for Cost Management by: + * Querying Prometheus to gather the necessary metrics for Cost Management. + * Writing the results of Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * Resource Optimization metrics collection. + * The operator can be configured to gather all previous data within the configured retention period or a maximum of 90 days. The default data collection period is the 14 previous days. This setting is only applicable to newly created CostManagementMetricsConfigs. + * The operator can be configured to automatically upload the packaged reports to Cost Management through Red Hat Insights Ingress service. + * The operator can create a source in console.redhat.com. A source is required for Cost Management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## New in v3.0.0: + * Daily report generation: Operator versions prior to v3.0.0 generated sequential reports. Now, reports are generated starting at 0:00 UTC. Any payloads generated throughout a given day will contain all data starting from 0:00 UTC. Once the next day starts, the previous day's reports are packaged, and the new report again starts at 0:00 UTC for the current day. + * Failed query retry: In an attempt to prevent missing data, the operator will retry queries from the last successful query time, up to 5 times. + + ## New in v2.0.0: + * Adds metrics and report generation for resource optimization. This feature will collect additional usage metrics and create a new report in the payload. These metrics are enabled by default, but can be disabled by setting `disable_metrics_collection_resource_optimization` to `true`. + * Collect all available Prometheus data upon CR creation. This feature only applies to newly created CostManagementMetricsConfigs. The operator will check the monitoring stack configuration in the `openshift-monitoring` namespace. The operator will use the `retention` period set in the `cluster-monitoring-config` ConfigMap if defined, up to a maximum of 90 days. Otherwise it will fall back to collecting 14 days of data, if available. This data collection may be disabled by setting `collect_previous_data` to `false`. Turning this feature off results in the operator collecting metrics from the time the CostManagementMetricsConfig is created, forward. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * A source **must** exist in console.redhat.com for an uploaded payload to be processed by Cost Management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with Cost Management that the payload was processed. After Ingress accepts the uploaded payload, it is deleted from the operator. If the data within the payload is not processed, a gap will be introduced in the usage metrics. Data may be recollected by deleting the `CostManagementMetricsConfig`, creating a new `CostManagementMetricsConfig`, and setting `collect_previous_data: true`. This re-collection of data will gather all data stored in Prometheus, up to 90 days. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is full. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configurable parameters: + * `authentication`: + * `type: token` -> The authentication method for connecting to `console.redhat.com`. The default and preferred method is `token`. `basic` is used when the openshift-config pull-secret does not contain a token for `console.redhat.com`. + * `secret_name` -> The Secret used by the operator when the authentication type is `basic`. This parameter is required **only if** the authentication type is `basic`. + * `packaging`: + * `max_reports_to_store: 30` -> The number of reports to store when configured in air-gapped mode. The default is 30, with a minimum of 1 and no maximum. When the operator is not configured in air-gapped mode, this parameter has no effect. Reports are removed as soon as they are uploaded. + * `max_size: 100` -> The maximum size for packaged files in Megabytes prior to compression. The default is 100, with a minimum of 1 and maximum of 100. + * `prometheus_config`: + * `collect_previous_data: true` -> Toggle for collecting all available data in Prometheus **upon CostManagementMetricsConfig creation** (This parameter will start to appear in CostManagementMetricsConfigs that were created prior to v2.0.0 but will not have any effect unless the CostManagementMetricsConfig is deleted and recreated). The default is `true`. The operator will first look for a `retention` period in the `cluster-monitoring-config` ConfigMap in the `openshift-monitoring` namespace and gather data over this time period up to a maximum of 90 days. If this configuration is not set, the default is 14 days. (New in v2.0.0) + * `disable_metrics_collection_cost_management: false` -> Toggle for disabling the collection of metrics for Cost Management. The default is false. (New in v2.0.0) + * `disable_metrics_collection_resource_optimization: false` -> Toggle for disabling the collection of metrics for Resource Optimization. The default is false. (New in v2.0.0) + * `context_timeout: 120` -> The time in seconds before Prometheus queries timeout due to exceeding context timeout. The default is 120, with a minimum of 10 and maximum of 180. + * `source`: + * `name: ''` -> The name of the source the operator will create in `console.redhat.com`. If the name value is empty, the default intergration name is the **cluster id**. + * `create_source: false` -> Toggle for whether or not the operator will create the source in `console.redhat.com`. The default is False. This parameter should be switched to True when a source does not already exist in `console.redhat.com` for this cluster. + * `check_cycle: 1440` -> The time in minutes to wait between checking if a source exists for this cluster. The default is 1440 minutes (24 hrs). + * `upload`: + * `upload_cycle: 360` -> The time in minutes between payload uploads. The default is 360 (6 hours). + * `upload_toggle: true` -> Toggle to turn upload on or off -> true means upload, false means do not upload (false == air-gapped mode). The default is `true`. + * `upload_wait` -> The amount of time (in seconds) to pause before uploading a payload. The default is a random number between 0 and 35. This is used to decrease service load, but may be set to `0` if desired. + * `volume_claim_template` -> see the "Storage configuration prerequisite" section above. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` is the preferred authentication method, a Secret must be created which holds username and password credentials: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys: `username` and `password` (all lowercase). The values for these keys correspond to console.redhat.com credentials. + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management source, edit the following values in the `source` field: + * Replace the `name` field value with the preferred name of the source to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the source already exists, replace the empty string value of the `name` field with the existing name, and leave `create_source` as false. This will allow the operator to confirm that the source exists. + + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec (below is only a template. Any _valid_ `PersistentVolumeClaim` may be defined here): + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360 + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create a Source + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create a source. This process must be done manually. In the console.redhat.com platform, open the [Sources menu](https://console.redhat.com/settings/sources/) to begin adding an OpenShift source to Cost Management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Creating a source: + 1. Navigate to the Sources menu + 2. Select the `Red Hat` tab + 3. Create a new `Red Hat Openshift Container Platform` source: + * give the source a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Source wizard, review the details and click `Finish` to create the source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://console.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:afcee273a058fa1ac7643271ee775bdc1ca5d765f0ea36af3b3a6633d9fcbd73 name: "" @@ -425,12 +4201,325 @@ properties: value: packageName: costmanagement-metrics-operator version: 3.1.0 -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjEzLjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIFRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZW5kcG9pbnQgdXNlZCB0byBvYnRhaW4gdGhlIHNlcnZpY2UgYWNjb3VudCB0b2tlbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vc3NvLnJlZGhhdC5jb20vYXV0aC9yZWFsbXMvcmVkaGF0LWV4dGVybmFsL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYC4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYywgc2VydmljZS1hY2NvdW50IG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiAoZGVwcmVjYXRlZCkgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwic2VydmljZS1hY2NvdW50XCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCBmcm9tIHRoZSBzZWNyZXQgY29udGFpbmluZyBzZXJ2aWNlIGFjY291bnQgaW5mb3JtYXRpb24uIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZWZhdWx0IjoxNDQwLCJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiY3JlYXRlX3NvdXJjZSB0b2dnbGVzIHRoZSBjcmVhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvc291cmNlcy92MS4wLyIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIHNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tIG9yIGNoZWNrL2NyZWF0ZSBzb3VyY2VzLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiYWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZSBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIFdoZW4gdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIGlzIGVuYWJsZWQsIGRhdGFTb3VyY2UgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZVJlZiwgYW5kIGRhdGFTb3VyY2VSZWYgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZSB3aGVuIGRhdGFTb3VyY2VSZWYubmFtZXNwYWNlIGlzIG5vdCBzcGVjaWZpZWQuIElmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJkYXRhU291cmNlUmVmIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZVJlZiBzcGVjaWZpZXMgdGhlIG9iamVjdCBmcm9tIHdoaWNoIHRvIHBvcHVsYXRlIHRoZSB2b2x1bWUgd2l0aCBkYXRhLCBpZiBhIG5vbi1lbXB0eSB2b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uIGNvcmUgb2JqZWN0KSBvciBhIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3QuIFdoZW4gdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQsIHZvbHVtZSBiaW5kaW5nIHdpbGwgb25seSBzdWNjZWVkIGlmIHRoZSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljIHByb3Zpc2lvbmVyLiBUaGlzIGZpZWxkIHdpbGwgcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGF0YVNvdXJjZSBmaWVsZCBhbmQgYXMgc3VjaCBpZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3aGVuIG5hbWVzcGFjZSBpc24ndCBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgYm90aCBmaWVsZHMgKGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFdoZW4gbmFtZXNwYWNlIGlzIHNwZWNpZmllZCBpbiBkYXRhU291cmNlUmVmLCBkYXRhU291cmNlIGlzbid0IHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhbmQgbXVzdCBiZSBlbXB0eS4gVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6ICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyB0d28gc3BlY2lmaWMgdHlwZXMgb2Ygb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3MgYW55IG5vbi1jb3JlIG9iamVjdCwgYXMgd2VsbCBhcyBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0cy4gKiBXaGlsZSBkYXRhU291cmNlIGlnbm9yZXMgZGlzYWxsb3dlZCB2YWx1ZXMgKGRyb3BwaW5nIHRoZW0pLCBkYXRhU291cmNlUmVmIHByZXNlcnZlcyBhbGwgdmFsdWVzLCBhbmQgZ2VuZXJhdGVzIGFuIGVycm9yIGlmIGEgZGlzYWxsb3dlZCB2YWx1ZSBpcyBzcGVjaWZpZWQuICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzIGluIGFueSBuYW1lc3BhY2VzLiAoQmV0YSkgVXNpbmcgdGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4gKEFscGhhKSBVc2luZyB0aGUgbmFtZXNwYWNlIGZpZWxkIG9mIGRhdGFTb3VyY2VSZWYgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWVzcGFjZSBpcyB0aGUgbmFtZXNwYWNlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQgTm90ZSB0aGF0IHdoZW4gYSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCBhIGdhdGV3YXkubmV0d29ya2luZy5rOHMuaW8vUmVmZXJlbmNlR3JhbnQgb2JqZWN0IGlzIHJlcXVpcmVkIGluIHRoZSByZWZlcmVudCBuYW1lc3BhY2UgdG8gYWxsb3cgdGhhdCBuYW1lc3BhY2UncyBvd25lciB0byBhY2NlcHQgdGhlIHJlZmVyZW5jZS4gU2VlIHRoZSBSZWZlcmVuY2VHcmFudCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLiAoQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBJZiBSZWNvdmVyVm9sdW1lRXhwYW5zaW9uRmFpbHVyZSBmZWF0dXJlIGlzIGVuYWJsZWQgdXNlcnMgYXJlIGFsbG93ZWQgdG8gc3BlY2lmeSByZXNvdXJjZSByZXF1aXJlbWVudHMgdGhhdCBhcmUgbG93ZXIgdGhhbiBwcmV2aW91cyB2YWx1ZSBidXQgbXVzdCBzdGlsbCBiZSBoaWdoZXIgdGhhbiBjYXBhY2l0eSByZWNvcmRlZCBpbiB0aGUgc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsIHRoYXQgYXJlIHVzZWQgYnkgdGhpcyBjb250YWluZXIuIFxuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIHRoZSBEeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS4gXG4gVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mIHRoZSBQb2Qgd2hlcmUgdGhpcyBmaWVsZCBpcyB1c2VkLiBJdCBtYWtlcyB0aGF0IHJlc291cmNlIGF2YWlsYWJsZSBpbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyBhIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJzdG9yYWdlQ2xhc3NOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2tlbl91cmwiOnsiZGVzY3JpcHRpb24iOiJUb2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCB1c2VkIHRvIGdlbmVyYXRlIGEgc2VydmljZSBhY2NvdW50IHRva2VuLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIiwic2VydmljZS1hY2NvdW50Il0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBXaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsIGFuZCBkYXRhU291cmNlUmVmIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2Ugd2hlbiBkYXRhU291cmNlUmVmLm5hbWVzcGFjZSBpcyBub3Qgc3BlY2lmaWVkLiBJZiB0aGUgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgdGhlbiBkYXRhU291cmNlUmVmIHdpbGwgbm90IGJlIGNvcGllZCB0byBkYXRhU291cmNlLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGRhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGJvdGggZmllbGRzIChkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBXaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgZGF0YVNvdXJjZSBpc24ndCBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYW5kIG11c3QgYmUgZW1wdHkuIFRoZXJlIGFyZSB0aHJlZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmOiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgZGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgZGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgbG9jYWwgb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3Mgb2JqZWN0cyBpbiBhbnkgbmFtZXNwYWNlcy4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIChBbHBoYSkgVXNpbmcgdGhlIG5hbWVzcGFjZSBmaWVsZCBvZiBkYXRhU291cmNlUmVmIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIE5vdGUgdGhhdCB3aGVuIGEgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgYSBnYXRld2F5Lm5ldHdvcmtpbmcuazhzLmlvL1JlZmVyZW5jZUdyYW50IG9iamVjdCBpcyByZXF1aXJlZCBpbiB0aGUgcmVmZXJlbnQgbmFtZXNwYWNlIHRvIGFsbG93IHRoYXQgbmFtZXNwYWNlJ3Mgb3duZXIgdG8gYWNjZXB0IHRoZSByZWZlcmVuY2UuIFNlZSB0aGUgUmVmZXJlbmNlR3JhbnQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gKEFscGhhKSBUaGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwcm9tZXRoZXVzIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcHJlbWV0aGV1cyBxdWVyaWVzLiIsInByb3BlcnRpZXMiOnsiY29uZmlndXJhdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgY29uZmlndXJhdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNvbnRleHRfdGltZW91dCI6eyJkZXNjcmlwdGlvbiI6IkNvbnRleHRUaW1lb3V0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdGUgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25Db3N0TWFuYWdlbWVudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyByZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gSW50ZWdyYXRpb24gd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgaW50ZWdyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0X2NoZWNrX3RpbWUgaXMgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJjcmVhdGVkQXQiOiIyMDIzLTEyLTA5VDAxOjEyOjA0WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjMyLjAiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMS4wIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAzLjEuMCBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LiBUaGUgb3BlcmF0b3IgcnVucyBvbiB0aGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBPcGVuc2hpZnQuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzIHRoYXQgaXQgdXBsb2FkcyB0byBDb3N0IE1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pIHRvIGJlIHByb2Nlc3NlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBDb3N0IE1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBDb3N0IE1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgdGhlIHJlc3VsdHMgb2YgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIENvc3QgTWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhbiBpbnRlZ3JhdGlvbiBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEFuIGludGVncmF0aW9uIGlzIHJlcXVpcmVkIGZvciBDb3N0IE1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YCBcblxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2Agb3IgYHNlcnZpY2UtYWNjb3VudGAuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICAqIGZvciBiYXNpYyBhdXRoIHR5cGUgKGRlcHJlY2F0ZWQpXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcbiAgICAgICAgICBcbiAgICAgICAgKiBmb3Igc2VydmljZS1hY2NvdW50IGF1dGggdHlwZVxuICAgICAgICBgYGBcbiAgICAgICAgICBhdXRoZW50aWNhdGlvbjpcbiAgICAgICAgICAgIHNlY3JldF9uYW1lOiBTRUNSRVQtTkFNRVxuICAgICAgICAgICAgdHlwZTogc2VydmljZS1hY2NvdW50XG4gICAgICAgIGBgYFxuXG4zLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gY3JlYXRlIGEgY29zdCBtYW5hZ2VtZW50IGludGVncmF0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBgc291cmNlYCBmaWVsZDpcbiAgICAqIFJlcGxhY2UgdGhlIGBuYW1lYCBmaWVsZCB2YWx1ZSB3aXRoIHRoZSBwcmVmZXJyZWQgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdG8gYmUgY3JlYXRlZC5cbiAgICAqIFJlcGxhY2UgdGhlIGBjcmVhdGVfc291cmNlYCBmaWVsZCB2YWx1ZSB3aXRoIGB0cnVlYC5cblxuICAgICoqTm90ZToqKiBpZiB0aGUgaW50ZWdyYXRpb24gYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgdGhlIGVtcHR5IHN0cmluZyB2YWx1ZSBvZiB0aGUgYG5hbWVgIGZpZWxkIHdpdGggdGhlIGV4aXN0aW5nIG5hbWUsIGFuZCBsZWF2ZSBgY3JlYXRlX3NvdXJjZWAgYXMgZmFsc2UuIFRoaXMgd2lsbCBhbGxvdyB0aGUgb3BlcmF0b3IgdG8gY29uZmlybSB0aGF0IHRoZSBpbnRlZ3JhdGlvbiBleGlzdHMuXG5cbjQuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudFZvbHVtZUNsYWltIGNhbGxlZCBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhYCB3aXRoIDEwR2kgb2Ygc3RvcmFnZS4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIHVzZSBvciBjcmVhdGUgYSBkaWZmZXJlbnQgUFZDLCBlZGl0IHRoZSBmb2xsb3dpbmcgaW4gdGhlIHNwZWM6XG4gICAgKiBBZGQgdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiB0byB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgaW4gdGhlIHNwZWM6XG5cbiAgICAgIGBgYFxuICAgICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICAgIG5hbWU6IFx1MDAzY2luc2VydC1uYW1lXHUwMDNlXG4gICAgICAgICAgc3BlYzpcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyBSZXN0cmljdGVkIE5ldHdvcmsgVXNhZ2UgKGRpc2Nvbm5lY3RlZC9haXItZ2FwcGVkIG1vZGUpXG4jIyBJbnN0YWxsYXRpb25cblRvIGluc3RhbGwgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgZm9sbG93IHRoZSBbb2xtIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS9sYXRlc3Qvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLiBUaGUgb3BlcmF0b3IgaXMgZm91bmQgaW4gdGhlIGBjb21tdW5pdHktb3BlcmF0b3JzYCBDYXRhbG9nIGluIHRoZSBgcmVnaXN0cnkucmVkaGF0LmlvL3JlZGhhdC9jb21tdW5pdHktb3BlcmF0b3ItaW5kZXg6bGF0ZXN0YCBJbmRleC4gSWYgcHJ1bmluZyB0aGUgaW5kZXggYmVmb3JlIHB1c2hpbmcgdG8gdGhlIG1pcnJvcmVkIHJlZ2lzdHJ5LCBrZWVwIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgcGFja2FnZS5cblxuV2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgb3BlcmF0b3IgcXVlcmllcyBwcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IHVzYWdlIG1ldHJpY3MsIHdyaXRlcyB0aGUgcXVlcnkgcmVzdWx0cyB0byBDU1YgZmlsZXMsIGFuZCBwYWNrYWdlcyB0aGUgcmVwb3J0cyBmb3Igc3RvcmFnZSBpbiB0aGUgUFZDLiBUaGVzZSByZXBvcnRzIHRoZW4gbmVlZCB0byBiZSBtYW51YWxseSBkb3dubG9hZGVkIGZyb20gdGhlIGNsdXN0ZXIgYW5kIHVwbG9hZGVkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS5cblxuIyMgQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGZvciBhIHJlc3RyaWN0ZWQgbmV0d29ya1xuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gU3BlY2lmeSB0aGUgZGVzaXJlZCBzdG9yYWdlLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnQgVm9sdW1lIENsYWltIGNhbGxlZCBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhYCB3aXRoIDEwR2kgb2Ygc3RvcmFnZS4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIHVzZSBvciBjcmVhdGUgYSBkaWZmZXJlbnQgUFZDLCBlZGl0IHRoZSBmb2xsb3dpbmcgaW4gdGhlIHNwZWM6XG4gICAgKiBBZGQgdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiB0byB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgaW4gdGhlIHNwZWMgKGJlbG93IGlzIG9ubHkgYSB0ZW1wbGF0ZS4gQW55IF92YWxpZF8gYFBlcnNpc3RlbnRWb2x1bWVDbGFpbWAgbWF5IGJlIGRlZmluZWQgaGVyZSk6XG5cbiAgICAgIGBgYFxuICAgICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgICAgYXBpVmVyc2lvbjogdjFcbiAgICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICAgIG5hbWU6IFx1MDAzY2luc2VydC1uYW1lXHUwMDNlXG4gICAgICAgICAgc3BlYzpcbiAgICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IFx1MDAzY2luc2VydC1jbGFzcy1uYW1lXHUwMDNlXG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG4zLiAoT3B0aW9uYWwpIFNwZWNpZnkgdGhlIGRlc2lyZWQgcmVwb3J0IHJldGVudGlvbi4gVGhlIG9wZXJhdG9yIHdpbGwgcmV0YWluIDMwIHJlcG9ydHMgYnkgZGVmYXVsdC4gVGhpcyBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IG9uZSB3ZWVrJ3Mgd29ydGggb2YgZGF0YSBpZiB1c2luZyB0aGUgZGVmYXVsdCBwYWNrYWdpbmcgY3ljbGUuIFRvIG1vZGlmeSB0aGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHM6XG4gICAgKiBDaGFuZ2UgdGhlIGBwYWNrYWdpbmdgIHNwZWMgZmllbGQgYG1heF9yZXBvcnRzX3RvX3N0b3JlYCB0byB0aGUgZGVzaXJlZCBudW1iZXIgb2YgcmVwb3J0cyB0byByZXRhaW4uIE9uY2UgdGhpcyBtYXggbnVtYmVyIGlzIHJlYWNoZWQsIHRoZSBvcGVyYXRvciB3aWxsIHN0YXJ0IHJlbW92aW5nIHRoZSBvbGRlc3QgcGFja2FnZXMgcmVtYWluaW5nIG9uIHRoZSBQVkM6XG5cbiAgICAgIGBgYFxuICAgICAgICBwYWNrYWdpbmc6XG4gICAgICAgICAgbWF4X3NpemVfTUI6IDEwMFxuICAgICAgICAgIG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMFxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogVGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzIGRpcmVjdGx5IGFmZmVjdHMgdGhlIGZyZXF1ZW5jeSB0aGF0IHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGZyb20gdGhlIFBWQy4gVGFrZSBjYXV0aW9uIGluIHNldHRpbmcgdGhpcyB0byBhIGhpZ2hlciBudW1iZXIgb2YgcmVwb3J0cywgYXMgdGhlIG9wZXJhdG9yIGNhbm5vdCB3cml0ZSBkYXRhIHRvIHRoZSBQVkMgaWYgdGhlIHN0b3JhZ2UgaXMgZnVsbC5cbjQuIFRvIGNvbmZpZ3VyZSB0aGUgb3BlcmF0b3IgdG8gcGVyZm9ybSBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgc2V0IHRoZSBgdXBsb2FkX3RvZ2dsZWAgdG8gYGZhbHNlYDpcblxuICBgYGBcbiAgICB1cGxvYWQ6XG4gICAgICB1cGxvYWRfY3ljbGU6IDM2MFxuICAgICAgdXBsb2FkX3RvZ2dsZTogZmFsc2VcbiAgYGBgXG5cbjUuIFNlbGVjdCBgQ3JlYXRlYC5cblxuIyMgRG93bmxvYWQgcmVwb3J0cyBmcm9tIHRoZSBPcGVyYXRvciBcdTAwMjYgY2xlYW4gdXAgdGhlIFBWQ1xuSWYgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG1ldHJpYyByZXBvcnRzIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRvIGNvc3QgbWFuYWdtZW50LiBJbnN0ZWFkLCB0aGV5IG5lZWQgdG8gYmUgbWFudWFsbHkgY29waWVkIGZyb20gdGhlIFBWQyBmb3IgdXBsb2FkIHRvIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKS4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzYXZlcyBvbmUgd2VlayBvZiByZXBvcnRzIHdoaWNoIG1lYW5zIHRoZSBwcm9jZXNzIG9mIGRvd25sb2FkaW5nIGFuZCB1cGxvYWRpbmcgcmVwb3J0cyBzaG91bGQgYmUgcmVwZWF0ZWQgd2Vla2x5IHRvIHByZXZlbnQgbG9zcyBvZiBtZXRyaWNzIGRhdGEuIFRvIGRvd25sb2FkIHRoZSByZXBvcnRzLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuMS4gQ3JlYXRlIHRoZSBmb2xsb3dpbmcgUG9kLCBlbnN1cmluZyB0aGUgYGNsYWltTmFtZWAgbWF0Y2hlcyB0aGUgUFZDIGNvbnRhaW5pbmcgdGhlIHJlcG9ydCBkYXRhOlxuXG4gIGBgYFxuICAgIGtpbmQ6IFBvZFxuICAgIGFwaVZlcnNpb246IHYxXG4gICAgbWV0YWRhdGE6XG4gICAgICBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgIG5hbWVzcGFjZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICBzcGVjOlxuICAgICAgdm9sdW1lczpcbiAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbTpcbiAgICAgICAgICBjbGFpbU5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YVxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICAgIGltYWdlOiBidXN5Ym94XG4gICAgICAgIGNvbW1hbmQ6IFsnc2xlZXAnLCAnaW5maW5pdHknXVxuICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgIC0gbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gICAgICAgICAgbW91bnRQYXRoOiAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICBgYGBcblxuMi4gVXNlIHJzeW5jIHRvIGNvcHkgYWxsIG9mIHRoZSBmaWxlcyByZWFkeSBmb3IgdXBsb2FkIGZyb20gdGhlIFBWQyB0byBhIGxvY2FsIGZvbGRlcjpcblxuICBgYGBcbiAgJCBvYyByc3luYyB2b2x1bWUtc2hlbGw6L3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkIGxvY2FsL3BhdGgvdG8vc2F2ZS9mb2xkZXJcbiAgYGBgXG5cbjMuIE9uY2UgY29uZmlybWluZyB0aGF0IHRoZSBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvcGllZCwgdXNlIHJzaCB0byBjb25uZWN0IHRvIHRoZSBwb2QgYW5kIGRlbGV0ZSB0aGUgY29udGVudHMgb2YgdGhlIHVwbG9hZCBmb2xkZXIgc28gdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgaW4gc3RvcmFnZTpcblxuICBgYGBcbiAgJCBvYyByc2ggdm9sdW1lLXNoZWxsXG4gICQgcm0gL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMvdXBsb2FkLypcbiAgYGBgXG5cbjQuIChPcHRpb25hbCkgRGVsZXRlIHRoZSBwb2QgdGhhdCB3YXMgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBQVkM6XG5cbiAgYGBgXG4gICQgb2MgZGVsZXRlIC1mIHZvbHVtZS1zaGVsbC55YW1sXG4gIGBgYFxuXG4jIyBDcmVhdGUgYW4gSW50ZWdyYXRpb25cbkluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGNhbm5vdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhbiBpbnRlZ3JhdGlvbi4gVGhpcyBwcm9jZXNzIG11c3QgYmUgZG9uZSBtYW51YWxseS4gSW4gdGhlIGNvbnNvbGUucmVkaGF0LmNvbSBwbGF0Zm9ybSwgb3BlbiB0aGUgW0ludGVncmF0aW9ucyBtZW51XShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbS9zZXR0aW5ncy9pbnRlZ3JhdGlvbnMvKSB0byBiZWdpbiBhZGRpbmcgYW4gT3BlblNoaWZ0IGludGVncmF0aW9uIHRvIENvc3QgTWFuYWdlbWVudDpcblxuUHJlcmVxdWlzaXRlczpcbiogVGhlIGNsdXN0ZXIgaWRlbnRpZmllciB3aGljaCBjYW4gYmUgZm91bmQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiwgdGhlIGNsdXN0ZXIgT3ZlcnZpZXcgcGFnZSwgb3IgdGhlIGNsdXN0ZXIgSGVscCBcdTAwM2UgQWJvdXQuXG5cbkNyZWF0aW5nIGFuIGludGVncmF0aW9uOlxuMS4gTmF2aWdhdGUgdG8gdGhlIEludGVncmF0aW9ucyBtZW51XG4yLiBTZWxlY3QgdGhlIGBSZWQgSGF0YCB0YWJcbjMuIENyZWF0ZSBhIG5ldyBgUmVkIEhhdCBPcGVuc2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtYCBpbnRlZ3JhdGlvbjpcbiAgICAqIGdpdmUgdGhlIGludGVncmF0aW9uIGEgdW5pcXVlIG5hbWVcbiAgICAqIGFkZCB0aGUgQ29zdCBNYW5hZ2VtZW50IGFwcGxpY2F0aW9uXG4gICAgKiBhZGQgdGhlIGNsdXN0ZXIgaWRlbnRpZmllclxuNC4gSW4gdGhlIFNvdXJjZSB3aXphcmQsIHJldmlldyB0aGUgZGV0YWlscyBhbmQgY2xpY2sgYEZpbmlzaGAgdG8gY3JlYXRlIHRoZSBzb3VyY2UuXG5cbiMjIFVwbG9hZCB0aGUgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudFxuVXBsb2FkaW5nIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnQgaXMgZG9uZSB0aHJvdWdoIGN1cmw6XG5cbiAgICAkIGN1cmwgLXZ2dnYgLUYgXCJmaWxlPUBGSUxFX05BTUUudGFyLmd6O3R5cGU9YXBwbGljYXRpb24vdm5kLnJlZGhhdC5oY2NtLnRhcit0Z3pcIiAgaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC11IFVTRVJOQU1FOlBBU1Ncblxud2hlcmUgYFVTRVJOQU1FYCBhbmQgYFBBU1NgIGNvcnJlc3BvbmQgdG8gdGhlIHVzZXIgY3JlZGVudGlhbHMgZm9yIFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSwgYW5kIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJsYWJlbCI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tbGVhZGVyLWVsZWN0Il0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci05OTllYjhhMGFlZjgzMzNlOTg1MTIwZWI1MjM2ZjZlNTNmODg3ZWY5MGYwMjg0MzliYjYzYmI1MjA1ZGQwMWJmLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMC4xIiwidmVyc2lvbiI6IjMuMS4wIn19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": { + "collect_previous_data": true, + "context_timeout": 120, + "disable_metrics_collection_cost_management": false, + "disable_metrics_collection_resource_optimization": false + }, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "true" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:999eb8a0aef8333e985120eb5236f6e53f887ef90f028439bb63bb5205dd01bf + createdAt: "2023-12-09T01:12:04Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v1.32.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: "# 3.1.0 Cost Management Metrics Operator\n## Introduction\nThe `costmanagement-metrics-operator` + is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) + service for Openshift. The operator runs on the latest supported versions of + Openshift. This operator obtains OpenShift usage data by querying Prometheus + every hour to create metric reports that it uploads to Cost Management at [console.redhat.com](https://console.redhat.com) + to be processed. For more information, reach out to .\n\nThis + operator is capable of functioning within a disconnected/restricted network + (aka air-gapped mode). In this mode, the operator will store the packaged reports + for manual retrieval instead of being uploaded to Cost Management. Documentation + for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html).\n\n## + Features and Capabilities\n#### Metrics collection:\nThe CostManagement Metrics + Operator (`costmanagement-metrics-operator`) collects the metrics required for + Cost Management by:\n* Querying Prometheus to gather the necessary metrics for + Cost Management.\n* Writing the results of Prometheus queries to CSV report + files.\n* Packaging the CSV report files into tarballs.\n\n#### Additional Capabilities:\n* + Resource Optimization metrics collection.\n* The operator can be configured + to gather all previous data within the configured retention period or a maximum + of 90 days. The default data collection period is the 14 previous days. This + setting is only applicable to newly created CostManagementMetricsConfigs.\n* + The operator can be configured to automatically upload the packaged reports + to Cost Management through Red Hat Insights Ingress service.\n* The operator + can create an integration in console.redhat.com. An integration is required + for Cost Management to process the uploaded packages.\n* PersistentVolumeClaim + (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition + and the operator will create and mount the PVC. If one is not provided, a default + PVC will be created.\n* Restricted network installation: this operator can function + on a restricted network. In this mode, the operator stores the packaged reports + for manual retrieval.\n\n## New in v3.1.0:\n* Add service-account authentication + type.\n* __Deprecation Notice:__ Basic authentication is deprecated and will + be removed in a future version of the operator.\n\n## New in v3.0.0:\n* Daily + report generation: Operator versions prior to v3.0.0 generated sequential reports. + Now, reports are generated starting at 0:00 UTC. Any payloads generated throughout + a given day will contain all data starting from 0:00 UTC. Once the next day + starts, the previous day's reports are packaged, and the new report again starts + at 0:00 UTC for the current day.\n* Failed query retry: In an attempt to prevent + missing data, the operator will retry queries from the last successful query + time, up to 5 times.\n\n## New in v2.0.0:\n* Adds metrics and report generation + for resource optimization. This feature will collect additional usage metrics + and create a new report in the payload. These metrics are enabled by default, + but can be disabled by setting `disable_metrics_collection_resource_optimization` + to `true`.\n* Collect all available Prometheus data upon CR creation. This feature + only applies to newly created CostManagementMetricsConfigs. The operator will + check the monitoring stack configuration in the `openshift-monitoring` namespace. + The operator will use the `retention` period set in the `cluster-monitoring-config` + ConfigMap if defined, up to a maximum of 90 days. Otherwise it will fall back + to collecting 14 days of data, if available. This data collection may be disabled + by setting `collect_previous_data` to `false`. Turning this feature off results + in the operator collecting metrics from the time the CostManagementMetricsConfig + is created, forward.\n\n## Limitations and Pre-Requisites\n#### Limitations + (Potential for metrics data loss)\n* An integration **must** exist in console.redhat.com + for an uploaded payload to be processed by Cost Management. The operator sends + the payload to the Red Hat Insights Ingress service which usually returns successfully, + but the operator does not currently confirm with Cost Management that the payload + was processed. After Ingress accepts the uploaded payload, it is deleted from + the operator. If the data within the payload is not processed, a gap will be + introduced in the usage metrics. Data may be recollected by deleting the `CostManagementMetricsConfig`, + creating a new `CostManagementMetricsConfig`, and setting `collect_previous_data: + true`. This re-collection of data will gather all data stored in Prometheus, + up to 90 days.\n\n**Note** The following limitations are specific to operators + configured to run in a restricted network:\n* The `costmanagement-metrics-operator` + will not be able to generate new reports if the PVC storage is full. If this + occurs, the reports must be manually deleted from the PVC so that the operator + can function as normal.\n* The default report retention is 30 reports (about + one week's worth of data). The reports must be manually downloaded and uploaded + to console.redhat.com every week, or they will be deleted and the data will + be lost.\n\n#### Storage configuration prerequisite\nThe operator will attempt + to create and use the following PVC when installed:\n\n volume_claim_template:\n + \ apiVersion: v1\n kind: PersistentVolumeClaim\n metadata:\n + \ name: costmanagement-metrics-operator-data\n spec:\n accessModes:\n + \ - ReadWriteOnce\n resources:\n requests:\n storage: + 10Gi\n\nIf a different PVC should be utilized, a valid PVC should be specified + in the CostManagementMetricsConfig CR as described in the appropriate section + below. The PVC to be used may exist already, or the operator will attempt to + create it.\n\nTo use the default specification, the follow assumptions must + be met:\n1. A default StorageClass is defined.\n2. Dynamic provisioning for + that default StorageClass is enabled.\n\nIf these assumptions are not met, the + operator will not deploy correctly. In these cases, storage must be manually + configured. After configuring storage, a valid PVC template should be supplied + in the `volume_claim_template` spec of the CostManagementMetricsConfig CR.\n\n## + Configurable parameters:\n * `authentication`:\n * `type: token` -> The + authentication method for connecting to `console.redhat.com`. The default and + preferred method is `token`. `basic` (deprecated) and `service-account` authentication + methods are used when the openshift-config pull-secret does not contain a token + for `console.redhat.com`.\n * `secret_name` -> The Secret used by the operator + when the authentication type is `basic` (deprecated) or `service-account`. This + parameter is required **only if** the authentication type is `basic` (deprecated) + or `service-account`.\n * `packaging`:\n * `max_reports_to_store: 30` -> + The number of reports to store when configured in air-gapped mode. The default + is 30, with a minimum of 1 and no maximum. When the operator is not configured + in air-gapped mode, this parameter has no effect. Reports are removed as soon + as they are uploaded.\n * `max_size: 100` -> The maximum size for packaged + files in Megabytes prior to compression. The default is 100, with a minimum + of 1 and maximum of 100.\n * `prometheus_config`:\n * `collect_previous_data: + true` -> Toggle for collecting all available data in Prometheus **upon CostManagementMetricsConfig + creation** (This parameter will start to appear in CostManagementMetricsConfigs + that were created prior to v2.0.0 but will not have any effect unless the CostManagementMetricsConfig + is deleted and recreated). The default is `true`. The operator will first look + for a `retention` period in the `cluster-monitoring-config` ConfigMap in the + `openshift-monitoring` namespace and gather data over this time period up to + a maximum of 90 days. If this configuration is not set, the default is 14 days. + (New in v2.0.0)\n * `disable_metrics_collection_cost_management: false` -> + Toggle for disabling the collection of metrics for Cost Management. The default + is false. (New in v2.0.0)\n * `disable_metrics_collection_resource_optimization: + false` -> Toggle for disabling the collection of metrics for Resource Optimization. + The default is false. (New in v2.0.0)\n * `context_timeout: 120` -> The time + in seconds before Prometheus queries timeout due to exceeding context timeout. + The default is 120, with a minimum of 10 and maximum of 180.\n * `source`:\n + \ * `name: ''` -> The name of the integration the operator will create in + `console.redhat.com`. If the name value is empty, the default intergration name + is the **cluster id**.\n * `create_source: false` -> Toggle for whether or + not the operator will create the integration in `console.redhat.com`. The default + is False. This parameter should be switched to True when an integration does + not already exist in `console.redhat.com` for this cluster.\n * `check_cycle: + 1440` -> The time in minutes to wait between checking if an integration exists + for this cluster. The default is 1440 minutes (24 hrs).\n * `upload`:\n * + `upload_cycle: 360` -> The time in minutes between payload uploads. The default + is 360 (6 hours).\n * `upload_toggle: true` -> Toggle to turn upload on or + off -> true means upload, false means do not upload (false == air-gapped mode). + The default is `true`.\n * `upload_wait` -> The amount of time (in seconds) + to pause before uploading a payload. The default is a random number between + 0 and 35. This is used to decrease service load, but may be set to `0` if desired.\n + \ * `volume_claim_template` -> see the \"Storage configuration prerequisite\" + section above.\n\n## Configure the costmanagement-metrics-operator\n**Note** + There are separate instructions for configuring the `costmanagement-metrics-operator` + to run in a restricted network.\n##### Configure authentication\nThe default + authentication for the operator is `token`. No further steps are required to + configure token authentication. If `basic` (deprecated) or `service-account` + is the preferred authentication method, a Secret which holds the credentials + must be created:\n1. On the left navigation pane, select `Workloads` -> `Secrets` + -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value + Secret`\n2. Give the Secret a name and add 2 keys (all lowercase) for the respective + authentication type. The values for these keys correspond to console.redhat.com + credentials:\n * basic auth (deprecated): `username` and `password`\n * + service-account auth: `client_id` and `client_secret` \n\n3. Select `Create`.\n##### + Create the CostManagementMetricsConfig\nConfigure the costmanagement-metrics-operator + by creating a `CostManagementMetricsConfig`.\n1. On the left navigation pane, + select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` + -> `CostManagementMetricsConfig` -> `Create Instance`.\n2. For `basic` (deprecated) + or `service-account` authentication, edit the following values in the spec:\n + \ * Replace `authentication: type:` with `basic` or `service-account`.\n * + Add the `secret_name` field under `authentication`, and set it equal to the + name of the authentication Secret that was created above. The spec should look + similar to the following:\n\n * for basic auth type (deprecated)\n ```\n + \ authentication:\n secret_name: SECRET-NAME\n type: + basic\n ```\n \n * for service-account auth type\n ```\n + \ authentication:\n secret_name: SECRET-NAME\n type: + service-account\n ```\n\n3. To configure the costmanagement-metrics-operator + to create a cost management integration, edit the following values in the `source` + field:\n * Replace the `name` field value with the preferred name of the + integration to be created.\n * Replace the `create_source` field value with + `true`.\n\n **Note:** if the integration already exists, replace the empty + string value of the `name` field with the existing name, and leave `create_source` + as false. This will allow the operator to confirm that the integration exists.\n\n4. + If not specified, the operator will create a default PersistentVolumeClaim called + `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the + costmanagement-metrics-operator to use or create a different PVC, edit the following + in the spec:\n * Add the desired configuration to the `volume_claim_template` + field in the spec:\n\n ```\n volume_claim_template:\n apiVersion: + v1\n kind: PersistentVolumeClaim\n metadata:\n name: + \n spec:\n accessModes:\n - ReadWriteOnce\n + \ resources:\n requests:\n storage: 10Gi\n + \ ```\n\n **Note:** If using the YAML View, the `volume_claim_template` + field must be added to the spec\n5. Select `Create`.\n\n# Restricted Network + Usage (disconnected/air-gapped mode)\n## Installation\nTo install the `costmanagement-metrics-operator` + in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` + Index. If pruning the index before pushing to the mirrored registry, keep the + `costmanagement-metrics-operator` package.\n\nWithin a restricted network, the + operator queries prometheus to gather the necessary usage metrics, writes the + query results to CSV files, and packages the reports for storage in the PVC. + These reports then need to be manually downloaded from the cluster and uploaded + to [console.redhat.com](https://console.redhat.com).\n\n## Configure the costmanagement-metrics-operator + for a restricted network\n##### Create the CostManagementMetricsConfig\nConfigure + the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`.\n1. + On the left navigation pane, select `Operators` -> `Installed Operators` -> + `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create + Instance`.\n2. Specify the desired storage. If not specified, the operator will + create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` + with 10Gi of storage. To configure the costmanagement-metrics-operator to use + or create a different PVC, edit the following in the spec:\n * Add the desired + configuration to the `volume_claim_template` field in the spec (below is only + a template. Any _valid_ `PersistentVolumeClaim` may be defined here):\n\n ```\n + \ volume_claim_template:\n apiVersion: v1\n kind: PersistentVolumeClaim\n + \ metadata:\n name: \n spec:\n storageClassName: + \n accessModes:\n - ReadWriteOnce\n + \ resources:\n requests:\n storage: 10Gi\n + \ ```\n\n **Note:** If using the YAML View, the `volume_claim_template` + field must be added to the spec\n3. (Optional) Specify the desired report retention. + The operator will retain 30 reports by default. This corresponds to approximately + one week's worth of data if using the default packaging cycle. To modify the + number of retained reports:\n * Change the `packaging` spec field `max_reports_to_store` + to the desired number of reports to retain. Once this max number is reached, + the operator will start removing the oldest packages remaining on the PVC:\n\n + \ ```\n packaging:\n max_size_MB: 100\n max_reports_to_store: + 30\n ```\n\n **Note:** The number of retained reports directly affects + the frequency that reports must be manually downloaded from the PVC. Take caution + in setting this to a higher number of reports, as the operator cannot write + data to the PVC if the storage is full.\n4. To configure the operator to perform + in a restricted network, set the `upload_toggle` to `false`:\n\n ```\n upload:\n + \ upload_cycle: 360\n upload_toggle: false\n ```\n\n5. Select `Create`.\n\n## + Download reports from the Operator & clean up the PVC\nIf the `costmanagement-metrics-operator` + is configured to run in a restricted network, the metric reports will not automatically + upload to cost managment. Instead, they need to be manually copied from the + PVC for upload to [console.redhat.com](https://console.redhat.com). The default + configuration saves one week of reports which means the process of downloading + and uploading reports should be repeated weekly to prevent loss of metrics data. + To download the reports, complete the following steps:\n1. Create the following + Pod, ensuring the `claimName` matches the PVC containing the report data:\n\n + \ ```\n kind: Pod\n apiVersion: v1\n metadata:\n name: volume-shell\n + \ namespace: costmanagement-metrics-operator\n labels:\n app: + costmanagement-metrics-operator\n spec:\n volumes:\n - name: costmanagement-metrics-operator-reports\n + \ persistentVolumeClaim:\n claimName: costmanagement-metrics-operator-data\n + \ containers:\n - name: volume-shell\n image: busybox\n command: + ['sleep', 'infinity']\n volumeMounts:\n - name: costmanagement-metrics-operator-reports\n + \ mountPath: /tmp/costmanagement-metrics-operator-reports\n ```\n\n2. + Use rsync to copy all of the files ready for upload from the PVC to a local + folder:\n\n ```\n $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload + local/path/to/save/folder\n ```\n\n3. Once confirming that the files have been + successfully copied, use rsh to connect to the pod and delete the contents of + the upload folder so that they are no longer in storage:\n\n ```\n $ oc rsh + volume-shell\n $ rm /tmp/costmanagement-metrics-operator-reports/upload/*\n + \ ```\n\n4. (Optional) Delete the pod that was used to connect to the PVC:\n\n + \ ```\n $ oc delete -f volume-shell.yaml\n ```\n\n## Create an Integration\nIn + a restricted network, the `costmanagement-metrics-operator` cannot automatically + create an integration. This process must be done manually. In the console.redhat.com + platform, open the [Integrations menu](https://console.redhat.com/settings/integrations/) + to begin adding an OpenShift integration to Cost Management:\n\nPrerequisites:\n* + The cluster identifier which can be found in the CostManagementMetricsConfig + CR, the cluster Overview page, or the cluster Help > About.\n\nCreating an integration:\n1. + Navigate to the Integrations menu\n2. Select the `Red Hat` tab\n3. Create a + new `Red Hat Openshift Container Platform` integration:\n * give the integration + a unique name\n * add the Cost Management application\n * add the cluster + identifier\n4. In the Source wizard, review the details and click `Finish` to + create the source.\n\n## Upload the reports to cost managment\nUploading reports + to cost managment is done through curl:\n\n $ curl -vvvv -F \"file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz\" + \ https://console.redhat.com/api/ingress/v1/upload -u USERNAME:PASS\n\nwhere + `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), + and `FILE_NAME` is the name of the report to upload." + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:d3962cd30fa64b2dee9aca114a2b91f14c01e490024e5cfaf40246f5e88072d1 name: "" @@ -453,12 +4542,346 @@ properties: value: packageName: costmanagement-metrics-operator version: 3.1.1 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjEzLjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIFRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZW5kcG9pbnQgdXNlZCB0byBvYnRhaW4gdGhlIHNlcnZpY2UgYWNjb3VudCB0b2tlbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vc3NvLnJlZGhhdC5jb20vYXV0aC9yZWFsbXMvcmVkaGF0LWV4dGVybmFsL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYC4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYywgc2VydmljZS1hY2NvdW50IG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiAoZGVwcmVjYXRlZCkgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwic2VydmljZS1hY2NvdW50XCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCBmcm9tIHRoZSBzZWNyZXQgY29udGFpbmluZyBzZXJ2aWNlIGFjY291bnQgaW5mb3JtYXRpb24uIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZWZhdWx0IjoxNDQwLCJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiY3JlYXRlX3NvdXJjZSB0b2dnbGVzIHRoZSBjcmVhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvc291cmNlcy92MS4wLyIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIHNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tIG9yIGNoZWNrL2NyZWF0ZSBzb3VyY2VzLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiYWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZSBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIFdoZW4gdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIGlzIGVuYWJsZWQsIGRhdGFTb3VyY2UgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZVJlZiwgYW5kIGRhdGFTb3VyY2VSZWYgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZSB3aGVuIGRhdGFTb3VyY2VSZWYubmFtZXNwYWNlIGlzIG5vdCBzcGVjaWZpZWQuIElmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJkYXRhU291cmNlUmVmIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZVJlZiBzcGVjaWZpZXMgdGhlIG9iamVjdCBmcm9tIHdoaWNoIHRvIHBvcHVsYXRlIHRoZSB2b2x1bWUgd2l0aCBkYXRhLCBpZiBhIG5vbi1lbXB0eSB2b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uIGNvcmUgb2JqZWN0KSBvciBhIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3QuIFdoZW4gdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQsIHZvbHVtZSBiaW5kaW5nIHdpbGwgb25seSBzdWNjZWVkIGlmIHRoZSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljIHByb3Zpc2lvbmVyLiBUaGlzIGZpZWxkIHdpbGwgcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGF0YVNvdXJjZSBmaWVsZCBhbmQgYXMgc3VjaCBpZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3aGVuIG5hbWVzcGFjZSBpc24ndCBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgYm90aCBmaWVsZHMgKGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFdoZW4gbmFtZXNwYWNlIGlzIHNwZWNpZmllZCBpbiBkYXRhU291cmNlUmVmLCBkYXRhU291cmNlIGlzbid0IHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhbmQgbXVzdCBiZSBlbXB0eS4gVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6ICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyB0d28gc3BlY2lmaWMgdHlwZXMgb2Ygb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3MgYW55IG5vbi1jb3JlIG9iamVjdCwgYXMgd2VsbCBhcyBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0cy4gKiBXaGlsZSBkYXRhU291cmNlIGlnbm9yZXMgZGlzYWxsb3dlZCB2YWx1ZXMgKGRyb3BwaW5nIHRoZW0pLCBkYXRhU291cmNlUmVmIHByZXNlcnZlcyBhbGwgdmFsdWVzLCBhbmQgZ2VuZXJhdGVzIGFuIGVycm9yIGlmIGEgZGlzYWxsb3dlZCB2YWx1ZSBpcyBzcGVjaWZpZWQuICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzIGluIGFueSBuYW1lc3BhY2VzLiAoQmV0YSkgVXNpbmcgdGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4gKEFscGhhKSBVc2luZyB0aGUgbmFtZXNwYWNlIGZpZWxkIG9mIGRhdGFTb3VyY2VSZWYgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWVzcGFjZSBpcyB0aGUgbmFtZXNwYWNlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQgTm90ZSB0aGF0IHdoZW4gYSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCBhIGdhdGV3YXkubmV0d29ya2luZy5rOHMuaW8vUmVmZXJlbmNlR3JhbnQgb2JqZWN0IGlzIHJlcXVpcmVkIGluIHRoZSByZWZlcmVudCBuYW1lc3BhY2UgdG8gYWxsb3cgdGhhdCBuYW1lc3BhY2UncyBvd25lciB0byBhY2NlcHQgdGhlIHJlZmVyZW5jZS4gU2VlIHRoZSBSZWZlcmVuY2VHcmFudCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLiAoQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBJZiBSZWNvdmVyVm9sdW1lRXhwYW5zaW9uRmFpbHVyZSBmZWF0dXJlIGlzIGVuYWJsZWQgdXNlcnMgYXJlIGFsbG93ZWQgdG8gc3BlY2lmeSByZXNvdXJjZSByZXF1aXJlbWVudHMgdGhhdCBhcmUgbG93ZXIgdGhhbiBwcmV2aW91cyB2YWx1ZSBidXQgbXVzdCBzdGlsbCBiZSBoaWdoZXIgdGhhbiBjYXBhY2l0eSByZWNvcmRlZCBpbiB0aGUgc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsIHRoYXQgYXJlIHVzZWQgYnkgdGhpcyBjb250YWluZXIuIFxuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIHRoZSBEeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS4gXG4gVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mIHRoZSBQb2Qgd2hlcmUgdGhpcyBmaWVsZCBpcyB1c2VkLiBJdCBtYWtlcyB0aGF0IHJlc291cmNlIGF2YWlsYWJsZSBpbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyBhIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJzdG9yYWdlQ2xhc3NOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2tlbl91cmwiOnsiZGVzY3JpcHRpb24iOiJUb2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCB1c2VkIHRvIGdlbmVyYXRlIGEgc2VydmljZSBhY2NvdW50IHRva2VuLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIiwic2VydmljZS1hY2NvdW50Il0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBXaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsIGFuZCBkYXRhU291cmNlUmVmIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2Ugd2hlbiBkYXRhU291cmNlUmVmLm5hbWVzcGFjZSBpcyBub3Qgc3BlY2lmaWVkLiBJZiB0aGUgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgdGhlbiBkYXRhU291cmNlUmVmIHdpbGwgbm90IGJlIGNvcGllZCB0byBkYXRhU291cmNlLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGRhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGJvdGggZmllbGRzIChkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBXaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgZGF0YVNvdXJjZSBpc24ndCBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYW5kIG11c3QgYmUgZW1wdHkuIFRoZXJlIGFyZSB0aHJlZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmOiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgZGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgZGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgbG9jYWwgb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3Mgb2JqZWN0cyBpbiBhbnkgbmFtZXNwYWNlcy4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIChBbHBoYSkgVXNpbmcgdGhlIG5hbWVzcGFjZSBmaWVsZCBvZiBkYXRhU291cmNlUmVmIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIE5vdGUgdGhhdCB3aGVuIGEgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgYSBnYXRld2F5Lm5ldHdvcmtpbmcuazhzLmlvL1JlZmVyZW5jZUdyYW50IG9iamVjdCBpcyByZXF1aXJlZCBpbiB0aGUgcmVmZXJlbnQgbmFtZXNwYWNlIHRvIGFsbG93IHRoYXQgbmFtZXNwYWNlJ3Mgb3duZXIgdG8gYWNjZXB0IHRoZSByZWZlcmVuY2UuIFNlZSB0aGUgUmVmZXJlbmNlR3JhbnQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gKEFscGhhKSBUaGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwcm9tZXRoZXVzIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcHJlbWV0aGV1cyBxdWVyaWVzLiIsInByb3BlcnRpZXMiOnsiY29uZmlndXJhdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgY29uZmlndXJhdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNvbnRleHRfdGltZW91dCI6eyJkZXNjcmlwdGlvbiI6IkNvbnRleHRUaW1lb3V0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdGUgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25Db3N0TWFuYWdlbWVudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyByZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gSW50ZWdyYXRpb24gd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgaW50ZWdyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0X2NoZWNrX3RpbWUgaXMgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJjcmVhdGVkQXQiOiIyMDI0LTAxLTE3VDE1OjAxOjUzWiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vaW5mcmFzdHJ1Y3R1cmUtZmVhdHVyZXMiOiJbXCJEaXNjb25uZWN0ZWRcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBLdWJlcm5ldGVzIEVuZ2luZVwiLCBcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9idWlsZGVyIjoib3BlcmF0b3Itc2RrLXYxLjMyLjAiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MiIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMS4xIiwibmFtZXNwYWNlIjoicGxhY2Vob2xkZXIifSwic3BlYyI6eyJhcGlzZXJ2aWNlZGVmaW5pdGlvbnMiOnt9LCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJkZXNjcmlwdGlvbiI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlnIEFQSSIsImtpbmQiOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy5jb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9XX0sImRlc2NyaXB0aW9uIjoiIyAzLjEuMSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvclxuIyMgSW50cm9kdWN0aW9uXG5UaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGEgY29tcG9uZW50IG9mIHRoZSBbY29zdCBtYW5hZ21lbnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZSkgc2VydmljZSBmb3IgT3BlbnNoaWZ0LiBUaGUgb3BlcmF0b3IgcnVucyBvbiB0aGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBPcGVuc2hpZnQuIFRoaXMgb3BlcmF0b3Igb2J0YWlucyBPcGVuU2hpZnQgdXNhZ2UgZGF0YSBieSBxdWVyeWluZyBQcm9tZXRoZXVzIGV2ZXJ5IGhvdXIgdG8gY3JlYXRlIG1ldHJpYyByZXBvcnRzIHRoYXQgaXQgdXBsb2FkcyB0byBDb3N0IE1hbmFnZW1lbnQgYXQgW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pIHRvIGJlIHByb2Nlc3NlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWNoIG91dCB0byBcdTAwM2Njb3N0bWFuYWdlbWVudEByZWRoYXQuY29tXHUwMDNlLlxuXG5UaGlzIG9wZXJhdG9yIGlzIGNhcGFibGUgb2YgZnVuY3Rpb25pbmcgd2l0aGluIGEgZGlzY29ubmVjdGVkL3Jlc3RyaWN0ZWQgbmV0d29yayAoYWthIGFpci1nYXBwZWQgbW9kZSkuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHdpbGwgc3RvcmUgdGhlIHBhY2thZ2VkIHJlcG9ydHMgZm9yIG1hbnVhbCByZXRyaWV2YWwgaW5zdGVhZCBvZiBiZWluZyB1cGxvYWRlZCB0byBDb3N0IE1hbmFnZW1lbnQuIERvY3VtZW50YXRpb24gZm9yIGluc3RhbGxpbmcgYW4gb3BlcmF0b3Igd2l0aGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuXG5cbiMjIEZlYXR1cmVzIGFuZCBDYXBhYmlsaXRpZXNcbiMjIyMgTWV0cmljcyBjb2xsZWN0aW9uOlxuVGhlIENvc3RNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IgKGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCkgY29sbGVjdHMgdGhlIG1ldHJpY3MgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCBieTpcbiogUXVlcnlpbmcgUHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSBtZXRyaWNzIGZvciBDb3N0IE1hbmFnZW1lbnQuXG4qIFdyaXRpbmcgdGhlIHJlc3VsdHMgb2YgUHJvbWV0aGV1cyBxdWVyaWVzIHRvIENTViByZXBvcnQgZmlsZXMuXG4qIFBhY2thZ2luZyB0aGUgQ1NWIHJlcG9ydCBmaWxlcyBpbnRvIHRhcmJhbGxzLlxuXG4jIyMjIEFkZGl0aW9uYWwgQ2FwYWJpbGl0aWVzOlxuKiBSZXNvdXJjZSBPcHRpbWl6YXRpb24gbWV0cmljcyBjb2xsZWN0aW9uLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZ2F0aGVyIGFsbCBwcmV2aW91cyBkYXRhIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZXRlbnRpb24gcGVyaW9kIG9yIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBUaGUgZGVmYXVsdCBkYXRhIGNvbGxlY3Rpb24gcGVyaW9kIGlzIHRoZSAxNCBwcmV2aW91cyBkYXlzLiBUaGlzIHNldHRpbmcgaXMgb25seSBhcHBsaWNhYmxlIHRvIG5ld2x5IGNyZWF0ZWQgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlncy5cbiogVGhlIG9wZXJhdG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBwYWNrYWdlZCByZXBvcnRzIHRvIENvc3QgTWFuYWdlbWVudCB0aHJvdWdoIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGNyZWF0ZSBhbiBpbnRlZ3JhdGlvbiBpbiBjb25zb2xlLnJlZGhhdC5jb20uIEFuIGludGVncmF0aW9uIGlzIHJlcXVpcmVkIGZvciBDb3N0IE1hbmFnZW1lbnQgdG8gcHJvY2VzcyB0aGUgdXBsb2FkZWQgcGFja2FnZXMuXG4qIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSAoUFZDKSBjb25maWd1cmF0aW9uOiBUaGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSIGNhbiBhY2NlcHQgYSBQVkMgZGVmaW5pdGlvbiBhbmQgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGFuZCBtb3VudCB0aGUgUFZDLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgUFZDIHdpbGwgYmUgY3JlYXRlZC5cbiogUmVzdHJpY3RlZCBuZXR3b3JrIGluc3RhbGxhdGlvbjogdGhpcyBvcGVyYXRvciBjYW4gZnVuY3Rpb24gb24gYSByZXN0cmljdGVkIG5ldHdvcmsuIEluIHRoaXMgbW9kZSwgdGhlIG9wZXJhdG9yIHN0b3JlcyB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbC5cblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YFxuXG4zLiBTZWxlY3QgYENyZWF0ZWAuXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBGb3IgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYCBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgICogZm9yIGJhc2ljIGF1dGggdHlwZSAoZGVwcmVjYXRlZClcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IGJhc2ljXG4gICAgICAgIGBgYFxuXG4gICAgICAgICogZm9yIHNlcnZpY2UtYWNjb3VudCBhdXRoIHR5cGVcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IHNlcnZpY2UtYWNjb3VudFxuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBpbnRlZ3JhdGlvbiwgZWRpdCB0aGUgZm9sbG93aW5nIHZhbHVlcyBpbiB0aGUgYHNvdXJjZWAgZmllbGQ6XG4gICAgKiBSZXBsYWNlIHRoZSBgbmFtZWAgZmllbGQgdmFsdWUgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIGludGVncmF0aW9uIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgaW50ZWdyYXRpb24gZXhpc3RzLlxuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjIChiZWxvdyBpcyBvbmx5IGEgdGVtcGxhdGUuIEFueSBfdmFsaWRfIGBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1gIG1heSBiZSBkZWZpbmVkIGhlcmUpOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGFuIEludGVncmF0aW9uXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW50ZWdyYXRpb24uIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtJbnRlZ3JhdGlvbnMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3MvaW50ZWdyYXRpb25zLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBpbnRlZ3JhdGlvbiB0byBDb3N0IE1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGluZyBhbiBpbnRlZ3JhdGlvbjpcbjEuIE5hdmlnYXRlIHRvIHRoZSBJbnRlZ3JhdGlvbnMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdGAgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgaW50ZWdyYXRpb246XG4gICAgKiBnaXZlIHRoZSBpbnRlZ3JhdGlvbiBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2Ugd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgc291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2FwaS9pbmdyZXNzL3YxL3VwbG9hZCAtdSBVU0VSTkFNRTpQQVNTXG5cbndoZXJlIGBVU0VSTkFNRWAgYW5kIGBQQVNTYCBjb3JyZXNwb25kIHRvIHRoZSB1c2VyIGNyZWRlbnRpYWxzIGZvciBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4iLCJkaXNwbGF5TmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NEtQQ0V0TFNCSFpXNWxjbUYwYjNJNklFRmtiMkpsSUVsc2JIVnpkSEpoZEc5eUlESXlMakV1TUN3Z1UxWkhJRVY0Y0c5eWRDQlFiSFZuTFVsdUlDNGdVMVpISUZabGNuTnBiMjQ2SURZdU1EQWdRblZwYkdRZ01Da2dJQzB0UGdvOGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJa3hoZVdWeVh6RWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWdvSklIWnBaWGRDYjNnOUlqQWdNQ0F6TURBZ016QXdJaUJ6ZEhsc1pUMGlaVzVoWW14bExXSmhZMnRuY205MWJtUTZibVYzSURBZ01DQXpNREFnTXpBd095SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStDZ2t1YzNRd2UyWnBiR3c2STBWRk1EQXdNRHQ5Q2p3dmMzUjViR1UrQ2p4MGFYUnNaVDVEYjNOMExXbGpiMjQ4TDNScGRHeGxQZ284WkdWell6NURjbVZoZEdWa0lIZHBkR2dnVTJ0bGRHTm9Mand2WkdWell6NEtQR2MrQ2drOFp6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOMk10TXk0eU5qVTRNRGd4TFRReExqazRPVEExTVRndE16Z3VNalUyTmpnek15MDNOQzQyTkRjeU1ERTFMVGd4TGpFM09EZ3pNeTAzTkM0Mk5EY3lNREUxQ2drSkNXTXRNamN1TlRJMk1UVXpOaXd3TFRVekxqRTROakV5Tmpjc01UTXVPVGsyTXpRNU15MDJPQzR4TVRVMU56QXhMRE0zTGpNeU16WXdNRGhqTFRFdU9EWTJNVGd3TkN3d0xUTXVOek15TXpVek1pMHdMalEyTmpVME5URXROaTR3TmpVd056ZzNMVEF1TkRZMk5UUTFNUW9KQ1FsakxUTTBMalV5TkRNek1ERXNNQzAyTWk0NU9ETTFOemMzTERJM0xqazVNalk1T0RjdE5qSXVPVGd6TlRjM055dzJNaTQ1T0RNMU5qWXpjekkzTGprNU1qWTVPRGNzTmpJdU9UZ3pOVFkyTXl3Mk1pNDVPRE0xTnpjM0xEWXlMams0TXpVMk5qTm9NVFl1TXpJNU1EY3hDZ2tKQ1dNekxqY3pNak0yTURnc01DdzJMams1T0RFM05qWXRNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaTAyTGprNU9ERTJPRGx6TFRNdU1qWTFPREUxTnkwMkxqazVPREUyT0RrdE5pNDVPVGd4TnpZMkxUWXVPVGs0TVRZNE9XZ3RNVFl1TXpJNU1EY3hDZ2tKQ1dNdE1qY3VNRFU1TmpFeU15d3dMVFE0TGpVeU1EWTNPVFV0TWpFdU9USTNOakkzTmkwME9DNDFNakEyTnprMUxUUTRMalV5TURZM05UZHpNakV1T1RJM05qRXlNeTAwT0M0MU1qQTJPRE16TERRNExqVXlNRFkzT1RVdE5EZ3VOVEl3Tmpnek13b0pDUWxqTWk0M09Ua3lOekEyTERBc05TNDFPVGcxTkRFekxEQXVORFkyTlRRMU1TdzRMak01Tnpnd05ETXNNQzQ1TXpNd09UQXlZekl1TnprNU1qY3dOaXd3TGpRMk5qVTBOVEVzTmk0d05qVXdOemczTFRBdU9UTXpNRGt3TWl3M0xqUTJORGN5TVRjdE15NDNNekl6TmpBNENna0pDV014TWk0eE16QXhOekkzTFRJd0xqazVORFV5T1Rjc016UXVOVEkwTXpNd01TMHpOQzR3TlRjM09EZzRMRFU0TGpNeE9ERXlNamt0TXpRdU1EVTNOemc0T0dNek5pNDROVGN3TnpBNUxEQXNOamN1TVRneU5EazFNU3d6TUM0ek1qVTBNakEwTERZM0xqRTRNalE1TlRFc05qY3VNVGd5TkRjNU9Rb0pDUWxqTUN3ekxqY3pNak0xTXpJc015NHlOalU0TURneExEWXVPVGs0TVRjMk5pdzJMams1T0RFMk9Ea3NOaTQ1T1RneE56WTJZekUyTGpNeU9UQTNNU3d3TERJNUxqZzFPRGt3TWl3eE15NDFNams0TURBMExESTVMamcxT0Rrd01pd3lPUzQ0TlRnNE56RTFDZ2tKQ1hNdE1UTXVOVEk1T0RNd09Td3lPUzQ0TlRnNE9EWTNMVEk1TGpnMU9Ea3dNaXd5T1M0NE5UZzRPRFkzWXkwekxqY3pNak0yTURnc01DMDJMams1T0RFMk9Ea3NNeTR5TmpVNE1EZ3hMVFl1T1RrNE1UWTRPU3cyTGprNU9ERTJPRGtLQ1FrSmN6TXVNalkxT0RBNE1TdzJMams1T0RFMk9Ea3NOaTQ1T1RneE5qZzVMRFl1T1RrNE1UWTRPV015TkM0eU5qQXpNekF5TERBc05EUXVNekl4TnpZeU1TMHlNQzR3TmpFME1UWTJMRFEwTGpNeU1UYzJNakV0TkRRdU16SXhOell5TVFvSkNRbERNamMyTGpNMk1EWXlOaklzTVRNNUxqSXdNamM0T1RNc01qWXdMakF6TVRVMU5USXNNVEl3TGpVME1EazVNamNzTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04zb2lMejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5NakEyTGpnME5UUXlPRFVzTWpJd0xqZzBPREUzTldNM0xqUTJORGN3TmpRdE9DNDROalF6TmpRMkxERXhMalkyTXpZeUxUSXdMalV5TnprNE5EWXNNVEV1TmpZek5qSXRNekl1TmpVNE1UVTNNd29KQ1Fsak1DMHlPQzQ1TWpVM09UWTFMVEl6TGpNeU56STBMVFV5TGpJMU16QXpOalV0TlRJdU1qVXpNRE0yTlMwMU1pNHlOVE13TXpZMWN5MDFNaTR5TlRNd05EUXhMREl6TGpNeU56STBMVFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRE0yTlFvSkNRbHpNak11TXpJM01qUTNOaXcxTWk0eU5UTXdOVEU0TERVeUxqSTFNekEwTkRFc05USXVNalV6TURVeE9HTXhNUzR4T1Rjd09ESTFMREFzTWpFdU9USTNOakV5TXkwekxqY3pNak0yTURnc016QXVNekkxTkRJME1pMDVMamM1TnpRek9UWnNNekV1TnpJMU1EVXhPU3d6TUM0M09URTVOakUzQ2drSkNXTXhMak01T1RZeU56Y3NNUzR6T1RrMk1qYzNMRE11TWpZMU9ESXpOQ3d4TGpnMk5qRTRNRFFzTlM0eE16RTVPRGcxTERFdU9EWTJNVGd3TkdNeExqZzJOakU1TlRjc01Dd3pMamN6TWpNMk1EZ3RNQzQ1TXpNd056VXNOUzR4TXpFNU9EZzFMVEl1TXpNeU56TXpNZ29KQ1Fsak1pNDNPVGt5TnpBMkxUSXVOems1TWpVMU5Dd3lMamM1T1RJM01EWXROeTQwTmpRM01EWTBMREF0TVRBdU1qWXpPVGMzTVV3eU1EWXVPRFExTkRJNE5Td3lNakF1T0RRNE1UYzFlaUJOTVRJNExqUTJOVGcyTmpFc01UZzRMakU1TURBeE56Y0tDUWtKWXpBdE1qQXVPVGswTlRJeU1Td3hOeTR5TmpJeE56WTFMVE00TGpJMU5qWTVPRFlzTXpndU1qVTJOams0Tmkwek9DNHlOVFkyT1RnMmN6TTRMakkxTmpZNU9EWXNNVGN1TWpZeU1UYzJOU3d6T0M0eU5UWTJPVGcyTERNNExqSTFOalk1T0RZS0NRa0pjeTB4Tnk0eU5qSXhOelkxTERNNExqSTFOalk1T0RZdE16Z3VNalUyTmprNE5pd3pPQzR5TlRZMk9UZzJVekV5T0M0ME5qVTROall4TERJd09TNHhPRFExTXprNExERXlPQzQwTmpVNE5qWXhMREU0T0M0eE9UQXdNVGMzZWlJdlBnb0pQQzluUGdvSlBHYytDZ2tKUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRURTNOQzR5T0RBMk16azJMREU0TlM0NE56TTJNVEUxWXpJdU1qRTJNamM0TVN3d0xqWTROalV6T0Rjc05DNHhNVEF3TXpFeExERXVPRGN3TnpFeU15dzFMalkzTmpZek5UY3NNeTQxTlRJMU1EVTFDZ2tKQ1dNeExqVTJOall3TkRZc01TNDJPREU0TURnMUxESXVOVGs0TnpBNU1Td3pMalkwT1RJMk1UVXNNeTR3T1RFM016VTRMRFV1T1RBeU5EQTBPR013TGpRNU56WXhPVFlzTWk0eU5UTXhORE16TERBdU16WXpPVGs0TkN3MExqVXlPVE15TnpRdE1DNDBNREE0TnpnNUxEWXVPREU1TXpNMU9Rb0pDUWxqTFRBdU9URTJPVEUxT1N3eUxqVXlNRE00TlRjdE1pNDBPRE0xTWpBMUxEUXVOVEk1TXpFeU1TMDBMalk1T1RjNU9EWXNOaTR3TVRjMU9UTTBZeTB5TGpJeE5qSTJNamdzTVM0ME9EZ3lPREV5TFRRdU5qazFNakExTnl3eUxqSTNNVFUzTlRrdE55NDBOVEExTnpZNExESXVNelE1T0RrNU13b0pDUWwyTlM0MU1ERTFOVFkwWXpBc01DNDFNelEwT0RRNUxUQXVNVGN3TkRjeE1pd3dMamszTWpJeE16Y3RNQzQxTVRFME5UazBMREV1TXpFM056YzVOV010TUM0ek5EVTFOalU0TERBdU16UTFOVGd4TVMwd0xqYzRNekk1TkRjc01DNDFNVFl3TmpjMUxURXVNekl5TXpnM055d3dMalV4TmpBMk56VUtDUWtKYUMwekxqWTJOelk1TkRGakxUQXVOVE0wTlRBd01Td3dMVEF1T1RjeU1qRXpOeTB3TGpFM01EUTROalV0TVM0ek1UYzNOemsxTFRBdU5URTJNRFkzTldNdE1DNHpOREE1TnpJNUxUQXVNelExTlRZMU9DMHdMalV4TmpBMk56VXRNQzQzT0RNeU9UUTNMVEF1TlRFMk1EWTNOUzB4TGpNeE56YzNPVFVLQ1FrSmRpMDFMalV3TVRVMU5qUmpMVE11TmpZM05qazBNU3d3TFRZdU9UZzVPREl5TkMweExqRTBOekk1TXpFdE9TNDVOamcyTlRnMExUTXVORE0zTXpBeE5tTXRNQzR6T0RJME5EWXpMVEF1TXpneU5ETXhMVEF1TmpFeU9ESXpOUzB3TGpnME16SXdNRGN0TUM0Mk9EZzROREk0TFRFdU16YzNOekF3T0FvSkNRbGpMVEF1TURjMk1ETTBOUzB3TGpVek5EUTRORGtzTUM0eE1UVXhPRGcyTFRFdU1ETXlNVEEwTlN3d0xqVTNNell6T0RrdE1TNDBPRGd5TlRBM2JETXVPRGsxTnpneU5TMHpMamc1T0RBNE5qVUtDUWtKWXpBdU16QTROekF3Tmkwd0xqSXpNRE01TWpVc01DNDJOamd4TURZeExUQXVNemd5TkRNeExERXVNRGt5TURFd05TMHdMalExTmpFMk1UVmpNQzQwTVRreU9UWXpMVEF1TURjNE16SXpOQ3d3TGpneU1ERTFPVGtzTUM0d016WTROU3d4TGpJd01qWXdOaklzTUM0ek5EQTVOekk1Q2drSkNXTXhMakUwTnpJNU16RXNNQzQzTmpRNE56Y3pMREl1TkRReU1EUTNNU3d4TGpFME56TXdPRE1zTXk0NE9UTTBOak14TERFdU1UUTNNekE0TTJnM0xqWTRNRGsxTkdNd0xqa3hOamswTmpRc01Dd3hMamN3TURJME1URXRNQzR6TWpJMU5EQXpMREl1TXpRNU9EazVNeTB3TGprM01qSXhNemNLQ1FrSll6QXVOalE1TmpnNE55MHdMalkwT1RZNE9EY3NNQzQ1TnpJeU1qa3RNUzQwTnpRME5UWTRMREF1T1RjeU1qSTVMVEl1TkRZMU1UQXpNV013TFRBdU5qZzJOVFUwTFRBdU1qSTFOelk1TFRFdU16TTJNakkzTkMwd0xqWTROalV6T0RjdE1TNDVORGt3TXpVMkNna0pDV010TUM0ME5UWXhOakUxTFRBdU5qRXlPREl6TlMweExqQXpNakV4T1RndE1TNHdNekl4TVRrNExURXVOekU0TmpRek1pMHhMakkyTWpRNU5qbHNMVEV4TGpnd05EZzBNREV0TXk0ME16Y3pNVFk1Q2drSkNXTXRNaTQxT1RnMk9UTTRMVEF1TnpZME9EYzNNeTAwTGpjM016VXlPVEV0TWk0eE16YzVOVFEzTFRZdU5UTXpOalExTmkwMExqRXlPRFEwT0RWakxURXVOelUzT0RFeU5TMHhMams0TlRrd01Ea3RNaTQzT0RjMk5ETTBMVFF1TWpjMU9USTBOeTB6TGpBNU5EQXpPVGt0Tmk0NE56UTJNek00Q2drSkNXTXRNQzR4TlRJd05UTTRMVEl1TkRRMk5qVTFNeXd3TGpNd05qTTVOalV0TkM0M01UZ3lNekV5TERFdU16YzFNemsyTnkwMkxqZ3hPVE16TlRsak1TNHdOamc1TmprM0xUSXVNVEF4TURnNU5Td3lMalU1T0Rjd09URXRNeTQzT0RJNE9ESTNMRFF1TlRnME5qRXROUzR3TkRVek56azJDZ2tKQ1dNeExqazROVGt3TURrdE1TNHlOVGM0T0RnNExEUXVNakF5TVRjNUxURXVPRGc1TVRJNU5pdzJMalkwT0RnME9UVXRNUzQ0T0RreE1qazJhREF1TWpJMU56WTVkaTAxTGpVd01UVTBNVEVLQ1FrSll6QXRNQzQxTXpRMU1EQXhMREF1TVRjMU1EazBOaTB3TGprM01qSXlPU3d3TGpVeE5qQTJOelV0TVM0ek1UYzNPVFE0WXpBdU16UTFOVFkxT0Mwd0xqTTBOVFU0TVRFc01DNDNPRE15TnprMExUQXVOVEUyTURVeU1pd3hMak14TnpjM09UVXRNQzQxTVRZd05USXlhRE11TmpZM05qazBNUW9KQ1Fsak1DNDFNemt3T1RNc01Dd3dMamszTmpneU1Ua3NNQzR4TnpBME56RXlMREV1TXpJeU16ZzNOeXd3TGpVeE5qQTFNakpqTUM0ek5EQTVPRGd5TERBdU16UTFOVFkxT0N3d0xqVXhNVFExT1RRc01DNDNPRE15T1RRM0xEQXVOVEV4TkRVNU5Dd3hMak14TnpjNU5EaDJOUzQxTURFMU5ERXhDZ2tKQ1dNekxqWTJOelk1TkRFc01DdzJMamsxTnpVMk5UTXNNUzR4TkRjeU9UTXhMRGt1T0RZd016Z3lNU3d6TGpRek56TXdNVFpqTUM0ME5UWXhOelk0TERBdU16Z3lORFEyTXl3d0xqY3lNelF4T1RJc01DNDRORE15TURBM0xEQXVPREF4TnpReU5pd3hMak0zTnpZNE5UVUtDUWtKWXpBdU1EY3pOekUxTWl3d0xqVXpORFV3TURFdE1DNHhNVFV5TURNNUxEQXVPVGt3TmpRMk5DMHdMalUzTVRNMU1ERXNNUzR6TnpNd056YzBiQzB6TGpnNU9EQTROalVzTkM0d01UTXlOelV4Q2drSkNXTXRNQzR6TURnM01UVTRMREF1TWpNd016a3lOUzB3TGpZMk9ERXdOakVzTUM0ek9ESTBNekV0TVM0d09USXdNVEExTERBdU5EVTJNVFl4TldNdE1DNDBNVGt5T1RZekxEQXVNRGM0TXpJek5DMHdMamd5TURFMU9Ua3NNQzB4TGpJd01qVTVNRGt0TUM0eU1qVTNOamtLQ1FrSll5MHhMakUwTWpjeE5UVXRNQzQ0TkRNeU1EQTNMVEl1TkRReU1EYzNOaTB4TGpJMk1qUTVOamt0TXk0NE9UZ3dPRFkxTFRFdU1qWXlORGsyT1dndE55NDJOell6TmpFeFl5MHdMamt4TmpreE5Ua3NNQzB4TGpjd01ESXlOVGdzTUM0ek1qSTFNalV0TWk0ek5EazRPVGt6TERBdU9UY3lNakV6TndvSkNRbGpMVEF1TmpRNU5qZzROeXd3TGpZME9UWTNNelV0TUM0NU56WTRNakU1TERFdU5EYzBORFF4TlMwd0xqazNOamd5TVRrc01pNDBOalV3T0RjNVl6QXNNQzQyT0RZMU5UUXNNQzR5TXpBek9USTFMREV1TXpNMk1qRXlNaXd3TGpZNU1URTBOamtzTVM0NU5Ea3dNelUyQ2drSkNXTXdMalExTmpFMk1UVXNNQzQyTVRJNE1qTTFMREV1TURNeU1URTVPQ3d4TGpBek1qRXhPVGdzTVM0M01UZzJOVGcwTERFdU1qWXlORGsyT1V3eE56UXVNamd3TmpNNU5pd3hPRFV1T0Rjek5qRXhOWG9pTHo0S0NUd3ZaejRLUEM5blBnbzhMM04yWno0SyIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiY29uZmlnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfSx7ImFwaUdyb3VwcyI6WyJtb25pdG9yaW5nLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbInByb21ldGhldXNlcy9hcGkiXSwidmVyYnMiOlsiY3JlYXRlIiwiZ2V0IiwidXBkYXRlIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJsYWJlbCI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6e30sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tbGVhZGVyLWVsZWN0Il0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoibWFuYWdlciIsInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci05OTllYjhhMGFlZjgzMzNlOTg1MTIwZWI1MjM2ZjZlNTNmODg3ZWY5MGYwMjg0MzliYjYzYmI1MjA1ZGQwMWJmLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2Ojk5OWViOGEwYWVmODMzM2U5ODUxMjBlYjUyMzZmNmU1M2Y4ODdlZjkwZjAyODQzOWJiNjNiYjUyMDVkZDAxYmYiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMS4wIiwidmVyc2lvbiI6IjMuMS4xIn19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": { + "collect_previous_data": true, + "context_timeout": 120, + "disable_metrics_collection_cost_management": false, + "disable_metrics_collection_resource_optimization": false + }, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "true" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:999eb8a0aef8333e985120eb5236f6e53f887ef90f028439bb63bb5205dd01bf + createdAt: "2024-01-17T15:01:53Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["Disconnected"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v1.32.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 3.1.1 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift. The operator runs on the latest supported versions of Openshift. This operator obtains OpenShift usage data by querying Prometheus every hour to create metric reports that it uploads to Cost Management at [console.redhat.com](https://console.redhat.com) to be processed. For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to Cost Management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The CostManagement Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for Cost Management by: + * Querying Prometheus to gather the necessary metrics for Cost Management. + * Writing the results of Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * Resource Optimization metrics collection. + * The operator can be configured to gather all previous data within the configured retention period or a maximum of 90 days. The default data collection period is the 14 previous days. This setting is only applicable to newly created CostManagementMetricsConfigs. + * The operator can be configured to automatically upload the packaged reports to Cost Management through Red Hat Insights Ingress service. + * The operator can create an integration in console.redhat.com. An integration is required for Cost Management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## New in v3.1.0: + * Add service-account authentication type. + * __Deprecation Notice:__ Basic authentication is deprecated and will be removed in a future version of the operator. + + ## New in v3.0.0: + * Daily report generation: Operator versions prior to v3.0.0 generated sequential reports. Now, reports are generated starting at 0:00 UTC. Any payloads generated throughout a given day will contain all data starting from 0:00 UTC. Once the next day starts, the previous day's reports are packaged, and the new report again starts at 0:00 UTC for the current day. + * Failed query retry: In an attempt to prevent missing data, the operator will retry queries from the last successful query time, up to 5 times. + + ## New in v2.0.0: + * Adds metrics and report generation for resource optimization. This feature will collect additional usage metrics and create a new report in the payload. These metrics are enabled by default, but can be disabled by setting `disable_metrics_collection_resource_optimization` to `true`. + * Collect all available Prometheus data upon CR creation. This feature only applies to newly created CostManagementMetricsConfigs. The operator will check the monitoring stack configuration in the `openshift-monitoring` namespace. The operator will use the `retention` period set in the `cluster-monitoring-config` ConfigMap if defined, up to a maximum of 90 days. Otherwise it will fall back to collecting 14 days of data, if available. This data collection may be disabled by setting `collect_previous_data` to `false`. Turning this feature off results in the operator collecting metrics from the time the CostManagementMetricsConfig is created, forward. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * An integration **must** exist in console.redhat.com for an uploaded payload to be processed by Cost Management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with Cost Management that the payload was processed. After Ingress accepts the uploaded payload, it is deleted from the operator. If the data within the payload is not processed, a gap will be introduced in the usage metrics. Data may be recollected by deleting the `CostManagementMetricsConfig`, creating a new `CostManagementMetricsConfig`, and setting `collect_previous_data: true`. This re-collection of data will gather all data stored in Prometheus, up to 90 days. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is full. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configurable parameters: + * `authentication`: + * `type: token` -> The authentication method for connecting to `console.redhat.com`. The default and preferred method is `token`. `basic` (deprecated) and `service-account` authentication methods are used when the openshift-config pull-secret does not contain a token for `console.redhat.com`. + * `secret_name` -> The Secret used by the operator when the authentication type is `basic` (deprecated) or `service-account`. This parameter is required **only if** the authentication type is `basic` (deprecated) or `service-account`. + * `packaging`: + * `max_reports_to_store: 30` -> The number of reports to store when configured in air-gapped mode. The default is 30, with a minimum of 1 and no maximum. When the operator is not configured in air-gapped mode, this parameter has no effect. Reports are removed as soon as they are uploaded. + * `max_size: 100` -> The maximum size for packaged files in Megabytes prior to compression. The default is 100, with a minimum of 1 and maximum of 100. + * `prometheus_config`: + * `collect_previous_data: true` -> Toggle for collecting all available data in Prometheus **upon CostManagementMetricsConfig creation** (This parameter will start to appear in CostManagementMetricsConfigs that were created prior to v2.0.0 but will not have any effect unless the CostManagementMetricsConfig is deleted and recreated). The default is `true`. The operator will first look for a `retention` period in the `cluster-monitoring-config` ConfigMap in the `openshift-monitoring` namespace and gather data over this time period up to a maximum of 90 days. If this configuration is not set, the default is 14 days. (New in v2.0.0) + * `disable_metrics_collection_cost_management: false` -> Toggle for disabling the collection of metrics for Cost Management. The default is false. (New in v2.0.0) + * `disable_metrics_collection_resource_optimization: false` -> Toggle for disabling the collection of metrics for Resource Optimization. The default is false. (New in v2.0.0) + * `context_timeout: 120` -> The time in seconds before Prometheus queries timeout due to exceeding context timeout. The default is 120, with a minimum of 10 and maximum of 180. + * `source`: + * `name: ''` -> The name of the integration the operator will create in `console.redhat.com`. If the name value is empty, the default intergration name is the **cluster id**. + * `create_source: false` -> Toggle for whether or not the operator will create the integration in `console.redhat.com`. The default is False. This parameter should be switched to True when an integration does not already exist in `console.redhat.com` for this cluster. + * `check_cycle: 1440` -> The time in minutes to wait between checking if an integration exists for this cluster. The default is 1440 minutes (24 hrs). + * `upload`: + * `upload_cycle: 360` -> The time in minutes between payload uploads. The default is 360 (6 hours). + * `upload_toggle: true` -> Toggle to turn upload on or off -> true means upload, false means do not upload (false == air-gapped mode). The default is `true`. + * `upload_wait` -> The amount of time (in seconds) to pause before uploading a payload. The default is a random number between 0 and 35. This is used to decrease service load, but may be set to `0` if desired. + * `volume_claim_template` -> see the "Storage configuration prerequisite" section above. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` (deprecated) or `service-account` is the preferred authentication method, a Secret which holds the credentials must be created: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys (all lowercase) for the respective authentication type. The values for these keys correspond to console.redhat.com credentials: + * basic auth (deprecated): `username` and `password` + * service-account auth: `client_id` and `client_secret` + + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` (deprecated) or `service-account` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic` or `service-account`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + * for basic auth type (deprecated) + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + * for service-account auth type + ``` + authentication: + secret_name: SECRET-NAME + type: service-account + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management integration, edit the following values in the `source` field: + * Replace the `name` field value with the preferred name of the integration to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the integration already exists, replace the empty string value of the `name` field with the existing name, and leave `create_source` as false. This will allow the operator to confirm that the integration exists. + + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec (below is only a template. Any _valid_ `PersistentVolumeClaim` may be defined here): + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360 + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create an Integration + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create an integration. This process must be done manually. In the console.redhat.com platform, open the [Integrations menu](https://console.redhat.com/settings/integrations/) to begin adding an OpenShift integration to Cost Management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Creating an integration: + 1. Navigate to the Integrations menu + 2. Select the `Red Hat` tab + 3. Create a new `Red Hat Openshift Container Platform` integration: + * give the integration a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Source wizard, review the details and click `Finish` to create the source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://console.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:0dba5aba9060c84b1e6d0f5c4322f39940ace6fc4b91891cfe3211df7f53895a name: "" @@ -481,12 +4904,365 @@ properties: value: packageName: costmanagement-metrics-operator version: 3.2.0 -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjEzLjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZWZhdWx0IjoiaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20iLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIFRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgZW5kcG9pbnQgdXNlZCB0byBvYnRhaW4gdGhlIHNlcnZpY2UgYWNjb3VudCB0b2tlbi4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vc3NvLnJlZGhhdC5jb20vYXV0aC9yZWFsbXMvcmVkaGF0LWV4dGVybmFsL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYC4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVmYXVsdCI6InRva2VuIiwiZGVzY3JpcHRpb24iOiJBdXRoVHlwZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgdG8gYmUgdXNlZCBiYXNpYywgc2VydmljZS1hY2NvdW50IG9yIHRva2VuLiBWYWxpZCB2YWx1ZXMgYXJlOiAtIFwiYmFzaWNcIiAoZGVwcmVjYXRlZCkgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIHVzZXIgYW5kIHBhc3N3b3JkIGZyb20gYXV0aGVudGljYXRpb24gc2VjcmV0LiAtIFwic2VydmljZS1hY2NvdW50XCIgOiBFbmFibGVzIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCBmcm9tIHRoZSBzZWNyZXQgY29udGFpbmluZyBzZXJ2aWNlIGFjY291bnQgaW5mb3JtYXRpb24uIC0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIHNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlcklEIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlclZlcnNpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIHZlcnNpb24uIE5vcm1hbGx5IHRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJWZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBDbHVzdGVyVmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBvYmplY3QuIiwicHJvcGVydGllcyI6eyJtYXhfcmVwb3J0c190b19zdG9yZSI6eyJkZWZhdWx0IjozMCwiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4gVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLiBUaGUgZGVmYXVsdCBpcyAxMDAuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxMDAsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJtYXhfcmVwb3J0c190b19zdG9yZSIsIm1heF9zaXplX01CIl0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1c19jb25maWciOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlnIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY29uZmlndXJhdGlvbiBvZiBQcm9tZXRoZXVzIGNvbm5lY3Rpb24uIiwicHJvcGVydGllcyI6eyJjb2xsZWN0X3ByZXZpb3VzX2RhdGEiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJDb2xsZWN0UHJldmlvdXNEYXRhIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgcHJldmlvdXMgZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4gVGhpcyB0b2dnbGUgb25seSBjaGFuZ2VzIG9wZXJhdG9yIGJlaGF2aW9yIHdoZW4gYSBuZXcgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGNyZWF0ZWQuIFdoZW4gYHRydWVgLCB0aGUgb3BlcmF0b3Igd2lsbCBnYXRoZXIgYWxsIGV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4gVGhlIGRlZmF1bHQgaXMgMTIwIHNlY29uZHMuIiwiZm9ybWF0IjoiaW50NjQiLCJtYXhpbXVtIjoxODAsIm1pbmltdW0iOjEwLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvc3QtbWFuYWdlbWVudCBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9yZXNvdXJjZV9vcHRpbWl6YXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uUmVzb3VyY2VPcHRpbWl6YXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTdmNBZGRyZXNzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4gVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTFgLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJzZXJ2aWNlX2FkZHJlc3MiLCJza2lwX3Rsc192ZXJpZmljYXRpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgZGVzaXJlZCBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZWZhdWx0IjoxNDQwLCJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiY3JlYXRlX3NvdXJjZSB0b2dnbGVzIHRoZSBjcmVhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJib29sZWFuIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBkZXNpcmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvc291cmNlcy92MS4wLyIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuIHNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIGAvYXBpL3NvdXJjZXMvdjEuMC9gLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNoZWNrX2N5Y2xlIiwiY3JlYXRlX3NvdXJjZSIsInNvdXJjZXNfcGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVwbG9hZCBvYmplY3QuIiwicHJvcGVydGllcyI6eyJpbmdyZXNzX3BhdGgiOnsiZGVmYXVsdCI6Ii9hcGkvaW5ncmVzcy92MS91cGxvYWQiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLiBJbmdyZXNzQVBJUGF0aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhdGggb2YgdGhlIEluZ3Jlc3MgQVBJIHNlcnZpY2UuIFRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLiBUaGUgZGVmYXVsdCBpcyAzNjAgbWluICg2IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInVwbG9hZF90b2dnbGUiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJVcGxvYWRUb2dnbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBpbnN0YWxsZWQgaW4gYSByZXN0cmljdGVkLW5ldHdvcmsuIElmIGBmYWxzZWAsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tIG9yIGNoZWNrL2NyZWF0ZSBzb3VyY2VzLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7ImRlc2NyaXB0aW9uIjoiRW1iZWRkZWRNZXRhZGF0YSBjb250YWlucyBtZXRhZGF0YSByZWxldmFudCB0byBhbiBFbWJlZGRlZFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIGlzIGFuIHVuc3RydWN0dXJlZCBrZXkgdmFsdWUgbWFwIHN0b3JlZCB3aXRoIGEgcmVzb3VyY2UgdGhhdCBtYXkgYmUgc2V0IGJ5IGV4dGVybmFsIHRvb2xzIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBhcmJpdHJhcnkgbWV0YWRhdGEuIFRoZXkgYXJlIG5vdCBxdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy4gTW9yZSBpbmZvOiBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvYW5ub3RhdGlvbnMiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSAoc2NvcGUgYW5kIHNlbGVjdCkgb2JqZWN0cy4gTWF5IG1hdGNoIHNlbGVjdG9ycyBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2xhYmVscyIsInR5cGUiOiJvYmplY3QifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlLiBJcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHJlc291cmNlcywgYWx0aG91Z2ggc29tZSByZXNvdXJjZXMgbWF5IGFsbG93IGEgY2xpZW50IHRvIHJlcXVlc3QgdGhlIGdlbmVyYXRpb24gb2YgYW4gYXBwcm9wcmlhdGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbi4gQ2Fubm90IGJlIHVwZGF0ZWQuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwcm9wZXJ0aWVzIjp7ImFjY2Vzc01vZGVzIjp7ImRlc2NyaXB0aW9uIjoiYWNjZXNzTW9kZXMgY29udGFpbnMgdGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmUuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYWNjZXNzLW1vZGVzLTEiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJkYXRhU291cmNlIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZSBmaWVsZCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGVpdGhlcjogKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KSAqIEFuIGV4aXN0aW5nIFBWQyAoUGVyc2lzdGVudFZvbHVtZUNsYWltKSBJZiB0aGUgcHJvdmlzaW9uZXIgb3IgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBjYW4gc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuIFdoZW4gdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIGlzIGVuYWJsZWQsIGRhdGFTb3VyY2UgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZVJlZiwgYW5kIGRhdGFTb3VyY2VSZWYgY29udGVudHMgd2lsbCBiZSBjb3BpZWQgdG8gZGF0YVNvdXJjZSB3aGVuIGRhdGFTb3VyY2VSZWYubmFtZXNwYWNlIGlzIG5vdCBzcGVjaWZpZWQuIElmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJkYXRhU291cmNlUmVmIjp7ImRlc2NyaXB0aW9uIjoiZGF0YVNvdXJjZVJlZiBzcGVjaWZpZXMgdGhlIG9iamVjdCBmcm9tIHdoaWNoIHRvIHBvcHVsYXRlIHRoZSB2b2x1bWUgd2l0aCBkYXRhLCBpZiBhIG5vbi1lbXB0eSB2b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uIGNvcmUgb2JqZWN0KSBvciBhIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBvYmplY3QuIFdoZW4gdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQsIHZvbHVtZSBiaW5kaW5nIHdpbGwgb25seSBzdWNjZWVkIGlmIHRoZSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljIHByb3Zpc2lvbmVyLiBUaGlzIGZpZWxkIHdpbGwgcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGF0YVNvdXJjZSBmaWVsZCBhbmQgYXMgc3VjaCBpZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3aGVuIG5hbWVzcGFjZSBpc24ndCBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgYm90aCBmaWVsZHMgKGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWYpIHdpbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuIFdoZW4gbmFtZXNwYWNlIGlzIHNwZWNpZmllZCBpbiBkYXRhU291cmNlUmVmLCBkYXRhU291cmNlIGlzbid0IHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhbmQgbXVzdCBiZSBlbXB0eS4gVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6ICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyB0d28gc3BlY2lmaWMgdHlwZXMgb2Ygb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3MgYW55IG5vbi1jb3JlIG9iamVjdCwgYXMgd2VsbCBhcyBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0cy4gKiBXaGlsZSBkYXRhU291cmNlIGlnbm9yZXMgZGlzYWxsb3dlZCB2YWx1ZXMgKGRyb3BwaW5nIHRoZW0pLCBkYXRhU291cmNlUmVmIHByZXNlcnZlcyBhbGwgdmFsdWVzLCBhbmQgZ2VuZXJhdGVzIGFuIGVycm9yIGlmIGEgZGlzYWxsb3dlZCB2YWx1ZSBpcyBzcGVjaWZpZWQuICogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzIGluIGFueSBuYW1lc3BhY2VzLiAoQmV0YSkgVXNpbmcgdGhpcyBmaWVsZCByZXF1aXJlcyB0aGUgQW55Vm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4gKEFscGhhKSBVc2luZyB0aGUgbmFtZXNwYWNlIGZpZWxkIG9mIGRhdGFTb3VyY2VSZWYgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaUdyb3VwIjp7ImRlc2NyaXB0aW9uIjoiQVBJR3JvdXAgaXMgdGhlIGdyb3VwIGZvciB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZC4gSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLiBGb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWVzcGFjZSBpcyB0aGUgbmFtZXNwYWNlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQgTm90ZSB0aGF0IHdoZW4gYSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCBhIGdhdGV3YXkubmV0d29ya2luZy5rOHMuaW8vUmVmZXJlbmNlR3JhbnQgb2JqZWN0IGlzIHJlcXVpcmVkIGluIHRoZSByZWZlcmVudCBuYW1lc3BhY2UgdG8gYWxsb3cgdGhhdCBuYW1lc3BhY2UncyBvd25lciB0byBhY2NlcHQgdGhlIHJlZmVyZW5jZS4gU2VlIHRoZSBSZWZlcmVuY2VHcmFudCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLiAoQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBJZiBSZWNvdmVyVm9sdW1lRXhwYW5zaW9uRmFpbHVyZSBmZWF0dXJlIGlzIGVuYWJsZWQgdXNlcnMgYXJlIGFsbG93ZWQgdG8gc3BlY2lmeSByZXNvdXJjZSByZXF1aXJlbWVudHMgdGhhdCBhcmUgbG93ZXIgdGhhbiBwcmV2aW91cyB2YWx1ZSBidXQgbXVzdCBzdGlsbCBiZSBoaWdoZXIgdGhhbiBjYXBhY2l0eSByZWNvcmRlZCBpbiB0aGUgc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNyZXNvdXJjZXMiLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsIHRoYXQgYXJlIHVzZWQgYnkgdGhpcyBjb250YWluZXIuIFxuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIHRoZSBEeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS4gXG4gVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mIHRoZSBQb2Qgd2hlcmUgdGhpcyBmaWVsZCBpcyB1c2VkLiBJdCBtYWtlcyB0aGF0IHJlc291cmNlIGF2YWlsYWJsZSBpbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuIElmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyBhIGxhYmVsIHF1ZXJ5IG92ZXIgdm9sdW1lcyB0byBjb25zaWRlciBmb3IgYmluZGluZy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJzdG9yYWdlQ2xhc3NOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBTdG9yYWdlQ2xhc3MgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU1vZGUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVNb2RlIGRlZmluZXMgd2hhdCB0eXBlIG9mIHZvbHVtZSBpcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uIFZhbHVlIG9mIEZpbGVzeXN0ZW0gaXMgaW1wbGllZCB3aGVuIG5vdCBpbmNsdWRlZCBpbiBjbGFpbSBzcGVjLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6InZvbHVtZU5hbWUgaXMgdGhlIGJpbmRpbmcgcmVmZXJlbmNlIHRvIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJhdXRoZW50aWNhdGlvbiIsInBhY2thZ2luZyIsInByb21ldGhldXNfY29uZmlnIiwic291cmNlIiwidXBsb2FkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVzY3JpcHRpb24iOiJBUElVUkwgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cmwgb2YgdGhlIEFQSSBlbmRwb2ludCBmb3Igc2VydmljZSBpbnRlcmFjdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFsc19mb3VuZCI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbHNGb3VuZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdXNlZCBmb3IgdXBsb2FkcyB3ZXJlIGZvdW5kLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiQXV0aEVycm9yTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYW4gYGludmFsaWQgY3JlZGVudGlhbHNgIGVycm9yIG1lc3NhZ2UuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NyZWRlbnRpYWxfdmVyaWZpY2F0aW9uX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VmVyaWZpY2F0aW9uVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBjcmVkZW50aWFscyB3ZXJlIHZlcmlmaWVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInNlY3JldF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25TZWNyZXROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgc2VjcmV0IHdpdGggdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHVzZWQgZm9yIHVwbG9hZHMuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2tlbl91cmwiOnsiZGVzY3JpcHRpb24iOiJUb2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCB1c2VkIHRvIGdlbmVyYXRlIGEgc2VydmljZSBhY2NvdW50IHRva2VuLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uIiwiZW51bSI6WyJ0b2tlbiIsImJhc2ljIiwic2VydmljZS1hY2NvdW50Il0sInR5cGUiOiJzdHJpbmcifSwidmFsaWRfYmFzaWNfYXV0aCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkQmFzaWNBdXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgZ2l2ZW4gYmFzaWMgYXV0aCBjcmVkZW50aWFscyBhcmUgdmFsaWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcklEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciBVVUlELiIsInR5cGUiOiJzdHJpbmcifSwiY2x1c3RlclZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVyVmVyc2lvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yX2NvbW1pdCI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yQ29tbWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGNvbW1pdCBoYXNoIG9mIHRoZSBvcGVyYXRvci4iLCJ0eXBlIjoic3RyaW5nIn0sInBhY2thZ2luZyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2luZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHBhY2thZ2luZyBzdGF0dXMiLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCBwYWNrYWdpbmcgdGhlIHJlcG9ydHMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfcGFja2FnaW5nX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFBhY2thZ2luZ1RpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGZpbGUgcGFja2FnaW5nLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sIm1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlc2NyaXB0aW9uIjoiTWF4UmVwb3J0cyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJtYXhfc2l6ZV9NQiI6eyJkZXNjcmlwdGlvbiI6Ik1heFNpemUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXggZmlsZSBzaXplIGluIG1lZ2FieXRlcyB0aGF0IHdpbGwgYmUgY29tcHJlc3NlZCBmb3IgdXBsb2FkIHRvIEluZ3Jlc3MuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJudW1iZXJfcmVwb3J0c19zdG9yZWQiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRDb3VudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiByZXBvcnRzIGluIHN0b3JhZ2UuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwYWNrYWdlZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6IlBhY2thZ2VkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGUgcGFja2FnZXMgaW4gc3RvcmFnZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50X3ZvbHVtZV9jbGFpbSI6eyJkZXNjcmlwdGlvbiI6IlBlcnNpc3RlbnRWb2x1bWVDbGFpbSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgYSBQVkMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlIHNldCBieSBleHRlcm5hbCB0b29scyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhLiBUaGV5IGFyZSBub3QgcXVlcnlhYmxlIGFuZCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gbW9kaWZ5aW5nIG9iamVjdHMuIE1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemUgKHNjb3BlIGFuZCBzZWxlY3QpIG9iamVjdHMuIE1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoIHNvbWUgcmVzb3VyY2VzIG1heSBhbGxvdyBhIGNsaWVudCB0byByZXF1ZXN0IHRoZSBnZW5lcmF0aW9uIG9mIGFuIGFwcHJvcHJpYXRlIG5hbWUgYXV0b21hdGljYWxseS4gTmFtZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGNyZWF0aW9uIGlkZW1wb3RlbmNlIGFuZCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIENhbm5vdCBiZSB1cGRhdGVkLiBNb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSB2b2x1bWUgcmVxdWVzdGVkIGJ5IGEgcG9kIGF1dGhvci4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlcy0xIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiZGF0YVNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBlaXRoZXI6ICogQW4gZXhpc3RpbmcgVm9sdW1lU25hcHNob3Qgb2JqZWN0IChzbmFwc2hvdC5zdG9yYWdlLms4cy5pby9Wb2x1bWVTbmFwc2hvdCkgKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgSWYgdGhlIHByb3Zpc2lvbmVyIG9yIGFuIGV4dGVybmFsIGNvbnRyb2xsZXIgY2FuIHN1cHBvcnQgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdm9sdW1lIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlLiBXaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsIGFuZCBkYXRhU291cmNlUmVmIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2Ugd2hlbiBkYXRhU291cmNlUmVmLm5hbWVzcGFjZSBpcyBub3Qgc3BlY2lmaWVkLiBJZiB0aGUgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgdGhlbiBkYXRhU291cmNlUmVmIHdpbGwgbm90IGJlIGNvcGllZCB0byBkYXRhU291cmNlLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLiBJZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuIEZvciBhbnkgb3RoZXIgdGhpcmQtcGFydHkgdHlwZXMsIEFQSUdyb3VwIGlzIHJlcXVpcmVkLiIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgdGhlIHR5cGUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwiZGF0YVNvdXJjZVJlZiI6eyJkZXNjcmlwdGlvbiI6ImRhdGFTb3VyY2VSZWYgc3BlY2lmaWVzIHRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lIHdpdGggZGF0YSwgaWYgYSBub24tZW1wdHkgdm9sdW1lIGlzIGRlc2lyZWQuIFRoaXMgbWF5IGJlIGFueSBvYmplY3QgZnJvbSBhIG5vbi1lbXB0eSBBUEkgZ3JvdXAgKG5vbiBjb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LiBXaGVuIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkLCB2b2x1bWUgYmluZGluZyB3aWxsIG9ubHkgc3VjY2VlZCBpZiB0aGUgdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBtYXRjaGVzIHNvbWUgaW5zdGFsbGVkIHZvbHVtZSBwb3B1bGF0b3Igb3IgZHluYW1pYyBwcm92aXNpb25lci4gVGhpcyBmaWVsZCB3aWxsIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGRhdGFTb3VyY2UgZmllbGQgYW5kIGFzIHN1Y2ggaWYgYm90aCBmaWVsZHMgYXJlIG5vbi1lbXB0eSwgdGhleSBtdXN0IGhhdmUgdGhlIHNhbWUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsIGJvdGggZmllbGRzIChkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmKSB3aWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIG9uZSBvZiB0aGVtIGlzIGVtcHR5IGFuZCB0aGUgb3RoZXIgaXMgbm9uLWVtcHR5LiBXaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZiwgZGF0YVNvdXJjZSBpc24ndCBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgYW5kIG11c3QgYmUgZW1wdHkuIFRoZXJlIGFyZSB0aHJlZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXMgYmV0d2VlbiBkYXRhU291cmNlIGFuZCBkYXRhU291cmNlUmVmOiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWYgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuICogV2hpbGUgZGF0YVNvdXJjZSBpZ25vcmVzIGRpc2FsbG93ZWQgdmFsdWVzIChkcm9wcGluZyB0aGVtKSwgZGF0YVNvdXJjZVJlZiBwcmVzZXJ2ZXMgYWxsIHZhbHVlcywgYW5kIGdlbmVyYXRlcyBhbiBlcnJvciBpZiBhIGRpc2FsbG93ZWQgdmFsdWUgaXMgc3BlY2lmaWVkLiAqIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgbG9jYWwgb2JqZWN0cywgZGF0YVNvdXJjZVJlZiBhbGxvd3Mgb2JqZWN0cyBpbiBhbnkgbmFtZXNwYWNlcy4gKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIChBbHBoYSkgVXNpbmcgdGhlIG5hbWVzcGFjZSBmaWVsZCBvZiBkYXRhU291cmNlUmVmIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuIElmIEFQSUdyb3VwIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgS2luZCBtdXN0IGJlIGluIHRoZSBjb3JlIEFQSSBncm91cC4gRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIE5vdGUgdGhhdCB3aGVuIGEgbmFtZXNwYWNlIGlzIHNwZWNpZmllZCwgYSBnYXRld2F5Lm5ldHdvcmtpbmcuazhzLmlvL1JlZmVyZW5jZUdyYW50IG9iamVjdCBpcyByZXF1aXJlZCBpbiB0aGUgcmVmZXJlbnQgbmFtZXNwYWNlIHRvIGFsbG93IHRoYXQgbmFtZXNwYWNlJ3Mgb3duZXIgdG8gYWNjZXB0IHRoZSByZWZlcmVuY2UuIFNlZSB0aGUgUmVmZXJlbmNlR3JhbnQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gKEFscGhhKSBUaGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBDcm9zc05hbWVzcGFjZVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJyZXNvdXJjZXMgcmVwcmVzZW50cyB0aGUgbWluaW11bSByZXNvdXJjZXMgdGhlIHZvbHVtZSBzaG91bGQgaGF2ZS4gSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGxvd2VyIHRoYW4gcHJldmlvdXMgdmFsdWUgYnV0IG11c3Qgc3RpbGwgYmUgaGlnaGVyIHRoYW4gY2FwYWNpdHkgcmVjb3JkZWQgaW4gdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgY2xhaW0uIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJzdG9yYWdlQ2xhc3NOYW1lIjp7ImRlc2NyaXB0aW9uIjoic3RvcmFnZUNsYXNzTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgU3RvcmFnZUNsYXNzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNjbGFzcy0xIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLiBWYWx1ZSBvZiBGaWxlc3lzdGVtIGlzIGltcGxpZWQgd2hlbiBub3QgaW5jbHVkZWQgaW4gY2xhaW0gc3BlYy4iLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZU5hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVOYW1lIGlzIHRoZSBiaW5kaW5nIHJlZmVyZW5jZSB0byB0aGUgUGVyc2lzdGVudFZvbHVtZSBiYWNraW5nIHRoaXMgY2xhaW0uIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwcm9tZXRoZXVzIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcHJlbWV0aGV1cyBxdWVyaWVzLiIsInByb3BlcnRpZXMiOnsiY29uZmlndXJhdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0Vycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgY29uZmlndXJhdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImNvbnRleHRfdGltZW91dCI6eyJkZXNjcmlwdGlvbiI6IkNvbnRleHRUaW1lb3V0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdGUgdG8gcmVwcmVzZW50IGhvdyBsb25nIGEgcXVlcnkgdG8gcHJvbWV0aGV1cyBzaG91bGQgcnVuIGluIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25Db3N0TWFuYWdlbWVudCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyBjb3N0LW1hbmFnZW1lbnQgbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0Ijp0cnVlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVkTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgY29sbGVjdGluZyByZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29uZmlndXJlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25maWd1cmVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgY29uZmlndXJlZCB0byBjb25uZWN0IHRvIHByb21ldGhldXMuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29ubmVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiBwcm9tZXRoZXVzIGNhbiBiZSBxdWVyaWVkLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGlvbl9lcnJvciI6eyJkZXNjcmlwdGlvbiI6IkNvbm5lY3Rpb25FcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIHRlc3QgcXVlcnkuIiwidHlwZSI6InN0cmluZyJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVzY3JpcHRpb24iOiJTdmNBZGRyZXNzIGlzIHRoZSBpbnRlcm5hbCB0aGFub3MtcXVlcmllciBhZGRyZXNzLiIsInR5cGUiOiJzdHJpbmcifSwic2tpcF90bHNfdmVyaWZpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2tpcFRMU1ZlcmlmaWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIHRoYW5vcy1xdWVyaWVyIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiLCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCJdLCJ0eXBlIjoib2JqZWN0In0sInJlcG9ydHMiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRzIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiByZXBvcnQgZ2VuZXJhdGlvbi4iLCJwcm9wZXJ0aWVzIjp7ImRhdGFfY29sbGVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgZGF0YSB3YXMgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBxdWVyeS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkYXRhX2NvbGxlY3Rpb25fbWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0aW9uTWVzc2FnZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YV9jb2xsZWN0ZWQgc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9ob3VyX3F1ZXJpZWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0SG91clF1ZXJpZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHJhbmdlIGZvciB3aGljaCBtZXRyaWNzIHdlcmUgbGFzdCBxdWVyaWVkLiIsInR5cGUiOiJzdHJpbmcifSwicmVwb3J0X21vbnRoIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0TW9udGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBtb250aCBmb3Igd2hpY2ggcmVwb3J0cyBhcmUgYmVpbmcgZ2VuZXJhdGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwicHJvcGVydGllcyI6eyJjaGVja19jeWNsZSI6eyJkZXNjcmlwdGlvbiI6ImNoZWNrX2N5Y2xlIGlzIHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gSW50ZWdyYXRpb24gd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgaW50ZWdyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0X2NoZWNrX3RpbWUgaXMgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20uIFRoZSBkZWZhdWx0IGlzIHRydWUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ1cGxvYWRfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRDeWNsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCB1cGxvYWQgc2NoZWR1bGUuIFRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOltdLCJzdG9yZWRWZXJzaW9ucyI6W119fQ== -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmNlOWQyZjkzZjJjNzk5YTNhMGI2YWVlM2IwOWQ4YTk0MDQyZGMyMjFjYjYxMDViN2JkNmJmZWIyZjFjNGViY2EiLCJjcmVhdGVkQXQiOiIyMDI0LTAxLTMwVDE3OjAxOjM0WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Byb3h5LWF3YXJlIjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdGxzLXByb2ZpbGVzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXdzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXp1cmUiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1nY3AiOiJmYWxzZSIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcImRpc2Nvbm5lY3RlZFwiLCBcInByb3h5LWF3YXJlXCJdIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby92YWxpZC1zdWJzY3JpcHRpb24iOiJbXCJPcGVuU2hpZnQgS3ViZXJuZXRlcyBFbmdpbmVcIiwgXCJPcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtXCIsIFwiT3BlblNoaWZ0IFBsYXRmb3JtIFBsdXNcIl0iLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4zMy4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjQiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IiLCJzdXBwb3J0IjoiUmVkIEhhdCJ9LCJsYWJlbHMiOnsib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hbWQ2NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guYXJtNjQiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnBwYzY0bGUiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnMzOTB4Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vb3MubGludXgiOiJzdXBwb3J0ZWQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4yLjAiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWJldGExIn1dfSwiZGVzY3JpcHRpb24iOiIjIDMuMi4wIENvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yXG4jIyBJbnRyb2R1Y3Rpb25cblRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgYSBjb21wb25lbnQgb2YgdGhlIFtjb3N0IG1hbmFnbWVudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9kb2N1bWVudGF0aW9uL2VuLXVzL2Nvc3RfbWFuYWdlbWVudF9zZXJ2aWNlKSBzZXJ2aWNlIGZvciBPcGVuc2hpZnQuIFRoZSBvcGVyYXRvciBydW5zIG9uIHRoZSBsYXRlc3Qgc3VwcG9ydGVkIHZlcnNpb25zIG9mIE9wZW5zaGlmdC4gVGhpcyBvcGVyYXRvciBvYnRhaW5zIE9wZW5TaGlmdCB1c2FnZSBkYXRhIGJ5IHF1ZXJ5aW5nIFByb21ldGhldXMgZXZlcnkgaG91ciB0byBjcmVhdGUgbWV0cmljIHJlcG9ydHMgdGhhdCBpdCB1cGxvYWRzIHRvIENvc3QgTWFuYWdlbWVudCBhdCBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkgdG8gYmUgcHJvY2Vzc2VkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhY2ggb3V0IHRvIFx1MDAzY2Nvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb21cdTAwM2UuXG5cblRoaXMgb3BlcmF0b3IgaXMgY2FwYWJsZSBvZiBmdW5jdGlvbmluZyB3aXRoaW4gYSBkaXNjb25uZWN0ZWQvcmVzdHJpY3RlZCBuZXR3b3JrIChha2EgYWlyLWdhcHBlZCBtb2RlKS4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igd2lsbCBzdG9yZSB0aGUgcGFja2FnZWQgcmVwb3J0cyBmb3IgbWFudWFsIHJldHJpZXZhbCBpbnN0ZWFkIG9mIGJlaW5nIHVwbG9hZGVkIHRvIENvc3QgTWFuYWdlbWVudC4gRG9jdW1lbnRhdGlvbiBmb3IgaW5zdGFsbGluZyBhbiBvcGVyYXRvciB3aXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmsgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS5cblxuIyMgRmVhdHVyZXMgYW5kIENhcGFiaWxpdGllc1xuIyMjIyBNZXRyaWNzIGNvbGxlY3Rpb246XG5UaGUgQ29zdE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgQ29zdCBNYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC5cbiogV3JpdGluZyB0aGUgcmVzdWx0cyBvZiBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFJlc291cmNlIE9wdGltaXphdGlvbiBtZXRyaWNzIGNvbGxlY3Rpb24uXG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBnYXRoZXIgYWxsIHByZXZpb3VzIGRhdGEgd2l0aGluIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2Qgb3IgYSBtYXhpbXVtIG9mIDkwIGRheXMuIFRoZSBkZWZhdWx0IGRhdGEgY29sbGVjdGlvbiBwZXJpb2QgaXMgdGhlIDE0IHByZXZpb3VzIGRheXMuIFRoaXMgc2V0dGluZyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gQ29zdCBNYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGFuIGludGVncmF0aW9uIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gaW50ZWdyYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBOZXcgaW4gdjMuMi4wOlxuKiBTdXBwb3J0IGZvciBhbWQ2NCwgYXJtNjQsIHBwYzY0bGUsIHMzOTB4IGFyY2hpdGVjdHVyZXNcbiogYWRkIGxpdmVuZXNzIGFuZCByZWFkaW5lc3MgcHJvYmVzIHRvIGNvbnRyb2xsZXIgUG9kXG4qIHVwZGF0ZSBwb2Qgc2VjdXJpdHkgc2V0dGluZ3Mgc28gdGhhdCB0aGUgY29udHJvbGxlciBQb2QgY2FuIHJ1biBpbiBSZXN0cmljdGVkIG1vZGUgW21vcmUgaW5mb10oaHR0cHM6Ly9zZGsub3BlcmF0b3JmcmFtZXdvcmsuaW8vZG9jcy9iZXN0LXByYWN0aWNlcy9wb2Qtc2VjdXJpdHktc3RhbmRhcmRzLylcblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycykuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YFxuXG4zLiBTZWxlY3QgYENyZWF0ZWAuXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBGb3IgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYCBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgICogZm9yIGJhc2ljIGF1dGggdHlwZSAoZGVwcmVjYXRlZClcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IGJhc2ljXG4gICAgICAgIGBgYFxuXG4gICAgICAgICogZm9yIHNlcnZpY2UtYWNjb3VudCBhdXRoIHR5cGVcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IHNlcnZpY2UtYWNjb3VudFxuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBpbnRlZ3JhdGlvbiwgZWRpdCB0aGUgZm9sbG93aW5nIHZhbHVlcyBpbiB0aGUgYHNvdXJjZWAgZmllbGQ6XG4gICAgKiBSZXBsYWNlIHRoZSBgbmFtZWAgZmllbGQgdmFsdWUgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIGludGVncmF0aW9uIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgaW50ZWdyYXRpb24gZXhpc3RzLlxuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjIChiZWxvdyBpcyBvbmx5IGEgdGVtcGxhdGUuIEFueSBfdmFsaWRfIGBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1gIG1heSBiZSBkZWZpbmVkIGhlcmUpOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGFuIEludGVncmF0aW9uXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW50ZWdyYXRpb24uIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtJbnRlZ3JhdGlvbnMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3MvaW50ZWdyYXRpb25zLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBpbnRlZ3JhdGlvbiB0byBDb3N0IE1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGluZyBhbiBpbnRlZ3JhdGlvbjpcbjEuIE5hdmlnYXRlIHRvIHRoZSBJbnRlZ3JhdGlvbnMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdGAgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgaW50ZWdyYXRpb246XG4gICAgKiBnaXZlIHRoZSBpbnRlZ3JhdGlvbiBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2Ugd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgc291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2FwaS9pbmdyZXNzL3YxL3VwbG9hZCAtdSBVU0VSTkFNRTpQQVNTXG5cbndoZXJlIGBVU0VSTkFNRWAgYW5kIGBQQVNTYCBjb3JyZXNwb25kIHRvIHRoZSB1c2VyIGNyZWRlbnRpYWxzIGZvciBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4iLCJkaXNwbGF5TmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NEtQQ0V0TFNCSFpXNWxjbUYwYjNJNklFRmtiMkpsSUVsc2JIVnpkSEpoZEc5eUlESXlMakV1TUN3Z1UxWkhJRVY0Y0c5eWRDQlFiSFZuTFVsdUlDNGdVMVpISUZabGNuTnBiMjQ2SURZdU1EQWdRblZwYkdRZ01Da2dJQzB0UGdvOGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJa3hoZVdWeVh6RWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWdvSklIWnBaWGRDYjNnOUlqQWdNQ0F6TURBZ016QXdJaUJ6ZEhsc1pUMGlaVzVoWW14bExXSmhZMnRuY205MWJtUTZibVYzSURBZ01DQXpNREFnTXpBd095SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStDZ2t1YzNRd2UyWnBiR3c2STBWRk1EQXdNRHQ5Q2p3dmMzUjViR1UrQ2p4MGFYUnNaVDVEYjNOMExXbGpiMjQ4TDNScGRHeGxQZ284WkdWell6NURjbVZoZEdWa0lIZHBkR2dnVTJ0bGRHTm9Mand2WkdWell6NEtQR2MrQ2drOFp6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOMk10TXk0eU5qVTRNRGd4TFRReExqazRPVEExTVRndE16Z3VNalUyTmpnek15MDNOQzQyTkRjeU1ERTFMVGd4TGpFM09EZ3pNeTAzTkM0Mk5EY3lNREUxQ2drSkNXTXRNamN1TlRJMk1UVXpOaXd3TFRVekxqRTROakV5Tmpjc01UTXVPVGsyTXpRNU15MDJPQzR4TVRVMU56QXhMRE0zTGpNeU16WXdNRGhqTFRFdU9EWTJNVGd3TkN3d0xUTXVOek15TXpVek1pMHdMalEyTmpVME5URXROaTR3TmpVd056ZzNMVEF1TkRZMk5UUTFNUW9KQ1FsakxUTTBMalV5TkRNek1ERXNNQzAyTWk0NU9ETTFOemMzTERJM0xqazVNalk1T0RjdE5qSXVPVGd6TlRjM055dzJNaTQ1T0RNMU5qWXpjekkzTGprNU1qWTVPRGNzTmpJdU9UZ3pOVFkyTXl3Mk1pNDVPRE0xTnpjM0xEWXlMams0TXpVMk5qTm9NVFl1TXpJNU1EY3hDZ2tKQ1dNekxqY3pNak0yTURnc01DdzJMams1T0RFM05qWXRNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaTAyTGprNU9ERTJPRGx6TFRNdU1qWTFPREUxTnkwMkxqazVPREUyT0RrdE5pNDVPVGd4TnpZMkxUWXVPVGs0TVRZNE9XZ3RNVFl1TXpJNU1EY3hDZ2tKQ1dNdE1qY3VNRFU1TmpFeU15d3dMVFE0TGpVeU1EWTNPVFV0TWpFdU9USTNOakkzTmkwME9DNDFNakEyTnprMUxUUTRMalV5TURZM05UZHpNakV1T1RJM05qRXlNeTAwT0M0MU1qQTJPRE16TERRNExqVXlNRFkzT1RVdE5EZ3VOVEl3Tmpnek13b0pDUWxqTWk0M09Ua3lOekEyTERBc05TNDFPVGcxTkRFekxEQXVORFkyTlRRMU1TdzRMak01Tnpnd05ETXNNQzQ1TXpNd09UQXlZekl1TnprNU1qY3dOaXd3TGpRMk5qVTBOVEVzTmk0d05qVXdOemczTFRBdU9UTXpNRGt3TWl3M0xqUTJORGN5TVRjdE15NDNNekl6TmpBNENna0pDV014TWk0eE16QXhOekkzTFRJd0xqazVORFV5T1Rjc016UXVOVEkwTXpNd01TMHpOQzR3TlRjM09EZzRMRFU0TGpNeE9ERXlNamt0TXpRdU1EVTNOemc0T0dNek5pNDROVGN3TnpBNUxEQXNOamN1TVRneU5EazFNU3d6TUM0ek1qVTBNakEwTERZM0xqRTRNalE1TlRFc05qY3VNVGd5TkRjNU9Rb0pDUWxqTUN3ekxqY3pNak0xTXpJc015NHlOalU0TURneExEWXVPVGs0TVRjMk5pdzJMams1T0RFMk9Ea3NOaTQ1T1RneE56WTJZekUyTGpNeU9UQTNNU3d3TERJNUxqZzFPRGt3TWl3eE15NDFNams0TURBMExESTVMamcxT0Rrd01pd3lPUzQ0TlRnNE56RTFDZ2tKQ1hNdE1UTXVOVEk1T0RNd09Td3lPUzQ0TlRnNE9EWTNMVEk1TGpnMU9Ea3dNaXd5T1M0NE5UZzRPRFkzWXkwekxqY3pNak0yTURnc01DMDJMams1T0RFMk9Ea3NNeTR5TmpVNE1EZ3hMVFl1T1RrNE1UWTRPU3cyTGprNU9ERTJPRGtLQ1FrSmN6TXVNalkxT0RBNE1TdzJMams1T0RFMk9Ea3NOaTQ1T1RneE5qZzVMRFl1T1RrNE1UWTRPV015TkM0eU5qQXpNekF5TERBc05EUXVNekl4TnpZeU1TMHlNQzR3TmpFME1UWTJMRFEwTGpNeU1UYzJNakV0TkRRdU16SXhOell5TVFvSkNRbERNamMyTGpNMk1EWXlOaklzTVRNNUxqSXdNamM0T1RNc01qWXdMakF6TVRVMU5USXNNVEl3TGpVME1EazVNamNzTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04zb2lMejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5NakEyTGpnME5UUXlPRFVzTWpJd0xqZzBPREUzTldNM0xqUTJORGN3TmpRdE9DNDROalF6TmpRMkxERXhMalkyTXpZeUxUSXdMalV5TnprNE5EWXNNVEV1TmpZek5qSXRNekl1TmpVNE1UVTNNd29KQ1Fsak1DMHlPQzQ1TWpVM09UWTFMVEl6TGpNeU56STBMVFV5TGpJMU16QXpOalV0TlRJdU1qVXpNRE0yTlMwMU1pNHlOVE13TXpZMWN5MDFNaTR5TlRNd05EUXhMREl6TGpNeU56STBMVFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRE0yTlFvSkNRbHpNak11TXpJM01qUTNOaXcxTWk0eU5UTXdOVEU0TERVeUxqSTFNekEwTkRFc05USXVNalV6TURVeE9HTXhNUzR4T1Rjd09ESTFMREFzTWpFdU9USTNOakV5TXkwekxqY3pNak0yTURnc016QXVNekkxTkRJME1pMDVMamM1TnpRek9UWnNNekV1TnpJMU1EVXhPU3d6TUM0M09URTVOakUzQ2drSkNXTXhMak01T1RZeU56Y3NNUzR6T1RrMk1qYzNMRE11TWpZMU9ESXpOQ3d4TGpnMk5qRTRNRFFzTlM0eE16RTVPRGcxTERFdU9EWTJNVGd3TkdNeExqZzJOakU1TlRjc01Dd3pMamN6TWpNMk1EZ3RNQzQ1TXpNd056VXNOUzR4TXpFNU9EZzFMVEl1TXpNeU56TXpNZ29KQ1Fsak1pNDNPVGt5TnpBMkxUSXVOems1TWpVMU5Dd3lMamM1T1RJM01EWXROeTQwTmpRM01EWTBMREF0TVRBdU1qWXpPVGMzTVV3eU1EWXVPRFExTkRJNE5Td3lNakF1T0RRNE1UYzFlaUJOTVRJNExqUTJOVGcyTmpFc01UZzRMakU1TURBeE56Y0tDUWtKWXpBdE1qQXVPVGswTlRJeU1Td3hOeTR5TmpJeE56WTFMVE00TGpJMU5qWTVPRFlzTXpndU1qVTJOams0Tmkwek9DNHlOVFkyT1RnMmN6TTRMakkxTmpZNU9EWXNNVGN1TWpZeU1UYzJOU3d6T0M0eU5UWTJPVGcyTERNNExqSTFOalk1T0RZS0NRa0pjeTB4Tnk0eU5qSXhOelkxTERNNExqSTFOalk1T0RZdE16Z3VNalUyTmprNE5pd3pPQzR5TlRZMk9UZzJVekV5T0M0ME5qVTROall4TERJd09TNHhPRFExTXprNExERXlPQzQwTmpVNE5qWXhMREU0T0M0eE9UQXdNVGMzZWlJdlBnb0pQQzluUGdvSlBHYytDZ2tKUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRURTNOQzR5T0RBMk16azJMREU0TlM0NE56TTJNVEUxWXpJdU1qRTJNamM0TVN3d0xqWTROalV6T0Rjc05DNHhNVEF3TXpFeExERXVPRGN3TnpFeU15dzFMalkzTmpZek5UY3NNeTQxTlRJMU1EVTFDZ2tKQ1dNeExqVTJOall3TkRZc01TNDJPREU0TURnMUxESXVOVGs0TnpBNU1Td3pMalkwT1RJMk1UVXNNeTR3T1RFM016VTRMRFV1T1RBeU5EQTBPR013TGpRNU56WXhPVFlzTWk0eU5UTXhORE16TERBdU16WXpPVGs0TkN3MExqVXlPVE15TnpRdE1DNDBNREE0TnpnNUxEWXVPREU1TXpNMU9Rb0pDUWxqTFRBdU9URTJPVEUxT1N3eUxqVXlNRE00TlRjdE1pNDBPRE0xTWpBMUxEUXVOVEk1TXpFeU1TMDBMalk1T1RjNU9EWXNOaTR3TVRjMU9UTTBZeTB5TGpJeE5qSTJNamdzTVM0ME9EZ3lPREV5TFRRdU5qazFNakExTnl3eUxqSTNNVFUzTlRrdE55NDBOVEExTnpZNExESXVNelE1T0RrNU13b0pDUWwyTlM0MU1ERTFOVFkwWXpBc01DNDFNelEwT0RRNUxUQXVNVGN3TkRjeE1pd3dMamszTWpJeE16Y3RNQzQxTVRFME5UazBMREV1TXpFM056YzVOV010TUM0ek5EVTFOalU0TERBdU16UTFOVGd4TVMwd0xqYzRNekk1TkRjc01DNDFNVFl3TmpjMUxURXVNekl5TXpnM055d3dMalV4TmpBMk56VUtDUWtKYUMwekxqWTJOelk1TkRGakxUQXVOVE0wTlRBd01Td3dMVEF1T1RjeU1qRXpOeTB3TGpFM01EUTROalV0TVM0ek1UYzNOemsxTFRBdU5URTJNRFkzTldNdE1DNHpOREE1TnpJNUxUQXVNelExTlRZMU9DMHdMalV4TmpBMk56VXRNQzQzT0RNeU9UUTNMVEF1TlRFMk1EWTNOUzB4TGpNeE56YzNPVFVLQ1FrSmRpMDFMalV3TVRVMU5qUmpMVE11TmpZM05qazBNU3d3TFRZdU9UZzVPREl5TkMweExqRTBOekk1TXpFdE9TNDVOamcyTlRnMExUTXVORE0zTXpBeE5tTXRNQzR6T0RJME5EWXpMVEF1TXpneU5ETXhMVEF1TmpFeU9ESXpOUzB3TGpnME16SXdNRGN0TUM0Mk9EZzROREk0TFRFdU16YzNOekF3T0FvSkNRbGpMVEF1TURjMk1ETTBOUzB3TGpVek5EUTRORGtzTUM0eE1UVXhPRGcyTFRFdU1ETXlNVEEwTlN3d0xqVTNNell6T0RrdE1TNDBPRGd5TlRBM2JETXVPRGsxTnpneU5TMHpMamc1T0RBNE5qVUtDUWtKWXpBdU16QTROekF3Tmkwd0xqSXpNRE01TWpVc01DNDJOamd4TURZeExUQXVNemd5TkRNeExERXVNRGt5TURFd05TMHdMalExTmpFMk1UVmpNQzQwTVRreU9UWXpMVEF1TURjNE16SXpOQ3d3TGpneU1ERTFPVGtzTUM0d016WTROU3d4TGpJd01qWXdOaklzTUM0ek5EQTVOekk1Q2drSkNXTXhMakUwTnpJNU16RXNNQzQzTmpRNE56Y3pMREl1TkRReU1EUTNNU3d4TGpFME56TXdPRE1zTXk0NE9UTTBOak14TERFdU1UUTNNekE0TTJnM0xqWTRNRGsxTkdNd0xqa3hOamswTmpRc01Dd3hMamN3TURJME1URXRNQzR6TWpJMU5EQXpMREl1TXpRNU9EazVNeTB3TGprM01qSXhNemNLQ1FrSll6QXVOalE1TmpnNE55MHdMalkwT1RZNE9EY3NNQzQ1TnpJeU1qa3RNUzQwTnpRME5UWTRMREF1T1RjeU1qSTVMVEl1TkRZMU1UQXpNV013TFRBdU5qZzJOVFUwTFRBdU1qSTFOelk1TFRFdU16TTJNakkzTkMwd0xqWTROalV6T0RjdE1TNDVORGt3TXpVMkNna0pDV010TUM0ME5UWXhOakUxTFRBdU5qRXlPREl6TlMweExqQXpNakV4T1RndE1TNHdNekl4TVRrNExURXVOekU0TmpRek1pMHhMakkyTWpRNU5qbHNMVEV4TGpnd05EZzBNREV0TXk0ME16Y3pNVFk1Q2drSkNXTXRNaTQxT1RnMk9UTTRMVEF1TnpZME9EYzNNeTAwTGpjM016VXlPVEV0TWk0eE16YzVOVFEzTFRZdU5UTXpOalExTmkwMExqRXlPRFEwT0RWakxURXVOelUzT0RFeU5TMHhMams0TlRrd01Ea3RNaTQzT0RjMk5ETTBMVFF1TWpjMU9USTBOeTB6TGpBNU5EQXpPVGt0Tmk0NE56UTJNek00Q2drSkNXTXRNQzR4TlRJd05UTTRMVEl1TkRRMk5qVTFNeXd3TGpNd05qTTVOalV0TkM0M01UZ3lNekV5TERFdU16YzFNemsyTnkwMkxqZ3hPVE16TlRsak1TNHdOamc1TmprM0xUSXVNVEF4TURnNU5Td3lMalU1T0Rjd09URXRNeTQzT0RJNE9ESTNMRFF1TlRnME5qRXROUzR3TkRVek56azJDZ2tKQ1dNeExqazROVGt3TURrdE1TNHlOVGM0T0RnNExEUXVNakF5TVRjNUxURXVPRGc1TVRJNU5pdzJMalkwT0RnME9UVXRNUzQ0T0RreE1qazJhREF1TWpJMU56WTVkaTAxTGpVd01UVTBNVEVLQ1FrSll6QXRNQzQxTXpRMU1EQXhMREF1TVRjMU1EazBOaTB3TGprM01qSXlPU3d3TGpVeE5qQTJOelV0TVM0ek1UYzNPVFE0WXpBdU16UTFOVFkxT0Mwd0xqTTBOVFU0TVRFc01DNDNPRE15TnprMExUQXVOVEUyTURVeU1pd3hMak14TnpjM09UVXRNQzQxTVRZd05USXlhRE11TmpZM05qazBNUW9KQ1Fsak1DNDFNemt3T1RNc01Dd3dMamszTmpneU1Ua3NNQzR4TnpBME56RXlMREV1TXpJeU16ZzNOeXd3TGpVeE5qQTFNakpqTUM0ek5EQTVPRGd5TERBdU16UTFOVFkxT0N3d0xqVXhNVFExT1RRc01DNDNPRE15T1RRM0xEQXVOVEV4TkRVNU5Dd3hMak14TnpjNU5EaDJOUzQxTURFMU5ERXhDZ2tKQ1dNekxqWTJOelk1TkRFc01DdzJMamsxTnpVMk5UTXNNUzR4TkRjeU9UTXhMRGt1T0RZd016Z3lNU3d6TGpRek56TXdNVFpqTUM0ME5UWXhOelk0TERBdU16Z3lORFEyTXl3d0xqY3lNelF4T1RJc01DNDRORE15TURBM0xEQXVPREF4TnpReU5pd3hMak0zTnpZNE5UVUtDUWtKWXpBdU1EY3pOekUxTWl3d0xqVXpORFV3TURFdE1DNHhNVFV5TURNNUxEQXVPVGt3TmpRMk5DMHdMalUzTVRNMU1ERXNNUzR6TnpNd056YzBiQzB6TGpnNU9EQTROalVzTkM0d01UTXlOelV4Q2drSkNXTXRNQzR6TURnM01UVTRMREF1TWpNd016a3lOUzB3TGpZMk9ERXdOakVzTUM0ek9ESTBNekV0TVM0d09USXdNVEExTERBdU5EVTJNVFl4TldNdE1DNDBNVGt5T1RZekxEQXVNRGM0TXpJek5DMHdMamd5TURFMU9Ua3NNQzB4TGpJd01qVTVNRGt0TUM0eU1qVTNOamtLQ1FrSll5MHhMakUwTWpjeE5UVXRNQzQ0TkRNeU1EQTNMVEl1TkRReU1EYzNOaTB4TGpJMk1qUTVOamt0TXk0NE9UZ3dPRFkxTFRFdU1qWXlORGsyT1dndE55NDJOell6TmpFeFl5MHdMamt4TmpreE5Ua3NNQzB4TGpjd01ESXlOVGdzTUM0ek1qSTFNalV0TWk0ek5EazRPVGt6TERBdU9UY3lNakV6TndvSkNRbGpMVEF1TmpRNU5qZzROeXd3TGpZME9UWTNNelV0TUM0NU56WTRNakU1TERFdU5EYzBORFF4TlMwd0xqazNOamd5TVRrc01pNDBOalV3T0RjNVl6QXNNQzQyT0RZMU5UUXNNQzR5TXpBek9USTFMREV1TXpNMk1qRXlNaXd3TGpZNU1URTBOamtzTVM0NU5Ea3dNelUyQ2drSkNXTXdMalExTmpFMk1UVXNNQzQyTVRJNE1qTTFMREV1TURNeU1URTVPQ3d4TGpBek1qRXhPVGdzTVM0M01UZzJOVGcwTERFdU1qWXlORGsyT1V3eE56UXVNamd3TmpNNU5pd3hPRFV1T0Rjek5qRXhOWG9pTHo0S0NUd3ZaejRLUEM5blBnbzhMM04yWno0SyIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiY29uZmlnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsibmFtZXNwYWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZWNyZXRzIl0sInZlcmJzIjpbImdldCJdfSx7ImFwaUdyb3VwcyI6WyJtb25pdG9yaW5nLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbInByb21ldGhldXNlcy9hcGkiXSwidmVyYnMiOlsiY3JlYXRlIiwiZ2V0IiwidXBkYXRlIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJsYWJlbCI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzdHJhdGVneSI6eyJ0eXBlIjoiUmVjcmVhdGUifSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImFmZmluaXR5Ijp7Im5vZGVBZmZpbml0eSI6eyJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7Im5vZGVTZWxlY3RvclRlcm1zIjpbeyJtYXRjaEV4cHJlc3Npb25zIjpbeyJrZXkiOiJrdWJlcm5ldGVzLmlvL2FyY2giLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImFtZDY0IiwiYXJtNjQiLCJwcGM2NGxlIiwiczM5MHgiXX0seyJrZXkiOiJrdWJlcm5ldGVzLmlvL29zIiwib3BlcmF0b3IiOiJJbiIsInZhbHVlcyI6WyJsaW51eCJdfV19XX19fSwiY29udGFpbmVycyI6W3siYXJncyI6WyItLWxlYWRlci1lbGVjdCJdLCJjb21tYW5kIjpbIi91c3IvYmluL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiXSwiZW52IjpbeyJuYW1lIjoiSU5fQ0xVU1RFUiIsInZhbHVlIjoidHJ1ZSJ9LHsibmFtZSI6IldBVENIX05BTUVTUEFDRSIsInZhbHVlRnJvbSI6eyJmaWVsZFJlZiI6eyJmaWVsZFBhdGgiOiJtZXRhZGF0YS5hbm5vdGF0aW9uc1snb2xtLnRhcmdldE5hbWVzcGFjZXMnXSJ9fX1dLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9jb3N0bWFuYWdlbWVudC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjpjZTlkMmY5M2YyYzc5OWEzYTBiNmFlZTNiMDlkOGE5NDA0MmRjMjIxY2I2MTA1YjdiZDZiZmViMmYxYzRlYmNhIiwibGl2ZW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvaGVhbHRoeiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjoxNSwicGVyaW9kU2Vjb25kcyI6MjB9LCJuYW1lIjoibWFuYWdlciIsInJlYWRpbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsicGF0aCI6Ii9yZWFkeXoiLCJwb3J0Ijo4MDgxfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6NSwicGVyaW9kU2Vjb25kcyI6MTB9LCJyZXNvdXJjZXMiOnsibGltaXRzIjp7ImNwdSI6IjUwMG0iLCJtZW1vcnkiOiI1MDBNaSJ9LCJyZXF1ZXN0cyI6eyJjcHUiOiIxMDBtIiwibWVtb3J5IjoiMjBNaSJ9fSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfV0sInNlY3VyaXR5Q29udGV4dCI6eyJydW5Bc05vblJvb3QiOnRydWUsInNlY2NvbXBQcm9maWxlIjp7InR5cGUiOiJSdW50aW1lRGVmYXVsdCJ9fSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIiLCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6MTAsInZvbHVtZXMiOlt7Im5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19fX19XSwicGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwidXBkYXRlIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJldmVudHMiXSwidmVyYnMiOlsiY3JlYXRlIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsiY29vcmRpbmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibGVhc2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImVuZHBvaW50cyIsImV2ZW50cyIsInBlcnNpc3RlbnR2b2x1bWVjbGFpbXMiLCJwb2RzIiwic2VjcmV0cyIsInNlcnZpY2VhY2NvdW50cyIsInNlcnZpY2VzIiwic2VydmljZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvcnMuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnNlcnZpY2V2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiT3duTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJTaW5nbGVOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJNdWx0aU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImNvc3QiLCJtYW5hZ2VtZW50IiwidXNhZ2UiLCJtb25pdG9yIl0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJtaW5LdWJlVmVyc2lvbiI6IjEuMjQuMCIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmNlOWQyZjkzZjJjNzk5YTNhMGI2YWVlM2IwOWQ4YTk0MDQyZGMyMjFjYjYxMDViN2JkNmJmZWIyZjFjNGViY2EiLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci1jZTlkMmY5M2YyYzc5OWEzYTBiNmFlZTNiMDlkOGE5NDA0MmRjMjIxY2I2MTA1YjdiZDZiZmViMmYxYzRlYmNhLWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmNlOWQyZjkzZjJjNzk5YTNhMGI2YWVlM2IwOWQ4YTk0MDQyZGMyMjFjYjYxMDViN2JkNmJmZWIyZjFjNGViY2EiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMS4xIiwidmVyc2lvbiI6IjMuMi4wIn19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": { + "collect_previous_data": true, + "context_timeout": 120, + "disable_metrics_collection_cost_management": false, + "disable_metrics_collection_resource_optimization": false + }, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "true" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:ce9d2f93f2c799a3a0b6aee3b09d8a94042dc221cb6105b7bd6bfeb2f1c4ebca + createdAt: "2024-01-30T17:01:34Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v1.33.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: |- + # 3.2.0 Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift. The operator runs on the latest supported versions of Openshift. This operator obtains OpenShift usage data by querying Prometheus every hour to create metric reports that it uploads to Cost Management at [console.redhat.com](https://console.redhat.com) to be processed. For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to Cost Management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The CostManagement Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for Cost Management by: + * Querying Prometheus to gather the necessary metrics for Cost Management. + * Writing the results of Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * Resource Optimization metrics collection. + * The operator can be configured to gather all previous data within the configured retention period or a maximum of 90 days. The default data collection period is the 14 previous days. This setting is only applicable to newly created CostManagementMetricsConfigs. + * The operator can be configured to automatically upload the packaged reports to Cost Management through Red Hat Insights Ingress service. + * The operator can create an integration in console.redhat.com. An integration is required for Cost Management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## New in v3.2.0: + * Support for amd64, arm64, ppc64le, s390x architectures + * add liveness and readiness probes to controller Pod + * update pod security settings so that the controller Pod can run in Restricted mode [more info](https://sdk.operatorframework.io/docs/best-practices/pod-security-standards/) + + ## New in v3.1.0: + * Add service-account authentication type. + * __Deprecation Notice:__ Basic authentication is deprecated and will be removed in a future version of the operator. + + ## New in v3.0.0: + * Daily report generation: Operator versions prior to v3.0.0 generated sequential reports. Now, reports are generated starting at 0:00 UTC. Any payloads generated throughout a given day will contain all data starting from 0:00 UTC. Once the next day starts, the previous day's reports are packaged, and the new report again starts at 0:00 UTC for the current day. + * Failed query retry: In an attempt to prevent missing data, the operator will retry queries from the last successful query time, up to 5 times. + + ## New in v2.0.0: + * Adds metrics and report generation for resource optimization. This feature will collect additional usage metrics and create a new report in the payload. These metrics are enabled by default, but can be disabled by setting `disable_metrics_collection_resource_optimization` to `true`. + * Collect all available Prometheus data upon CR creation. This feature only applies to newly created CostManagementMetricsConfigs. The operator will check the monitoring stack configuration in the `openshift-monitoring` namespace. The operator will use the `retention` period set in the `cluster-monitoring-config` ConfigMap if defined, up to a maximum of 90 days. Otherwise it will fall back to collecting 14 days of data, if available. This data collection may be disabled by setting `collect_previous_data` to `false`. Turning this feature off results in the operator collecting metrics from the time the CostManagementMetricsConfig is created, forward. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * An integration **must** exist in console.redhat.com for an uploaded payload to be processed by Cost Management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with Cost Management that the payload was processed. After Ingress accepts the uploaded payload, it is deleted from the operator. If the data within the payload is not processed, a gap will be introduced in the usage metrics. Data may be recollected by deleting the `CostManagementMetricsConfig`, creating a new `CostManagementMetricsConfig`, and setting `collect_previous_data: true`. This re-collection of data will gather all data stored in Prometheus, up to 90 days. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is full. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configurable parameters: + * `authentication`: + * `type: token` -> The authentication method for connecting to `console.redhat.com`. The default and preferred method is `token`. `basic` (deprecated) and `service-account` authentication methods are used when the openshift-config pull-secret does not contain a token for `console.redhat.com`. + * `secret_name` -> The Secret used by the operator when the authentication type is `basic` (deprecated) or `service-account`. This parameter is required **only if** the authentication type is `basic` (deprecated) or `service-account`. + * `packaging`: + * `max_reports_to_store: 30` -> The number of reports to store when configured in air-gapped mode. The default is 30, with a minimum of 1 and no maximum. When the operator is not configured in air-gapped mode, this parameter has no effect. Reports are removed as soon as they are uploaded. + * `max_size: 100` -> The maximum size for packaged files in Megabytes prior to compression. The default is 100, with a minimum of 1 and maximum of 100. + * `prometheus_config`: + * `collect_previous_data: true` -> Toggle for collecting all available data in Prometheus **upon CostManagementMetricsConfig creation** (This parameter will start to appear in CostManagementMetricsConfigs that were created prior to v2.0.0 but will not have any effect unless the CostManagementMetricsConfig is deleted and recreated). The default is `true`. The operator will first look for a `retention` period in the `cluster-monitoring-config` ConfigMap in the `openshift-monitoring` namespace and gather data over this time period up to a maximum of 90 days. If this configuration is not set, the default is 14 days. (New in v2.0.0) + * `disable_metrics_collection_cost_management: false` -> Toggle for disabling the collection of metrics for Cost Management. The default is false. (New in v2.0.0) + * `disable_metrics_collection_resource_optimization: false` -> Toggle for disabling the collection of metrics for Resource Optimization. The default is false. (New in v2.0.0) + * `context_timeout: 120` -> The time in seconds before Prometheus queries timeout due to exceeding context timeout. The default is 120, with a minimum of 10 and maximum of 180. + * `source`: + * `name: ''` -> The name of the integration the operator will create in `console.redhat.com`. If the name value is empty, the default intergration name is the **cluster id**. + * `create_source: false` -> Toggle for whether or not the operator will create the integration in `console.redhat.com`. The default is False. This parameter should be switched to True when an integration does not already exist in `console.redhat.com` for this cluster. + * `check_cycle: 1440` -> The time in minutes to wait between checking if an integration exists for this cluster. The default is 1440 minutes (24 hrs). + * `upload`: + * `upload_cycle: 360` -> The time in minutes between payload uploads. The default is 360 (6 hours). + * `upload_toggle: true` -> Toggle to turn upload on or off -> true means upload, false means do not upload (false == air-gapped mode). The default is `true`. + * `upload_wait` -> The amount of time (in seconds) to pause before uploading a payload. The default is a random number between 0 and 35. This is used to decrease service load, but may be set to `0` if desired. + * `volume_claim_template` -> see the "Storage configuration prerequisite" section above. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` (deprecated) or `service-account` is the preferred authentication method, a Secret which holds the credentials must be created: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys (all lowercase) for the respective authentication type. The values for these keys correspond to console.redhat.com credentials: + * basic auth (deprecated): `username` and `password` + * service-account auth: `client_id` and `client_secret` + + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` (deprecated) or `service-account` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic` or `service-account`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + * for basic auth type (deprecated) + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + * for service-account auth type + ``` + authentication: + secret_name: SECRET-NAME + type: service-account + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management integration, edit the following values in the `source` field: + * Replace the `name` field value with the preferred name of the integration to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the integration already exists, replace the empty string value of the `name` field with the existing name, and leave `create_source` as false. This will allow the operator to confirm that the integration exists. + + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec (below is only a template. Any _valid_ `PersistentVolumeClaim` may be defined here): + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360 + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create an Integration + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create an integration. This process must be done manually. In the console.redhat.com platform, open the [Integrations menu](https://console.redhat.com/settings/integrations/) to begin adding an OpenShift integration to Cost Management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Creating an integration: + 1. Navigate to the Integrations menu + 2. Select the `Red Hat` tab + 3. Create a new `Red Hat Openshift Container Platform` integration: + * give the integration a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Source wizard, review the details and click `Finish` to create the source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://console.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + operatorframework.io/os.linux: supported + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + minKubeVersion: 1.24.0 + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:3995f83eb27886d4b35c7051728cb57721ee0ba7ccfc0727592d368400a63fc8 name: "" @@ -509,12 +5285,371 @@ properties: value: packageName: costmanagement-metrics-operator version: 3.2.1 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVmYXVsdCI6Imh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLlxuVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ub2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVuZHBvaW50IHVzZWQgdG8gb2J0YWluIHRoZSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly9zc28ucmVkaGF0LmNvbS9hdXRoL3JlYWxtcy9yZWRoYXQtZXh0ZXJuYWwvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uXG5WYWxpZCB2YWx1ZXMgYXJlOlxuLSBcImJhc2ljXCIgKGRlcHJlY2F0ZWQpIDogRW5hYmxlcyBhdXRoZW50aWNhdGlvbiB1c2luZyB1c2VyIGFuZCBwYXNzd29yZCBmcm9tIGF1dGhlbnRpY2F0aW9uIHNlY3JldC5cbi0gXCJzZXJ2aWNlLWFjY291bnRcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgY2xpZW50X2lkIGFuZCBjbGllbnRfc2VjcmV0IGZyb20gdGhlIHNlY3JldCBjb250YWluaW5nIHNlcnZpY2UgYWNjb3VudCBpbmZvcm1hdGlvbi5cbi0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlXG5zcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmVcbnNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlclZlcnNpb24gY2Fubm90IGJlIG9idGFpbmVkIGZyb20gdGhlIENsdXN0ZXJWZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7Im1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlZmF1bHQiOjMwLCJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLlxuVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLlxuVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdF9wcmV2aW91c19kYXRhIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiQ29sbGVjdFByZXZpb3VzRGF0YSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIHByZXZpb3VzIGRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbmNyZWF0aW9uLiBUaGlzIHRvZ2dsZSBvbmx5IGNoYW5nZXMgb3BlcmF0b3IgYmVoYXZpb3Igd2hlbiBhIG5ldyBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZC4gV2hlbiBgdHJ1ZWAsIHRoZSBvcGVyYXRvciB3aWxsIGdhdGhlciBhbGxcbmV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC5cblRoZSBkZWZhdWx0IGlzIDEyMCBzZWNvbmRzLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTgwLCJtaW5pbXVtIjoxMCwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvbkNvc3RNYW5hZ2VtZW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZVxucmVwb3J0cyBmb3IgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2VuZXJhdGVcbnJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLlxuU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly90aGFub3MtcXVlcmllci5vcGVuc2hpZnQtbW9uaXRvcmluZy5zdmM6OTA5MWAuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ta2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuXG5UaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIGRlc2lyZWQgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIGludGVncmF0aW9uIHN0YXR1cyBjaGVjayBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIGRlc2lyZWQgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbnNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS5cblRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLlxuVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLlxuSWYgYGZhbHNlYCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuXG5UaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInRva2VuX3VybCI6eyJkZXNjcmlwdGlvbiI6IlRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXJsIHVzZWQgdG8gZ2VuZXJhdGUgYSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMsIHNlcnZpY2UtYWNjb3VudCBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmdcbmNvc3QtbWFuYWdlbWVudCBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiRGlzYWJsZWRNZXRyaWNzQ29sbGVjdGlvblJlc291cmNlT3B0aW1pemF0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBjb2xsZWN0aW5nXG5yZXNvdXJjZS1vcHRpbXphdGlvbiBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sImxhc3RfcXVlcnlfc3RhcnRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN0YXJ0VGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3RhcnRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3F1ZXJ5X3N1Y2Nlc3NfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RRdWVyeVN1Y2Nlc3NUaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIHF1ZXJpZXMgd2VyZSBzdWNjZXNzZnVsLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sInByZXZpb3VzX2RhdGFfY29sbGVjdGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IlByZXZpb3VzRGF0YUNvbGxlY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIGdhdGhlcmVkIHRoZSBhdmFpbGFibGUgUHJvbWV0aGV1c1xuZGF0YSB1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbi4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2NvbmZpZ3VyZWQiOnsiZGVzY3JpcHRpb24iOiJQcm9tZXRoZXVzQ29uZmlndXJlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIGlzIGNvbmZpZ3VyZWQgdG8gY29ubmVjdCB0byBwcm9tZXRoZXVzLiIsInR5cGUiOiJib29sZWFuIn0sInByb21ldGhldXNfY29ubmVjdGVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0Nvbm5lY3RlZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgaWYgcHJvbWV0aGV1cyBjYW4gYmUgcXVlcmllZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3Rpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25uZWN0aW9uRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGVycm9ycyBkdXJpbmcgcHJvbWV0aGV1cyB0ZXN0IHF1ZXJ5LiIsInR5cGUiOiJzdHJpbmcifSwic2VydmljZV9hZGRyZXNzIjp7ImRlc2NyaXB0aW9uIjoiU3ZjQWRkcmVzcyBpcyB0aGUgaW50ZXJuYWwgdGhhbm9zLXF1ZXJpZXIgYWRkcmVzcy4iLCJ0eXBlIjoic3RyaW5nIn0sInNraXBfdGxzX3ZlcmlmaWNhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlNraXBUTFNWZXJpZmljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSB0aGFub3MtcXVlcmllciBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsicHJvbWV0aGV1c19jb25maWd1cmVkIiwicHJvbWV0aGV1c19jb25uZWN0ZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXBvcnRzIjp7ImRlc2NyaXB0aW9uIjoiUmVwb3J0cyByZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgcmVwb3J0IGdlbmVyYXRpb24uIiwicHJvcGVydGllcyI6eyJkYXRhX2NvbGxlY3RlZCI6eyJkZXNjcmlwdGlvbiI6IkRhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGRhdGEgd2FzIGNvbGxlY3RlZCBmb3IgdGhlIGxhc3QgcXVlcnkuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGF0YV9jb2xsZWN0aW9uX21lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGlvbk1lc3NhZ2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGEgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFfY29sbGVjdGVkIHN0YXR1cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfaG91cl9xdWVyaWVkIjp7ImRlc2NyaXB0aW9uIjoiTGFzdEhvdXJRdWVyaWVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgdGltZSByYW5nZSBmb3Igd2hpY2ggbWV0cmljcyB3ZXJlIGxhc3QgcXVlcmllZC4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcG9ydF9tb250aCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydE1vbnRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB0aGUgbW9udGggZm9yIHdoaWNoIHJlcG9ydHMgYXJlIGJlaW5nIGdlbmVyYXRlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZSByZXByZXNlbnRzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIGludGVncmF0aW9uIHN0YXR1cyBjaGVjayBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZXNjcmlwdGlvbiI6ImNyZWF0ZV9zb3VyY2UgcmVwcmVzZW50cyB0aGUgdG9nZ2xlIHVzZWQgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLlxuQW4gSW50ZWdyYXRpb24gd2lsbCBub3QgYmUgY3JlYXRlZCBpZiB1cGxvYWRfdG9nZ2xlIGlzIGBmYWxzZWAuIiwidHlwZSI6ImJvb2xlYW4ifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJlcnJvciByZXByZXNlbnRzIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBjcmVhdGluZyB0aGUgaW50ZWdyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2NoZWNrX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0X2NoZWNrX3RpbWUgaXMgdGhlIHRpbWUgdGhhdCB0aGUgbGFzdCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgd2FzIGF0dGVtcHRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGF0IHRoZSBvcGVyYXRvciBhdHRlbXB0ZWQgdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZV9kZWZpbmVkIjp7ImRlc2NyaXB0aW9uIjoic291cmNlX2RlZmluZWQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBkZWZpbmVkIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzb3VyY2VzX3BhdGgiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2VzX3BhdGggaXMgdGhlIHByZWZpeCBvZiB0aGUgU291cmNlcyBBUEkgb24gY29uc29sZS5yZWRoYXQuY29tLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic3RvcmFnZSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgaXMgYSBmaWVsZCIsInByb3BlcnRpZXMiOnsidm9sdW1lX21vdW50ZWQiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudGVkIGlzIGEgYm9vbCB0byBpbmRpY2F0ZSBpZiBzdG9yYWdlIHZvbHVtZSB3YXMgbW91bnRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2b2x1bWVfdHlwZSI6eyJkZXNjcmlwdGlvbiI6IlZvbHVtZVR5cGUgaXMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdm9sdW1lIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHVwbG9hZGluZyByZXBvcnRzLiIsInR5cGUiOiJzdHJpbmcifSwiaW5ncmVzc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoiSW5ncmVzc0FQSVBhdGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBwYXRoIG9mIHRoZSBJbmdyZXNzIEFQSSBzZXJ2aWNlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGxhc3QgcGF5bG9hZCB0aGF0IHdhcyBzZW50LiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImxhc3RfcGF5bG9hZF9tYW5pZmVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkTWFuaWZlc3QgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbWFuaWZlc3RJRCBvZiB0aGUgbGFzdCBwYXlsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX25hbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgbmFtZSBvZiB0aGUgbGFzdCBwYXlsb2FkIGZpbGUuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3BheWxvYWRfcmVxdWVzdF9pZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkUmVxdWVzdElEIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGluc2lnaHRzIHJlcXVlc3QgaWQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF91cGxvYWRfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsVXBsb2FkVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgdXBsb2FkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsIm51bGxhYmxlIjp0cnVlLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfdXBsb2FkX3N0YXR1cyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RVcGxvYWRTdGF0dXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgaHR0cCBzdGF0dXMgb2YgdGhlIGxhc3QgdXBsb2FkLiIsInR5cGUiOiJzdHJpbmcifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3Igc2hvdWxkIHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyB0cnVlIiwidHlwZSI6ImJvb2xlYW4ifSwidXBsb2FkX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLlxuVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfd2FpdCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFdhaXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgYW4gdXBsb2FkLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsaWRhdGVfY2VydCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkYXRlQ2VydCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIEluZ3Jlc3MgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInNwZWMiXSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6bnVsbCwic3RvcmVkVmVyc2lvbnMiOm51bGx9fQ== -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmVlNjlkNWNiZjU5MDliZGJmZmI4NWUyYzU1ZThiODMwOTM5YWIxYzllNmMzYTY3OTU1MmJhZDhlMGM5MGU2NTciLCJjcmVhdGVkQXQiOiIyMDI0LTAzLTE5VDEzOjUxOjM3WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Byb3h5LWF3YXJlIjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdGxzLXByb2ZpbGVzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXdzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXp1cmUiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1nY3AiOiJmYWxzZSIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcImRpc2Nvbm5lY3RlZFwiLCBcInByb3h5LWF3YXJlXCJdIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby92YWxpZC1zdWJzY3JpcHRpb24iOiJbXCJPcGVuU2hpZnQgS3ViZXJuZXRlcyBFbmdpbmVcIiwgXCJPcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtXCIsIFwiT3BlblNoaWZ0IFBsYXRmb3JtIFBsdXNcIl0iLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4zMy4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjQiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IiLCJzdXBwb3J0IjoiUmVkIEhhdCJ9LCJsYWJlbHMiOnsib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hbWQ2NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guYXJtNjQiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnBwYzY0bGUiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnMzOTB4Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vb3MubGludXgiOiJzdXBwb3J0ZWQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4yLjEiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBDb25maWciLCJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwidmVyc2lvbiI6InYxYmV0YTEifV19LCJkZXNjcmlwdGlvbiI6IiMgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3JcbiMjIEludHJvZHVjdGlvblxuVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBhIGNvbXBvbmVudCBvZiB0aGUgW2Nvc3QgbWFuYWdtZW50XShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2RvY3VtZW50YXRpb24vZW4tdXMvY29zdF9tYW5hZ2VtZW50X3NlcnZpY2UpIHNlcnZpY2UgZm9yIE9wZW5zaGlmdC4gVGhlIG9wZXJhdG9yIHJ1bnMgb24gdGhlIGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbnMgb2YgT3BlbnNoaWZ0LiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBldmVyeSBob3VyIHRvIGNyZWF0ZSBtZXRyaWMgcmVwb3J0cyB0aGF0IGl0IHVwbG9hZHMgdG8gQ29zdCBNYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSB0byBiZSBwcm9jZXNzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gQ29zdCBNYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS9sYXRlc3Qvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgQ29zdCBNYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC5cbiogV3JpdGluZyB0aGUgcmVzdWx0cyBvZiBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFJlc291cmNlIE9wdGltaXphdGlvbiBtZXRyaWNzIGNvbGxlY3Rpb24uXG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBnYXRoZXIgYWxsIHByZXZpb3VzIGRhdGEgd2l0aGluIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2Qgb3IgYSBtYXhpbXVtIG9mIDkwIGRheXMuIFRoZSBkZWZhdWx0IGRhdGEgY29sbGVjdGlvbiBwZXJpb2QgaXMgdGhlIDE0IHByZXZpb3VzIGRheXMuIFRoaXMgc2V0dGluZyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gQ29zdCBNYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGFuIGludGVncmF0aW9uIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gaW50ZWdyYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBOZXcgaW4gdjMuMi4xOlxuKiBUaGUgbWluaW11bSBzdXBwb3J0ZWQgY29uZmlndXJhdGlvbiBmb3IgYHVwbG9hZF9jeWNsZWAgaXMgbm93IDYwIChtaW51dGVzKS5cbiogKEJ1Z2ZpeCkgbWFueS10by1tYW55IG1hdGNoaW5nIG5vdCBhbGxvd2VkIHF1ZXJ5IGZpeC5cbiogKEJ1Z2ZpeCkgU2VxdWVudGlhbGx5IGNvbGxlY3QgZGF0YSBkdXJpbmcgaW5pdGlhbCBpbnN0YWxsLlxuXG4jIyBOZXcgaW4gdjMuMi4wOlxuKiBTdXBwb3J0IGZvciBhbWQ2NCwgYXJtNjQsIHBwYzY0bGUsIHMzOTB4IGFyY2hpdGVjdHVyZXMuXG4qIGFkZCBsaXZlbmVzcyBhbmQgcmVhZGluZXNzIHByb2JlcyB0byBjb250cm9sbGVyIFBvZC5cbiogdXBkYXRlIHBvZCBzZWN1cml0eSBzZXR0aW5ncyBzbyB0aGF0IHRoZSBjb250cm9sbGVyIFBvZCBjYW4gcnVuIGluIFJlc3RyaWN0ZWQgbW9kZSBbbW9yZSBpbmZvXShodHRwczovL3Nkay5vcGVyYXRvcmZyYW1ld29yay5pby9kb2NzL2Jlc3QtcHJhY3RpY2VzL3BvZC1zZWN1cml0eS1zdGFuZGFyZHMvKS5cblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycyksIG1pbmltdW0gaXMgNjAgKDEgaG91cikuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YFxuXG4zLiBTZWxlY3QgYENyZWF0ZWAuXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBGb3IgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYCBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgICogZm9yIGJhc2ljIGF1dGggdHlwZSAoZGVwcmVjYXRlZClcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IGJhc2ljXG4gICAgICAgIGBgYFxuXG4gICAgICAgICogZm9yIHNlcnZpY2UtYWNjb3VudCBhdXRoIHR5cGVcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IHNlcnZpY2UtYWNjb3VudFxuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBpbnRlZ3JhdGlvbiwgZWRpdCB0aGUgZm9sbG93aW5nIHZhbHVlcyBpbiB0aGUgYHNvdXJjZWAgZmllbGQ6XG4gICAgKiBSZXBsYWNlIHRoZSBgbmFtZWAgZmllbGQgdmFsdWUgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIGludGVncmF0aW9uIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgaW50ZWdyYXRpb24gZXhpc3RzLlxuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjIChiZWxvdyBpcyBvbmx5IGEgdGVtcGxhdGUuIEFueSBfdmFsaWRfIGBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1gIG1heSBiZSBkZWZpbmVkIGhlcmUpOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGFuIEludGVncmF0aW9uXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW50ZWdyYXRpb24uIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtJbnRlZ3JhdGlvbnMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3MvaW50ZWdyYXRpb25zLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBpbnRlZ3JhdGlvbiB0byBDb3N0IE1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGluZyBhbiBpbnRlZ3JhdGlvbjpcbjEuIE5hdmlnYXRlIHRvIHRoZSBJbnRlZ3JhdGlvbnMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdGAgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgaW50ZWdyYXRpb246XG4gICAgKiBnaXZlIHRoZSBpbnRlZ3JhdGlvbiBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2Ugd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgc291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgIGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2FwaS9pbmdyZXNzL3YxL3VwbG9hZCAtdSBVU0VSTkFNRTpQQVNTXG5cbndoZXJlIGBVU0VSTkFNRWAgYW5kIGBQQVNTYCBjb3JyZXNwb25kIHRvIHRoZSB1c2VyIGNyZWRlbnRpYWxzIGZvciBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSksIGFuZCBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC5cbiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19LHsiYXBpR3JvdXBzIjpbIm1vbml0b3JpbmcuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsicHJvbWV0aGV1c2VzL2FwaSJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJnZXQiLCJ1cGRhdGUiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7InR5cGUiOiJSZWNyZWF0ZSJ9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiYWZmaW5pdHkiOnsibm9kZUFmZmluaXR5Ijp7InJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsibm9kZVNlbGVjdG9yVGVybXMiOlt7Im1hdGNoRXhwcmVzc2lvbnMiOlt7ImtleSI6Imt1YmVybmV0ZXMuaW8vYXJjaCIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsiYW1kNjQiLCJhcm02NCIsInBwYzY0bGUiLCJzMzkweCJdfSx7ImtleSI6Imt1YmVybmV0ZXMuaW8vb3MiLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImxpbnV4Il19XX1dfX19LCJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tbGVhZGVyLWVsZWN0Il0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmVlNjlkNWNiZjU5MDliZGJmZmI4NWUyYzU1ZThiODMwOTM5YWIxYzllNmMzYTY3OTU1MmJhZDhlMGM5MGU2NTciLCJsaXZlbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsicGF0aCI6Ii9oZWFsdGh6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjE1LCJwZXJpb2RTZWNvbmRzIjoyMH0sIm5hbWUiOiJtYW5hZ2VyIiwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjo1LCJwZXJpb2RTZWNvbmRzIjoxMH0sInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19fSwidGVybWluYXRpb25NZXNzYWdlUG9saWN5IjoiRmFsbGJhY2tUb0xvZ3NPbkVycm9yIiwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19XSwic2VjdXJpdHlDb250ZXh0Ijp7InJ1bkFzTm9uUm9vdCI6dHJ1ZSwic2VjY29tcFByb2ZpbGUiOnsidHlwZSI6IlJ1bnRpbWVEZWZhdWx0In19LCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsIm1pbkt1YmVWZXJzaW9uIjoiMS4yNC4wIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZWU2OWQ1Y2JmNTkwOWJkYmZmYjg1ZTJjNTVlOGI4MzA5MzlhYjFjOWU2YzNhNjc5NTUyYmFkOGUwYzkwZTY1NyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLWVlNjlkNWNiZjU5MDliZGJmZmI4NWUyYzU1ZThiODMwOTM5YWIxYzllNmMzYTY3OTU1MmJhZDhlMGM5MGU2NTctYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZWU2OWQ1Y2JmNTkwOWJkYmZmYjg1ZTJjNTVlOGI4MzA5MzlhYjFjOWU2YzNhNjc5NTUyYmFkOGUwYzkwZTY1NyIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4yLjAiLCJ2ZXJzaW9uIjoiMy4yLjEifX0= + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": { + "collect_previous_data": true, + "context_timeout": 120, + "disable_metrics_collection_cost_management": false, + "disable_metrics_collection_resource_optimization": false + }, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "true" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:ee69d5cbf5909bdbffb85e2c55e8b830939ab1c9e6c3a679552bad8e0c90e657 + createdAt: "2024-03-19T13:51:37Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v1.33.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + displayName: Cost Management Metrics Config + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: | + # Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift. The operator runs on the latest supported versions of Openshift. This operator obtains OpenShift usage data by querying Prometheus every hour to create metric reports that it uploads to Cost Management at [console.redhat.com](https://console.redhat.com) to be processed. For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to Cost Management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for Cost Management by: + * Querying Prometheus to gather the necessary metrics for Cost Management. + * Writing the results of Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * Resource Optimization metrics collection. + * The operator can be configured to gather all previous data within the configured retention period or a maximum of 90 days. The default data collection period is the 14 previous days. This setting is only applicable to newly created CostManagementMetricsConfigs. + * The operator can be configured to automatically upload the packaged reports to Cost Management through Red Hat Insights Ingress service. + * The operator can create an integration in console.redhat.com. An integration is required for Cost Management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## New in v3.2.1: + * The minimum supported configuration for `upload_cycle` is now 60 (minutes). + * (Bugfix) many-to-many matching not allowed query fix. + * (Bugfix) Sequentially collect data during initial install. + + ## New in v3.2.0: + * Support for amd64, arm64, ppc64le, s390x architectures. + * add liveness and readiness probes to controller Pod. + * update pod security settings so that the controller Pod can run in Restricted mode [more info](https://sdk.operatorframework.io/docs/best-practices/pod-security-standards/). + + ## New in v3.1.0: + * Add service-account authentication type. + * __Deprecation Notice:__ Basic authentication is deprecated and will be removed in a future version of the operator. + + ## New in v3.0.0: + * Daily report generation: Operator versions prior to v3.0.0 generated sequential reports. Now, reports are generated starting at 0:00 UTC. Any payloads generated throughout a given day will contain all data starting from 0:00 UTC. Once the next day starts, the previous day's reports are packaged, and the new report again starts at 0:00 UTC for the current day. + * Failed query retry: In an attempt to prevent missing data, the operator will retry queries from the last successful query time, up to 5 times. + + ## New in v2.0.0: + * Adds metrics and report generation for resource optimization. This feature will collect additional usage metrics and create a new report in the payload. These metrics are enabled by default, but can be disabled by setting `disable_metrics_collection_resource_optimization` to `true`. + * Collect all available Prometheus data upon CR creation. This feature only applies to newly created CostManagementMetricsConfigs. The operator will check the monitoring stack configuration in the `openshift-monitoring` namespace. The operator will use the `retention` period set in the `cluster-monitoring-config` ConfigMap if defined, up to a maximum of 90 days. Otherwise it will fall back to collecting 14 days of data, if available. This data collection may be disabled by setting `collect_previous_data` to `false`. Turning this feature off results in the operator collecting metrics from the time the CostManagementMetricsConfig is created, forward. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * An integration **must** exist in console.redhat.com for an uploaded payload to be processed by Cost Management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with Cost Management that the payload was processed. After Ingress accepts the uploaded payload, it is deleted from the operator. If the data within the payload is not processed, a gap will be introduced in the usage metrics. Data may be recollected by deleting the `CostManagementMetricsConfig`, creating a new `CostManagementMetricsConfig`, and setting `collect_previous_data: true`. This re-collection of data will gather all data stored in Prometheus, up to 90 days. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is full. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configurable parameters: + * `authentication`: + * `type: token` -> The authentication method for connecting to `console.redhat.com`. The default and preferred method is `token`. `basic` (deprecated) and `service-account` authentication methods are used when the openshift-config pull-secret does not contain a token for `console.redhat.com`. + * `secret_name` -> The Secret used by the operator when the authentication type is `basic` (deprecated) or `service-account`. This parameter is required **only if** the authentication type is `basic` (deprecated) or `service-account`. + * `packaging`: + * `max_reports_to_store: 30` -> The number of reports to store when configured in air-gapped mode. The default is 30, with a minimum of 1 and no maximum. When the operator is not configured in air-gapped mode, this parameter has no effect. Reports are removed as soon as they are uploaded. + * `max_size: 100` -> The maximum size for packaged files in Megabytes prior to compression. The default is 100, with a minimum of 1 and maximum of 100. + * `prometheus_config`: + * `collect_previous_data: true` -> Toggle for collecting all available data in Prometheus **upon CostManagementMetricsConfig creation** (This parameter will start to appear in CostManagementMetricsConfigs that were created prior to v2.0.0 but will not have any effect unless the CostManagementMetricsConfig is deleted and recreated). The default is `true`. The operator will first look for a `retention` period in the `cluster-monitoring-config` ConfigMap in the `openshift-monitoring` namespace and gather data over this time period up to a maximum of 90 days. If this configuration is not set, the default is 14 days. (New in v2.0.0) + * `disable_metrics_collection_cost_management: false` -> Toggle for disabling the collection of metrics for Cost Management. The default is false. (New in v2.0.0) + * `disable_metrics_collection_resource_optimization: false` -> Toggle for disabling the collection of metrics for Resource Optimization. The default is false. (New in v2.0.0) + * `context_timeout: 120` -> The time in seconds before Prometheus queries timeout due to exceeding context timeout. The default is 120, with a minimum of 10 and maximum of 180. + * `source`: + * `name: ''` -> The name of the integration the operator will create in `console.redhat.com`. If the name value is empty, the default intergration name is the **cluster id**. + * `create_source: false` -> Toggle for whether or not the operator will create the integration in `console.redhat.com`. The default is False. This parameter should be switched to True when an integration does not already exist in `console.redhat.com` for this cluster. + * `check_cycle: 1440` -> The time in minutes to wait between checking if an integration exists for this cluster. The default is 1440 minutes (24 hrs). + * `upload`: + * `upload_cycle: 360` -> The time in minutes between payload uploads. The default is 360 (6 hours), minimum is 60 (1 hour). + * `upload_toggle: true` -> Toggle to turn upload on or off -> true means upload, false means do not upload (false == air-gapped mode). The default is `true`. + * `upload_wait` -> The amount of time (in seconds) to pause before uploading a payload. The default is a random number between 0 and 35. This is used to decrease service load, but may be set to `0` if desired. + * `volume_claim_template` -> see the "Storage configuration prerequisite" section above. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` (deprecated) or `service-account` is the preferred authentication method, a Secret which holds the credentials must be created: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys (all lowercase) for the respective authentication type. The values for these keys correspond to console.redhat.com credentials: + * basic auth (deprecated): `username` and `password` + * service-account auth: `client_id` and `client_secret` + + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` (deprecated) or `service-account` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic` or `service-account`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + * for basic auth type (deprecated) + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + * for service-account auth type + ``` + authentication: + secret_name: SECRET-NAME + type: service-account + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management integration, edit the following values in the `source` field: + * Replace the `name` field value with the preferred name of the integration to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the integration already exists, replace the empty string value of the `name` field with the existing name, and leave `create_source` as false. This will allow the operator to confirm that the integration exists. + + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec (below is only a template. Any _valid_ `PersistentVolumeClaim` may be defined here): + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360 + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create an Integration + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create an integration. This process must be done manually. In the console.redhat.com platform, open the [Integrations menu](https://console.redhat.com/settings/integrations/) to begin adding an OpenShift integration to Cost Management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Creating an integration: + 1. Navigate to the Integrations menu + 2. Select the `Red Hat` tab + 3. Create a new `Red Hat Openshift Container Platform` integration: + * give the integration a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Source wizard, review the details and click `Finish` to create the source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://console.redhat.com/api/ingress/v1/upload -u USERNAME:PASS + + where `USERNAME` and `PASS` correspond to the user credentials for [console.redhat.com](https://console.redhat.com), and `FILE_NAME` is the name of the report to upload. + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + operatorframework.io/os.linux: supported + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + minKubeVersion: 1.24.0 + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:a1dc9a219534acb572ea00c5749e5db7aa083682e2b381dd9faddbc907b4792b name: "" @@ -537,12 +5672,383 @@ properties: value: packageName: costmanagement-metrics-operator version: 3.3.0 -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVmYXVsdCI6Imh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLlxuVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ub2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVuZHBvaW50IHVzZWQgdG8gb2J0YWluIHRoZSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly9zc28ucmVkaGF0LmNvbS9hdXRoL3JlYWxtcy9yZWRoYXQtZXh0ZXJuYWwvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uXG5WYWxpZCB2YWx1ZXMgYXJlOlxuLSBcImJhc2ljXCIgKGRlcHJlY2F0ZWQpIDogRW5hYmxlcyBhdXRoZW50aWNhdGlvbiB1c2luZyB1c2VyIGFuZCBwYXNzd29yZCBmcm9tIGF1dGhlbnRpY2F0aW9uIHNlY3JldC5cbi0gXCJzZXJ2aWNlLWFjY291bnRcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgY2xpZW50X2lkIGFuZCBjbGllbnRfc2VjcmV0IGZyb20gdGhlIHNlY3JldCBjb250YWluaW5nIHNlcnZpY2UgYWNjb3VudCBpbmZvcm1hdGlvbi5cbi0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlXG5zcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmVcbnNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlclZlcnNpb24gY2Fubm90IGJlIG9idGFpbmVkIGZyb20gdGhlIENsdXN0ZXJWZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7Im1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlZmF1bHQiOjMwLCJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLlxuVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLlxuVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdF9wcmV2aW91c19kYXRhIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiQ29sbGVjdFByZXZpb3VzRGF0YSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIHByZXZpb3VzIGRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbmNyZWF0aW9uLiBUaGlzIHRvZ2dsZSBvbmx5IGNoYW5nZXMgb3BlcmF0b3IgYmVoYXZpb3Igd2hlbiBhIG5ldyBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZC4gV2hlbiBgdHJ1ZWAsIHRoZSBvcGVyYXRvciB3aWxsIGdhdGhlciBhbGxcbmV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC5cblRoZSBkZWZhdWx0IGlzIDEyMCBzZWNvbmRzLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTgwLCJtaW5pbXVtIjoxMCwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvbkNvc3RNYW5hZ2VtZW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZVxucmVwb3J0cyBmb3IgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2VuZXJhdGVcbnJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLlxuU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly90aGFub3MtcXVlcmllci5vcGVuc2hpZnQtbW9uaXRvcmluZy5zdmM6OTA5MWAuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ta2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuXG5UaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIGRlc2lyZWQgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIGludGVncmF0aW9uIHN0YXR1cyBjaGVjayBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIGRlc2lyZWQgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbnNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS5cblRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLlxuVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLlxuSWYgYGZhbHNlYCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuXG5UaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGVwcmVjYXRpb25fbm90aWNlIjp7ImRlc2NyaXB0aW9uIjoiRGVwcmVjYXRpb25Ob3RpY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgZGVwcmVjYXRpb24gbm90aWNlLiIsInR5cGUiOiJzdHJpbmcifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInRva2VuX3VybCI6eyJkZXNjcmlwdGlvbiI6IlRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXJsIHVzZWQgdG8gZ2VuZXJhdGUgYSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMsIHNlcnZpY2UtYWNjb3VudCBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmdcbmNvc3QtbWFuYWdlbWVudCBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiRGlzYWJsZWRNZXRyaWNzQ29sbGVjdGlvblJlc291cmNlT3B0aW1pemF0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBjb2xsZWN0aW5nXG5yZXNvdXJjZS1vcHRpbWl6YXRpb24gbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcmV2aW91c19kYXRhX2NvbGxlY3RlZCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJQcmV2aW91c0RhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciBnYXRoZXJlZCB0aGUgYXZhaWxhYmxlIFByb21ldGhldXNcbmRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgY3JlYXRpb24uIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25maWd1cmVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZ3VyZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBjb25maWd1cmVkIHRvIGNvbm5lY3QgdG8gcHJvbWV0aGV1cy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25uZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHByb21ldGhldXMgY2FuIGJlIHF1ZXJpZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29ubmVjdGlvbkVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgdGVzdCBxdWVyeS4iLCJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2VfYWRkcmVzcyI6eyJkZXNjcmlwdGlvbiI6IlN2Y0FkZHJlc3MgaXMgdGhlIGludGVybmFsIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbInByb21ldGhldXNfY29uZmlndXJlZCIsInByb21ldGhldXNfY29ubmVjdGVkIl0sInR5cGUiOiJvYmplY3QifSwicmVwb3J0cyI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydHMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHJlcG9ydCBnZW5lcmF0aW9uLiIsInByb3BlcnRpZXMiOnsiZGF0YV9jb2xsZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBkYXRhIHdhcyBjb2xsZWN0ZWQgZm9yIHRoZSBsYXN0IHF1ZXJ5LiIsInR5cGUiOiJib29sZWFuIn0sImRhdGFfY29sbGVjdGlvbl9tZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3Rpb25NZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBhIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhX2NvbGxlY3RlZCBzdGF0dXMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2hvdXJfcXVlcmllZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RIb3VyUXVlcmllZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHRpbWUgcmFuZ2UgZm9yIHdoaWNoIG1ldHJpY3Mgd2VyZSBsYXN0IHF1ZXJpZWQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXBvcnRfbW9udGgiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRNb250aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIG1vbnRoIGZvciB3aGljaCByZXBvcnRzIGFyZSBiZWluZyBnZW5lcmF0ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiY2hlY2tfY3ljbGUgaXMgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLlxuVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS5cbkFuIEludGVncmF0aW9uIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiZXJyb3IgcmVwcmVzZW50cyBhbnkgZXJyb3JzIGVuY291bnRlcmVkIHdoZW4gY3JlYXRpbmcgdGhlIGludGVncmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoibGFzdF9jaGVja190aW1lIGlzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3QgaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgcmVwcmVzZW50cyB0aGUgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdGhhdCB0aGUgb3BlcmF0b3IgYXR0ZW1wdGVkIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZV9kZWZpbmVkIHJlcHJlc2VudHMgd2hldGhlciB0aGUgZGVmaW5lZCBpbnRlZ3JhdGlvbiBuYW1lIGV4aXN0cyBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoic291cmNlc19wYXRoIGlzIHRoZSBwcmVmaXggb2YgdGhlIFNvdXJjZXMgQVBJIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGVzIGluIHRoZSBsYXN0IHBheWxvYWQgdGhhdCB3YXMgc2VudC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJsYXN0X3BheWxvYWRfbWFuaWZlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE1hbmlmZXN0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG1hbmlmZXN0SUQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGxhc3QgcGF5bG9hZCBmaWxlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX3JlcXVlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZFJlcXVlc3RJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBpbnNpZ2h0cyByZXF1ZXN0IGlkIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfdXBsb2FkX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFVwbG9hZFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIHVwbG9hZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3VwbG9hZF9zdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0VXBsb2FkU3RhdHVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGh0dHAgc3RhdHVzIG9mIHRoZSBsYXN0IHVwbG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFRvZ2dsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIHNob3VsZCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tLlxuVGhlIGRlZmF1bHQgaXMgdHJ1ZSIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF9jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS5cblRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOm51bGwsInN0b3JlZFZlcnNpb25zIjpudWxsfX0= -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmQxZTk0YTZlN2E1MmUxNGU5NmE5YWNiYTU0YWVhZTRjYjFhYWUwZGFkMjIwMjk4YmIyZWQwMzRmOWRmMTllZTQiLCJjcmVhdGVkQXQiOiIyMDI0LTA1LTMxVDE2OjE2OjQ2WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Byb3h5LWF3YXJlIjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdGxzLXByb2ZpbGVzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXdzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXp1cmUiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1nY3AiOiJmYWxzZSIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcImRpc2Nvbm5lY3RlZFwiLCBcInByb3h5LWF3YXJlXCJdIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby92YWxpZC1zdWJzY3JpcHRpb24iOiJbXCJPcGVuU2hpZnQgS3ViZXJuZXRlcyBFbmdpbmVcIiwgXCJPcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtXCIsIFwiT3BlblNoaWZ0IFBsYXRmb3JtIFBsdXNcIl0iLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4zMy4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjQiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IiLCJzdXBwb3J0IjoiUmVkIEhhdCJ9LCJsYWJlbHMiOnsib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hbWQ2NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guYXJtNjQiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnBwYzY0bGUiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnMzOTB4Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vb3MubGludXgiOiJzdXBwb3J0ZWQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4zLjAiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBDb25maWciLCJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwidmVyc2lvbiI6InYxYmV0YTEifV19LCJkZXNjcmlwdGlvbiI6IiMgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3JcbiMjIEludHJvZHVjdGlvblxuVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBhIGNvbXBvbmVudCBvZiB0aGUgW2Nvc3QgbWFuYWdtZW50XShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2RvY3VtZW50YXRpb24vZW4tdXMvY29zdF9tYW5hZ2VtZW50X3NlcnZpY2UpIHNlcnZpY2UgZm9yIE9wZW5zaGlmdC4gVGhlIG9wZXJhdG9yIHJ1bnMgb24gdGhlIGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbnMgb2YgT3BlbnNoaWZ0LiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBldmVyeSBob3VyIHRvIGNyZWF0ZSBtZXRyaWMgcmVwb3J0cyB0aGF0IGl0IHVwbG9hZHMgdG8gQ29zdCBNYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSB0byBiZSBwcm9jZXNzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gQ29zdCBNYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS9sYXRlc3Qvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgQ29zdCBNYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC5cbiogV3JpdGluZyB0aGUgcmVzdWx0cyBvZiBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFJlc291cmNlIE9wdGltaXphdGlvbiBtZXRyaWNzIGNvbGxlY3Rpb24uXG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBnYXRoZXIgYWxsIHByZXZpb3VzIGRhdGEgd2l0aGluIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2Qgb3IgYSBtYXhpbXVtIG9mIDkwIGRheXMuIFRoZSBkZWZhdWx0IGRhdGEgY29sbGVjdGlvbiBwZXJpb2QgaXMgdGhlIDE0IHByZXZpb3VzIGRheXMuIFRoaXMgc2V0dGluZyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gQ29zdCBNYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGFuIGludGVncmF0aW9uIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gaW50ZWdyYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBOZXcgaW4gdjMuMy4wOlxuKiBTdG9yYWdlIHJlcG9ydHMgbm93IGNvbnRhaW4gYG5vZGVgLCBgY3NpX2RyaXZlcmAsIGFuZCBgY3NpX3ZvbHVtZV9oYW5kbGVgIGZpZWxkcy5cbiogVGhlIFBWQyBjYXBhY2l0eSBpcyBub3cgcG9wdWxhdGVkIHVzaW5nIHRoZSBga3ViZV9wZXJzaXN0ZW50dm9sdW1lX2NhcGFjaXR5X2J5dGVzYCBtZXRyaWMgaW5zdGVhZCBvZiBga3ViZWxldF92b2x1bWVfc3RhdHNfY2FwYWNpdHlfYnl0ZXNgLlxuKiBUbyByZWNlaXZlIHJlc291cmNlIG9wdGltaXphdGlvbiByZWNvbW1lbmRhdGlvbnMgZm9yIHlvdXIgbmFtZXNwYWNlcywgeW91IG11c3Qgbm93IGZpcnN0IGVuYWJsZSBlYWNoIG5hbWVzcGFjZS4gVG8gZW5hYmxlIGEgbmFtZXNwYWNlLCBsYWJlbCBpdCB3aXRoIGBpbnNpZ2h0c19jb3N0X21hbmFnZW1lbnRfb3B0aW1pemF0aW9ucz0ndHJ1ZSdgLiBJbiB0aGUgQ0xJLCBydW46XG4gIGBgYFxuICAgIG9jIGxhYmVsIG5hbWVzcGFjZSBOQU1FU1BBQ0UgaW5zaWdodHNfY29zdF9tYW5hZ2VtZW50X29wdGltaXphdGlvbnM9XCJ0cnVlXCIgLS1vdmVyd3JpdGU9dHJ1ZVxuICBgYGBcbiogX19ERVBSRUNBVElPTiBOT1RJQ0VfXzogQmFzaWMgYXV0aGVudGljYXRpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGJleW9uZCBEZWNlbWJlciAzMSwgMjAyNC4gSWYgdGhlIGRlZmF1bHQgdG9rZW4gYXV0aGVudGljYXRpb24gbWV0aG9kIGNhbm5vdCBiZSB1c2VkLCB5b3UgbXVzdCBzd2l0Y2ggdG8gW3NlcnZpY2UgYWNjb3VudF0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vaWFtL3NlcnZpY2UtYWNjb3VudHMpIGF1dGhlbnRpY2F0aW9uIChbbW9yZSBvbiBjcmVhdGluZyBhIHNlcnZpY2UgYWNjb3VudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9hcnRpY2xlcy83MDM2MTk0KSkuIE9uY2UgeW91IGhhdmUgY3JlYXRlZCB5b3VyIHNlcnZpY2UgYWNjb3VudCwgZm9sbG93IFt0aGlzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vZG9jdW1lbnRhdGlvbi9lbi11cy9jb3N0X21hbmFnZW1lbnRfc2VydmljZS8xLWxhdGVzdC9odG1sLXNpbmdsZS9pbnRlZ3JhdGluZ19vcGVuc2hpZnRfY29udGFpbmVyX3BsYXRmb3JtX2RhdGFfaW50b19jb3N0X21hbmFnZW1lbnQvaW5kZXgjc2VydmljZS1hY2NvdW50LWF1dGhlbnRpY2F0aW9uX2FkZGluZy1hbi1vY3AtaW50KSBvbiBob3cgdG8gY29uZmlndXJlIHlvdXIgb3BlcmF0b3IgdG8gdXNlIHNlcnZpY2UgYWNjb3VudCBhdXRoZW50aWNhdGlvbi4gU2VydmljZS1hY2NvdW50cyBtdXN0IGFsc28gYmUgdXNlZCBpZiBtYW51YWxseSB1cGxvYWRpbmcgcGF5bG9hZHMgdG8gY29uc29sZS5yZWRoYXQuY29tLlxuXG4jIyBOZXcgaW4gdjMuMi4xOlxuKiBUaGUgbWluaW11bSBzdXBwb3J0ZWQgY29uZmlndXJhdGlvbiBmb3IgYHVwbG9hZF9jeWNsZWAgaXMgbm93IDYwIChtaW51dGVzKS5cbiogKEJ1Z2ZpeCkgbWFueS10by1tYW55IG1hdGNoaW5nIG5vdCBhbGxvd2VkIHF1ZXJ5IGZpeC5cbiogKEJ1Z2ZpeCkgU2VxdWVudGlhbGx5IGNvbGxlY3QgZGF0YSBkdXJpbmcgaW5pdGlhbCBpbnN0YWxsLlxuXG4jIyBOZXcgaW4gdjMuMi4wOlxuKiBTdXBwb3J0IGZvciBhbWQ2NCwgYXJtNjQsIHBwYzY0bGUsIHMzOTB4IGFyY2hpdGVjdHVyZXMuXG4qIGFkZCBsaXZlbmVzcyBhbmQgcmVhZGluZXNzIHByb2JlcyB0byBjb250cm9sbGVyIFBvZC5cbiogdXBkYXRlIHBvZCBzZWN1cml0eSBzZXR0aW5ncyBzbyB0aGF0IHRoZSBjb250cm9sbGVyIFBvZCBjYW4gcnVuIGluIFJlc3RyaWN0ZWQgbW9kZSBbbW9yZSBpbmZvXShodHRwczovL3Nkay5vcGVyYXRvcmZyYW1ld29yay5pby9kb2NzL2Jlc3QtcHJhY3RpY2VzL3BvZC1zZWN1cml0eS1zdGFuZGFyZHMvKS5cblxuIyMgTmV3IGluIHYzLjEuMDpcbiogQWRkIHNlcnZpY2UtYWNjb3VudCBhdXRoZW50aWNhdGlvbiB0eXBlLlxuKiBfX0RlcHJlY2F0aW9uIE5vdGljZTpfXyBCYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IuXG5cbiMjIE5ldyBpbiB2My4wLjA6XG4qIERhaWx5IHJlcG9ydCBnZW5lcmF0aW9uOiBPcGVyYXRvciB2ZXJzaW9ucyBwcmlvciB0byB2My4wLjAgZ2VuZXJhdGVkIHNlcXVlbnRpYWwgcmVwb3J0cy4gTm93LCByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgc3RhcnRpbmcgYXQgMDowMCBVVEMuIEFueSBwYXlsb2FkcyBnZW5lcmF0ZWQgdGhyb3VnaG91dCBhIGdpdmVuIGRheSB3aWxsIGNvbnRhaW4gYWxsIGRhdGEgc3RhcnRpbmcgZnJvbSAwOjAwIFVUQy4gT25jZSB0aGUgbmV4dCBkYXkgc3RhcnRzLCB0aGUgcHJldmlvdXMgZGF5J3MgcmVwb3J0cyBhcmUgcGFja2FnZWQsIGFuZCB0aGUgbmV3IHJlcG9ydCBhZ2FpbiBzdGFydHMgYXQgMDowMCBVVEMgZm9yIHRoZSBjdXJyZW50IGRheS5cbiogRmFpbGVkIHF1ZXJ5IHJldHJ5OiBJbiBhbiBhdHRlbXB0IHRvIHByZXZlbnQgbWlzc2luZyBkYXRhLCB0aGUgb3BlcmF0b3Igd2lsbCByZXRyeSBxdWVyaWVzIGZyb20gdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBxdWVyeSB0aW1lLCB1cCB0byA1IHRpbWVzLlxuXG4jIyBOZXcgaW4gdjIuMC4wOlxuKiBBZGRzIG1ldHJpY3MgYW5kIHJlcG9ydCBnZW5lcmF0aW9uIGZvciByZXNvdXJjZSBvcHRpbWl6YXRpb24uIFRoaXMgZmVhdHVyZSB3aWxsIGNvbGxlY3QgYWRkaXRpb25hbCB1c2FnZSBtZXRyaWNzIGFuZCBjcmVhdGUgYSBuZXcgcmVwb3J0IGluIHRoZSBwYXlsb2FkLiBUaGVzZSBtZXRyaWNzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uYCB0byBgdHJ1ZWAuXG4qIENvbGxlY3QgYWxsIGF2YWlsYWJsZSBQcm9tZXRoZXVzIGRhdGEgdXBvbiBDUiBjcmVhdGlvbi4gVGhpcyBmZWF0dXJlIG9ubHkgYXBwbGllcyB0byBuZXdseSBjcmVhdGVkIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MuIFRoZSBvcGVyYXRvciB3aWxsIGNoZWNrIHRoZSBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlLiBUaGUgb3BlcmF0b3Igd2lsbCB1c2UgdGhlIGByZXRlbnRpb25gIHBlcmlvZCBzZXQgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaWYgZGVmaW5lZCwgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFjayB0byBjb2xsZWN0aW5nIDE0IGRheXMgb2YgZGF0YSwgaWYgYXZhaWxhYmxlLiBUaGlzIGRhdGEgY29sbGVjdGlvbiBtYXkgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhYCB0byBgZmFsc2VgLiBUdXJuaW5nIHRoaXMgZmVhdHVyZSBvZmYgcmVzdWx0cyBpbiB0aGUgb3BlcmF0b3IgY29sbGVjdGluZyBtZXRyaWNzIGZyb20gdGhlIHRpbWUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBpcyBjcmVhdGVkLCBmb3J3YXJkLlxuXG4jIyBMaW1pdGF0aW9ucyBhbmQgUHJlLVJlcXVpc2l0ZXNcbiMjIyMgTGltaXRhdGlvbnMgKFBvdGVudGlhbCBmb3IgbWV0cmljcyBkYXRhIGxvc3MpXG4qIEFuIGludGVncmF0aW9uICoqbXVzdCoqIGV4aXN0IGluIGNvbnNvbGUucmVkaGF0LmNvbSBmb3IgYW4gdXBsb2FkZWQgcGF5bG9hZCB0byBiZSBwcm9jZXNzZWQgYnkgQ29zdCBNYW5hZ2VtZW50LiBUaGUgb3BlcmF0b3Igc2VuZHMgdGhlIHBheWxvYWQgdG8gdGhlIFJlZCBIYXQgSW5zaWdodHMgSW5ncmVzcyBzZXJ2aWNlIHdoaWNoIHVzdWFsbHkgcmV0dXJucyBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgb3BlcmF0b3IgZG9lcyBub3QgY3VycmVudGx5IGNvbmZpcm0gd2l0aCBDb3N0IE1hbmFnZW1lbnQgdGhhdCB0aGUgcGF5bG9hZCB3YXMgcHJvY2Vzc2VkLiBBZnRlciBJbmdyZXNzIGFjY2VwdHMgdGhlIHVwbG9hZGVkIHBheWxvYWQsIGl0IGlzIGRlbGV0ZWQgZnJvbSB0aGUgb3BlcmF0b3IuIElmIHRoZSBkYXRhIHdpdGhpbiB0aGUgcGF5bG9hZCBpcyBub3QgcHJvY2Vzc2VkLCBhIGdhcCB3aWxsIGJlIGludHJvZHVjZWQgaW4gdGhlIHVzYWdlIG1ldHJpY3MuIERhdGEgbWF5IGJlIHJlY29sbGVjdGVkIGJ5IGRlbGV0aW5nIHRoZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCwgY3JlYXRpbmcgYSBuZXcgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGFuZCBzZXR0aW5nIGBjb2xsZWN0X3ByZXZpb3VzX2RhdGE6IHRydWVgLiBUaGlzIHJlLWNvbGxlY3Rpb24gb2YgZGF0YSB3aWxsIGdhdGhlciBhbGwgZGF0YSBzdG9yZWQgaW4gUHJvbWV0aGV1cywgdXAgdG8gOTAgZGF5cy5cblxuKipOb3RlKiogVGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gb3BlcmF0b3JzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrOlxuKiBUaGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHdpbGwgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgbmV3IHJlcG9ydHMgaWYgdGhlIFBWQyBzdG9yYWdlIGlzIGZ1bGwuIElmIHRoaXMgb2NjdXJzLCB0aGUgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRlbGV0ZWQgZnJvbSB0aGUgUFZDIHNvIHRoYXQgdGhlIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBhcyBub3JtYWwuXG4qIFRoZSBkZWZhdWx0IHJlcG9ydCByZXRlbnRpb24gaXMgMzAgcmVwb3J0cyAoYWJvdXQgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhKS4gVGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkb3dubG9hZGVkIGFuZCB1cGxvYWRlZCB0byBjb25zb2xlLnJlZGhhdC5jb20gZXZlcnkgd2Vlaywgb3IgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgbG9zdC5cblxuIyMjIyBTdG9yYWdlIGNvbmZpZ3VyYXRpb24gcHJlcmVxdWlzaXRlXG5UaGUgb3BlcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgUFZDIHdoZW4gaW5zdGFsbGVkOlxuXG4gICAgICB2b2x1bWVfY2xhaW1fdGVtcGxhdGU6XG4gICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICBtZXRhZGF0YTpcbiAgICAgICAgICBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG5cbklmIGEgZGlmZmVyZW50IFBWQyBzaG91bGQgYmUgdXRpbGl6ZWQsIGEgdmFsaWQgUFZDIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUiBhcyBkZXNjcmliZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYmVsb3cuIFRoZSBQVkMgdG8gYmUgdXNlZCBtYXkgZXhpc3QgYWxyZWFkeSwgb3IgdGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG5cblRvIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93IGFzc3VtcHRpb25zIG11c3QgYmUgbWV0OlxuMS4gQSBkZWZhdWx0IFN0b3JhZ2VDbGFzcyBpcyBkZWZpbmVkLlxuMi4gRHluYW1pYyBwcm92aXNpb25pbmcgZm9yIHRoYXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZW5hYmxlZC5cblxuSWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBtZXQsIHRoZSBvcGVyYXRvciB3aWxsIG5vdCBkZXBsb3kgY29ycmVjdGx5LiBJbiB0aGVzZSBjYXNlcywgc3RvcmFnZSBtdXN0IGJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuIEFmdGVyIGNvbmZpZ3VyaW5nIHN0b3JhZ2UsIGEgdmFsaWQgUFZDIHRlbXBsYXRlIHNob3VsZCBiZSBzdXBwbGllZCBpbiB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgc3BlYyBvZiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLlxuXG4jIyBDb25maWd1cmFibGUgcGFyYW1ldGVyczpcbiAgKiBgYXV0aGVudGljYXRpb25gOlxuICAgICogYHR5cGU6IHRva2VuYCAtXHUwMDNlIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGNvbm5lY3RpbmcgdG8gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIGlzIGB0b2tlbmAuIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIGFuZCBgc2VydmljZS1hY2NvdW50YCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSB1c2VkIHdoZW4gdGhlIG9wZW5zaGlmdC1jb25maWcgcHVsbC1zZWNyZXQgZG9lcyBub3QgY29udGFpbiBhIHRva2VuIGZvciBgY29uc29sZS5yZWRoYXQuY29tYC5cbiAgICAqIGBzZWNyZXRfbmFtZWAgLVx1MDAzZSBUaGUgU2VjcmV0IHVzZWQgYnkgdGhlIG9wZXJhdG9yIHdoZW4gdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaXMgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkICoqb25seSBpZioqIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLlxuICAqIGBwYWNrYWdpbmdgOlxuICAgICogYG1heF9yZXBvcnRzX3RvX3N0b3JlOiAzMGAgLVx1MDAzZSBUaGUgbnVtYmVyIG9mIHJlcG9ydHMgdG8gc3RvcmUgd2hlbiBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZS4gVGhlIGRlZmF1bHQgaXMgMzAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG5vIG1heGltdW0uIFdoZW4gdGhlIG9wZXJhdG9yIGlzIG5vdCBjb25maWd1cmVkIGluIGFpci1nYXBwZWQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdC4gUmVwb3J0cyBhcmUgcmVtb3ZlZCBhcyBzb29uIGFzIHRoZXkgYXJlIHVwbG9hZGVkLlxuICAgICogYG1heF9zaXplOiAxMDBgIC1cdTAwM2UgVGhlIG1heGltdW0gc2l6ZSBmb3IgcGFja2FnZWQgZmlsZXMgaW4gTWVnYWJ5dGVzIHByaW9yIHRvIGNvbXByZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxMDAsIHdpdGggYSBtaW5pbXVtIG9mIDEgYW5kIG1heGltdW0gb2YgMTAwLlxuICAqIGBwcm9tZXRoZXVzX2NvbmZpZ2A6XG4gICAgKiBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgY29sbGVjdGluZyBhbGwgYXZhaWxhYmxlIGRhdGEgaW4gUHJvbWV0aGV1cyAqKnVwb24gQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGNyZWF0aW9uKiogKFRoaXMgcGFyYW1ldGVyIHdpbGwgc3RhcnQgdG8gYXBwZWFyIGluIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ3MgdGhhdCB3ZXJlIGNyZWF0ZWQgcHJpb3IgdG8gdjIuMC4wIGJ1dCB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkKS4gVGhlIGRlZmF1bHQgaXMgYHRydWVgLiBUaGUgb3BlcmF0b3Igd2lsbCBmaXJzdCBsb29rIGZvciBhIGByZXRlbnRpb25gIHBlcmlvZCBpbiB0aGUgYGNsdXN0ZXItbW9uaXRvcmluZy1jb25maWdgIENvbmZpZ01hcCBpbiB0aGUgYG9wZW5zaGlmdC1tb25pdG9yaW5nYCBuYW1lc3BhY2UgYW5kIGdhdGhlciBkYXRhIG92ZXIgdGhpcyB0aW1lIHBlcmlvZCB1cCB0byBhIG1heGltdW0gb2YgOTAgZGF5cy4gSWYgdGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGlzIDE0IGRheXMuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudDogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgQ29zdCBNYW5hZ2VtZW50LiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGRpc2FibGluZyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBSZXNvdXJjZSBPcHRpbWl6YXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBjb250ZXh0X3RpbWVvdXQ6IDEyMGAgLVx1MDAzZSBUaGUgdGltZSBpbiBzZWNvbmRzIGJlZm9yZSBQcm9tZXRoZXVzIHF1ZXJpZXMgdGltZW91dCBkdWUgdG8gZXhjZWVkaW5nIGNvbnRleHQgdGltZW91dC4gVGhlIGRlZmF1bHQgaXMgMTIwLCB3aXRoIGEgbWluaW11bSBvZiAxMCBhbmQgbWF4aW11bSBvZiAxODAuXG4gICogYHNvdXJjZWA6XG4gICAgKiBgbmFtZTogJydgIC1cdTAwM2UgVGhlIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBpbiBgY29uc29sZS5yZWRoYXQuY29tYC4gSWYgdGhlIG5hbWUgdmFsdWUgaXMgZW1wdHksIHRoZSBkZWZhdWx0IGludGVyZ3JhdGlvbiBuYW1lIGlzIHRoZSAqKmNsdXN0ZXIgaWQqKi5cbiAgICAqIGBjcmVhdGVfc291cmNlOiBmYWxzZWAgLVx1MDAzZSBUb2dnbGUgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSB0aGUgaW50ZWdyYXRpb24gaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIFRoZSBkZWZhdWx0IGlzIEZhbHNlLiBUaGlzIHBhcmFtZXRlciBzaG91bGQgYmUgc3dpdGNoZWQgdG8gVHJ1ZSB3aGVuIGFuIGludGVncmF0aW9uIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICAqIGBjaGVja19jeWNsZTogMTQ0MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmV0d2VlbiBjaGVja2luZyBpZiBhbiBpbnRlZ3JhdGlvbiBleGlzdHMgZm9yIHRoaXMgY2x1c3Rlci4gVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW51dGVzICgyNCBocnMpLlxuICAqIGB1cGxvYWRgOlxuICAgICogYHVwbG9hZF9jeWNsZTogMzYwYCAtXHUwMDNlIFRoZSB0aW1lIGluIG1pbnV0ZXMgYmV0d2VlbiBwYXlsb2FkIHVwbG9hZHMuIFRoZSBkZWZhdWx0IGlzIDM2MCAoNiBob3VycyksIG1pbmltdW0gaXMgNjAgKDEgaG91cikuXG4gICAgKiBgdXBsb2FkX3RvZ2dsZTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgdG8gdHVybiB1cGxvYWQgb24gb3Igb2ZmIC1cdTAwM2UgdHJ1ZSBtZWFucyB1cGxvYWQsIGZhbHNlIG1lYW5zIGRvIG5vdCB1cGxvYWQgKGZhbHNlID09IGFpci1nYXBwZWQgbW9kZSkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC5cbiAgICAqIGB1cGxvYWRfd2FpdGAgLVx1MDAzZSBUaGUgYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIHRvIHBhdXNlIGJlZm9yZSB1cGxvYWRpbmcgYSBwYXlsb2FkLiBUaGUgZGVmYXVsdCBpcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAzNS4gVGhpcyBpcyB1c2VkIHRvIGRlY3JlYXNlIHNlcnZpY2UgbG9hZCwgYnV0IG1heSBiZSBzZXQgdG8gYDBgIGlmIGRlc2lyZWQuXG4gICogYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgLVx1MDAzZSBzZWUgdGhlIFwiU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVwiIHNlY3Rpb24gYWJvdmUuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuKipOb3RlKiogVGhlcmUgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmsuXG4jIyMjIyBDb25maWd1cmUgYXV0aGVudGljYXRpb25cblRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgb3BlcmF0b3IgaXMgYHRva2VuYC4gTm8gZnVydGhlciBzdGVwcyBhcmUgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRva2VuIGF1dGhlbnRpY2F0aW9uLiBJZiBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YCBpcyB0aGUgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCwgYSBTZWNyZXQgd2hpY2ggaG9sZHMgdGhlIGNyZWRlbnRpYWxzIG11c3QgYmUgY3JlYXRlZDpcbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBXb3JrbG9hZHNgIC1cdTAwM2UgYFNlY3JldHNgIC1cdTAwM2Ugc2VsZWN0IFByb2plY3Q6IGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDcmVhdGVgIC1cdTAwM2UgYEtleS9WYWx1ZSBTZWNyZXRgXG4yLiBHaXZlIHRoZSBTZWNyZXQgYSBuYW1lIGFuZCBhZGQgMiBrZXlzIChhbGwgbG93ZXJjYXNlKSBmb3IgdGhlIHJlc3BlY3RpdmUgYXV0aGVudGljYXRpb24gdHlwZS4gVGhlIHZhbHVlcyBmb3IgdGhlc2Uga2V5cyBjb3JyZXNwb25kIHRvIGNvbnNvbGUucmVkaGF0LmNvbSBjcmVkZW50aWFsczpcbiAgICAqIGJhc2ljIGF1dGggKGRlcHJlY2F0ZWQpOiBgdXNlcm5hbWVgIGFuZCBgcGFzc3dvcmRgXG4gICAgKiBzZXJ2aWNlLWFjY291bnQgYXV0aDogYGNsaWVudF9pZGAgYW5kIGBjbGllbnRfc2VjcmV0YFxuXG4zLiBTZWxlY3QgYENyZWF0ZWAuXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBGb3IgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIHNwZWM6XG4gICAgKiBSZXBsYWNlIGBhdXRoZW50aWNhdGlvbjogdHlwZTpgIHdpdGggYGJhc2ljYCBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgICAqIEFkZCB0aGUgYHNlY3JldF9uYW1lYCBmaWVsZCB1bmRlciBgYXV0aGVudGljYXRpb25gLCBhbmQgc2V0IGl0IGVxdWFsIHRvIHRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBTZWNyZXQgdGhhdCB3YXMgY3JlYXRlZCBhYm92ZS4gVGhlIHNwZWMgc2hvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG4gICAgICAgICogZm9yIGJhc2ljIGF1dGggdHlwZSAoZGVwcmVjYXRlZClcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IGJhc2ljXG4gICAgICAgIGBgYFxuXG4gICAgICAgICogZm9yIHNlcnZpY2UtYWNjb3VudCBhdXRoIHR5cGVcbiAgICAgICAgYGBgXG4gICAgICAgICAgYXV0aGVudGljYXRpb246XG4gICAgICAgICAgICBzZWNyZXRfbmFtZTogU0VDUkVULU5BTUVcbiAgICAgICAgICAgIHR5cGU6IHNlcnZpY2UtYWNjb3VudFxuICAgICAgICBgYGBcblxuMy4gVG8gY29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIHRvIGNyZWF0ZSBhIGNvc3QgbWFuYWdlbWVudCBpbnRlZ3JhdGlvbiwgZWRpdCB0aGUgZm9sbG93aW5nIHZhbHVlcyBpbiB0aGUgYHNvdXJjZWAgZmllbGQ6XG4gICAgKiBSZXBsYWNlIHRoZSBgbmFtZWAgZmllbGQgdmFsdWUgd2l0aCB0aGUgcHJlZmVycmVkIG5hbWUgb2YgdGhlIGludGVncmF0aW9uIHRvIGJlIGNyZWF0ZWQuXG4gICAgKiBSZXBsYWNlIHRoZSBgY3JlYXRlX3NvdXJjZWAgZmllbGQgdmFsdWUgd2l0aCBgdHJ1ZWAuXG5cbiAgICAqKk5vdGU6KiogaWYgdGhlIGludGVncmF0aW9uIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSBlbXB0eSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBuYW1lYCBmaWVsZCB3aXRoIHRoZSBleGlzdGluZyBuYW1lLCBhbmQgbGVhdmUgYGNyZWF0ZV9zb3VyY2VgIGFzIGZhbHNlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG9wZXJhdG9yIHRvIGNvbmZpcm0gdGhhdCB0aGUgaW50ZWdyYXRpb24gZXhpc3RzLlxuXG40LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYSBkZWZhdWx0IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBhY2Nlc3NNb2RlczpcbiAgICAgICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICAgIHN0b3JhZ2U6IDEwR2lcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIElmIHVzaW5nIHRoZSBZQU1MIFZpZXcsIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBtdXN0IGJlIGFkZGVkIHRvIHRoZSBzcGVjXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMgUmVzdHJpY3RlZCBOZXR3b3JrIFVzYWdlIChkaXNjb25uZWN0ZWQvYWlyLWdhcHBlZCBtb2RlKVxuIyMgSW5zdGFsbGF0aW9uXG5UbyBpbnN0YWxsIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIGZvbGxvdyB0aGUgW29sbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnNoaWZ0LmNvbS9jb250YWluZXItcGxhdGZvcm0vbGF0ZXN0L29wZXJhdG9ycy9hZG1pbi9vbG0tcmVzdHJpY3RlZC1uZXR3b3Jrcy5odG1sKS4gVGhlIG9wZXJhdG9yIGlzIGZvdW5kIGluIHRoZSBgY29tbXVuaXR5LW9wZXJhdG9yc2AgQ2F0YWxvZyBpbiB0aGUgYHJlZ2lzdHJ5LnJlZGhhdC5pby9yZWRoYXQvY29tbXVuaXR5LW9wZXJhdG9yLWluZGV4OmxhdGVzdGAgSW5kZXguIElmIHBydW5pbmcgdGhlIGluZGV4IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBtaXJyb3JlZCByZWdpc3RyeSwga2VlcCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIHBhY2thZ2UuXG5cbldpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIG9wZXJhdG9yIHF1ZXJpZXMgcHJvbWV0aGV1cyB0byBnYXRoZXIgdGhlIG5lY2Vzc2FyeSB1c2FnZSBtZXRyaWNzLCB3cml0ZXMgdGhlIHF1ZXJ5IHJlc3VsdHMgdG8gQ1NWIGZpbGVzLCBhbmQgcGFja2FnZXMgdGhlIHJlcG9ydHMgZm9yIHN0b3JhZ2UgaW4gdGhlIFBWQy4gVGhlc2UgcmVwb3J0cyB0aGVuIG5lZWQgdG8gYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBjbHVzdGVyIGFuZCB1cGxvYWRlZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuXG5cbiMjIENvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBmb3IgYSByZXN0cmljdGVkIG5ldHdvcmtcbiMjIyMjIENyZWF0ZSB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnXG5Db25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgYnkgY3JlYXRpbmcgYSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYC5cbjEuIE9uIHRoZSBsZWZ0IG5hdmlnYXRpb24gcGFuZSwgc2VsZWN0IGBPcGVyYXRvcnNgIC1cdTAwM2UgYEluc3RhbGxlZCBPcGVyYXRvcnNgIC1cdTAwM2UgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIC1cdTAwM2UgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AgLVx1MDAzZSBgQ3JlYXRlIEluc3RhbmNlYC5cbjIuIFNwZWNpZnkgdGhlIGRlc2lyZWQgc3RvcmFnZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50IFZvbHVtZSBDbGFpbSBjYWxsZWQgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItZGF0YWAgd2l0aCAxMEdpIG9mIHN0b3JhZ2UuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byB1c2Ugb3IgY3JlYXRlIGEgZGlmZmVyZW50IFBWQywgZWRpdCB0aGUgZm9sbG93aW5nIGluIHRoZSBzcGVjOlxuICAgICogQWRkIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIGluIHRoZSBzcGVjIChiZWxvdyBpcyBvbmx5IGEgdGVtcGxhdGUuIEFueSBfdmFsaWRfIGBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1gIG1heSBiZSBkZWZpbmVkIGhlcmUpOlxuXG4gICAgICBgYGBcbiAgICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICAgIGFwaVZlcnNpb246IHYxXG4gICAgICAgICAga2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG4gICAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgICBuYW1lOiBcdTAwM2NpbnNlcnQtbmFtZVx1MDAzZVxuICAgICAgICAgIHNwZWM6XG4gICAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBcdTAwM2NpbnNlcnQtY2xhc3MtbmFtZVx1MDAzZVxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuMy4gKE9wdGlvbmFsKSBTcGVjaWZ5IHRoZSBkZXNpcmVkIHJlcG9ydCByZXRlbnRpb24uIFRoZSBvcGVyYXRvciB3aWxsIHJldGFpbiAzMCByZXBvcnRzIGJ5IGRlZmF1bHQuIFRoaXMgY29ycmVzcG9uZHMgdG8gYXBwcm94aW1hdGVseSBvbmUgd2VlaydzIHdvcnRoIG9mIGRhdGEgaWYgdXNpbmcgdGhlIGRlZmF1bHQgcGFja2FnaW5nIGN5Y2xlLiBUbyBtb2RpZnkgdGhlIG51bWJlciBvZiByZXRhaW5lZCByZXBvcnRzOlxuICAgICogQ2hhbmdlIHRoZSBgcGFja2FnaW5nYCBzcGVjIGZpZWxkIGBtYXhfcmVwb3J0c190b19zdG9yZWAgdG8gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIHJlcG9ydHMgdG8gcmV0YWluLiBPbmNlIHRoaXMgbWF4IG51bWJlciBpcyByZWFjaGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBzdGFydCByZW1vdmluZyB0aGUgb2xkZXN0IHBhY2thZ2VzIHJlbWFpbmluZyBvbiB0aGUgUFZDOlxuXG4gICAgICBgYGBcbiAgICAgICAgcGFja2FnaW5nOlxuICAgICAgICAgIG1heF9zaXplX01COiAxMDBcbiAgICAgICAgICBtYXhfcmVwb3J0c190b19zdG9yZTogMzBcbiAgICAgIGBgYFxuXG4gICAgKipOb3RlOioqIFRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0cyBkaXJlY3RseSBhZmZlY3RzIHRoZSBmcmVxdWVuY3kgdGhhdCByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSBQVkMuIFRha2UgY2F1dGlvbiBpbiBzZXR0aW5nIHRoaXMgdG8gYSBoaWdoZXIgbnVtYmVyIG9mIHJlcG9ydHMsIGFzIHRoZSBvcGVyYXRvciBjYW5ub3Qgd3JpdGUgZGF0YSB0byB0aGUgUFZDIGlmIHRoZSBzdG9yYWdlIGlzIGZ1bGwuXG40LiBUbyBjb25maWd1cmUgdGhlIG9wZXJhdG9yIHRvIHBlcmZvcm0gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHNldCB0aGUgYHVwbG9hZF90b2dnbGVgIHRvIGBmYWxzZWA6XG5cbiAgYGBgXG4gICAgdXBsb2FkOlxuICAgICAgdXBsb2FkX2N5Y2xlOiAzNjBcbiAgICAgIHVwbG9hZF90b2dnbGU6IGZhbHNlXG4gIGBgYFxuXG41LiBTZWxlY3QgYENyZWF0ZWAuXG5cbiMjIERvd25sb2FkIHJlcG9ydHMgZnJvbSB0aGUgT3BlcmF0b3IgXHUwMDI2IGNsZWFuIHVwIHRoZSBQVkNcbklmIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgaXMgY29uZmlndXJlZCB0byBydW4gaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBtZXRyaWMgcmVwb3J0cyB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwbG9hZCB0byBjb3N0IG1hbmFnbWVudC4gSW5zdGVhZCwgdGhleSBuZWVkIHRvIGJlIG1hbnVhbGx5IGNvcGllZCBmcm9tIHRoZSBQVkMgZm9yIHVwbG9hZCB0byBbY29uc29sZS5yZWRoYXQuY29tXShodHRwczovL2NvbnNvbGUucmVkaGF0LmNvbSkuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2F2ZXMgb25lIHdlZWsgb2YgcmVwb3J0cyB3aGljaCBtZWFucyB0aGUgcHJvY2VzcyBvZiBkb3dubG9hZGluZyBhbmQgdXBsb2FkaW5nIHJlcG9ydHMgc2hvdWxkIGJlIHJlcGVhdGVkIHdlZWtseSB0byBwcmV2ZW50IGxvc3Mgb2YgbWV0cmljcyBkYXRhLiBUbyBkb3dubG9hZCB0aGUgcmVwb3J0cywgY29tcGxldGUgdGhlIGZvbGxvd2luZyBzdGVwczpcbjEuIENyZWF0ZSB0aGUgZm9sbG93aW5nIFBvZCwgZW5zdXJpbmcgdGhlIGBjbGFpbU5hbWVgIG1hdGNoZXMgdGhlIFBWQyBjb250YWluaW5nIHRoZSByZXBvcnQgZGF0YTpcblxuICBgYGBcbiAgICBraW5kOiBQb2RcbiAgICBhcGlWZXJzaW9uOiB2MVxuICAgIG1ldGFkYXRhOlxuICAgICAgbmFtZTogdm9sdW1lLXNoZWxsXG4gICAgICBuYW1lc3BhY2U6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgc3BlYzpcbiAgICAgIHZvbHVtZXM6XG4gICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06XG4gICAgICAgICAgY2xhaW1OYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICBjb21tYW5kOiBbJ3NsZWVwJywgJ2luZmluaXR5J11cbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0c1xuICAgICAgICAgIG1vdW50UGF0aDogL3RtcC9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgYGBgXG5cbjIuIFVzZSByc3luYyB0byBjb3B5IGFsbCBvZiB0aGUgZmlsZXMgcmVhZHkgZm9yIHVwbG9hZCBmcm9tIHRoZSBQVkMgdG8gYSBsb2NhbCBmb2xkZXI6XG5cbiAgYGBgXG4gICQgb2MgcnN5bmMgdm9sdW1lLXNoZWxsOi90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZCBsb2NhbC9wYXRoL3RvL3NhdmUvZm9sZGVyXG4gIGBgYFxuXG4zLiBPbmNlIGNvbmZpcm1pbmcgdGhhdCB0aGUgZmlsZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb3BpZWQsIHVzZSByc2ggdG8gY29ubmVjdCB0byB0aGUgcG9kIGFuZCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB1cGxvYWQgZm9sZGVyIHNvIHRoYXQgdGhleSBhcmUgbm8gbG9uZ2VyIGluIHN0b3JhZ2U6XG5cbiAgYGBgXG4gICQgb2MgcnNoIHZvbHVtZS1zaGVsbFxuICAkIHJtIC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzL3VwbG9hZC8qXG4gIGBgYFxuXG40LiAoT3B0aW9uYWwpIERlbGV0ZSB0aGUgcG9kIHRoYXQgd2FzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgUFZDOlxuXG4gIGBgYFxuICAkIG9jIGRlbGV0ZSAtZiB2b2x1bWUtc2hlbGwueWFtbFxuICBgYGBcblxuIyMgQ3JlYXRlIGFuIEludGVncmF0aW9uXG5JbiBhIHJlc3RyaWN0ZWQgbmV0d29yaywgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBjYW5ub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW50ZWdyYXRpb24uIFRoaXMgcHJvY2VzcyBtdXN0IGJlIGRvbmUgbWFudWFsbHkuIEluIHRoZSBjb25zb2xlLnJlZGhhdC5jb20gcGxhdGZvcm0sIG9wZW4gdGhlIFtJbnRlZ3JhdGlvbnMgbWVudV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vc2V0dGluZ3MvaW50ZWdyYXRpb25zLykgdG8gYmVnaW4gYWRkaW5nIGFuIE9wZW5TaGlmdCBpbnRlZ3JhdGlvbiB0byBDb3N0IE1hbmFnZW1lbnQ6XG5cblByZXJlcXVpc2l0ZXM6XG4qIFRoZSBjbHVzdGVyIGlkZW50aWZpZXIgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IsIHRoZSBjbHVzdGVyIE92ZXJ2aWV3IHBhZ2UsIG9yIHRoZSBjbHVzdGVyIEhlbHAgXHUwMDNlIEFib3V0LlxuXG5DcmVhdGluZyBhbiBpbnRlZ3JhdGlvbjpcbjEuIE5hdmlnYXRlIHRvIHRoZSBJbnRlZ3JhdGlvbnMgbWVudVxuMi4gU2VsZWN0IHRoZSBgUmVkIEhhdGAgdGFiXG4zLiBDcmVhdGUgYSBuZXcgYFJlZCBIYXQgT3BlbnNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybWAgaW50ZWdyYXRpb246XG4gICAgKiBnaXZlIHRoZSBpbnRlZ3JhdGlvbiBhIHVuaXF1ZSBuYW1lXG4gICAgKiBhZGQgdGhlIENvc3QgTWFuYWdlbWVudCBhcHBsaWNhdGlvblxuICAgICogYWRkIHRoZSBjbHVzdGVyIGlkZW50aWZpZXJcbjQuIEluIHRoZSBTb3VyY2Ugd2l6YXJkLCByZXZpZXcgdGhlIGRldGFpbHMgYW5kIGNsaWNrIGBGaW5pc2hgIHRvIGNyZWF0ZSB0aGUgc291cmNlLlxuXG4jIyBVcGxvYWQgdGhlIHJlcG9ydHMgdG8gY29zdCBtYW5hZ21lbnRcblVwbG9hZGluZyByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50IGlzIGRvbmUgdGhyb3VnaCBjdXJsOlxuXG4gICAgJCBjdXJsIC12dnZ2IC1GIFwiZmlsZT1ARklMRV9OQU1FLnRhci5nejt0eXBlPWFwcGxpY2F0aW9uL3ZuZC5yZWRoYXQuaGNjbS50YXIrdGd6XCIgaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20vYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIC1IIFwiQXV0aG9yaXphdGlvbjogQmVhcmVyICR7QUNDRVNTX1RPS0VOfVwiXG5cbndoZXJlIGBGSUxFX05BTUVgIGlzIHRoZSBuYW1lIG9mIHRoZSByZXBvcnQgdG8gdXBsb2FkLiBUaGUgYEFDQ0VTU19UT0tFTmAgaXMgYWNxdWlyZWQgdXNpbmcgYSBbc2VydmljZS1hY2NvdW50XShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2FydGljbGVzLzcwMzYxOTQpLlxuIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREl5TGpFdU1Dd2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBek1EQWdNekF3SWlCemRIbHNaVDBpWlc1aFlteGxMV0poWTJ0bmNtOTFibVE2Ym1WM0lEQWdNQ0F6TURBZ016QXdPeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK0NqeHpkSGxzWlNCMGVYQmxQU0owWlhoMEwyTnpjeUkrQ2drdWMzUXdlMlpwYkd3NkkwVkZNREF3TUR0OUNqd3ZjM1I1YkdVK0NqeDBhWFJzWlQ1RGIzTjBMV2xqYjI0OEwzUnBkR3hsUGdvOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLUEdjK0NnazhaejRLQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5Nak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjJNdE15NHlOalU0TURneExUUXhMams0T1RBMU1UZ3RNemd1TWpVMk5qZ3pNeTAzTkM0Mk5EY3lNREUxTFRneExqRTNPRGd6TXkwM05DNDJORGN5TURFMUNna0pDV010TWpjdU5USTJNVFV6Tml3d0xUVXpMakU0TmpFeU5qY3NNVE11T1RrMk16UTVNeTAyT0M0eE1UVTFOekF4TERNM0xqTXlNell3TURoakxURXVPRFkyTVRnd05Dd3dMVE11TnpNeU16VXpNaTB3TGpRMk5qVTBOVEV0Tmk0d05qVXdOemczTFRBdU5EWTJOVFExTVFvSkNRbGpMVE0wTGpVeU5ETXpNREVzTUMwMk1pNDVPRE0xTnpjM0xESTNMams1TWpZNU9EY3ROakl1T1Rnek5UYzNOeXcyTWk0NU9ETTFOall6Y3pJM0xqazVNalk1T0Rjc05qSXVPVGd6TlRZMk15dzJNaTQ1T0RNMU56YzNMRFl5TGprNE16VTJOak5vTVRZdU16STVNRGN4Q2drSkNXTXpMamN6TWpNMk1EZ3NNQ3cyTGprNU9ERTNOall0TXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTmkwMkxqazVPREUyT0RsekxUTXVNalkxT0RFMU55MDJMams1T0RFMk9Ea3ROaTQ1T1RneE56WTJMVFl1T1RrNE1UWTRPV2d0TVRZdU16STVNRGN4Q2drSkNXTXRNamN1TURVNU5qRXlNeXd3TFRRNExqVXlNRFkzT1RVdE1qRXVPVEkzTmpJM05pMDBPQzQxTWpBMk56azFMVFE0TGpVeU1EWTNOVGR6TWpFdU9USTNOakV5TXkwME9DNDFNakEyT0RNekxEUTRMalV5TURZM09UVXRORGd1TlRJd05qZ3pNd29KQ1Fsak1pNDNPVGt5TnpBMkxEQXNOUzQxT1RnMU5ERXpMREF1TkRZMk5UUTFNU3c0TGpNNU56Z3dORE1zTUM0NU16TXdPVEF5WXpJdU56azVNamN3Tml3d0xqUTJOalUwTlRFc05pNHdOalV3TnpnM0xUQXVPVE16TURrd01pdzNMalEyTkRjeU1UY3RNeTQzTXpJek5qQTRDZ2tKQ1dNeE1pNHhNekF4TnpJM0xUSXdMams1TkRVeU9UY3NNelF1TlRJME16TXdNUzB6TkM0d05UYzNPRGc0TERVNExqTXhPREV5TWprdE16UXVNRFUzTnpnNE9HTXpOaTQ0TlRjd056QTVMREFzTmpjdU1UZ3lORGsxTVN3ek1DNHpNalUwTWpBMExEWTNMakU0TWpRNU5URXNOamN1TVRneU5EYzVPUW9KQ1Fsak1Dd3pMamN6TWpNMU16SXNNeTR5TmpVNE1EZ3hMRFl1T1RrNE1UYzJOaXcyTGprNU9ERTJPRGtzTmk0NU9UZ3hOelkyWXpFMkxqTXlPVEEzTVN3d0xESTVMamcxT0Rrd01pd3hNeTQxTWprNE1EQTBMREk1TGpnMU9Ea3dNaXd5T1M0NE5UZzROekUxQ2drSkNYTXRNVE11TlRJNU9ETXdPU3d5T1M0NE5UZzRPRFkzTFRJNUxqZzFPRGt3TWl3eU9TNDROVGc0T0RZM1l5MHpMamN6TWpNMk1EZ3NNQzAyTGprNU9ERTJPRGtzTXk0eU5qVTRNRGd4TFRZdU9UazRNVFk0T1N3MkxqazVPREUyT0RrS0NRa0pjek11TWpZMU9EQTRNU3cyTGprNU9ERTJPRGtzTmk0NU9UZ3hOamc1TERZdU9UazRNVFk0T1dNeU5DNHlOakF6TXpBeUxEQXNORFF1TXpJeE56WXlNUzB5TUM0d05qRTBNVFkyTERRMExqTXlNVGMyTWpFdE5EUXVNekl4TnpZeU1Rb0pDUWxETWpjMkxqTTJNRFl5TmpJc01UTTVMakl3TWpjNE9UTXNNall3TGpBek1UVTFOVElzTVRJd0xqVTBNRGs1TWpjc01qTTVMakF6TnpBek16RXNNVEUzTGpJM05URTNOM29pTHo0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpBMkxqZzBOVFF5T0RVc01qSXdMamcwT0RFM05XTTNMalEyTkRjd05qUXRPQzQ0TmpRek5qUTJMREV4TGpZMk16WXlMVEl3TGpVeU56azRORFlzTVRFdU5qWXpOakl0TXpJdU5qVTRNVFUzTXdvSkNRbGpNQzB5T0M0NU1qVTNPVFkxTFRJekxqTXlOekkwTFRVeUxqSTFNekF6TmpVdE5USXVNalV6TURNMk5TMDFNaTR5TlRNd016WTFjeTAxTWk0eU5UTXdORFF4TERJekxqTXlOekkwTFRVeUxqSTFNekEwTkRFc05USXVNalV6TURNMk5Rb0pDUWx6TWpNdU16STNNalEzTml3MU1pNHlOVE13TlRFNExEVXlMakkxTXpBME5ERXNOVEl1TWpVek1EVXhPR014TVM0eE9UY3dPREkxTERBc01qRXVPVEkzTmpFeU15MHpMamN6TWpNMk1EZ3NNekF1TXpJMU5ESTBNaTA1TGpjNU56UXpPVFpzTXpFdU56STFNRFV4T1N3ek1DNDNPVEU1TmpFM0Nna0pDV014TGpNNU9UWXlOemNzTVM0ek9UazJNamMzTERNdU1qWTFPREl6TkN3eExqZzJOakU0TURRc05TNHhNekU1T0RnMUxERXVPRFkyTVRnd05HTXhMamcyTmpFNU5UY3NNQ3d6TGpjek1qTTJNRGd0TUM0NU16TXdOelVzTlM0eE16RTVPRGcxTFRJdU16TXlOek16TWdvSkNRbGpNaTQzT1RreU56QTJMVEl1TnprNU1qVTFOQ3d5TGpjNU9USTNNRFl0Tnk0ME5qUTNNRFkwTERBdE1UQXVNall6T1RjM01Vd3lNRFl1T0RRMU5ESTROU3d5TWpBdU9EUTRNVGMxZWlCTk1USTRMalEyTlRnMk5qRXNNVGc0TGpFNU1EQXhOemNLQ1FrSll6QXRNakF1T1RrME5USXlNU3d4Tnk0eU5qSXhOelkxTFRNNExqSTFOalk1T0RZc016Z3VNalUyTmprNE5pMHpPQzR5TlRZMk9UZzJjek00TGpJMU5qWTVPRFlzTVRjdU1qWXlNVGMyTlN3ek9DNHlOVFkyT1RnMkxETTRMakkxTmpZNU9EWUtDUWtKY3kweE55NHlOakl4TnpZMUxETTRMakkxTmpZNU9EWXRNemd1TWpVMk5qazROaXd6T0M0eU5UWTJPVGcyVXpFeU9DNDBOalU0TmpZeExESXdPUzR4T0RRMU16azRMREV5T0M0ME5qVTROall4TERFNE9DNHhPVEF3TVRjM2VpSXZQZ29KUEM5blBnb0pQR2MrQ2drSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEUzTkM0eU9EQTJNemsyTERFNE5TNDROek0yTVRFMVl6SXVNakUyTWpjNE1Td3dMalk0TmpVek9EY3NOQzR4TVRBd016RXhMREV1T0Rjd056RXlNeXcxTGpZM05qWXpOVGNzTXk0MU5USTFNRFUxQ2drSkNXTXhMalUyTmpZd05EWXNNUzQyT0RFNE1EZzFMREl1TlRrNE56QTVNU3d6TGpZME9USTJNVFVzTXk0d09URTNNelU0TERVdU9UQXlOREEwT0dNd0xqUTVOell4T1RZc01pNHlOVE14TkRNekxEQXVNell6T1RrNE5DdzBMalV5T1RNeU56UXRNQzQwTURBNE56ZzVMRFl1T0RFNU16TTFPUW9KQ1FsakxUQXVPVEUyT1RFMU9Td3lMalV5TURNNE5UY3RNaTQwT0RNMU1qQTFMRFF1TlRJNU16RXlNUzAwTGpZNU9UYzVPRFlzTmk0d01UYzFPVE0wWXkweUxqSXhOakkyTWpnc01TNDBPRGd5T0RFeUxUUXVOamsxTWpBMU55d3lMakkzTVRVM05Ua3ROeTQwTlRBMU56WTRMREl1TXpRNU9EazVNd29KQ1FsMk5TNDFNREUxTlRZMFl6QXNNQzQxTXpRME9EUTVMVEF1TVRjd05EY3hNaXd3TGprM01qSXhNemN0TUM0MU1URTBOVGswTERFdU16RTNOemM1TldNdE1DNHpORFUxTmpVNExEQXVNelExTlRneE1TMHdMamM0TXpJNU5EY3NNQzQxTVRZd05qYzFMVEV1TXpJeU16ZzNOeXd3TGpVeE5qQTJOelVLQ1FrSmFDMHpMalkyTnpZNU5ERmpMVEF1TlRNME5UQXdNU3d3TFRBdU9UY3lNakV6Tnkwd0xqRTNNRFE0TmpVdE1TNHpNVGMzTnprMUxUQXVOVEUyTURZM05XTXRNQzR6TkRBNU56STVMVEF1TXpRMU5UWTFPQzB3TGpVeE5qQTJOelV0TUM0M09ETXlPVFEzTFRBdU5URTJNRFkzTlMweExqTXhOemMzT1RVS0NRa0pkaTAxTGpVd01UVTFOalJqTFRNdU5qWTNOamswTVN3d0xUWXVPVGc1T0RJeU5DMHhMakUwTnpJNU16RXRPUzQ1TmpnMk5UZzBMVE11TkRNM016QXhObU10TUM0ek9ESTBORFl6TFRBdU16Z3lORE14TFRBdU5qRXlPREl6TlMwd0xqZzBNekl3TURjdE1DNDJPRGc0TkRJNExURXVNemMzTnpBd09Bb0pDUWxqTFRBdU1EYzJNRE0wTlMwd0xqVXpORFE0TkRrc01DNHhNVFV4T0RnMkxURXVNRE15TVRBME5Td3dMalUzTXpZek9Ea3RNUzQwT0RneU5UQTNiRE11T0RrMU56Z3lOUzB6TGpnNU9EQTROalVLQ1FrSll6QXVNekE0TnpBd05pMHdMakl6TURNNU1qVXNNQzQyTmpneE1EWXhMVEF1TXpneU5ETXhMREV1TURreU1ERXdOUzB3TGpRMU5qRTJNVFZqTUM0ME1Ua3lPVFl6TFRBdU1EYzRNekl6TkN3d0xqZ3lNREUxT1Rrc01DNHdNelk0TlN3eExqSXdNall3TmpJc01DNHpOREE1TnpJNUNna0pDV014TGpFME56STVNekVzTUM0M05qUTROemN6TERJdU5EUXlNRFEzTVN3eExqRTBOek13T0RNc015NDRPVE0wTmpNeExERXVNVFEzTXpBNE0yZzNMalk0TURrMU5HTXdMamt4TmprME5qUXNNQ3d4TGpjd01ESTBNVEV0TUM0ek1qSTFOREF6TERJdU16UTVPRGs1TXkwd0xqazNNakl4TXpjS0NRa0pZekF1TmpRNU5qZzROeTB3TGpZME9UWTRPRGNzTUM0NU56SXlNamt0TVM0ME56UTBOVFk0TERBdU9UY3lNakk1TFRJdU5EWTFNVEF6TVdNd0xUQXVOamcyTlRVMExUQXVNakkxTnpZNUxURXVNek0yTWpJM05DMHdMalk0TmpVek9EY3RNUzQ1TkRrd016VTJDZ2tKQ1dNdE1DNDBOVFl4TmpFMUxUQXVOakV5T0RJek5TMHhMakF6TWpFeE9UZ3RNUzR3TXpJeE1UazRMVEV1TnpFNE5qUXpNaTB4TGpJMk1qUTVOamxzTFRFeExqZ3dORGcwTURFdE15NDBNemN6TVRZNUNna0pDV010TWk0MU9UZzJPVE00TFRBdU56WTBPRGMzTXkwMExqYzNNelV5T1RFdE1pNHhNemM1TlRRM0xUWXVOVE16TmpRMU5pMDBMakV5T0RRME9EVmpMVEV1TnpVM09ERXlOUzB4TGprNE5Ua3dNRGt0TWk0M09EYzJORE0wTFRRdU1qYzFPVEkwTnkwekxqQTVOREF6T1RrdE5pNDROelEyTXpNNENna0pDV010TUM0eE5USXdOVE00TFRJdU5EUTJOalUxTXl3d0xqTXdOak01TmpVdE5DNDNNVGd5TXpFeUxERXVNemMxTXprMk55MDJMamd4T1RNek5UbGpNUzR3TmpnNU5qazNMVEl1TVRBeE1EZzVOU3d5TGpVNU9EY3dPVEV0TXk0M09ESTRPREkzTERRdU5UZzBOakV0TlM0d05EVXpOemsyQ2drSkNXTXhMams0TlRrd01Ea3RNUzR5TlRjNE9EZzRMRFF1TWpBeU1UYzVMVEV1T0RnNU1USTVOaXcyTGpZME9EZzBPVFV0TVM0NE9Ea3hNamsyYURBdU1qSTFOelk1ZGkwMUxqVXdNVFUwTVRFS0NRa0pZekF0TUM0MU16UTFNREF4TERBdU1UYzFNRGswTmkwd0xqazNNakl5T1N3d0xqVXhOakEyTnpVdE1TNHpNVGMzT1RRNFl6QXVNelExTlRZMU9DMHdMak0wTlRVNE1URXNNQzQzT0RNeU56azBMVEF1TlRFMk1EVXlNaXd4TGpNeE56YzNPVFV0TUM0MU1UWXdOVEl5YURNdU5qWTNOamswTVFvSkNRbGpNQzQxTXprd09UTXNNQ3d3TGprM05qZ3lNVGtzTUM0eE56QTBOekV5TERFdU16SXlNemczTnl3d0xqVXhOakExTWpKak1DNHpOREE1T0RneUxEQXVNelExTlRZMU9Dd3dMalV4TVRRMU9UUXNNQzQzT0RNeU9UUTNMREF1TlRFeE5EVTVOQ3d4TGpNeE56YzVORGgyTlM0MU1ERTFOREV4Q2drSkNXTXpMalkyTnpZNU5ERXNNQ3cyTGprMU56VTJOVE1zTVM0eE5EY3lPVE14TERrdU9EWXdNemd5TVN3ekxqUXpOek13TVRaak1DNDBOVFl4TnpZNExEQXVNemd5TkRRMk15d3dMamN5TXpReE9USXNNQzQ0TkRNeU1EQTNMREF1T0RBeE56UXlOaXd4TGpNM056WTROVFVLQ1FrSll6QXVNRGN6TnpFMU1pd3dMalV6TkRVd01ERXRNQzR4TVRVeU1ETTVMREF1T1Rrd05qUTJOQzB3TGpVM01UTTFNREVzTVM0ek56TXdOemMwYkMwekxqZzVPREE0TmpVc05DNHdNVE15TnpVeENna0pDV010TUM0ek1EZzNNVFU0TERBdU1qTXdNemt5TlMwd0xqWTJPREV3TmpFc01DNHpPREkwTXpFdE1TNHdPVEl3TVRBMUxEQXVORFUyTVRZeE5XTXRNQzQwTVRreU9UWXpMREF1TURjNE16SXpOQzB3TGpneU1ERTFPVGtzTUMweExqSXdNalU1TURrdE1DNHlNalUzTmprS0NRa0pZeTB4TGpFME1qY3hOVFV0TUM0NE5ETXlNREEzTFRJdU5EUXlNRGMzTmkweExqSTJNalE1TmprdE15NDRPVGd3T0RZMUxURXVNall5TkRrMk9XZ3ROeTQyTnpZek5qRXhZeTB3TGpreE5qa3hOVGtzTUMweExqY3dNREl5TlRnc01DNHpNakkxTWpVdE1pNHpORGs0T1RrekxEQXVPVGN5TWpFek53b0pDUWxqTFRBdU5qUTVOamc0Tnl3d0xqWTBPVFkzTXpVdE1DNDVOelk0TWpFNUxERXVORGMwTkRReE5TMHdMamszTmpneU1Ua3NNaTQwTmpVd09EYzVZekFzTUM0Mk9EWTFOVFFzTUM0eU16QXpPVEkxTERFdU16TTJNakV5TWl3d0xqWTVNVEUwTmprc01TNDVORGt3TXpVMkNna0pDV013TGpRMU5qRTJNVFVzTUM0Mk1USTRNak0xTERFdU1ETXlNVEU1T0N3eExqQXpNakV4T1Rnc01TNDNNVGcyTlRnMExERXVNall5TkRrMk9Vd3hOelF1TWpnd05qTTVOaXd4T0RVdU9EY3pOakV4TlhvaUx6NEtDVHd2Wno0S1BDOW5QZ284TDNOMlp6NEsiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJ2ZXJzaW9ucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbIm5hbWVzcGFjZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsic2VjcmV0cyJdLCJ2ZXJicyI6WyJnZXQiXX0seyJhcGlHcm91cHMiOlsibW9uaXRvcmluZy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJwcm9tZXRoZXVzZXMvYXBpIl0sInZlcmJzIjpbImNyZWF0ZSIsImdldCIsInVwZGF0ZSJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIn1dLCJkZXBsb3ltZW50cyI6W3sibGFiZWwiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnsidHlwZSI6IlJlY3JlYXRlIn0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJhZmZpbml0eSI6eyJub2RlQWZmaW5pdHkiOnsicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJub2RlU2VsZWN0b3JUZXJtcyI6W3sibWF0Y2hFeHByZXNzaW9ucyI6W3sia2V5Ijoia3ViZXJuZXRlcy5pby9hcmNoIiwib3BlcmF0b3IiOiJJbiIsInZhbHVlcyI6WyJhbWQ2NCIsImFybTY0IiwicHBjNjRsZSIsInMzOTB4Il19LHsia2V5Ijoia3ViZXJuZXRlcy5pby9vcyIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsibGludXgiXX1dfV19fX0sImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1sZWFkZXItZWxlY3QiXSwiY29tbWFuZCI6WyIvdXNyL2Jpbi9jb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIl0sImVudiI6W3sibmFtZSI6IklOX0NMVVNURVIiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZDFlOTRhNmU3YTUyZTE0ZTk2YTlhY2JhNTRhZWFlNGNiMWFhZTBkYWQyMjAyOThiYjJlZDAzNGY5ZGYxOWVlNCIsImxpdmVuZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL2hlYWx0aHoiLCJwb3J0Ijo4MDgxfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MTUsInBlcmlvZFNlY29uZHMiOjIwfSwibmFtZSI6Im1hbmFnZXIiLCJyZWFkaW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvcmVhZHl6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjUsInBlcmlvZFNlY29uZHMiOjEwfSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MDBtIiwibWVtb3J5IjoiNTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjIwTWkifX0sInNlY3VyaXR5Q29udGV4dCI6eyJhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb24iOmZhbHNlLCJjYXBhYmlsaXRpZXMiOnsiZHJvcCI6WyJBTEwiXX19LCJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiJGYWxsYmFja1RvTG9nc09uRXJyb3IiLCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX1dLCJzZWN1cml0eUNvbnRleHQiOnsicnVuQXNOb25Sb290Ijp0cnVlLCJzZWNjb21wUHJvZmlsZSI6eyJ0eXBlIjoiUnVudGltZURlZmF1bHQifX0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwLCJ2b2x1bWVzIjpbeyJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzIn1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInVwZGF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0IiwicGF0Y2giLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiLCJlbmRwb2ludHMiLCJldmVudHMiLCJwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicG9kcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlcnZpY2VzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3JzLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJzZXJ2aWNldmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJjb3N0IiwibWFuYWdlbWVudCIsInVzYWdlIiwibW9uaXRvciJdLCJsaW5rcyI6W3sibmFtZSI6IkNvc3QgTWFuYWdlbWVudCBNZXRyaWNzIE9wZXJhdG9yIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkiLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vcHJvamVjdC1rb2t1L2tva3UtbWV0cmljcy1vcGVyYXRvciJ9XSwibWFpbnRhaW5lcnMiOlt7ImVtYWlsIjoiY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudCJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsIm1pbkt1YmVWZXJzaW9uIjoiMS4yNC4wIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZDFlOTRhNmU3YTUyZTE0ZTk2YTlhY2JhNTRhZWFlNGNiMWFhZTBkYWQyMjAyOThiYjJlZDAzNGY5ZGYxOWVlNCIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLXJoZWw4LW9wZXJhdG9yLWQxZTk0YTZlN2E1MmUxNGU5NmE5YWNiYTU0YWVhZTRjYjFhYWUwZGFkMjIwMjk4YmIyZWQwMzRmOWRmMTllZTQtYW5ub3RhdGlvbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vY29zdG1hbmFnZW1lbnQvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvckBzaGEyNTY6ZDFlOTRhNmU3YTUyZTE0ZTk2YTlhY2JhNTRhZWFlNGNiMWFhZTBkYWQyMjAyOThiYjJlZDAzNGY5ZGYxOWVlNCIsIm5hbWUiOiJtYW5hZ2VyIn1dLCJyZXBsYWNlcyI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4yLjEiLCJ2ZXJzaW9uIjoiMy4zLjAifX0= + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": { + "collect_previous_data": true, + "context_timeout": 120, + "disable_metrics_collection_cost_management": false, + "disable_metrics_collection_resource_optimization": false + }, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "true" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:d1e94a6e7a52e14e96a9acba54aeae4cb1aae0dad220298bb2ed034f9df19ee4 + createdAt: "2024-05-31T16:16:46Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v1.33.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + displayName: Cost Management Metrics Config + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: | + # Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift. The operator runs on the latest supported versions of Openshift. This operator obtains OpenShift usage data by querying Prometheus every hour to create metric reports that it uploads to Cost Management at [console.redhat.com](https://console.redhat.com) to be processed. For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to Cost Management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for Cost Management by: + * Querying Prometheus to gather the necessary metrics for Cost Management. + * Writing the results of Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * Resource Optimization metrics collection. + * The operator can be configured to gather all previous data within the configured retention period or a maximum of 90 days. The default data collection period is the 14 previous days. This setting is only applicable to newly created CostManagementMetricsConfigs. + * The operator can be configured to automatically upload the packaged reports to Cost Management through Red Hat Insights Ingress service. + * The operator can create an integration in console.redhat.com. An integration is required for Cost Management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## New in v3.3.0: + * Storage reports now contain `node`, `csi_driver`, and `csi_volume_handle` fields. + * The PVC capacity is now populated using the `kube_persistentvolume_capacity_bytes` metric instead of `kubelet_volume_stats_capacity_bytes`. + * To receive resource optimization recommendations for your namespaces, you must now first enable each namespace. To enable a namespace, label it with `insights_cost_management_optimizations='true'`. In the CLI, run: + ``` + oc label namespace NAMESPACE insights_cost_management_optimizations="true" --overwrite=true + ``` + * __DEPRECATION NOTICE__: Basic authentication is deprecated and will not be supported beyond December 31, 2024. If the default token authentication method cannot be used, you must switch to [service account](https://console.redhat.com/iam/service-accounts) authentication ([more on creating a service account](https://access.redhat.com/articles/7036194)). Once you have created your service account, follow [this documentation](https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/integrating_openshift_container_platform_data_into_cost_management/index#service-account-authentication_adding-an-ocp-int) on how to configure your operator to use service account authentication. Service-accounts must also be used if manually uploading payloads to console.redhat.com. + + ## New in v3.2.1: + * The minimum supported configuration for `upload_cycle` is now 60 (minutes). + * (Bugfix) many-to-many matching not allowed query fix. + * (Bugfix) Sequentially collect data during initial install. + + ## New in v3.2.0: + * Support for amd64, arm64, ppc64le, s390x architectures. + * add liveness and readiness probes to controller Pod. + * update pod security settings so that the controller Pod can run in Restricted mode [more info](https://sdk.operatorframework.io/docs/best-practices/pod-security-standards/). + + ## New in v3.1.0: + * Add service-account authentication type. + * __Deprecation Notice:__ Basic authentication is deprecated and will be removed in a future version of the operator. + + ## New in v3.0.0: + * Daily report generation: Operator versions prior to v3.0.0 generated sequential reports. Now, reports are generated starting at 0:00 UTC. Any payloads generated throughout a given day will contain all data starting from 0:00 UTC. Once the next day starts, the previous day's reports are packaged, and the new report again starts at 0:00 UTC for the current day. + * Failed query retry: In an attempt to prevent missing data, the operator will retry queries from the last successful query time, up to 5 times. + + ## New in v2.0.0: + * Adds metrics and report generation for resource optimization. This feature will collect additional usage metrics and create a new report in the payload. These metrics are enabled by default, but can be disabled by setting `disable_metrics_collection_resource_optimization` to `true`. + * Collect all available Prometheus data upon CR creation. This feature only applies to newly created CostManagementMetricsConfigs. The operator will check the monitoring stack configuration in the `openshift-monitoring` namespace. The operator will use the `retention` period set in the `cluster-monitoring-config` ConfigMap if defined, up to a maximum of 90 days. Otherwise it will fall back to collecting 14 days of data, if available. This data collection may be disabled by setting `collect_previous_data` to `false`. Turning this feature off results in the operator collecting metrics from the time the CostManagementMetricsConfig is created, forward. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * An integration **must** exist in console.redhat.com for an uploaded payload to be processed by Cost Management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with Cost Management that the payload was processed. After Ingress accepts the uploaded payload, it is deleted from the operator. If the data within the payload is not processed, a gap will be introduced in the usage metrics. Data may be recollected by deleting the `CostManagementMetricsConfig`, creating a new `CostManagementMetricsConfig`, and setting `collect_previous_data: true`. This re-collection of data will gather all data stored in Prometheus, up to 90 days. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is full. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configurable parameters: + * `authentication`: + * `type: token` -> The authentication method for connecting to `console.redhat.com`. The default and preferred method is `token`. `basic` (deprecated) and `service-account` authentication methods are used when the openshift-config pull-secret does not contain a token for `console.redhat.com`. + * `secret_name` -> The Secret used by the operator when the authentication type is `basic` (deprecated) or `service-account`. This parameter is required **only if** the authentication type is `basic` (deprecated) or `service-account`. + * `packaging`: + * `max_reports_to_store: 30` -> The number of reports to store when configured in air-gapped mode. The default is 30, with a minimum of 1 and no maximum. When the operator is not configured in air-gapped mode, this parameter has no effect. Reports are removed as soon as they are uploaded. + * `max_size: 100` -> The maximum size for packaged files in Megabytes prior to compression. The default is 100, with a minimum of 1 and maximum of 100. + * `prometheus_config`: + * `collect_previous_data: true` -> Toggle for collecting all available data in Prometheus **upon CostManagementMetricsConfig creation** (This parameter will start to appear in CostManagementMetricsConfigs that were created prior to v2.0.0 but will not have any effect unless the CostManagementMetricsConfig is deleted and recreated). The default is `true`. The operator will first look for a `retention` period in the `cluster-monitoring-config` ConfigMap in the `openshift-monitoring` namespace and gather data over this time period up to a maximum of 90 days. If this configuration is not set, the default is 14 days. (New in v2.0.0) + * `disable_metrics_collection_cost_management: false` -> Toggle for disabling the collection of metrics for Cost Management. The default is false. (New in v2.0.0) + * `disable_metrics_collection_resource_optimization: false` -> Toggle for disabling the collection of metrics for Resource Optimization. The default is false. (New in v2.0.0) + * `context_timeout: 120` -> The time in seconds before Prometheus queries timeout due to exceeding context timeout. The default is 120, with a minimum of 10 and maximum of 180. + * `source`: + * `name: ''` -> The name of the integration the operator will create in `console.redhat.com`. If the name value is empty, the default intergration name is the **cluster id**. + * `create_source: false` -> Toggle for whether or not the operator will create the integration in `console.redhat.com`. The default is False. This parameter should be switched to True when an integration does not already exist in `console.redhat.com` for this cluster. + * `check_cycle: 1440` -> The time in minutes to wait between checking if an integration exists for this cluster. The default is 1440 minutes (24 hrs). + * `upload`: + * `upload_cycle: 360` -> The time in minutes between payload uploads. The default is 360 (6 hours), minimum is 60 (1 hour). + * `upload_toggle: true` -> Toggle to turn upload on or off -> true means upload, false means do not upload (false == air-gapped mode). The default is `true`. + * `upload_wait` -> The amount of time (in seconds) to pause before uploading a payload. The default is a random number between 0 and 35. This is used to decrease service load, but may be set to `0` if desired. + * `volume_claim_template` -> see the "Storage configuration prerequisite" section above. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` (deprecated) or `service-account` is the preferred authentication method, a Secret which holds the credentials must be created: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys (all lowercase) for the respective authentication type. The values for these keys correspond to console.redhat.com credentials: + * basic auth (deprecated): `username` and `password` + * service-account auth: `client_id` and `client_secret` + + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` (deprecated) or `service-account` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic` or `service-account`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + * for basic auth type (deprecated) + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + * for service-account auth type + ``` + authentication: + secret_name: SECRET-NAME + type: service-account + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management integration, edit the following values in the `source` field: + * Replace the `name` field value with the preferred name of the integration to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the integration already exists, replace the empty string value of the `name` field with the existing name, and leave `create_source` as false. This will allow the operator to confirm that the integration exists. + + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec (below is only a template. Any _valid_ `PersistentVolumeClaim` may be defined here): + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360 + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create an Integration + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create an integration. This process must be done manually. In the console.redhat.com platform, open the [Integrations menu](https://console.redhat.com/settings/integrations/) to begin adding an OpenShift integration to Cost Management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Creating an integration: + 1. Navigate to the Integrations menu + 2. Select the `Red Hat` tab + 3. Create a new `Red Hat Openshift Container Platform` integration: + * give the integration a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Source wizard, review the details and click `Finish` to create the source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://console.redhat.com/api/ingress/v1/upload -H "Authorization: Bearer ${ACCESS_TOKEN}" + + where `FILE_NAME` is the name of the report to upload. The `ACCESS_TOKEN` is acquired using a [service-account](https://access.redhat.com/articles/7036194). + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + operatorframework.io/os.linux: supported + links: + - name: Cost Management Metrics Operator source code repository + url: https://github.com/project-koku/koku-metrics-operator + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + minKubeVersion: 1.24.0 + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:226634a6f640c8095b8c61055d8c9bb4c81dc50d1cf413267b23caa488982f1b name: "" @@ -565,12 +6071,386 @@ properties: value: packageName: costmanagement-metrics-operator version: 3.3.1 -- type: olm.bundle.object - value: - data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsImxhYmVscyI6eyJhcHAiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWdzLmNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IkNvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyIsImxpc3RLaW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnTGlzdCIsInBsdXJhbCI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MiLCJzaW5ndWxhciI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZy4iLCJwcm9wZXJ0aWVzIjp7ImFwaV91cmwiOnsiZGVmYXVsdCI6Imh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLlxuVGhlIGRlZmF1bHQgaXMgYGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tYC4iLCJ0eXBlIjoic3RyaW5nIn0sImF1dGhlbnRpY2F0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb24gaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3QuIiwicHJvcGVydGllcyI6eyJzZWNyZXRfbmFtZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhlbnRpY2F0aW9uU2VjcmV0TmFtZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHNlY3JldCB3aXRoIHRoZSB1c2VyIGFuZCBwYXNzd29yZCB1c2VkIGZvciB1cGxvYWRzLiIsInR5cGUiOiJzdHJpbmcifSwidG9rZW5fdXJsIjp7ImRlZmF1bHQiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbC9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbiIsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ub2tlblVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVuZHBvaW50IHVzZWQgdG8gb2J0YWluIHRoZSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly9zc28ucmVkaGF0LmNvbS9hdXRoL3JlYWxtcy9yZWRoYXQtZXh0ZXJuYWwvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZWZhdWx0IjoidG9rZW4iLCJkZXNjcmlwdGlvbiI6IkF1dGhUeXBlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgYXV0aGVudGljYXRpb24gdHlwZSB0byBiZSB1c2VkIGJhc2ljLCBzZXJ2aWNlLWFjY291bnQgb3IgdG9rZW4uXG5WYWxpZCB2YWx1ZXMgYXJlOlxuLSBcImJhc2ljXCIgKGRlcHJlY2F0ZWQpIDogRW5hYmxlcyBhdXRoZW50aWNhdGlvbiB1c2luZyB1c2VyIGFuZCBwYXNzd29yZCBmcm9tIGF1dGhlbnRpY2F0aW9uIHNlY3JldC5cbi0gXCJzZXJ2aWNlLWFjY291bnRcIiA6IEVuYWJsZXMgYXV0aGVudGljYXRpb24gdXNpbmcgY2xpZW50X2lkIGFuZCBjbGllbnRfc2VjcmV0IGZyb20gdGhlIHNlY3JldCBjb250YWluaW5nIHNlcnZpY2UgYWNjb3VudCBpbmZvcm1hdGlvbi5cbi0gXCJ0b2tlblwiIChkZWZhdWx0KTogVXNlcyBjbHVzdGVyIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJJRCI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNsdXN0ZXIgVVVJRC4gTm9ybWFsbHkgdGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlXG5zcGVjaWZpZWQuIE9ubHkgc2V0IHRoaXMgdmFsdWUgaWYgdGhlIGNsdXN0ZXJJRCBjYW5ub3QgYmUgb2J0YWluZWQgZnJvbSB0aGUgQ2x1c3RlclZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiBOb3JtYWxseSB0aGlzIHZhbHVlIHNob3VsZCBub3QgYmVcbnNwZWNpZmllZC4gT25seSBzZXQgdGhpcyB2YWx1ZSBpZiB0aGUgY2x1c3RlclZlcnNpb24gY2Fubm90IGJlIG9idGFpbmVkIGZyb20gdGhlIENsdXN0ZXJWZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7Im1heF9yZXBvcnRzX3RvX3N0b3JlIjp7ImRlZmF1bHQiOjMwLCJkZXNjcmlwdGlvbiI6Ik1heFJlcG9ydHMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlLlxuVGhlIGRlZmF1bHQgaXMgMzAgcmVwb3J0cyB3aGljaCBjb3JyZXNwb25kcyB0byBhcHByb3hpbWF0ZWx5IDcgZGF5cyB3b3J0aCBvZiBkYXRhIGdpdmVuIHRoZSBvdGhlciBkZWZhdWx0IHZhbHVlcy4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlZmF1bHQiOjEwMCwiZGVzY3JpcHRpb24iOiJNYXhTaXplIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgdGhhdCB3aWxsIGJlIGNvbXByZXNzZWQgZm9yIHVwbG9hZCB0byBJbmdyZXNzLlxuVGhlIGRlZmF1bHQgaXMgMTAwLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTAwLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4X3JlcG9ydHNfdG9fc3RvcmUiLCJtYXhfc2l6ZV9NQiJdLCJ0eXBlIjoib2JqZWN0In0sInByb21ldGhldXNfY29uZmlnIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgUHJvbWV0aGV1cyBjb25uZWN0aW9uLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdF9wcmV2aW91c19kYXRhIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiQ29sbGVjdFByZXZpb3VzRGF0YSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2F0aGVyIHByZXZpb3VzIGRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbmNyZWF0aW9uLiBUaGlzIHRvZ2dsZSBvbmx5IGNoYW5nZXMgb3BlcmF0b3IgYmVoYXZpb3Igd2hlbiBhIG5ldyBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZC4gV2hlbiBgdHJ1ZWAsIHRoZSBvcGVyYXRvciB3aWxsIGdhdGhlciBhbGxcbmV4aXN0aW5nIFByb21ldGhldXMgZGF0YSBmb3IgdGhlIGN1cnJlbnQgbW9udGguIFRoZSBkZWZhdWx0IGlzIHRydWUuIiwidHlwZSI6ImJvb2xlYW4ifSwiY29udGV4dF90aW1lb3V0Ijp7ImRlZmF1bHQiOjEyMCwiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaG93IGxvbmcgYSBxdWVyeSB0byBwcm9tZXRoZXVzIHNob3VsZCBydW4gaW4gc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC5cblRoZSBkZWZhdWx0IGlzIDEyMCBzZWNvbmRzLiIsImZvcm1hdCI6ImludDY0IiwibWF4aW11bSI6MTgwLCJtaW5pbXVtIjoxMCwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fY29zdF9tYW5hZ2VtZW50Ijp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkRpc2FibGVNZXRyaWNzQ29sbGVjdGlvbkNvc3RNYW5hZ2VtZW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBnZW5lcmF0ZVxucmVwb3J0cyBmb3IgY29zdC1tYW5hZ2VtZW50IG1ldHJpY3MuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiIsInR5cGUiOiJib29sZWFuIn0sImRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlTWV0cmljc0NvbGxlY3Rpb25SZXNvdXJjZU9wdGltaXphdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgd2hldGhlciBvciBub3QgdGhlIG9wZXJhdG9yIHdpbGwgZ2VuZXJhdGVcbnJlcG9ydHMgZm9yIHJlc291cmNlLW9wdGltaXphdGlvbiBtZXRyaWNzLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzZXJ2aWNlX2FkZHJlc3MiOnsiZGVmYXVsdCI6Imh0dHBzOi8vdGhhbm9zLXF1ZXJpZXIub3BlbnNoaWZ0LW1vbml0b3Jpbmcuc3ZjOjkwOTEiLCJkZXNjcmlwdGlvbiI6IkZPUiBERVZFTE9QTUVOVCBPTkxZLlxuU3ZjQWRkcmVzcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuXG5UaGUgZGVmYXVsdCBpcyBgaHR0cHM6Ly90aGFub3MtcXVlcmllci5vcGVuc2hpZnQtbW9uaXRvcmluZy5zdmM6OTA5MWAuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRk9SIERFVkVMT1BNRU5UIE9OTFkuXG5Ta2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuXG5UaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsic2VydmljZV9hZGRyZXNzIiwic2tpcF90bHNfdmVyaWZpY2F0aW9uIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoic291cmNlIHJlcHJlc2VudHMgdGhlIGRlc2lyZWQgaW50ZWdyYXRpb24gb24gY29uc29sZS5yZWRoYXQuY29tLiIsInByb3BlcnRpZXMiOnsiY2hlY2tfY3ljbGUiOnsiZGVmYXVsdCI6MTQ0MCwiZGVzY3JpcHRpb24iOiJjaGVja19jeWNsZSBpcyB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIGludGVncmF0aW9uIHN0YXR1cyBjaGVjayBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyAxNDQwIG1pbiAoMjQgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwiY3JlYXRlX3NvdXJjZSI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHRvZ2dsZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBpbnRlZ3JhdGlvbiBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIGRlc2lyZWQgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdG8gY3JlYXRlIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn0sInNvdXJjZXNfcGF0aCI6eyJkZWZhdWx0IjoiL2FwaS9zb3VyY2VzL3YxLjAvIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbnNvdXJjZXNfcGF0aCBpcyB0aGUgcHJlZml4IG9mIHRoZSBTb3VyY2VzIEFQSSBvbiBjb25zb2xlLnJlZGhhdC5jb20uXG5UaGUgZGVmYXVsdCBpcyBgL2FwaS9zb3VyY2VzL3YxLjAvYC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjaGVja19jeWNsZSIsImNyZWF0ZV9zb3VyY2UiLCJzb3VyY2VzX3BhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJ1cGxvYWQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSB1cGxvYWQgb2JqZWN0LiIsInByb3BlcnRpZXMiOnsiaW5ncmVzc19wYXRoIjp7ImRlZmF1bHQiOiIvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkIiwiZGVzY3JpcHRpb24iOiJGT1IgREVWRUxPUE1FTlQgT05MWS5cbkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS5cblRoZSBkZWZhdWx0IGlzIGAvYXBpL2luZ3Jlc3MvdjEvdXBsb2FkYC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZF9jeWNsZSI6eyJkZWZhdWx0IjozNjAsImRlc2NyaXB0aW9uIjoiVXBsb2FkQ3ljbGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIGVhY2ggdXBsb2FkIHNjaGVkdWxlLlxuVGhlIGRlZmF1bHQgaXMgMzYwIG1pbiAoNiBob3VycykuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGxvYWRfdG9nZ2xlIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVXBsb2FkVG9nZ2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgb3BlcmF0b3IgaXMgaW5zdGFsbGVkIGluIGEgcmVzdHJpY3RlZC1uZXR3b3JrLlxuSWYgYGZhbHNlYCwgdGhlIG9wZXJhdG9yIHdpbGwgbm90IHVwbG9hZCB0byBjb25zb2xlLnJlZGhhdC5jb20gb3IgY2hlY2svY3JlYXRlIHNvdXJjZXMuXG5UaGUgZGVmYXVsdCBpcyB0cnVlLiIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF93YWl0Ijp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkV2FpdCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhbiB1cGxvYWQuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWxpZGF0ZV9jZXJ0Ijp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiVmFsaWRhdGVDZXJ0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB0aGUgSW5ncmVzcyBlbmRwb2ludCBtdXN0IGJlIGNlcnRpZmljYXRlIHZhbGlkYXRlZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiaW5ncmVzc19wYXRoIiwidXBsb2FkX2N5Y2xlIiwidXBsb2FkX3RvZ2dsZSIsInZhbGlkYXRlX2NlcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJ2b2x1bWVfY2xhaW1fdGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVDbGFpbVRlbXBsYXRlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQyB0ZW1wbGF0ZS4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImF1dGhlbnRpY2F0aW9uIiwicGFja2FnaW5nIiwicHJvbWV0aGV1c19jb25maWciLCJzb3VyY2UiLCJ1cGxvYWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnLiIsInByb3BlcnRpZXMiOnsiYXBpX3VybCI6eyJkZXNjcmlwdGlvbiI6IkFQSVVSTCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIHVybCBvZiB0aGUgQVBJIGVuZHBvaW50IGZvciBzZXJ2aWNlIGludGVyYWN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aGVudGljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvbiBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzX2ZvdW5kIjp7ImRlc2NyaXB0aW9uIjoiQXV0aGVudGljYXRpb25DcmVkZW50aWFsc0ZvdW5kIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBpZiB1c2VkIGZvciB1cGxvYWRzIHdlcmUgZm91bmQuIiwidHlwZSI6ImJvb2xlYW4ifSwiZGVwcmVjYXRpb25fbm90aWNlIjp7ImRlc2NyaXB0aW9uIjoiRGVwcmVjYXRpb25Ob3RpY2UgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGEgZGVwcmVjYXRpb24gbm90aWNlLiIsInR5cGUiOiJzdHJpbmcifSwiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJBdXRoRXJyb3JNZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhbiBgaW52YWxpZCBjcmVkZW50aWFsc2AgZXJyb3IgbWVzc2FnZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfY3JlZGVudGlhbF92ZXJpZmljYXRpb25fdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RWZXJpZmljYXRpb25UaW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbGFzdCB0aW1lIGNyZWRlbnRpYWxzIHdlcmUgdmVyaWZpZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwic2VjcmV0X25hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoZW50aWNhdGlvblNlY3JldE5hbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBzZWNyZXQgd2l0aCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgdXNlZCBmb3IgdXBsb2Fkcy4iLCJ0eXBlIjoic3RyaW5nIn0sInRva2VuX3VybCI6eyJkZXNjcmlwdGlvbiI6IlRva2VuVVJMIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXJsIHVzZWQgdG8gZ2VuZXJhdGUgYSBzZXJ2aWNlIGFjY291bnQgdG9rZW4uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFR5cGUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHRvIGJlIHVzZWQgYmFzaWMsIHNlcnZpY2UtYWNjb3VudCBvciB0b2tlbi4iLCJlbnVtIjpbInRva2VuIiwiYmFzaWMiLCJzZXJ2aWNlLWFjY291bnQiXSwidHlwZSI6InN0cmluZyJ9LCJ2YWxpZF9iYXNpY19hdXRoIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWRCYXNpY0F1dGggaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBnaXZlbiBiYXNpYyBhdXRoIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjbHVzdGVySUQiOnsiZGVzY3JpcHRpb24iOiJDbHVzdGVySUQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBjbHVzdGVyIFVVSUQuIiwidHlwZSI6InN0cmluZyJ9LCJjbHVzdGVyVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJWZXJzaW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgY2x1c3RlciB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3JfY29tbWl0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3JDb21taXQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgY29tbWl0IGhhc2ggb2YgdGhlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicGFja2FnaW5nIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnaW5nIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGFja2FnaW5nIHN0YXR1cyIsInByb3BlcnRpZXMiOnsiZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJQYWNrYWdpbmdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGVycm9yIGVuY291bnRlcmVkIHBhY2thZ2luZyB0aGUgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3Rfc3VjY2Vzc2Z1bF9wYWNrYWdpbmdfdGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RTdWNjZXNzZnVsUGFja2FnaW5nVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSB0aW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZmlsZSBwYWNrYWdpbmcuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibWF4X3JlcG9ydHNfdG9fc3RvcmUiOnsiZGVzY3JpcHRpb24iOiJNYXhSZXBvcnRzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwb3J0cyB0byBzdG9yZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm1heF9zaXplX01CIjp7ImRlc2NyaXB0aW9uIjoiTWF4U2l6ZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIG1heCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIHRoYXQgd2lsbCBiZSBjb21wcmVzc2VkIGZvciB1cGxvYWQgdG8gSW5ncmVzcy4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sIm51bWJlcl9yZXBvcnRzX3N0b3JlZCI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydENvdW50IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHJlcG9ydHMgaW4gc3RvcmFnZS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInBhY2thZ2VkX2ZpbGVzIjp7ImRlc2NyaXB0aW9uIjoiUGFja2FnZWRGaWxlcyBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgdGhlIGxpc3Qgb2YgZmlsZSBwYWNrYWdlcyBpbiBzdG9yYWdlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbnRfdm9sdW1lX2NsYWltIjp7ImRlc2NyaXB0aW9uIjoiUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCBhIFBWQy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVtYmVkZGVkTWV0YWRhdGEgY29udGFpbnMgbWV0YWRhdGEgcmVsZXZhbnQgdG8gYW4gRW1iZWRkZWRSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBpcyBhbiB1bnN0cnVjdHVyZWQga2V5IHZhbHVlIG1hcCBzdG9yZWQgd2l0aCBhIHJlc291cmNlIHRoYXQgbWF5IGJlXG5zZXQgYnkgZXh0ZXJuYWwgdG9vbHMgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YS4gVGhleSBhcmUgbm90XG5xdWVyeWFibGUgYW5kIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgb2JqZWN0cy5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zIiwidHlwZSI6Im9iamVjdCJ9LCJsYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgYW5kIGNhdGVnb3JpemVcbihzY29wZSBhbmQgc2VsZWN0KSBvYmplY3RzLiBNYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzXG5hbmQgc2VydmljZXMuXG5Nb3JlIGluZm86IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZS4gSXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyByZXNvdXJjZXMsIGFsdGhvdWdoXG5zb21lIHJlc291cmNlcyBtYXkgYWxsb3cgYSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBhcHByb3ByaWF0ZSBuYW1lXG5hdXRvbWF0aWNhbGx5LiBOYW1lIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgY3JlYXRpb24gaWRlbXBvdGVuY2UgYW5kIGNvbmZpZ3VyYXRpb25cbmRlZmluaXRpb24uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbk1vcmUgaW5mbzogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNoYXJhY3RlcmlzdGljcyBvZiBhIHZvbHVtZSByZXF1ZXN0ZWQgYnkgYSBwb2QgYXV0aG9yLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNwZXJzaXN0ZW50dm9sdW1lY2xhaW1zIiwicHJvcGVydGllcyI6eyJhY2Nlc3NNb2RlcyI6eyJkZXNjcmlwdGlvbiI6ImFjY2Vzc01vZGVzIGNvbnRhaW5zIHRoZSBkZXNpcmVkIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcyNhY2Nlc3MtbW9kZXMtMSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImRhdGFTb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZWl0aGVyOlxuKiBBbiBleGlzdGluZyBWb2x1bWVTbmFwc2hvdCBvYmplY3QgKHNuYXBzaG90LnN0b3JhZ2UuazhzLmlvL1ZvbHVtZVNuYXBzaG90KVxuKiBBbiBleGlzdGluZyBQVkMgKFBlcnNpc3RlbnRWb2x1bWVDbGFpbSlcbklmIHRoZSBwcm92aXNpb25lciBvciBhbiBleHRlcm5hbCBjb250cm9sbGVyIGNhbiBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UsXG5pdCB3aWxsIGNyZWF0ZSBhIG5ldyB2b2x1bWUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UuXG5XaGVuIHRoZSBBbnlWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSBpcyBlbmFibGVkLCBkYXRhU291cmNlIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkIHRvIGRhdGFTb3VyY2VSZWYsXG5hbmQgZGF0YVNvdXJjZVJlZiBjb250ZW50cyB3aWxsIGJlIGNvcGllZCB0byBkYXRhU291cmNlIHdoZW4gZGF0YVNvdXJjZVJlZi5uYW1lc3BhY2UgaXMgbm90IHNwZWNpZmllZC5cbklmIHRoZSBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLCB0aGVuIGRhdGFTb3VyY2VSZWYgd2lsbCBub3QgYmUgY29waWVkIHRvIGRhdGFTb3VyY2UuIiwicHJvcGVydGllcyI6eyJhcGlHcm91cCI6eyJkZXNjcmlwdGlvbiI6IkFQSUdyb3VwIGlzIHRoZSBncm91cCBmb3IgdGhlIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQuXG5JZiBBUElHcm91cCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWVkIEtpbmQgbXVzdCBiZSBpbiB0aGUgY29yZSBBUEkgZ3JvdXAuXG5Gb3IgYW55IG90aGVyIHRoaXJkLXBhcnR5IHR5cGVzLCBBUElHcm91cCBpcyByZXF1aXJlZC4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIHRoZSB0eXBlIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHJlc291cmNlIGJlaW5nIHJlZmVyZW5jZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImRhdGFTb3VyY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJkYXRhU291cmNlUmVmIHNwZWNpZmllcyB0aGUgb2JqZWN0IGZyb20gd2hpY2ggdG8gcG9wdWxhdGUgdGhlIHZvbHVtZSB3aXRoIGRhdGEsIGlmIGEgbm9uLWVtcHR5XG52b2x1bWUgaXMgZGVzaXJlZC4gVGhpcyBtYXkgYmUgYW55IG9iamVjdCBmcm9tIGEgbm9uLWVtcHR5IEFQSSBncm91cCAobm9uXG5jb3JlIG9iamVjdCkgb3IgYSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gb2JqZWN0LlxuV2hlbiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCwgdm9sdW1lIGJpbmRpbmcgd2lsbCBvbmx5IHN1Y2NlZWQgaWYgdGhlIHR5cGUgb2ZcbnRoZSBzcGVjaWZpZWQgb2JqZWN0IG1hdGNoZXMgc29tZSBpbnN0YWxsZWQgdm9sdW1lIHBvcHVsYXRvciBvciBkeW5hbWljXG5wcm92aXNpb25lci5cblRoaXMgZmllbGQgd2lsbCByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkYXRhU291cmNlIGZpZWxkIGFuZCBhcyBzdWNoXG5pZiBib3RoIGZpZWxkcyBhcmUgbm9uLWVtcHR5LCB0aGV5IG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gRm9yIGJhY2t3YXJkc1xuY29tcGF0aWJpbGl0eSwgd2hlbiBuYW1lc3BhY2UgaXNuJ3Qgc3BlY2lmaWVkIGluIGRhdGFTb3VyY2VSZWYsXG5ib3RoIGZpZWxkcyAoZGF0YVNvdXJjZSBhbmQgZGF0YVNvdXJjZVJlZikgd2lsbCBiZSBzZXQgdG8gdGhlIHNhbWVcbnZhbHVlIGF1dG9tYXRpY2FsbHkgaWYgb25lIG9mIHRoZW0gaXMgZW1wdHkgYW5kIHRoZSBvdGhlciBpcyBub24tZW1wdHkuXG5XaGVuIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQgaW4gZGF0YVNvdXJjZVJlZixcbmRhdGFTb3VyY2UgaXNuJ3Qgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFuZCBtdXN0IGJlIGVtcHR5LlxuVGhlcmUgYXJlIHRocmVlIGltcG9ydGFudCBkaWZmZXJlbmNlcyBiZXR3ZWVuIGRhdGFTb3VyY2UgYW5kIGRhdGFTb3VyY2VSZWY6XG4qIFdoaWxlIGRhdGFTb3VyY2Ugb25seSBhbGxvd3MgdHdvIHNwZWNpZmljIHR5cGVzIG9mIG9iamVjdHMsIGRhdGFTb3VyY2VSZWZcbiAgYWxsb3dzIGFueSBub24tY29yZSBvYmplY3QsIGFzIHdlbGwgYXMgUGVyc2lzdGVudFZvbHVtZUNsYWltIG9iamVjdHMuXG4qIFdoaWxlIGRhdGFTb3VyY2UgaWdub3JlcyBkaXNhbGxvd2VkIHZhbHVlcyAoZHJvcHBpbmcgdGhlbSksIGRhdGFTb3VyY2VSZWZcbiAgcHJlc2VydmVzIGFsbCB2YWx1ZXMsIGFuZCBnZW5lcmF0ZXMgYW4gZXJyb3IgaWYgYSBkaXNhbGxvd2VkIHZhbHVlIGlzXG4gIHNwZWNpZmllZC5cbiogV2hpbGUgZGF0YVNvdXJjZSBvbmx5IGFsbG93cyBsb2NhbCBvYmplY3RzLCBkYXRhU291cmNlUmVmIGFsbG93cyBvYmplY3RzXG4gIGluIGFueSBuYW1lc3BhY2VzLlxuKEJldGEpIFVzaW5nIHRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIEFueVZvbHVtZURhdGFTb3VyY2UgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuXG4oQWxwaGEpIFVzaW5nIHRoZSBuYW1lc3BhY2UgZmllbGQgb2YgZGF0YVNvdXJjZVJlZiByZXF1aXJlcyB0aGUgQ3Jvc3NOYW1lc3BhY2VWb2x1bWVEYXRhU291cmNlIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsiYXBpR3JvdXAiOnsiZGVzY3JpcHRpb24iOiJBUElHcm91cCBpcyB0aGUgZ3JvdXAgZm9yIHRoZSByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkLlxuSWYgQVBJR3JvdXAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBLaW5kIG11c3QgYmUgaW4gdGhlIGNvcmUgQVBJIGdyb3VwLlxuRm9yIGFueSBvdGhlciB0aGlyZC1wYXJ0eSB0eXBlcywgQVBJR3JvdXAgaXMgcmVxdWlyZWQuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJOYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiByZXNvdXJjZSBiZWluZyByZWZlcmVuY2VkXG5Ob3RlIHRoYXQgd2hlbiBhIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQsIGEgZ2F0ZXdheS5uZXR3b3JraW5nLms4cy5pby9SZWZlcmVuY2VHcmFudCBvYmplY3QgaXMgcmVxdWlyZWQgaW4gdGhlIHJlZmVyZW50IG5hbWVzcGFjZSB0byBhbGxvdyB0aGF0IG5hbWVzcGFjZSdzIG93bmVyIHRvIGFjY2VwdCB0aGUgcmVmZXJlbmNlLiBTZWUgdGhlIFJlZmVyZW5jZUdyYW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4oQWxwaGEpIFRoaXMgZmllbGQgcmVxdWlyZXMgdGhlIENyb3NzTmFtZXNwYWNlVm9sdW1lRGF0YVNvdXJjZSBmZWF0dXJlIGdhdGUgdG8gYmUgZW5hYmxlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJraW5kIiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlcyByZXByZXNlbnRzIHRoZSBtaW5pbXVtIHJlc291cmNlcyB0aGUgdm9sdW1lIHNob3VsZCBoYXZlLlxuSWYgUmVjb3ZlclZvbHVtZUV4cGFuc2lvbkZhaWx1cmUgZmVhdHVyZSBpcyBlbmFibGVkIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHNwZWNpZnkgcmVzb3VyY2UgcmVxdWlyZW1lbnRzXG50aGF0IGFyZSBsb3dlciB0aGFuIHByZXZpb3VzIHZhbHVlIGJ1dCBtdXN0IHN0aWxsIGJlIGhpZ2hlciB0aGFuIGNhcGFjaXR5IHJlY29yZGVkIGluIHRoZVxuc3RhdHVzIGZpZWxkIG9mIHRoZSBjbGFpbS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzIiwicHJvcGVydGllcyI6eyJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIHZvbHVtZXMgdG8gY29uc2lkZXIgZm9yIGJpbmRpbmcuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6InN0b3JhZ2VDbGFzc05hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2VDbGFzcyByZXF1aXJlZCBieSB0aGUgY2xhaW0uXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2NsYXNzLTEiLCJ0eXBlIjoic3RyaW5nIn0sInZvbHVtZUF0dHJpYnV0ZXNDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJ2b2x1bWVBdHRyaWJ1dGVzQ2xhc3NOYW1lIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgVm9sdW1lQXR0cmlidXRlc0NsYXNzIHVzZWQgYnkgdGhpcyBjbGFpbS5cbklmIHNwZWNpZmllZCwgdGhlIENTSSBkcml2ZXIgd2lsbCBjcmVhdGUgb3IgdXBkYXRlIHRoZSB2b2x1bWUgd2l0aCB0aGUgYXR0cmlidXRlcyBkZWZpbmVkXG5pbiB0aGUgY29ycmVzcG9uZGluZyBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MuIFRoaXMgaGFzIGEgZGlmZmVyZW50IHB1cnBvc2UgdGhhbiBzdG9yYWdlQ2xhc3NOYW1lLFxuaXQgY2FuIGJlIGNoYW5nZWQgYWZ0ZXIgdGhlIGNsYWltIGlzIGNyZWF0ZWQuIEFuIGVtcHR5IHN0cmluZyB2YWx1ZSBtZWFucyB0aGF0IG5vIFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjbGFpbSBidXQgaXQncyBub3QgYWxsb3dlZCB0byByZXNldCB0aGlzIGZpZWxkIHRvIGVtcHR5IHN0cmluZyBvbmNlIGl0IGlzIHNldC5cbklmIHVuc3BlY2lmaWVkIGFuZCB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIHVuYm91bmQsIHRoZSBkZWZhdWx0IFZvbHVtZUF0dHJpYnV0ZXNDbGFzc1xud2lsbCBiZSBzZXQgYnkgdGhlIHBlcnNpc3RlbnR2b2x1bWUgY29udHJvbGxlciBpZiBpdCBleGlzdHMuXG5JZiB0aGUgcmVzb3VyY2UgcmVmZXJyZWQgdG8gYnkgdm9sdW1lQXR0cmlidXRlc0NsYXNzIGRvZXMgbm90IGV4aXN0LCB0aGlzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB3aWxsIGJlXG5zZXQgdG8gYSBQZW5kaW5nIHN0YXRlLCBhcyByZWZsZWN0ZWQgYnkgdGhlIG1vZGlmeVZvbHVtZVN0YXR1cyBmaWVsZCwgdW50aWwgc3VjaCBhcyBhIHJlc291cmNlXG5leGlzdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3ZvbHVtZWF0dHJpYnV0ZXNjbGFzc1xuKEFscGhhKSBVc2luZyB0aGlzIGZpZWxkIHJlcXVpcmVzIHRoZSBWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MgZmVhdHVyZSBnYXRlIHRvIGJlIGVuYWJsZWQuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVNb2RlIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTW9kZSBkZWZpbmVzIHdoYXQgdHlwZSBvZiB2b2x1bWUgaXMgcmVxdWlyZWQgYnkgdGhlIGNsYWltLlxuVmFsdWUgb2YgRmlsZXN5c3RlbSBpcyBpbXBsaWVkIHdoZW4gbm90IGluY2x1ZGVkIGluIGNsYWltIHNwZWMuIiwidHlwZSI6InN0cmluZyJ9LCJ2b2x1bWVOYW1lIjp7ImRlc2NyaXB0aW9uIjoidm9sdW1lTmFtZSBpcyB0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIFBlcnNpc3RlbnRWb2x1bWUgYmFja2luZyB0aGlzIGNsYWltLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicHJvbWV0aGV1cyI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHByZW1ldGhldXMgcXVlcmllcy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ3VyYXRpb25fZXJyb3IiOnsiZGVzY3JpcHRpb24iOiJDb25maWdFcnJvciBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgZXJyb3JzIGR1cmluZyBwcm9tZXRoZXVzIGNvbmZpZ3VyYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJjb250ZXh0X3RpbWVvdXQiOnsiZGVzY3JpcHRpb24iOiJDb250ZXh0VGltZW91dCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXRlIHRvIHJlcHJlc2VudCBob3cgbG9uZyBhIHF1ZXJ5IHRvIHByb21ldGhldXMgc2hvdWxkIHJ1biBpbiBzZWNvbmRzIGJlZm9yZSB0aW1pbmcgb3V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiZGlzYWJsZWRfbWV0cmljc19jb2xsZWN0aW9uX2Nvc3RfbWFuYWdlbWVudCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEaXNhYmxlZE1ldHJpY3NDb2xsZWN0aW9uQ29zdE1hbmFnZW1lbnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IGNvbGxlY3RpbmdcbmNvc3QtbWFuYWdlbWVudCBtZXRyaWNzIGlzIGRpc2FibGVkLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkaXNhYmxlZF9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiRGlzYWJsZWRNZXRyaWNzQ29sbGVjdGlvblJlc291cmNlT3B0aW1pemF0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBjb2xsZWN0aW5nXG5yZXNvdXJjZS1vcHRpbWl6YXRpb24gbWV0cmljcyBpcyBkaXNhYmxlZC4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJsYXN0X3F1ZXJ5X3N0YXJ0X3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdGFydFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBsYXN0IHRpbWUgcXVlcmllcyB3ZXJlIHN0YXJ0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibGFzdF9xdWVyeV9zdWNjZXNzX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0UXVlcnlTdWNjZXNzVGltZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIGxhc3QgdGltZSBxdWVyaWVzIHdlcmUgc3VjY2Vzc2Z1bC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJwcmV2aW91c19kYXRhX2NvbGxlY3RlZCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJQcmV2aW91c0RhdGFDb2xsZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHdoZXRoZXIgb3Igbm90IHRoZSBvcGVyYXRvciBnYXRoZXJlZCB0aGUgYXZhaWxhYmxlIFByb21ldGhldXNcbmRhdGEgdXBvbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgY3JlYXRpb24uIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25maWd1cmVkIjp7ImRlc2NyaXB0aW9uIjoiUHJvbWV0aGV1c0NvbmZpZ3VyZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHRoZSBvcGVyYXRvciBpcyBjb25maWd1cmVkIHRvIGNvbm5lY3QgdG8gcHJvbWV0aGV1cy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwcm9tZXRoZXVzX2Nvbm5lY3RlZCI6eyJkZXNjcmlwdGlvbiI6IlByb21ldGhldXNDb25uZWN0ZWQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IGlmIHByb21ldGhldXMgY2FuIGJlIHF1ZXJpZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwicHJvbWV0aGV1c19jb25uZWN0aW9uX2Vycm9yIjp7ImRlc2NyaXB0aW9uIjoiQ29ubmVjdGlvbkVycm9yIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBlcnJvcnMgZHVyaW5nIHByb21ldGhldXMgdGVzdCBxdWVyeS4iLCJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2VfYWRkcmVzcyI6eyJkZXNjcmlwdGlvbiI6IlN2Y0FkZHJlc3MgaXMgdGhlIGludGVybmFsIHRoYW5vcy1xdWVyaWVyIGFkZHJlc3MuIiwidHlwZSI6InN0cmluZyJ9LCJza2lwX3Rsc192ZXJpZmljYXRpb24iOnsiZGVzY3JpcHRpb24iOiJTa2lwVExTVmVyaWZpY2F0aW9uIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBpZiB0aGUgdGhhbm9zLXF1ZXJpZXIgZW5kcG9pbnQgbXVzdCBiZSBjZXJ0aWZpY2F0ZSB2YWxpZGF0ZWQuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbInByb21ldGhldXNfY29uZmlndXJlZCIsInByb21ldGhldXNfY29ubmVjdGVkIl0sInR5cGUiOiJvYmplY3QifSwicmVwb3J0cyI6eyJkZXNjcmlwdGlvbiI6IlJlcG9ydHMgcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIHJlcG9ydCBnZW5lcmF0aW9uLiIsInByb3BlcnRpZXMiOnsiZGF0YV9jb2xsZWN0ZWQiOnsiZGVzY3JpcHRpb24iOiJEYXRhQ29sbGVjdGVkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCB3aGV0aGVyIG9yIG5vdCBkYXRhIHdhcyBjb2xsZWN0ZWQgZm9yIHRoZSBsYXN0IHF1ZXJ5LiIsInR5cGUiOiJib29sZWFuIn0sImRhdGFfY29sbGVjdGlvbl9tZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoiRGF0YUNvbGxlY3Rpb25NZXNzYWdlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnU3RhdHVzIHRvIHJlcHJlc2VudCBhIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhX2NvbGxlY3RlZCBzdGF0dXMuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X2hvdXJfcXVlcmllZCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RIb3VyUXVlcmllZCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIHRpbWUgcmFuZ2UgZm9yIHdoaWNoIG1ldHJpY3Mgd2VyZSBsYXN0IHF1ZXJpZWQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXBvcnRfbW9udGgiOnsiZGVzY3JpcHRpb24iOiJSZXBvcnRNb250aCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1N0YXR1cyB0byByZXByZXNlbnQgdGhlIG1vbnRoIGZvciB3aGljaCByZXBvcnRzIGFyZSBiZWluZyBnZW5lcmF0ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJzb3VyY2UgcmVwcmVzZW50cyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJwcm9wZXJ0aWVzIjp7ImNoZWNrX2N5Y2xlIjp7ImRlc2NyaXB0aW9uIjoiY2hlY2tfY3ljbGUgaXMgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gZWFjaCBpbnRlZ3JhdGlvbiBzdGF0dXMgY2hlY2sgb24gY29uc29sZS5yZWRoYXQuY29tLlxuVGhlIGRlZmF1bHQgaXMgMTQ0MCBtaW4gKDI0IGhvdXJzKS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sImNyZWF0ZV9zb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjcmVhdGVfc291cmNlIHJlcHJlc2VudHMgdGhlIHRvZ2dsZSB1c2VkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIGludGVncmF0aW9uIG9uIGNvbnNvbGUucmVkaGF0LmNvbS5cbkFuIEludGVncmF0aW9uIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgdXBsb2FkX3RvZ2dsZSBpcyBgZmFsc2VgLiIsInR5cGUiOiJib29sZWFuIn0sImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiZXJyb3IgcmVwcmVzZW50cyBhbnkgZXJyb3JzIGVuY291bnRlcmVkIHdoZW4gY3JlYXRpbmcgdGhlIGludGVncmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9jaGVja190aW1lIjp7ImRlc2NyaXB0aW9uIjoibGFzdF9jaGVja190aW1lIGlzIHRoZSB0aW1lIHRoYXQgdGhlIGxhc3QgaW50ZWdyYXRpb24gc3RhdHVzIGNoZWNrIHdhcyBhdHRlbXB0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwibnVsbGFibGUiOnRydWUsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgcmVwcmVzZW50cyB0aGUgbmFtZSBvZiB0aGUgaW50ZWdyYXRpb24gdGhhdCB0aGUgb3BlcmF0b3IgYXR0ZW1wdGVkIHRvIGNyZWF0ZSBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6InN0cmluZyJ9LCJzb3VyY2VfZGVmaW5lZCI6eyJkZXNjcmlwdGlvbiI6InNvdXJjZV9kZWZpbmVkIHJlcHJlc2VudHMgd2hldGhlciB0aGUgZGVmaW5lZCBpbnRlZ3JhdGlvbiBuYW1lIGV4aXN0cyBvbiBjb25zb2xlLnJlZGhhdC5jb20uIiwidHlwZSI6ImJvb2xlYW4ifSwic291cmNlc19wYXRoIjp7ImRlc2NyaXB0aW9uIjoic291cmNlc19wYXRoIGlzIHRoZSBwcmVmaXggb2YgdGhlIFNvdXJjZXMgQVBJIG9uIGNvbnNvbGUucmVkaGF0LmNvbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIGlzIGEgZmllbGQiLCJwcm9wZXJ0aWVzIjp7InZvbHVtZV9tb3VudGVkIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRlZCBpcyBhIGJvb2wgdG8gaW5kaWNhdGUgaWYgc3RvcmFnZSB2b2x1bWUgd2FzIG1vdW50ZWQuIiwidHlwZSI6ImJvb2xlYW4ifSwidm9sdW1lX3R5cGUiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVUeXBlIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZvbHVtZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidXBsb2FkIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdXBsb2FkIG9iamVjdC4iLCJwcm9wZXJ0aWVzIjp7ImVycm9yIjp7ImRlc2NyaXB0aW9uIjoiVXBsb2FkRXJyb3IgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdTdGF0dXMgdG8gcmVwcmVzZW50IHRoZSBlcnJvciBlbmNvdW50ZXJlZCB1cGxvYWRpbmcgcmVwb3J0cy4iLCJ0eXBlIjoic3RyaW5nIn0sImluZ3Jlc3NfcGF0aCI6eyJkZXNjcmlwdGlvbiI6IkluZ3Jlc3NBUElQYXRoIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgcGF0aCBvZiB0aGUgSW5ncmVzcyBBUEkgc2VydmljZS4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9maWxlcyI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQYXlsb2FkRmlsZXMgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IHRoZSBsaXN0IG9mIGZpbGVzIGluIHRoZSBsYXN0IHBheWxvYWQgdGhhdCB3YXMgc2VudC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJsYXN0X3BheWxvYWRfbWFuaWZlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZE1hbmlmZXN0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG1hbmlmZXN0SUQgb2YgdGhlIGxhc3QgcGF5bG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RfcGF5bG9hZF9uYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdFBheWxvYWROYW1lIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGxhc3QgcGF5bG9hZCBmaWxlLiIsInR5cGUiOiJzdHJpbmcifSwibGFzdF9wYXlsb2FkX3JlcXVlc3RfaWQiOnsiZGVzY3JpcHRpb24iOiJMYXN0UGF5bG9hZFJlcXVlc3RJRCBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0aGF0IHNob3dzIHRoZSBpbnNpZ2h0cyByZXF1ZXN0IGlkIG9mIHRoZSBsYXN0IHBheWxvYWQuIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3N1Y2Nlc3NmdWxfdXBsb2FkX3RpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0U3VjY2Vzc2Z1bFVwbG9hZFRpbWUgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdGhhdCBzaG93cyB0aGUgdGltZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIHVwbG9hZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJudWxsYWJsZSI6dHJ1ZSwidHlwZSI6InN0cmluZyJ9LCJsYXN0X3VwbG9hZF9zdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJMYXN0VXBsb2FkU3RhdHVzIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRoYXQgc2hvd3MgdGhlIGh0dHAgc3RhdHVzIG9mIHRoZSBsYXN0IHVwbG9hZC4iLCJ0eXBlIjoic3RyaW5nIn0sInVwbG9hZCI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZFRvZ2dsZSBpcyBhIGZpZWxkIG9mIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyB0byByZXByZXNlbnQgaWYgdGhlIG9wZXJhdG9yIHNob3VsZCB1cGxvYWQgdG8gY29uc29sZS5yZWRoYXQuY29tLlxuVGhlIGRlZmF1bHQgaXMgdHJ1ZSIsInR5cGUiOiJib29sZWFuIn0sInVwbG9hZF9jeWNsZSI6eyJkZXNjcmlwdGlvbiI6IlVwbG9hZEN5Y2xlIGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMgYmV0d2VlbiBlYWNoIHVwbG9hZCBzY2hlZHVsZS5cblRoZSBkZWZhdWx0IGlzIDM2MCBtaW4gKDYgaG91cnMpLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidXBsb2FkX3dhaXQiOnsiZGVzY3JpcHRpb24iOiJVcGxvYWRXYWl0IGlzIGEgZmllbGQgb2YgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIHRvIHJlcHJlc2VudCB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGFuIHVwbG9hZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbGlkYXRlX2NlcnQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZUNlcnQgaXMgYSBmaWVsZCBvZiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgdG8gcmVwcmVzZW50IGlmIHRoZSBJbmdyZXNzIGVuZHBvaW50IG11c3QgYmUgY2VydGlmaWNhdGUgdmFsaWRhdGVkLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOm51bGwsInN0b3JlZFZlcnNpb25zIjpudWxsfX0= -- type: olm.bundle.object +- type: olm.csv.metadata value: - data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImNvc3RtYW5hZ2VtZW50bWV0cmljc2NmZy1zYW1wbGUtdjFiZXRhMVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJhdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInRva2VuXCJcbiAgICAgIH0sXG4gICAgICBcInBhY2thZ2luZ1wiOiB7XG4gICAgICAgIFwibWF4X3JlcG9ydHNfdG9fc3RvcmVcIjogMzAsXG4gICAgICAgIFwibWF4X3NpemVfTUJcIjogMTAwXG4gICAgICB9LFxuICAgICAgXCJwcm9tZXRoZXVzX2NvbmZpZ1wiOiB7XG4gICAgICAgIFwiY29sbGVjdF9wcmV2aW91c19kYXRhXCI6IHRydWUsXG4gICAgICAgIFwiY29udGV4dF90aW1lb3V0XCI6IDEyMCxcbiAgICAgICAgXCJkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnRcIjogZmFsc2UsXG4gICAgICAgIFwiZGlzYWJsZV9tZXRyaWNzX2NvbGxlY3Rpb25fcmVzb3VyY2Vfb3B0aW1pemF0aW9uXCI6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcImNoZWNrX2N5Y2xlXCI6IDE0NDAsXG4gICAgICAgIFwiY3JlYXRlX3NvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgIH0sXG4gICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgIFwidXBsb2FkX2N5Y2xlXCI6IDM2MCxcbiAgICAgICAgXCJ1cGxvYWRfdG9nZ2xlXCI6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJTZWFtbGVzcyBVcGdyYWRlcyIsImNhdGVnb3JpZXMiOiJNb25pdG9yaW5nIiwiY2VydGlmaWVkIjoidHJ1ZSIsImNvbnRhaW5lckltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYwMzgyOGQ2ZTVjMWQwYWVmM2ExMDIzMGY1MTk5YWM3NjgzMjg1MzVjZGUxMmI1OTQ5MjBiOTgxMDY4NDU0NzciLCJjcmVhdGVkQXQiOiIyMDI0LTA4LTEyVDIwOjU4OjQ5WiIsImRlc2NyaXB0aW9uIjoiQSBHb2xhbmctYmFzZWQgT3BlblNoaWZ0IE9wZXJhdG9yIHRoYXQgZ2VuZXJhdGVzIGFuZCB1cGxvYWRzIE9wZW5TaGlmdCB1c2FnZSBtZXRyaWNzIHRvIGNvc3QgbWFuYWdlbWVudC4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Byb3h5LWF3YXJlIjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdGxzLXByb2ZpbGVzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXdzIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3Rva2VuLWF1dGgtYXp1cmUiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1nY3AiOiJmYWxzZSIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL3N1Z2dlc3RlZC1uYW1lc3BhY2UiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9pbmZyYXN0cnVjdHVyZS1mZWF0dXJlcyI6IltcImRpc2Nvbm5lY3RlZFwiLCBcInByb3h5LWF3YXJlXCJdIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby92YWxpZC1zdWJzY3JpcHRpb24iOiJbXCJPcGVuU2hpZnQgS3ViZXJuZXRlcyBFbmdpbmVcIiwgXCJPcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtXCIsIFwiT3BlblNoaWZ0IFBsYXRmb3JtIFBsdXNcIl0iLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4zNS4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjQiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IiLCJzdXBwb3J0IjoiUmVkIEhhdCJ9LCJsYWJlbHMiOnsib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hbWQ2NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guYXJtNjQiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnBwYzY0bGUiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLnMzOTB4Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vb3MubGludXgiOiJzdXBwb3J0ZWQifSwibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IuMy4zLjEiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBjb3N0bWFuYWdlbWVudG1ldHJpY3Njb25maWcgQVBJIiwiZGlzcGxheU5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBDb25maWciLCJraW5kIjoiQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIiwibmFtZSI6ImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3MuY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jZmcub3BlbnNoaWZ0LmlvIiwidmVyc2lvbiI6InYxYmV0YTEifV19LCJkZXNjcmlwdGlvbiI6IiMgQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3JcbiMjIEludHJvZHVjdGlvblxuVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBpcyBhIGNvbXBvbmVudCBvZiB0aGUgW2Nvc3QgbWFuYWdtZW50XShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2RvY3VtZW50YXRpb24vZW4tdXMvY29zdF9tYW5hZ2VtZW50X3NlcnZpY2UpIHNlcnZpY2UgZm9yIE9wZW5zaGlmdC4gVGhlIG9wZXJhdG9yIHJ1bnMgb24gdGhlIGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbnMgb2YgT3BlbnNoaWZ0LiBUaGlzIG9wZXJhdG9yIG9idGFpbnMgT3BlblNoaWZ0IHVzYWdlIGRhdGEgYnkgcXVlcnlpbmcgUHJvbWV0aGV1cyBldmVyeSBob3VyIHRvIGNyZWF0ZSBtZXRyaWMgcmVwb3J0cyB0aGF0IGl0IHVwbG9hZHMgdG8gQ29zdCBNYW5hZ2VtZW50IGF0IFtjb25zb2xlLnJlZGhhdC5jb21dKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tKSB0byBiZSBwcm9jZXNzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFjaCBvdXQgdG8gXHUwMDNjY29zdG1hbmFnZW1lbnRAcmVkaGF0LmNvbVx1MDAzZS5cblxuVGhpcyBvcGVyYXRvciBpcyBjYXBhYmxlIG9mIGZ1bmN0aW9uaW5nIHdpdGhpbiBhIGRpc2Nvbm5lY3RlZC9yZXN0cmljdGVkIG5ldHdvcmsgKGFrYSBhaXItZ2FwcGVkIG1vZGUpLiBJbiB0aGlzIG1vZGUsIHRoZSBvcGVyYXRvciB3aWxsIHN0b3JlIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsIGluc3RlYWQgb2YgYmVpbmcgdXBsb2FkZWQgdG8gQ29zdCBNYW5hZ2VtZW50LiBEb2N1bWVudGF0aW9uIGZvciBpbnN0YWxsaW5nIGFuIG9wZXJhdG9yIHdpdGhpbiBhIHJlc3RyaWN0ZWQgbmV0d29yayBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2NvbnRhaW5lci1wbGF0Zm9ybS9sYXRlc3Qvb3BlcmF0b3JzL2FkbWluL29sbS1yZXN0cmljdGVkLW5ldHdvcmtzLmh0bWwpLlxuXG4jIyBGZWF0dXJlcyBhbmQgQ2FwYWJpbGl0aWVzXG4jIyMjIE1ldHJpY3MgY29sbGVjdGlvbjpcblRoZSBDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciAoYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgKSBjb2xsZWN0cyB0aGUgbWV0cmljcyByZXF1aXJlZCBmb3IgQ29zdCBNYW5hZ2VtZW50IGJ5OlxuKiBRdWVyeWluZyBQcm9tZXRoZXVzIHRvIGdhdGhlciB0aGUgbmVjZXNzYXJ5IG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC5cbiogV3JpdGluZyB0aGUgcmVzdWx0cyBvZiBQcm9tZXRoZXVzIHF1ZXJpZXMgdG8gQ1NWIHJlcG9ydCBmaWxlcy5cbiogUGFja2FnaW5nIHRoZSBDU1YgcmVwb3J0IGZpbGVzIGludG8gdGFyYmFsbHMuXG5cbiMjIyMgQWRkaXRpb25hbCBDYXBhYmlsaXRpZXM6XG4qIFJlc291cmNlIE9wdGltaXphdGlvbiBtZXRyaWNzIGNvbGxlY3Rpb24uXG4qIFRoZSBvcGVyYXRvciBjYW4gYmUgY29uZmlndXJlZCB0byBnYXRoZXIgYWxsIHByZXZpb3VzIGRhdGEgd2l0aGluIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2Qgb3IgYSBtYXhpbXVtIG9mIDkwIGRheXMuIFRoZSBkZWZhdWx0IGRhdGEgY29sbGVjdGlvbiBwZXJpb2QgaXMgdGhlIDE0IHByZXZpb3VzIGRheXMuIFRoaXMgc2V0dGluZyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLlxuKiBUaGUgb3BlcmF0b3IgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSB1cGxvYWQgdGhlIHBhY2thZ2VkIHJlcG9ydHMgdG8gQ29zdCBNYW5hZ2VtZW50IHRocm91Z2ggUmVkIEhhdCBJbnNpZ2h0cyBJbmdyZXNzIHNlcnZpY2UuXG4qIFRoZSBvcGVyYXRvciBjYW4gY3JlYXRlIGFuIGludGVncmF0aW9uIGluIGNvbnNvbGUucmVkaGF0LmNvbS4gQW4gaW50ZWdyYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvc3QgTWFuYWdlbWVudCB0byBwcm9jZXNzIHRoZSB1cGxvYWRlZCBwYWNrYWdlcy5cbiogUGVyc2lzdGVudFZvbHVtZUNsYWltIChQVkMpIGNvbmZpZ3VyYXRpb246IFRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgY2FuIGFjY2VwdCBhIFBWQyBkZWZpbml0aW9uIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgYW5kIG1vdW50IHRoZSBQVkMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBQVkMgd2lsbCBiZSBjcmVhdGVkLlxuKiBSZXN0cmljdGVkIG5ldHdvcmsgaW5zdGFsbGF0aW9uOiB0aGlzIG9wZXJhdG9yIGNhbiBmdW5jdGlvbiBvbiBhIHJlc3RyaWN0ZWQgbmV0d29yay4gSW4gdGhpcyBtb2RlLCB0aGUgb3BlcmF0b3Igc3RvcmVzIHRoZSBwYWNrYWdlZCByZXBvcnRzIGZvciBtYW51YWwgcmV0cmlldmFsLlxuXG4jIyBOZXcgaW4gdjMuMy4xOlxuKiBPcHRpbWl6ZSBtZW1vcnkgdXNhZ2Ugd2hlbiByZWFkaW5nIENTViBmaWxlcy5cblxuIyMgTmV3IGluIHYzLjMuMDpcbiogU3RvcmFnZSByZXBvcnRzIG5vdyBjb250YWluIGBub2RlYCwgYGNzaV9kcml2ZXJgLCBhbmQgYGNzaV92b2x1bWVfaGFuZGxlYCBmaWVsZHMuXG4qIFRoZSBQVkMgY2FwYWNpdHkgaXMgbm93IHBvcHVsYXRlZCB1c2luZyB0aGUgYGt1YmVfcGVyc2lzdGVudHZvbHVtZV9jYXBhY2l0eV9ieXRlc2AgbWV0cmljIGluc3RlYWQgb2YgYGt1YmVsZXRfdm9sdW1lX3N0YXRzX2NhcGFjaXR5X2J5dGVzYC5cbiogVG8gcmVjZWl2ZSByZXNvdXJjZSBvcHRpbWl6YXRpb24gcmVjb21tZW5kYXRpb25zIGZvciB5b3VyIG5hbWVzcGFjZXMsIHlvdSBtdXN0IG5vdyBmaXJzdCBlbmFibGUgZWFjaCBuYW1lc3BhY2UuIFRvIGVuYWJsZSBhIG5hbWVzcGFjZSwgbGFiZWwgaXQgd2l0aCBgaW5zaWdodHNfY29zdF9tYW5hZ2VtZW50X29wdGltaXphdGlvbnM9J3RydWUnYC4gSW4gdGhlIENMSSwgcnVuOlxuICBgYGBcbiAgICBvYyBsYWJlbCBuYW1lc3BhY2UgTkFNRVNQQUNFIGluc2lnaHRzX2Nvc3RfbWFuYWdlbWVudF9vcHRpbWl6YXRpb25zPVwidHJ1ZVwiIC0tb3ZlcndyaXRlPXRydWVcbiAgYGBgXG4qIF9fREVQUkVDQVRJT04gTk9USUNFX186IEJhc2ljIGF1dGhlbnRpY2F0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBiZXlvbmQgRGVjZW1iZXIgMzEsIDIwMjQuIElmIHRoZSBkZWZhdWx0IHRva2VuIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBjYW5ub3QgYmUgdXNlZCwgeW91IG11c3Qgc3dpdGNoIHRvIFtzZXJ2aWNlIGFjY291bnRdKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2lhbS9zZXJ2aWNlLWFjY291bnRzKSBhdXRoZW50aWNhdGlvbiAoW21vcmUgb24gY3JlYXRpbmcgYSBzZXJ2aWNlIGFjY291bnRdKGh0dHBzOi8vYWNjZXNzLnJlZGhhdC5jb20vYXJ0aWNsZXMvNzAzNjE5NCkpLiBPbmNlIHlvdSBoYXZlIGNyZWF0ZWQgeW91ciBzZXJ2aWNlIGFjY291bnQsIGZvbGxvdyBbdGhpcyBkb2N1bWVudGF0aW9uXShodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL2RvY3VtZW50YXRpb24vZW4tdXMvY29zdF9tYW5hZ2VtZW50X3NlcnZpY2UvMS1sYXRlc3QvaHRtbC1zaW5nbGUvaW50ZWdyYXRpbmdfb3BlbnNoaWZ0X2NvbnRhaW5lcl9wbGF0Zm9ybV9kYXRhX2ludG9fY29zdF9tYW5hZ2VtZW50L2luZGV4I3NlcnZpY2UtYWNjb3VudC1hdXRoZW50aWNhdGlvbl9hZGRpbmctYW4tb2NwLWludCkgb24gaG93IHRvIGNvbmZpZ3VyZSB5b3VyIG9wZXJhdG9yIHRvIHVzZSBzZXJ2aWNlIGFjY291bnQgYXV0aGVudGljYXRpb24uIFNlcnZpY2UtYWNjb3VudHMgbXVzdCBhbHNvIGJlIHVzZWQgaWYgbWFudWFsbHkgdXBsb2FkaW5nIHBheWxvYWRzIHRvIGNvbnNvbGUucmVkaGF0LmNvbS5cblxuIyMgTmV3IGluIHYzLjIuMTpcbiogVGhlIG1pbmltdW0gc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb24gZm9yIGB1cGxvYWRfY3ljbGVgIGlzIG5vdyA2MCAobWludXRlcykuXG4qIChCdWdmaXgpIG1hbnktdG8tbWFueSBtYXRjaGluZyBub3QgYWxsb3dlZCBxdWVyeSBmaXguXG4qIChCdWdmaXgpIFNlcXVlbnRpYWxseSBjb2xsZWN0IGRhdGEgZHVyaW5nIGluaXRpYWwgaW5zdGFsbC5cblxuIyMgTmV3IGluIHYzLjIuMDpcbiogU3VwcG9ydCBmb3IgYW1kNjQsIGFybTY0LCBwcGM2NGxlLCBzMzkweCBhcmNoaXRlY3R1cmVzLlxuKiBhZGQgbGl2ZW5lc3MgYW5kIHJlYWRpbmVzcyBwcm9iZXMgdG8gY29udHJvbGxlciBQb2QuXG4qIHVwZGF0ZSBwb2Qgc2VjdXJpdHkgc2V0dGluZ3Mgc28gdGhhdCB0aGUgY29udHJvbGxlciBQb2QgY2FuIHJ1biBpbiBSZXN0cmljdGVkIG1vZGUgW21vcmUgaW5mb10oaHR0cHM6Ly9zZGsub3BlcmF0b3JmcmFtZXdvcmsuaW8vZG9jcy9iZXN0LXByYWN0aWNlcy9wb2Qtc2VjdXJpdHktc3RhbmRhcmRzLykuXG5cbiMjIE5ldyBpbiB2My4xLjA6XG4qIEFkZCBzZXJ2aWNlLWFjY291bnQgYXV0aGVudGljYXRpb24gdHlwZS5cbiogX19EZXByZWNhdGlvbiBOb3RpY2U6X18gQmFzaWMgYXV0aGVudGljYXRpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgdGhlIG9wZXJhdG9yLlxuXG4jIyBOZXcgaW4gdjMuMC4wOlxuKiBEYWlseSByZXBvcnQgZ2VuZXJhdGlvbjogT3BlcmF0b3IgdmVyc2lvbnMgcHJpb3IgdG8gdjMuMC4wIGdlbmVyYXRlZCBzZXF1ZW50aWFsIHJlcG9ydHMuIE5vdywgcmVwb3J0cyBhcmUgZ2VuZXJhdGVkIHN0YXJ0aW5nIGF0IDA6MDAgVVRDLiBBbnkgcGF5bG9hZHMgZ2VuZXJhdGVkIHRocm91Z2hvdXQgYSBnaXZlbiBkYXkgd2lsbCBjb250YWluIGFsbCBkYXRhIHN0YXJ0aW5nIGZyb20gMDowMCBVVEMuIE9uY2UgdGhlIG5leHQgZGF5IHN0YXJ0cywgdGhlIHByZXZpb3VzIGRheSdzIHJlcG9ydHMgYXJlIHBhY2thZ2VkLCBhbmQgdGhlIG5ldyByZXBvcnQgYWdhaW4gc3RhcnRzIGF0IDA6MDAgVVRDIGZvciB0aGUgY3VycmVudCBkYXkuXG4qIEZhaWxlZCBxdWVyeSByZXRyeTogSW4gYW4gYXR0ZW1wdCB0byBwcmV2ZW50IG1pc3NpbmcgZGF0YSwgdGhlIG9wZXJhdG9yIHdpbGwgcmV0cnkgcXVlcmllcyBmcm9tIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgcXVlcnkgdGltZSwgdXAgdG8gNSB0aW1lcy5cblxuIyMgTmV3IGluIHYyLjAuMDpcbiogQWRkcyBtZXRyaWNzIGFuZCByZXBvcnQgZ2VuZXJhdGlvbiBmb3IgcmVzb3VyY2Ugb3B0aW1pemF0aW9uLiBUaGlzIGZlYXR1cmUgd2lsbCBjb2xsZWN0IGFkZGl0aW9uYWwgdXNhZ2UgbWV0cmljcyBhbmQgY3JlYXRlIGEgbmV3IHJlcG9ydCBpbiB0aGUgcGF5bG9hZC4gVGhlc2UgbWV0cmljcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgY2FuIGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbmAgdG8gYHRydWVgLlxuKiBDb2xsZWN0IGFsbCBhdmFpbGFibGUgUHJvbWV0aGV1cyBkYXRhIHVwb24gQ1IgY3JlYXRpb24uIFRoaXMgZmVhdHVyZSBvbmx5IGFwcGxpZXMgdG8gbmV3bHkgY3JlYXRlZCBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzLiBUaGUgb3BlcmF0b3Igd2lsbCBjaGVjayB0aGUgbW9uaXRvcmluZyBzdGFjayBjb25maWd1cmF0aW9uIGluIHRoZSBgb3BlbnNoaWZ0LW1vbml0b3JpbmdgIG5hbWVzcGFjZS4gVGhlIG9wZXJhdG9yIHdpbGwgdXNlIHRoZSBgcmV0ZW50aW9uYCBwZXJpb2Qgc2V0IGluIHRoZSBgY2x1c3Rlci1tb25pdG9yaW5nLWNvbmZpZ2AgQ29uZmlnTWFwIGlmIGRlZmluZWQsIHVwIHRvIGEgbWF4aW11bSBvZiA5MCBkYXlzLiBPdGhlcndpc2UgaXQgd2lsbCBmYWxsIGJhY2sgdG8gY29sbGVjdGluZyAxNCBkYXlzIG9mIGRhdGEsIGlmIGF2YWlsYWJsZS4gVGhpcyBkYXRhIGNvbGxlY3Rpb24gbWF5IGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgYGNvbGxlY3RfcHJldmlvdXNfZGF0YWAgdG8gYGZhbHNlYC4gVHVybmluZyB0aGlzIGZlYXR1cmUgb2ZmIHJlc3VsdHMgaW4gdGhlIG9wZXJhdG9yIGNvbGxlY3RpbmcgbWV0cmljcyBmcm9tIHRoZSB0aW1lIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgaXMgY3JlYXRlZCwgZm9yd2FyZC5cblxuIyMgTGltaXRhdGlvbnMgYW5kIFByZS1SZXF1aXNpdGVzXG4jIyMjIExpbWl0YXRpb25zIChQb3RlbnRpYWwgZm9yIG1ldHJpY3MgZGF0YSBsb3NzKVxuKiBBbiBpbnRlZ3JhdGlvbiAqKm11c3QqKiBleGlzdCBpbiBjb25zb2xlLnJlZGhhdC5jb20gZm9yIGFuIHVwbG9hZGVkIHBheWxvYWQgdG8gYmUgcHJvY2Vzc2VkIGJ5IENvc3QgTWFuYWdlbWVudC4gVGhlIG9wZXJhdG9yIHNlbmRzIHRoZSBwYXlsb2FkIHRvIHRoZSBSZWQgSGF0IEluc2lnaHRzIEluZ3Jlc3Mgc2VydmljZSB3aGljaCB1c3VhbGx5IHJldHVybnMgc3VjY2Vzc2Z1bGx5LCBidXQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IGN1cnJlbnRseSBjb25maXJtIHdpdGggQ29zdCBNYW5hZ2VtZW50IHRoYXQgdGhlIHBheWxvYWQgd2FzIHByb2Nlc3NlZC4gQWZ0ZXIgSW5ncmVzcyBhY2NlcHRzIHRoZSB1cGxvYWRlZCBwYXlsb2FkLCBpdCBpcyBkZWxldGVkIGZyb20gdGhlIG9wZXJhdG9yLiBJZiB0aGUgZGF0YSB3aXRoaW4gdGhlIHBheWxvYWQgaXMgbm90IHByb2Nlc3NlZCwgYSBnYXAgd2lsbCBiZSBpbnRyb2R1Y2VkIGluIHRoZSB1c2FnZSBtZXRyaWNzLiBEYXRhIG1heSBiZSByZWNvbGxlY3RlZCBieSBkZWxldGluZyB0aGUgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AsIGNyZWF0aW5nIGEgbmV3IGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLCBhbmQgc2V0dGluZyBgY29sbGVjdF9wcmV2aW91c19kYXRhOiB0cnVlYC4gVGhpcyByZS1jb2xsZWN0aW9uIG9mIGRhdGEgd2lsbCBnYXRoZXIgYWxsIGRhdGEgc3RvcmVkIGluIFByb21ldGhldXMsIHVwIHRvIDkwIGRheXMuXG5cbioqTm90ZSoqIFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHNwZWNpZmljIHRvIG9wZXJhdG9ycyBjb25maWd1cmVkIHRvIHJ1biBpbiBhIHJlc3RyaWN0ZWQgbmV0d29yazpcbiogVGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCB3aWxsIG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIG5ldyByZXBvcnRzIGlmIHRoZSBQVkMgc3RvcmFnZSBpcyBmdWxsLiBJZiB0aGlzIG9jY3VycywgdGhlIHJlcG9ydHMgbXVzdCBiZSBtYW51YWxseSBkZWxldGVkIGZyb20gdGhlIFBWQyBzbyB0aGF0IHRoZSBvcGVyYXRvciBjYW4gZnVuY3Rpb24gYXMgbm9ybWFsLlxuKiBUaGUgZGVmYXVsdCByZXBvcnQgcmV0ZW50aW9uIGlzIDMwIHJlcG9ydHMgKGFib3V0IG9uZSB3ZWVrJ3Mgd29ydGggb2YgZGF0YSkuIFRoZSByZXBvcnRzIG11c3QgYmUgbWFudWFsbHkgZG93bmxvYWRlZCBhbmQgdXBsb2FkZWQgdG8gY29uc29sZS5yZWRoYXQuY29tIGV2ZXJ5IHdlZWssIG9yIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCB0aGUgZGF0YSB3aWxsIGJlIGxvc3QuXG5cbiMjIyMgU3RvcmFnZSBjb25maWd1cmF0aW9uIHByZXJlcXVpc2l0ZVxuVGhlIG9wZXJhdG9yIHdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgYW5kIHVzZSB0aGUgZm9sbG93aW5nIFBWQyB3aGVuIGluc3RhbGxlZDpcblxuICAgICAgdm9sdW1lX2NsYWltX3RlbXBsYXRlOlxuICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICBraW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbiAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgbmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuXG5JZiBhIGRpZmZlcmVudCBQVkMgc2hvdWxkIGJlIHV0aWxpemVkLCBhIHZhbGlkIFBWQyBzaG91bGQgYmUgc3BlY2lmaWVkIGluIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWcgQ1IgYXMgZGVzY3JpYmVkIGluIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGJlbG93LiBUaGUgUFZDIHRvIGJlIHVzZWQgbWF5IGV4aXN0IGFscmVhZHksIG9yIHRoZSBvcGVyYXRvciB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGl0LlxuXG5UbyB1c2UgdGhlIGRlZmF1bHQgc3BlY2lmaWNhdGlvbiwgdGhlIGZvbGxvdyBhc3N1bXB0aW9ucyBtdXN0IGJlIG1ldDpcbjEuIEEgZGVmYXVsdCBTdG9yYWdlQ2xhc3MgaXMgZGVmaW5lZC5cbjIuIER5bmFtaWMgcHJvdmlzaW9uaW5nIGZvciB0aGF0IGRlZmF1bHQgU3RvcmFnZUNsYXNzIGlzIGVuYWJsZWQuXG5cbklmIHRoZXNlIGFzc3VtcHRpb25zIGFyZSBub3QgbWV0LCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgZGVwbG95IGNvcnJlY3RseS4gSW4gdGhlc2UgY2FzZXMsIHN0b3JhZ2UgbXVzdCBiZSBtYW51YWxseSBjb25maWd1cmVkLiBBZnRlciBjb25maWd1cmluZyBzdG9yYWdlLCBhIHZhbGlkIFBWQyB0ZW1wbGF0ZSBzaG91bGQgYmUgc3VwcGxpZWQgaW4gdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIHNwZWMgb2YgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBDUi5cblxuIyMgQ29uZmlndXJhYmxlIHBhcmFtZXRlcnM6XG4gICogYGF1dGhlbnRpY2F0aW9uYDpcbiAgICAqIGB0eXBlOiB0b2tlbmAgLVx1MDAzZSBUaGUgYXV0aGVudGljYXRpb24gbWV0aG9kIGZvciBjb25uZWN0aW5nIHRvIGBjb25zb2xlLnJlZGhhdC5jb21gLiBUaGUgZGVmYXVsdCBhbmQgcHJlZmVycmVkIG1ldGhvZCBpcyBgdG9rZW5gLiBgYmFzaWNgIChkZXByZWNhdGVkKSBhbmQgYHNlcnZpY2UtYWNjb3VudGAgYXV0aGVudGljYXRpb24gbWV0aG9kcyBhcmUgdXNlZCB3aGVuIHRoZSBvcGVuc2hpZnQtY29uZmlnIHB1bGwtc2VjcmV0IGRvZXMgbm90IGNvbnRhaW4gYSB0b2tlbiBmb3IgYGNvbnNvbGUucmVkaGF0LmNvbWAuXG4gICAgKiBgc2VjcmV0X25hbWVgIC1cdTAwM2UgVGhlIFNlY3JldCB1c2VkIGJ5IHRoZSBvcGVyYXRvciB3aGVuIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlzIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgLiBUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCAqKm9ubHkgaWYqKiB0aGUgYXV0aGVudGljYXRpb24gdHlwZSBpcyBgYmFzaWNgIChkZXByZWNhdGVkKSBvciBgc2VydmljZS1hY2NvdW50YC5cbiAgKiBgcGFja2FnaW5nYDpcbiAgICAqIGBtYXhfcmVwb3J0c190b19zdG9yZTogMzBgIC1cdTAwM2UgVGhlIG51bWJlciBvZiByZXBvcnRzIHRvIHN0b3JlIHdoZW4gY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUuIFRoZSBkZWZhdWx0IGlzIDMwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBubyBtYXhpbXVtLiBXaGVuIHRoZSBvcGVyYXRvciBpcyBub3QgY29uZmlndXJlZCBpbiBhaXItZ2FwcGVkIG1vZGUsIHRoaXMgcGFyYW1ldGVyIGhhcyBubyBlZmZlY3QuIFJlcG9ydHMgYXJlIHJlbW92ZWQgYXMgc29vbiBhcyB0aGV5IGFyZSB1cGxvYWRlZC5cbiAgICAqIGBtYXhfc2l6ZTogMTAwYCAtXHUwMDNlIFRoZSBtYXhpbXVtIHNpemUgZm9yIHBhY2thZ2VkIGZpbGVzIGluIE1lZ2FieXRlcyBwcmlvciB0byBjb21wcmVzc2lvbi4gVGhlIGRlZmF1bHQgaXMgMTAwLCB3aXRoIGEgbWluaW11bSBvZiAxIGFuZCBtYXhpbXVtIG9mIDEwMC5cbiAgKiBgcHJvbWV0aGV1c19jb25maWdgOlxuICAgICogYGNvbGxlY3RfcHJldmlvdXNfZGF0YTogdHJ1ZWAgLVx1MDAzZSBUb2dnbGUgZm9yIGNvbGxlY3RpbmcgYWxsIGF2YWlsYWJsZSBkYXRhIGluIFByb21ldGhldXMgKip1cG9uIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZyBjcmVhdGlvbioqIChUaGlzIHBhcmFtZXRlciB3aWxsIHN0YXJ0IHRvIGFwcGVhciBpbiBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdzIHRoYXQgd2VyZSBjcmVhdGVkIHByaW9yIHRvIHYyLjAuMCBidXQgd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IHVubGVzcyB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIGlzIGRlbGV0ZWQgYW5kIHJlY3JlYXRlZCkuIFRoZSBkZWZhdWx0IGlzIGB0cnVlYC4gVGhlIG9wZXJhdG9yIHdpbGwgZmlyc3QgbG9vayBmb3IgYSBgcmV0ZW50aW9uYCBwZXJpb2QgaW4gdGhlIGBjbHVzdGVyLW1vbml0b3JpbmctY29uZmlnYCBDb25maWdNYXAgaW4gdGhlIGBvcGVuc2hpZnQtbW9uaXRvcmluZ2AgbmFtZXNwYWNlIGFuZCBnYXRoZXIgZGF0YSBvdmVyIHRoaXMgdGltZSBwZXJpb2QgdXAgdG8gYSBtYXhpbXVtIG9mIDkwIGRheXMuIElmIHRoaXMgY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0LCB0aGUgZGVmYXVsdCBpcyAxNCBkYXlzLiAoTmV3IGluIHYyLjAuMClcbiAgICAqIGBkaXNhYmxlX21ldHJpY3NfY29sbGVjdGlvbl9jb3N0X21hbmFnZW1lbnQ6IGZhbHNlYCAtXHUwMDNlIFRvZ2dsZSBmb3IgZGlzYWJsaW5nIHRoZSBjb2xsZWN0aW9uIG9mIG1ldHJpY3MgZm9yIENvc3QgTWFuYWdlbWVudC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIChOZXcgaW4gdjIuMC4wKVxuICAgICogYGRpc2FibGVfbWV0cmljc19jb2xsZWN0aW9uX3Jlc291cmNlX29wdGltaXphdGlvbjogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciBkaXNhYmxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3IgUmVzb3VyY2UgT3B0aW1pemF0aW9uLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gKE5ldyBpbiB2Mi4wLjApXG4gICAgKiBgY29udGV4dF90aW1lb3V0OiAxMjBgIC1cdTAwM2UgVGhlIHRpbWUgaW4gc2Vjb25kcyBiZWZvcmUgUHJvbWV0aGV1cyBxdWVyaWVzIHRpbWVvdXQgZHVlIHRvIGV4Y2VlZGluZyBjb250ZXh0IHRpbWVvdXQuIFRoZSBkZWZhdWx0IGlzIDEyMCwgd2l0aCBhIG1pbmltdW0gb2YgMTAgYW5kIG1heGltdW0gb2YgMTgwLlxuICAqIGBzb3VyY2VgOlxuICAgICogYG5hbWU6ICcnYCAtXHUwMDNlIFRoZSBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgaW4gYGNvbnNvbGUucmVkaGF0LmNvbWAuIElmIHRoZSBuYW1lIHZhbHVlIGlzIGVtcHR5LCB0aGUgZGVmYXVsdCBpbnRlcmdyYXRpb24gbmFtZSBpcyB0aGUgKipjbHVzdGVyIGlkKiouXG4gICAgKiBgY3JlYXRlX3NvdXJjZTogZmFsc2VgIC1cdTAwM2UgVG9nZ2xlIGZvciB3aGV0aGVyIG9yIG5vdCB0aGUgb3BlcmF0b3Igd2lsbCBjcmVhdGUgdGhlIGludGVncmF0aW9uIGluIGBjb25zb2xlLnJlZGhhdC5jb21gLiBUaGUgZGVmYXVsdCBpcyBGYWxzZS4gVGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJlIHN3aXRjaGVkIHRvIFRydWUgd2hlbiBhbiBpbnRlZ3JhdGlvbiBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0IGluIGBjb25zb2xlLnJlZGhhdC5jb21gIGZvciB0aGlzIGNsdXN0ZXIuXG4gICAgKiBgY2hlY2tfY3ljbGU6IDE0NDBgIC1cdTAwM2UgVGhlIHRpbWUgaW4gbWludXRlcyB0byB3YWl0IGJldHdlZW4gY2hlY2tpbmcgaWYgYW4gaW50ZWdyYXRpb24gZXhpc3RzIGZvciB0aGlzIGNsdXN0ZXIuIFRoZSBkZWZhdWx0IGlzIDE0NDAgbWludXRlcyAoMjQgaHJzKS5cbiAgKiBgdXBsb2FkYDpcbiAgICAqIGB1cGxvYWRfY3ljbGU6IDM2MGAgLVx1MDAzZSBUaGUgdGltZSBpbiBtaW51dGVzIGJldHdlZW4gcGF5bG9hZCB1cGxvYWRzLiBUaGUgZGVmYXVsdCBpcyAzNjAgKDYgaG91cnMpLCBtaW5pbXVtIGlzIDYwICgxIGhvdXIpLlxuICAgICogYHVwbG9hZF90b2dnbGU6IHRydWVgIC1cdTAwM2UgVG9nZ2xlIHRvIHR1cm4gdXBsb2FkIG9uIG9yIG9mZiAtXHUwMDNlIHRydWUgbWVhbnMgdXBsb2FkLCBmYWxzZSBtZWFucyBkbyBub3QgdXBsb2FkIChmYWxzZSA9PSBhaXItZ2FwcGVkIG1vZGUpLiBUaGUgZGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAgKiBgdXBsb2FkX3dhaXRgIC1cdTAwM2UgVGhlIGFtb3VudCBvZiB0aW1lIChpbiBzZWNvbmRzKSB0byBwYXVzZSBiZWZvcmUgdXBsb2FkaW5nIGEgcGF5bG9hZC4gVGhlIGRlZmF1bHQgaXMgYSByYW5kb20gbnVtYmVyIGJldHdlZW4gMCBhbmQgMzUuIFRoaXMgaXMgdXNlZCB0byBkZWNyZWFzZSBzZXJ2aWNlIGxvYWQsIGJ1dCBtYXkgYmUgc2V0IHRvIGAwYCBpZiBkZXNpcmVkLlxuICAqIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIC1cdTAwM2Ugc2VlIHRoZSBcIlN0b3JhZ2UgY29uZmlndXJhdGlvbiBwcmVyZXF1aXNpdGVcIiBzZWN0aW9uIGFib3ZlLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JcbioqTm90ZSoqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLlxuIyMjIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uXG5UaGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG9wZXJhdG9yIGlzIGB0b2tlbmAuIE5vIGZ1cnRoZXIgc3RlcHMgYXJlIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0b2tlbiBhdXRoZW50aWNhdGlvbi4gSWYgYGJhc2ljYCAoZGVwcmVjYXRlZCkgb3IgYHNlcnZpY2UtYWNjb3VudGAgaXMgdGhlIHByZWZlcnJlZCBhdXRoZW50aWNhdGlvbiBtZXRob2QsIGEgU2VjcmV0IHdoaWNoIGhvbGRzIHRoZSBjcmVkZW50aWFscyBtdXN0IGJlIGNyZWF0ZWQ6XG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgV29ya2xvYWRzYCAtXHUwMDNlIGBTZWNyZXRzYCAtXHUwMDNlIHNlbGVjdCBQcm9qZWN0OiBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ3JlYXRlYCAtXHUwMDNlIGBLZXkvVmFsdWUgU2VjcmV0YFxuMi4gR2l2ZSB0aGUgU2VjcmV0IGEgbmFtZSBhbmQgYWRkIDIga2V5cyAoYWxsIGxvd2VyY2FzZSkgZm9yIHRoZSByZXNwZWN0aXZlIGF1dGhlbnRpY2F0aW9uIHR5cGUuIFRoZSB2YWx1ZXMgZm9yIHRoZXNlIGtleXMgY29ycmVzcG9uZCB0byBjb25zb2xlLnJlZGhhdC5jb20gY3JlZGVudGlhbHM6XG4gICAgKiBiYXNpYyBhdXRoIChkZXByZWNhdGVkKTogYHVzZXJuYW1lYCBhbmQgYHBhc3N3b3JkYFxuICAgICogc2VydmljZS1hY2NvdW50IGF1dGg6IGBjbGllbnRfaWRgIGFuZCBgY2xpZW50X3NlY3JldGBcblxuMy4gU2VsZWN0IGBDcmVhdGVgLlxuIyMjIyMgQ3JlYXRlIHRoZSBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdcbkNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciBieSBjcmVhdGluZyBhIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgLlxuMS4gT24gdGhlIGxlZnQgbmF2aWdhdGlvbiBwYW5lLCBzZWxlY3QgYE9wZXJhdG9yc2AgLVx1MDAzZSBgSW5zdGFsbGVkIE9wZXJhdG9yc2AgLVx1MDAzZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgLVx1MDAzZSBgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnYCAtXHUwMDNlIGBDcmVhdGUgSW5zdGFuY2VgLlxuMi4gRm9yIGBiYXNpY2AgKGRlcHJlY2F0ZWQpIG9yIGBzZXJ2aWNlLWFjY291bnRgIGF1dGhlbnRpY2F0aW9uLCBlZGl0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHRoZSBzcGVjOlxuICAgICogUmVwbGFjZSBgYXV0aGVudGljYXRpb246IHR5cGU6YCB3aXRoIGBiYXNpY2Agb3IgYHNlcnZpY2UtYWNjb3VudGAuXG4gICAgKiBBZGQgdGhlIGBzZWNyZXRfbmFtZWAgZmllbGQgdW5kZXIgYGF1dGhlbnRpY2F0aW9uYCwgYW5kIHNldCBpdCBlcXVhbCB0byB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gU2VjcmV0IHRoYXQgd2FzIGNyZWF0ZWQgYWJvdmUuIFRoZSBzcGVjIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxuICAgICAgICAqIGZvciBiYXNpYyBhdXRoIHR5cGUgKGRlcHJlY2F0ZWQpXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBiYXNpY1xuICAgICAgICBgYGBcblxuICAgICAgICAqIGZvciBzZXJ2aWNlLWFjY291bnQgYXV0aCB0eXBlXG4gICAgICAgIGBgYFxuICAgICAgICAgIGF1dGhlbnRpY2F0aW9uOlxuICAgICAgICAgICAgc2VjcmV0X25hbWU6IFNFQ1JFVC1OQU1FXG4gICAgICAgICAgICB0eXBlOiBzZXJ2aWNlLWFjY291bnRcbiAgICAgICAgYGBgXG5cbjMuIFRvIGNvbmZpZ3VyZSB0aGUgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciB0byBjcmVhdGUgYSBjb3N0IG1hbmFnZW1lbnQgaW50ZWdyYXRpb24sIGVkaXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgaW4gdGhlIGBzb3VyY2VgIGZpZWxkOlxuICAgICogUmVwbGFjZSB0aGUgYG5hbWVgIGZpZWxkIHZhbHVlIHdpdGggdGhlIHByZWZlcnJlZCBuYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0byBiZSBjcmVhdGVkLlxuICAgICogUmVwbGFjZSB0aGUgYGNyZWF0ZV9zb3VyY2VgIGZpZWxkIHZhbHVlIHdpdGggYHRydWVgLlxuXG4gICAgKipOb3RlOioqIGlmIHRoZSBpbnRlZ3JhdGlvbiBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSB0aGUgZW1wdHkgc3RyaW5nIHZhbHVlIG9mIHRoZSBgbmFtZWAgZmllbGQgd2l0aCB0aGUgZXhpc3RpbmcgbmFtZSwgYW5kIGxlYXZlIGBjcmVhdGVfc291cmNlYCBhcyBmYWxzZS4gVGhpcyB3aWxsIGFsbG93IHRoZSBvcGVyYXRvciB0byBjb25maXJtIHRoYXQgdGhlIGludGVncmF0aW9uIGV4aXN0cy5cblxuNC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9wZXJhdG9yIHdpbGwgY3JlYXRlIGEgZGVmYXVsdCBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYzpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgICBzdG9yYWdlOiAxMEdpXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBJZiB1c2luZyB0aGUgWUFNTCBWaWV3LCB0aGUgYHZvbHVtZV9jbGFpbV90ZW1wbGF0ZWAgZmllbGQgbXVzdCBiZSBhZGRlZCB0byB0aGUgc3BlY1xuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIFJlc3RyaWN0ZWQgTmV0d29yayBVc2FnZSAoZGlzY29ubmVjdGVkL2Fpci1nYXBwZWQgbW9kZSlcbiMjIEluc3RhbGxhdGlvblxuVG8gaW5zdGFsbCB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBmb2xsb3cgdGhlIFtvbG0gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vY29udGFpbmVyLXBsYXRmb3JtL2xhdGVzdC9vcGVyYXRvcnMvYWRtaW4vb2xtLXJlc3RyaWN0ZWQtbmV0d29ya3MuaHRtbCkuIFRoZSBvcGVyYXRvciBpcyBmb3VuZCBpbiB0aGUgYGNvbW11bml0eS1vcGVyYXRvcnNgIENhdGFsb2cgaW4gdGhlIGByZWdpc3RyeS5yZWRoYXQuaW8vcmVkaGF0L2NvbW11bml0eS1vcGVyYXRvci1pbmRleDpsYXRlc3RgIEluZGV4LiBJZiBwcnVuaW5nIHRoZSBpbmRleCBiZWZvcmUgcHVzaGluZyB0byB0aGUgbWlycm9yZWQgcmVnaXN0cnksIGtlZXAgdGhlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCBwYWNrYWdlLlxuXG5XaXRoaW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBvcGVyYXRvciBxdWVyaWVzIHByb21ldGhldXMgdG8gZ2F0aGVyIHRoZSBuZWNlc3NhcnkgdXNhZ2UgbWV0cmljcywgd3JpdGVzIHRoZSBxdWVyeSByZXN1bHRzIHRvIENTViBmaWxlcywgYW5kIHBhY2thZ2VzIHRoZSByZXBvcnRzIGZvciBzdG9yYWdlIGluIHRoZSBQVkMuIFRoZXNlIHJlcG9ydHMgdGhlbiBuZWVkIHRvIGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgY2x1c3RlciBhbmQgdXBsb2FkZWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLlxuXG4jIyBDb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgZm9yIGEgcmVzdHJpY3RlZCBuZXR3b3JrXG4jIyMjIyBDcmVhdGUgdGhlIENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ1xuQ29uZmlndXJlIHRoZSBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIGJ5IGNyZWF0aW5nIGEgYENvc3RNYW5hZ2VtZW50TWV0cmljc0NvbmZpZ2AuXG4xLiBPbiB0aGUgbGVmdCBuYXZpZ2F0aW9uIHBhbmUsIHNlbGVjdCBgT3BlcmF0b3JzYCAtXHUwMDNlIGBJbnN0YWxsZWQgT3BlcmF0b3JzYCAtXHUwMDNlIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yYCAtXHUwMDNlIGBDb3N0TWFuYWdlbWVudE1ldHJpY3NDb25maWdgIC1cdTAwM2UgYENyZWF0ZSBJbnN0YW5jZWAuXG4yLiBTcGVjaWZ5IHRoZSBkZXNpcmVkIHN0b3JhZ2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvcGVyYXRvciB3aWxsIGNyZWF0ZSBhIGRlZmF1bHQgUGVyc2lzdGVudCBWb2x1bWUgQ2xhaW0gY2FsbGVkIGBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLWRhdGFgIHdpdGggMTBHaSBvZiBzdG9yYWdlLiBUbyBjb25maWd1cmUgdGhlIGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IgdG8gdXNlIG9yIGNyZWF0ZSBhIGRpZmZlcmVudCBQVkMsIGVkaXQgdGhlIGZvbGxvd2luZyBpbiB0aGUgc3BlYzpcbiAgICAqIEFkZCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBgdm9sdW1lX2NsYWltX3RlbXBsYXRlYCBmaWVsZCBpbiB0aGUgc3BlYyAoYmVsb3cgaXMgb25seSBhIHRlbXBsYXRlLiBBbnkgX3ZhbGlkXyBgUGVyc2lzdGVudFZvbHVtZUNsYWltYCBtYXkgYmUgZGVmaW5lZCBoZXJlKTpcblxuICAgICAgYGBgXG4gICAgICAgIHZvbHVtZV9jbGFpbV90ZW1wbGF0ZTpcbiAgICAgICAgICBhcGlWZXJzaW9uOiB2MVxuICAgICAgICAgIGtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxuICAgICAgICAgIG1ldGFkYXRhOlxuICAgICAgICAgICAgbmFtZTogXHUwMDNjaW5zZXJ0LW5hbWVcdTAwM2VcbiAgICAgICAgICBzcGVjOlxuICAgICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogXHUwMDNjaW5zZXJ0LWNsYXNzLW5hbWVcdTAwM2VcbiAgICAgICAgICAgIGFjY2Vzc01vZGVzOlxuICAgICAgICAgICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgICAgc3RvcmFnZTogMTBHaVxuICAgICAgYGBgXG5cbiAgICAqKk5vdGU6KiogSWYgdXNpbmcgdGhlIFlBTUwgVmlldywgdGhlIGB2b2x1bWVfY2xhaW1fdGVtcGxhdGVgIGZpZWxkIG11c3QgYmUgYWRkZWQgdG8gdGhlIHNwZWNcbjMuIChPcHRpb25hbCkgU3BlY2lmeSB0aGUgZGVzaXJlZCByZXBvcnQgcmV0ZW50aW9uLiBUaGUgb3BlcmF0b3Igd2lsbCByZXRhaW4gMzAgcmVwb3J0cyBieSBkZWZhdWx0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIGFwcHJveGltYXRlbHkgb25lIHdlZWsncyB3b3J0aCBvZiBkYXRhIGlmIHVzaW5nIHRoZSBkZWZhdWx0IHBhY2thZ2luZyBjeWNsZS4gVG8gbW9kaWZ5IHRoZSBudW1iZXIgb2YgcmV0YWluZWQgcmVwb3J0czpcbiAgICAqIENoYW5nZSB0aGUgYHBhY2thZ2luZ2Agc3BlYyBmaWVsZCBgbWF4X3JlcG9ydHNfdG9fc3RvcmVgIHRvIHRoZSBkZXNpcmVkIG51bWJlciBvZiByZXBvcnRzIHRvIHJldGFpbi4gT25jZSB0aGlzIG1heCBudW1iZXIgaXMgcmVhY2hlZCwgdGhlIG9wZXJhdG9yIHdpbGwgc3RhcnQgcmVtb3ZpbmcgdGhlIG9sZGVzdCBwYWNrYWdlcyByZW1haW5pbmcgb24gdGhlIFBWQzpcblxuICAgICAgYGBgXG4gICAgICAgIHBhY2thZ2luZzpcbiAgICAgICAgICBtYXhfc2l6ZV9NQjogMTAwXG4gICAgICAgICAgbWF4X3JlcG9ydHNfdG9fc3RvcmU6IDMwXG4gICAgICBgYGBcblxuICAgICoqTm90ZToqKiBUaGUgbnVtYmVyIG9mIHJldGFpbmVkIHJlcG9ydHMgZGlyZWN0bHkgYWZmZWN0cyB0aGUgZnJlcXVlbmN5IHRoYXQgcmVwb3J0cyBtdXN0IGJlIG1hbnVhbGx5IGRvd25sb2FkZWQgZnJvbSB0aGUgUFZDLiBUYWtlIGNhdXRpb24gaW4gc2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIG51bWJlciBvZiByZXBvcnRzLCBhcyB0aGUgb3BlcmF0b3IgY2Fubm90IHdyaXRlIGRhdGEgdG8gdGhlIFBWQyBpZiB0aGUgc3RvcmFnZSBpcyBmdWxsLlxuNC4gVG8gY29uZmlndXJlIHRoZSBvcGVyYXRvciB0byBwZXJmb3JtIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCBzZXQgdGhlIGB1cGxvYWRfdG9nZ2xlYCB0byBgZmFsc2VgOlxuXG4gIGBgYFxuICAgIHVwbG9hZDpcbiAgICAgIHVwbG9hZF9jeWNsZTogMzYwXG4gICAgICB1cGxvYWRfdG9nZ2xlOiBmYWxzZVxuICBgYGBcblxuNS4gU2VsZWN0IGBDcmVhdGVgLlxuXG4jIyBEb3dubG9hZCByZXBvcnRzIGZyb20gdGhlIE9wZXJhdG9yIFx1MDAyNiBjbGVhbiB1cCB0aGUgUFZDXG5JZiB0aGUgYGNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3JgIGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGluIGEgcmVzdHJpY3RlZCBuZXR3b3JrLCB0aGUgbWV0cmljIHJlcG9ydHMgd2lsbCBub3QgYXV0b21hdGljYWxseSB1cGxvYWQgdG8gY29zdCBtYW5hZ21lbnQuIEluc3RlYWQsIHRoZXkgbmVlZCB0byBiZSBtYW51YWxseSBjb3BpZWQgZnJvbSB0aGUgUFZDIGZvciB1cGxvYWQgdG8gW2NvbnNvbGUucmVkaGF0LmNvbV0oaHR0cHM6Ly9jb25zb2xlLnJlZGhhdC5jb20pLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNhdmVzIG9uZSB3ZWVrIG9mIHJlcG9ydHMgd2hpY2ggbWVhbnMgdGhlIHByb2Nlc3Mgb2YgZG93bmxvYWRpbmcgYW5kIHVwbG9hZGluZyByZXBvcnRzIHNob3VsZCBiZSByZXBlYXRlZCB3ZWVrbHkgdG8gcHJldmVudCBsb3NzIG9mIG1ldHJpY3MgZGF0YS4gVG8gZG93bmxvYWQgdGhlIHJlcG9ydHMsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4xLiBDcmVhdGUgdGhlIGZvbGxvd2luZyBQb2QsIGVuc3VyaW5nIHRoZSBgY2xhaW1OYW1lYCBtYXRjaGVzIHRoZSBQVkMgY29udGFpbmluZyB0aGUgcmVwb3J0IGRhdGE6XG5cbiAgYGBgXG4gICAga2luZDogUG9kXG4gICAgYXBpVmVyc2lvbjogdjFcbiAgICBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHZvbHVtZS1zaGVsbFxuICAgICAgbmFtZXNwYWNlOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yXG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvclxuICAgIHNwZWM6XG4gICAgICB2b2x1bWVzOlxuICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOlxuICAgICAgICAgIGNsYWltTmFtZTogY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1kYXRhXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiB2b2x1bWUtc2hlbGxcbiAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgY29tbWFuZDogWydzbGVlcCcsICdpbmZpbml0eSddXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiBjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHNcbiAgICAgICAgICBtb3VudFBhdGg6IC90bXAvY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvci1yZXBvcnRzXG4gIGBgYFxuXG4yLiBVc2UgcnN5bmMgdG8gY29weSBhbGwgb2YgdGhlIGZpbGVzIHJlYWR5IGZvciB1cGxvYWQgZnJvbSB0aGUgUFZDIHRvIGEgbG9jYWwgZm9sZGVyOlxuXG4gIGBgYFxuICAkIG9jIHJzeW5jIHZvbHVtZS1zaGVsbDovdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQgbG9jYWwvcGF0aC90by9zYXZlL2ZvbGRlclxuICBgYGBcblxuMy4gT25jZSBjb25maXJtaW5nIHRoYXQgdGhlIGZpbGVzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgY29waWVkLCB1c2UgcnNoIHRvIGNvbm5lY3QgdG8gdGhlIHBvZCBhbmQgZGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdXBsb2FkIGZvbGRlciBzbyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBpbiBzdG9yYWdlOlxuXG4gIGBgYFxuICAkIG9jIHJzaCB2b2x1bWUtc2hlbGxcbiAgJCBybSAvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cy91cGxvYWQvKlxuICBgYGBcblxuNC4gKE9wdGlvbmFsKSBEZWxldGUgdGhlIHBvZCB0aGF0IHdhcyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIFBWQzpcblxuICBgYGBcbiAgJCBvYyBkZWxldGUgLWYgdm9sdW1lLXNoZWxsLnlhbWxcbiAgYGBgXG5cbiMjIENyZWF0ZSBhbiBJbnRlZ3JhdGlvblxuSW4gYSByZXN0cmljdGVkIG5ldHdvcmssIHRoZSBgY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvcmAgY2Fubm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFuIGludGVncmF0aW9uLiBUaGlzIHByb2Nlc3MgbXVzdCBiZSBkb25lIG1hbnVhbGx5LiBJbiB0aGUgY29uc29sZS5yZWRoYXQuY29tIHBsYXRmb3JtLCBvcGVuIHRoZSBbSW50ZWdyYXRpb25zIG1lbnVdKGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL3NldHRpbmdzL2ludGVncmF0aW9ucy8pIHRvIGJlZ2luIGFkZGluZyBhbiBPcGVuU2hpZnQgaW50ZWdyYXRpb24gdG8gQ29zdCBNYW5hZ2VtZW50OlxuXG5QcmVyZXF1aXNpdGVzOlxuKiBUaGUgY2x1c3RlciBpZGVudGlmaWVyIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ29zdE1hbmFnZW1lbnRNZXRyaWNzQ29uZmlnIENSLCB0aGUgY2x1c3RlciBPdmVydmlldyBwYWdlLCBvciB0aGUgY2x1c3RlciBIZWxwIFx1MDAzZSBBYm91dC5cblxuQ3JlYXRpbmcgYW4gaW50ZWdyYXRpb246XG4xLiBOYXZpZ2F0ZSB0byB0aGUgSW50ZWdyYXRpb25zIG1lbnVcbjIuIFNlbGVjdCB0aGUgYFJlZCBIYXRgIHRhYlxuMy4gQ3JlYXRlIGEgbmV3IGBSZWQgSGF0IE9wZW5zaGlmdCBDb250YWluZXIgUGxhdGZvcm1gIGludGVncmF0aW9uOlxuICAgICogZ2l2ZSB0aGUgaW50ZWdyYXRpb24gYSB1bmlxdWUgbmFtZVxuICAgICogYWRkIHRoZSBDb3N0IE1hbmFnZW1lbnQgYXBwbGljYXRpb25cbiAgICAqIGFkZCB0aGUgY2x1c3RlciBpZGVudGlmaWVyXG40LiBJbiB0aGUgU291cmNlIHdpemFyZCwgcmV2aWV3IHRoZSBkZXRhaWxzIGFuZCBjbGljayBgRmluaXNoYCB0byBjcmVhdGUgdGhlIHNvdXJjZS5cblxuIyMgVXBsb2FkIHRoZSByZXBvcnRzIHRvIGNvc3QgbWFuYWdtZW50XG5VcGxvYWRpbmcgcmVwb3J0cyB0byBjb3N0IG1hbmFnbWVudCBpcyBkb25lIHRocm91Z2ggY3VybDpcblxuICAgICQgY3VybCAtdnZ2diAtRiBcImZpbGU9QEZJTEVfTkFNRS50YXIuZ3o7dHlwZT1hcHBsaWNhdGlvbi92bmQucmVkaGF0LmhjY20udGFyK3RnelwiIGh0dHBzOi8vY29uc29sZS5yZWRoYXQuY29tL2FwaS9pbmdyZXNzL3YxL3VwbG9hZCAtSCBcIkF1dGhvcml6YXRpb246IEJlYXJlciAke0FDQ0VTU19UT0tFTn1cIlxuXG53aGVyZSBgRklMRV9OQU1FYCBpcyB0aGUgbmFtZSBvZiB0aGUgcmVwb3J0IHRvIHVwbG9hZC4gVGhlIGBBQ0NFU1NfVE9LRU5gIGlzIGFjcXVpcmVkIHVzaW5nIGEgW3NlcnZpY2UtYWNjb3VudF0oaHR0cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9hcnRpY2xlcy83MDM2MTk0KS5cbiIsImRpc3BsYXlOYW1lIjoiQ29zdCBNYW5hZ2VtZW50IE1ldHJpY3MgT3BlcmF0b3IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BDRXRMU0JIWlc1bGNtRjBiM0k2SUVGa2IySmxJRWxzYkhWemRISmhkRzl5SURJeUxqRXVNQ3dnVTFaSElFVjRjRzl5ZENCUWJIVm5MVWx1SUM0Z1UxWkhJRlpsY25OcGIyNDZJRFl1TURBZ1FuVnBiR1FnTUNrZ0lDMHRQZ284YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZ29KSUhacFpYZENiM2c5SWpBZ01DQXpNREFnTXpBd0lpQnpkSGxzWlQwaVpXNWhZbXhsTFdKaFkydG5jbTkxYm1RNmJtVjNJREFnTUNBek1EQWdNekF3T3lJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStDanh6ZEhsc1pTQjBlWEJsUFNKMFpYaDBMMk56Y3lJK0Nna3VjM1F3ZTJacGJHdzZJMFZGTURBd01EdDlDand2YzNSNWJHVStDangwYVhSc1pUNURiM04wTFdsamIyNDhMM1JwZEd4bFBnbzhaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S1BHYytDZ2s4Wno0S0NRazhjR0YwYUNCamJHRnpjejBpYzNRd0lpQmtQU0pOTWpNNUxqQXpOekF6TXpFc01URTNMakkzTlRFM04yTXRNeTR5TmpVNE1EZ3hMVFF4TGprNE9UQTFNVGd0TXpndU1qVTJOamd6TXkwM05DNDJORGN5TURFMUxUZ3hMakUzT0Rnek15MDNOQzQyTkRjeU1ERTFDZ2tKQ1dNdE1qY3VOVEkyTVRVek5pd3dMVFV6TGpFNE5qRXlOamNzTVRNdU9UazJNelE1TXkwMk9DNHhNVFUxTnpBeExETTNMak15TXpZd01EaGpMVEV1T0RZMk1UZ3dOQ3d3TFRNdU56TXlNelV6TWkwd0xqUTJOalUwTlRFdE5pNHdOalV3TnpnM0xUQXVORFkyTlRRMU1Rb0pDUWxqTFRNMExqVXlORE16TURFc01DMDJNaTQ1T0RNMU56YzNMREkzTGprNU1qWTVPRGN0TmpJdU9UZ3pOVGMzTnl3Mk1pNDVPRE0xTmpZemN6STNMams1TWpZNU9EY3NOakl1T1Rnek5UWTJNeXcyTWk0NU9ETTFOemMzTERZeUxqazRNelUyTmpOb01UWXVNekk1TURjeENna0pDV016TGpjek1qTTJNRGdzTUN3MkxqazVPREUzTmpZdE15NHlOalU0TURneExEWXVPVGs0TVRjMk5pMDJMams1T0RFMk9EbHpMVE11TWpZMU9ERTFOeTAyTGprNU9ERTJPRGt0Tmk0NU9UZ3hOelkyTFRZdU9UazRNVFk0T1dndE1UWXVNekk1TURjeENna0pDV010TWpjdU1EVTVOakV5TXl3d0xUUTRMalV5TURZM09UVXRNakV1T1RJM05qSTNOaTAwT0M0MU1qQTJOemsxTFRRNExqVXlNRFkzTlRkek1qRXVPVEkzTmpFeU15MDBPQzQxTWpBMk9ETXpMRFE0TGpVeU1EWTNPVFV0TkRndU5USXdOamd6TXdvSkNRbGpNaTQzT1RreU56QTJMREFzTlM0MU9UZzFOREV6TERBdU5EWTJOVFExTVN3NExqTTVOemd3TkRNc01DNDVNek13T1RBeVl6SXVOems1TWpjd05pd3dMalEyTmpVME5URXNOaTR3TmpVd056ZzNMVEF1T1RNek1Ea3dNaXczTGpRMk5EY3lNVGN0TXk0M016SXpOakE0Q2drSkNXTXhNaTR4TXpBeE56STNMVEl3TGprNU5EVXlPVGNzTXpRdU5USTBNek13TVMwek5DNHdOVGMzT0RnNExEVTRMak14T0RFeU1qa3RNelF1TURVM056ZzRPR016Tmk0NE5UY3dOekE1TERBc05qY3VNVGd5TkRrMU1Td3pNQzR6TWpVME1qQTBMRFkzTGpFNE1qUTVOVEVzTmpjdU1UZ3lORGM1T1FvSkNRbGpNQ3d6TGpjek1qTTFNeklzTXk0eU5qVTRNRGd4TERZdU9UazRNVGMyTml3MkxqazVPREUyT0Rrc05pNDVPVGd4TnpZMll6RTJMak15T1RBM01Td3dMREk1TGpnMU9Ea3dNaXd4TXk0MU1qazRNREEwTERJNUxqZzFPRGt3TWl3eU9TNDROVGc0TnpFMUNna0pDWE10TVRNdU5USTVPRE13T1N3eU9TNDROVGc0T0RZM0xUSTVMamcxT0Rrd01pd3lPUzQ0TlRnNE9EWTNZeTB6TGpjek1qTTJNRGdzTUMwMkxqazVPREUyT0Rrc015NHlOalU0TURneExUWXVPVGs0TVRZNE9TdzJMams1T0RFMk9Ea0tDUWtKY3pNdU1qWTFPREE0TVN3MkxqazVPREUyT0Rrc05pNDVPVGd4TmpnNUxEWXVPVGs0TVRZNE9XTXlOQzR5TmpBek16QXlMREFzTkRRdU16SXhOell5TVMweU1DNHdOakUwTVRZMkxEUTBMak15TVRjMk1qRXRORFF1TXpJeE56WXlNUW9KQ1FsRE1qYzJMak0yTURZeU5qSXNNVE01TGpJd01qYzRPVE1zTWpZd0xqQXpNVFUxTlRJc01USXdMalUwTURrNU1qY3NNak01TGpBek56QXpNekVzTVRFM0xqSTNOVEUzTjNvaUx6NEtDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXdJaUJrUFNKTk1qQTJMamcwTlRReU9EVXNNakl3TGpnME9ERTNOV00zTGpRMk5EY3dOalF0T0M0NE5qUXpOalEyTERFeExqWTJNell5TFRJd0xqVXlOems0TkRZc01URXVOall6TmpJdE16SXVOalU0TVRVM013b0pDUWxqTUMweU9DNDVNalUzT1RZMUxUSXpMak15TnpJMExUVXlMakkxTXpBek5qVXROVEl1TWpVek1ETTJOUzAxTWk0eU5UTXdNelkxY3kwMU1pNHlOVE13TkRReExESXpMak15TnpJMExUVXlMakkxTXpBME5ERXNOVEl1TWpVek1ETTJOUW9KQ1Fsek1qTXVNekkzTWpRM05pdzFNaTR5TlRNd05URTRMRFV5TGpJMU16QTBOREVzTlRJdU1qVXpNRFV4T0dNeE1TNHhPVGN3T0RJMUxEQXNNakV1T1RJM05qRXlNeTB6TGpjek1qTTJNRGdzTXpBdU16STFOREkwTWkwNUxqYzVOelF6T1Rac016RXVOekkxTURVeE9Td3pNQzQzT1RFNU5qRTNDZ2tKQ1dNeExqTTVPVFl5Tnpjc01TNHpPVGsyTWpjM0xETXVNalkxT0RJek5Dd3hMamcyTmpFNE1EUXNOUzR4TXpFNU9EZzFMREV1T0RZMk1UZ3dOR014TGpnMk5qRTVOVGNzTUN3ekxqY3pNak0yTURndE1DNDVNek13TnpVc05TNHhNekU1T0RnMUxUSXVNek15TnpNek1nb0pDUWxqTWk0M09Ua3lOekEyTFRJdU56azVNalUxTkN3eUxqYzVPVEkzTURZdE55NDBOalEzTURZMExEQXRNVEF1TWpZek9UYzNNVXd5TURZdU9EUTFOREk0TlN3eU1qQXVPRFE0TVRjMWVpQk5NVEk0TGpRMk5UZzJOakVzTVRnNExqRTVNREF4TnpjS0NRa0pZekF0TWpBdU9UazBOVEl5TVN3eE55NHlOakl4TnpZMUxUTTRMakkxTmpZNU9EWXNNemd1TWpVMk5qazROaTB6T0M0eU5UWTJPVGcyY3pNNExqSTFOalk1T0RZc01UY3VNall5TVRjMk5Td3pPQzR5TlRZMk9UZzJMRE00TGpJMU5qWTVPRFlLQ1FrSmN5MHhOeTR5TmpJeE56WTFMRE00TGpJMU5qWTVPRFl0TXpndU1qVTJOams0Tml3ek9DNHlOVFkyT1RnMlV6RXlPQzQwTmpVNE5qWXhMREl3T1M0eE9EUTFNems0TERFeU9DNDBOalU0TmpZeExERTRPQzR4T1RBd01UYzNlaUl2UGdvSlBDOW5QZ29KUEdjK0Nna0pQSEJoZEdnZ1kyeGhjM005SW5OME1DSWdaRDBpVFRFM05DNHlPREEyTXprMkxERTROUzQ0TnpNMk1URTFZekl1TWpFMk1qYzRNU3d3TGpZNE5qVXpPRGNzTkM0eE1UQXdNekV4TERFdU9EY3dOekV5TXl3MUxqWTNOall6TlRjc015NDFOVEkxTURVMUNna0pDV014TGpVMk5qWXdORFlzTVM0Mk9ERTRNRGcxTERJdU5UazROekE1TVN3ekxqWTBPVEkyTVRVc015NHdPVEUzTXpVNExEVXVPVEF5TkRBME9HTXdMalE1TnpZeE9UWXNNaTR5TlRNeE5ETXpMREF1TXpZek9UazROQ3cwTGpVeU9UTXlOelF0TUM0ME1EQTROemc1TERZdU9ERTVNek0xT1FvSkNRbGpMVEF1T1RFMk9URTFPU3d5TGpVeU1ETTROVGN0TWk0ME9ETTFNakExTERRdU5USTVNekV5TVMwMExqWTVPVGM1T0RZc05pNHdNVGMxT1RNMFl5MHlMakl4TmpJMk1qZ3NNUzQwT0RneU9ERXlMVFF1TmprMU1qQTFOeXd5TGpJM01UVTNOVGt0Tnk0ME5UQTFOelk0TERJdU16UTVPRGs1TXdvSkNRbDJOUzQxTURFMU5UWTBZekFzTUM0MU16UTBPRFE1TFRBdU1UY3dORGN4TWl3d0xqazNNakl4TXpjdE1DNDFNVEUwTlRrMExERXVNekUzTnpjNU5XTXRNQzR6TkRVMU5qVTRMREF1TXpRMU5UZ3hNUzB3TGpjNE16STVORGNzTUM0MU1UWXdOamMxTFRFdU16SXlNemczTnl3d0xqVXhOakEyTnpVS0NRa0phQzB6TGpZMk56WTVOREZqTFRBdU5UTTBOVEF3TVN3d0xUQXVPVGN5TWpFek55MHdMakUzTURRNE5qVXRNUzR6TVRjM056azFMVEF1TlRFMk1EWTNOV010TUM0ek5EQTVOekk1TFRBdU16UTFOVFkxT0Mwd0xqVXhOakEyTnpVdE1DNDNPRE15T1RRM0xUQXVOVEUyTURZM05TMHhMak14TnpjM09UVUtDUWtKZGkwMUxqVXdNVFUxTmpSakxUTXVOalkzTmprME1Td3dMVFl1T1RnNU9ESXlOQzB4TGpFME56STVNekV0T1M0NU5qZzJOVGcwTFRNdU5ETTNNekF4Tm1NdE1DNHpPREkwTkRZekxUQXVNemd5TkRNeExUQXVOakV5T0RJek5TMHdMamcwTXpJd01EY3RNQzQyT0RnNE5ESTRMVEV1TXpjM056QXdPQW9KQ1FsakxUQXVNRGMyTURNME5TMHdMalV6TkRRNE5Ea3NNQzR4TVRVeE9EZzJMVEV1TURNeU1UQTBOU3d3TGpVM016WXpPRGt0TVM0ME9EZ3lOVEEzYkRNdU9EazFOemd5TlMwekxqZzVPREE0TmpVS0NRa0pZekF1TXpBNE56QXdOaTB3TGpJek1ETTVNalVzTUM0Mk5qZ3hNRFl4TFRBdU16Z3lORE14TERFdU1Ea3lNREV3TlMwd0xqUTFOakUyTVRWak1DNDBNVGt5T1RZekxUQXVNRGM0TXpJek5Dd3dMamd5TURFMU9Ua3NNQzR3TXpZNE5Td3hMakl3TWpZd05qSXNNQzR6TkRBNU56STVDZ2tKQ1dNeExqRTBOekk1TXpFc01DNDNOalE0TnpjekxESXVORFF5TURRM01Td3hMakUwTnpNd09ETXNNeTQ0T1RNME5qTXhMREV1TVRRM016QTRNMmczTGpZNE1EazFOR013TGpreE5qazBOalFzTUN3eExqY3dNREkwTVRFdE1DNHpNakkxTkRBekxESXVNelE1T0RrNU15MHdMamszTWpJeE16Y0tDUWtKWXpBdU5qUTVOamc0Tnkwd0xqWTBPVFk0T0Rjc01DNDVOekl5TWprdE1TNDBOelEwTlRZNExEQXVPVGN5TWpJNUxUSXVORFkxTVRBek1XTXdMVEF1TmpnMk5UVTBMVEF1TWpJMU56WTVMVEV1TXpNMk1qSTNOQzB3TGpZNE5qVXpPRGN0TVM0NU5Ea3dNelUyQ2drSkNXTXRNQzQwTlRZeE5qRTFMVEF1TmpFeU9ESXpOUzB4TGpBek1qRXhPVGd0TVM0d016SXhNVGs0TFRFdU56RTROalF6TWkweExqSTJNalE1Tmpsc0xURXhMamd3TkRnME1ERXRNeTQwTXpjek1UWTVDZ2tKQ1dNdE1pNDFPVGcyT1RNNExUQXVOelkwT0RjM015MDBMamMzTXpVeU9URXRNaTR4TXpjNU5UUTNMVFl1TlRNek5qUTFOaTAwTGpFeU9EUTBPRFZqTFRFdU56VTNPREV5TlMweExqazROVGt3TURrdE1pNDNPRGMyTkRNMExUUXVNamMxT1RJME55MHpMakE1TkRBek9Ua3ROaTQ0TnpRMk16TTRDZ2tKQ1dNdE1DNHhOVEl3TlRNNExUSXVORFEyTmpVMU15d3dMak13TmpNNU5qVXROQzQzTVRneU16RXlMREV1TXpjMU16azJOeTAyTGpneE9UTXpOVGxqTVM0d05qZzVOamszTFRJdU1UQXhNRGc1TlN3eUxqVTVPRGN3T1RFdE15NDNPREk0T0RJM0xEUXVOVGcwTmpFdE5TNHdORFV6TnprMkNna0pDV014TGprNE5Ua3dNRGt0TVM0eU5UYzRPRGc0TERRdU1qQXlNVGM1TFRFdU9EZzVNVEk1Tml3MkxqWTBPRGcwT1RVdE1TNDRPRGt4TWprMmFEQXVNakkxTnpZNWRpMDFMalV3TVRVME1URUtDUWtKWXpBdE1DNDFNelExTURBeExEQXVNVGMxTURrME5pMHdMamszTWpJeU9Td3dMalV4TmpBMk56VXRNUzR6TVRjM09UUTRZekF1TXpRMU5UWTFPQzB3TGpNME5UVTRNVEVzTUM0M09ETXlOemswTFRBdU5URTJNRFV5TWl3eExqTXhOemMzT1RVdE1DNDFNVFl3TlRJeWFETXVOalkzTmprME1Rb0pDUWxqTUM0MU16a3dPVE1zTUN3d0xqazNOamd5TVRrc01DNHhOekEwTnpFeUxERXVNekl5TXpnM055d3dMalV4TmpBMU1qSmpNQzR6TkRBNU9EZ3lMREF1TXpRMU5UWTFPQ3d3TGpVeE1UUTFPVFFzTUM0M09ETXlPVFEzTERBdU5URXhORFU1TkN3eExqTXhOemM1TkRoMk5TNDFNREUxTkRFeENna0pDV016TGpZMk56WTVOREVzTUN3MkxqazFOelUyTlRNc01TNHhORGN5T1RNeExEa3VPRFl3TXpneU1Td3pMalF6TnpNd01UWmpNQzQwTlRZeE56WTRMREF1TXpneU5EUTJNeXd3TGpjeU16UXhPVElzTUM0NE5ETXlNREEzTERBdU9EQXhOelF5Tml3eExqTTNOelk0TlRVS0NRa0pZekF1TURjek56RTFNaXd3TGpVek5EVXdNREV0TUM0eE1UVXlNRE01TERBdU9Ua3dOalEyTkMwd0xqVTNNVE0xTURFc01TNHpOek13TnpjMGJDMHpMamc1T0RBNE5qVXNOQzR3TVRNeU56VXhDZ2tKQ1dNdE1DNHpNRGczTVRVNExEQXVNak13TXpreU5TMHdMalkyT0RFd05qRXNNQzR6T0RJME16RXRNUzR3T1RJd01UQTFMREF1TkRVMk1UWXhOV010TUM0ME1Ua3lPVFl6TERBdU1EYzRNekl6TkMwd0xqZ3lNREUxT1Rrc01DMHhMakl3TWpVNU1Ea3RNQzR5TWpVM05qa0tDUWtKWXkweExqRTBNamN4TlRVdE1DNDRORE15TURBM0xUSXVORFF5TURjM05pMHhMakkyTWpRNU5qa3RNeTQ0T1Rnd09EWTFMVEV1TWpZeU5EazJPV2d0Tnk0Mk56WXpOakV4WXkwd0xqa3hOamt4TlRrc01DMHhMamN3TURJeU5UZ3NNQzR6TWpJMU1qVXRNaTR6TkRrNE9Ua3pMREF1T1RjeU1qRXpOd29KQ1FsakxUQXVOalE1TmpnNE55d3dMalkwT1RZM016VXRNQzQ1TnpZNE1qRTVMREV1TkRjME5EUXhOUzB3TGprM05qZ3lNVGtzTWk0ME5qVXdPRGM1WXpBc01DNDJPRFkxTlRRc01DNHlNekF6T1RJMUxERXVNek0yTWpFeU1pd3dMalk1TVRFME5qa3NNUzQ1TkRrd016VTJDZ2tKQ1dNd0xqUTFOakUyTVRVc01DNDJNVEk0TWpNMUxERXVNRE15TVRFNU9Dd3hMakF6TWpFeE9UZ3NNUzQzTVRnMk5UZzBMREV1TWpZeU5EazJPVXd4TnpRdU1qZ3dOak01Tml3eE9EVXVPRGN6TmpFeE5Yb2lMejRLQ1R3dlp6NEtQQzluUGdvOEwzTjJaejRLIiwibWVkaWF0eXBlIjoiaW1hZ2Uvc3ZnK3htbCJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVydmVyc2lvbnMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJuYW1lc3BhY2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiZ2V0Il19LHsiYXBpR3JvdXBzIjpbIm1vbml0b3JpbmcuY29yZW9zLmNvbSJdLCJyZXNvdXJjZXMiOlsicHJvbWV0aGV1c2VzL2FwaSJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJnZXQiLCJ1cGRhdGUiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImFwcCI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7InR5cGUiOiJSZWNyZWF0ZSJ9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiYXBwIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiYWZmaW5pdHkiOnsibm9kZUFmZmluaXR5Ijp7InJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsibm9kZVNlbGVjdG9yVGVybXMiOlt7Im1hdGNoRXhwcmVzc2lvbnMiOlt7ImtleSI6Imt1YmVybmV0ZXMuaW8vYXJjaCIsIm9wZXJhdG9yIjoiSW4iLCJ2YWx1ZXMiOlsiYW1kNjQiLCJhcm02NCIsInBwYzY0bGUiLCJzMzkweCJdfSx7ImtleSI6Imt1YmVybmV0ZXMuaW8vb3MiLCJvcGVyYXRvciI6IkluIiwidmFsdWVzIjpbImxpbnV4Il19XX1dfX19LCJjb250YWluZXJzIjpbeyJhcmdzIjpbIi0tbGVhZGVyLWVsZWN0Il0sImNvbW1hbmQiOlsiL3Vzci9iaW4vY29zdG1hbmFnZW1lbnQtbWV0cmljcy1vcGVyYXRvciJdLCJlbnYiOlt7Im5hbWUiOiJJTl9DTFVTVEVSIiwidmFsdWUiOiJ0cnVlIn0seyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYwMzgyOGQ2ZTVjMWQwYWVmM2ExMDIzMGY1MTk5YWM3NjgzMjg1MzVjZGUxMmI1OTQ5MjBiOTgxMDY4NDU0NzciLCJsaXZlbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsicGF0aCI6Ii9oZWFsdGh6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjE1LCJwZXJpb2RTZWNvbmRzIjoyMH0sIm5hbWUiOiJtYW5hZ2VyIiwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjo1LCJwZXJpb2RTZWNvbmRzIjoxMH0sInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiNTAwbSIsIm1lbW9yeSI6IjUwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19fSwidGVybWluYXRpb25NZXNzYWdlUG9saWN5IjoiRmFsbGJhY2tUb0xvZ3NPbkVycm9yIiwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvdG1wL2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyIsIm5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLXJlcG9ydHMifV19XSwic2VjdXJpdHlDb250ZXh0Ijp7InJ1bkFzTm9uUm9vdCI6dHJ1ZSwic2VjY29tcFByb2ZpbGUiOnsidHlwZSI6IlJ1bnRpbWVEZWZhdWx0In19LCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNvbnRyb2xsZXItbWFuYWdlciIsInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjoxMCwidm9sdW1lcyI6W3sibmFtZSI6ImNvc3RtYW5hZ2VtZW50LW1ldHJpY3Mtb3BlcmF0b3ItcmVwb3J0cyJ9XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ1cGRhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiYXBwcyJdLCJyZXNvdXJjZXMiOlsiZGVwbG95bWVudHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsInBhdGNoIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIiwiZW5kcG9pbnRzIiwiZXZlbnRzIiwicGVyc2lzdGVudHZvbHVtZWNsYWltcyIsInBvZHMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiLCJzZXJ2aWNlcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvc3RtYW5hZ2VtZW50LW1ldHJpY3MtY2ZnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiY29zdG1hbmFnZW1lbnRtZXRyaWNzY29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLWNmZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvc3RtYW5hZ2VtZW50bWV0cmljc2NvbmZpZ3Mvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9ycy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJjbHVzdGVyc2VydmljZXZlcnNpb25zIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiY29zdCIsIm1hbmFnZW1lbnQiLCJ1c2FnZSIsIm1vbml0b3IiXSwibGlua3MiOlt7Im5hbWUiOiJDb3N0IE1hbmFnZW1lbnQgTWV0cmljcyBPcGVyYXRvciBzb3VyY2UgY29kZSByZXBvc2l0b3J5IiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3Qta29rdS9rb2t1LW1ldHJpY3Mtb3BlcmF0b3IifV0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6ImNvc3RtYW5hZ2VtZW50QHJlZGhhdC5jb20iLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQifV0sIm1hdHVyaXR5IjoiYWxwaGEiLCJtaW5LdWJlVmVyc2lvbiI6IjEuMjQuMCIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYwMzgyOGQ2ZTVjMWQwYWVmM2ExMDIzMGY1MTk5YWM3NjgzMjg1MzVjZGUxMmI1OTQ5MjBiOTgxMDY4NDU0NzciLCJuYW1lIjoiY29zdG1hbmFnZW1lbnQtbWV0cmljcy1yaGVsOC1vcGVyYXRvci1mMDM4MjhkNmU1YzFkMGFlZjNhMTAyMzBmNTE5OWFjNzY4MzI4NTM1Y2RlMTJiNTk0OTIwYjk4MTA2ODQ1NDc3LWFubm90YXRpb24ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Nvc3RtYW5hZ2VtZW50L2Nvc3RtYW5hZ2VtZW50LW1ldHJpY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYwMzgyOGQ2ZTVjMWQwYWVmM2ExMDIzMGY1MTk5YWM3NjgzMjg1MzVjZGUxMmI1OTQ5MjBiOTgxMDY4NDU0NzciLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJjb3N0bWFuYWdlbWVudC1tZXRyaWNzLW9wZXJhdG9yLjMuMy4wIiwidmVyc2lvbiI6IjMuMy4xIn19 + annotations: + alm-examples: |- + [ + { + "apiVersion": "costmanagement-metrics-cfg.openshift.io/v1beta1", + "kind": "CostManagementMetricsConfig", + "metadata": { + "name": "costmanagementmetricscfg-sample-v1beta1" + }, + "spec": { + "authentication": { + "type": "token" + }, + "packaging": { + "max_reports_to_store": 30, + "max_size_MB": 100 + }, + "prometheus_config": { + "collect_previous_data": true, + "context_timeout": 120, + "disable_metrics_collection_cost_management": false, + "disable_metrics_collection_resource_optimization": false + }, + "source": { + "check_cycle": 1440, + "create_source": false, + "name": "" + }, + "upload": { + "upload_cycle": 360, + "upload_toggle": true + } + } + } + ] + capabilities: Seamless Upgrades + categories: Monitoring + certified: "true" + containerImage: registry.redhat.io/costmanagement/costmanagement-metrics-rhel8-operator@sha256:f03828d6e5c1d0aef3a10230f5199ac768328535cde12b594920b98106845477 + createdAt: "2024-08-12T20:58:49Z" + description: A Golang-based OpenShift Operator that generates and uploads OpenShift + usage metrics to cost management. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + operatorframework.io/suggested-namespace: costmanagement-metrics-operator + operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", + "OpenShift Container Platform", "OpenShift Platform Plus"]' + operators.operatorframework.io/builder: operator-sdk-v1.35.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 + repository: https://github.com/project-koku/koku-metrics-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: CostManagementMetricsConfig is the Schema for the costmanagementmetricsconfig + API + displayName: Cost Management Metrics Config + kind: CostManagementMetricsConfig + name: costmanagementmetricsconfigs.costmanagement-metrics-cfg.openshift.io + version: v1beta1 + description: | + # Cost Management Metrics Operator + ## Introduction + The `costmanagement-metrics-operator` is a component of the [cost managment](https://access.redhat.com/documentation/en-us/cost_management_service) service for Openshift. The operator runs on the latest supported versions of Openshift. This operator obtains OpenShift usage data by querying Prometheus every hour to create metric reports that it uploads to Cost Management at [console.redhat.com](https://console.redhat.com) to be processed. For more information, reach out to . + + This operator is capable of functioning within a disconnected/restricted network (aka air-gapped mode). In this mode, the operator will store the packaged reports for manual retrieval instead of being uploaded to Cost Management. Documentation for installing an operator within a restricted network can be found [here](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). + + ## Features and Capabilities + #### Metrics collection: + The Cost Management Metrics Operator (`costmanagement-metrics-operator`) collects the metrics required for Cost Management by: + * Querying Prometheus to gather the necessary metrics for Cost Management. + * Writing the results of Prometheus queries to CSV report files. + * Packaging the CSV report files into tarballs. + + #### Additional Capabilities: + * Resource Optimization metrics collection. + * The operator can be configured to gather all previous data within the configured retention period or a maximum of 90 days. The default data collection period is the 14 previous days. This setting is only applicable to newly created CostManagementMetricsConfigs. + * The operator can be configured to automatically upload the packaged reports to Cost Management through Red Hat Insights Ingress service. + * The operator can create an integration in console.redhat.com. An integration is required for Cost Management to process the uploaded packages. + * PersistentVolumeClaim (PVC) configuration: The CostManagementMetricsConfig CR can accept a PVC definition and the operator will create and mount the PVC. If one is not provided, a default PVC will be created. + * Restricted network installation: this operator can function on a restricted network. In this mode, the operator stores the packaged reports for manual retrieval. + + ## New in v3.3.1: + * Optimize memory usage when reading CSV files. + + ## New in v3.3.0: + * Storage reports now contain `node`, `csi_driver`, and `csi_volume_handle` fields. + * The PVC capacity is now populated using the `kube_persistentvolume_capacity_bytes` metric instead of `kubelet_volume_stats_capacity_bytes`. + * To receive resource optimization recommendations for your namespaces, you must now first enable each namespace. To enable a namespace, label it with `insights_cost_management_optimizations='true'`. In the CLI, run: + ``` + oc label namespace NAMESPACE insights_cost_management_optimizations="true" --overwrite=true + ``` + * __DEPRECATION NOTICE__: Basic authentication is deprecated and will not be supported beyond December 31, 2024. If the default token authentication method cannot be used, you must switch to [service account](https://console.redhat.com/iam/service-accounts) authentication ([more on creating a service account](https://access.redhat.com/articles/7036194)). Once you have created your service account, follow [this documentation](https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/integrating_openshift_container_platform_data_into_cost_management/index#service-account-authentication_adding-an-ocp-int) on how to configure your operator to use service account authentication. Service-accounts must also be used if manually uploading payloads to console.redhat.com. + + ## New in v3.2.1: + * The minimum supported configuration for `upload_cycle` is now 60 (minutes). + * (Bugfix) many-to-many matching not allowed query fix. + * (Bugfix) Sequentially collect data during initial install. + + ## New in v3.2.0: + * Support for amd64, arm64, ppc64le, s390x architectures. + * add liveness and readiness probes to controller Pod. + * update pod security settings so that the controller Pod can run in Restricted mode [more info](https://sdk.operatorframework.io/docs/best-practices/pod-security-standards/). + + ## New in v3.1.0: + * Add service-account authentication type. + * __Deprecation Notice:__ Basic authentication is deprecated and will be removed in a future version of the operator. + + ## New in v3.0.0: + * Daily report generation: Operator versions prior to v3.0.0 generated sequential reports. Now, reports are generated starting at 0:00 UTC. Any payloads generated throughout a given day will contain all data starting from 0:00 UTC. Once the next day starts, the previous day's reports are packaged, and the new report again starts at 0:00 UTC for the current day. + * Failed query retry: In an attempt to prevent missing data, the operator will retry queries from the last successful query time, up to 5 times. + + ## New in v2.0.0: + * Adds metrics and report generation for resource optimization. This feature will collect additional usage metrics and create a new report in the payload. These metrics are enabled by default, but can be disabled by setting `disable_metrics_collection_resource_optimization` to `true`. + * Collect all available Prometheus data upon CR creation. This feature only applies to newly created CostManagementMetricsConfigs. The operator will check the monitoring stack configuration in the `openshift-monitoring` namespace. The operator will use the `retention` period set in the `cluster-monitoring-config` ConfigMap if defined, up to a maximum of 90 days. Otherwise it will fall back to collecting 14 days of data, if available. This data collection may be disabled by setting `collect_previous_data` to `false`. Turning this feature off results in the operator collecting metrics from the time the CostManagementMetricsConfig is created, forward. + + ## Limitations and Pre-Requisites + #### Limitations (Potential for metrics data loss) + * An integration **must** exist in console.redhat.com for an uploaded payload to be processed by Cost Management. The operator sends the payload to the Red Hat Insights Ingress service which usually returns successfully, but the operator does not currently confirm with Cost Management that the payload was processed. After Ingress accepts the uploaded payload, it is deleted from the operator. If the data within the payload is not processed, a gap will be introduced in the usage metrics. Data may be recollected by deleting the `CostManagementMetricsConfig`, creating a new `CostManagementMetricsConfig`, and setting `collect_previous_data: true`. This re-collection of data will gather all data stored in Prometheus, up to 90 days. + + **Note** The following limitations are specific to operators configured to run in a restricted network: + * The `costmanagement-metrics-operator` will not be able to generate new reports if the PVC storage is full. If this occurs, the reports must be manually deleted from the PVC so that the operator can function as normal. + * The default report retention is 30 reports (about one week's worth of data). The reports must be manually downloaded and uploaded to console.redhat.com every week, or they will be deleted and the data will be lost. + + #### Storage configuration prerequisite + The operator will attempt to create and use the following PVC when installed: + + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: costmanagement-metrics-operator-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + + If a different PVC should be utilized, a valid PVC should be specified in the CostManagementMetricsConfig CR as described in the appropriate section below. The PVC to be used may exist already, or the operator will attempt to create it. + + To use the default specification, the follow assumptions must be met: + 1. A default StorageClass is defined. + 2. Dynamic provisioning for that default StorageClass is enabled. + + If these assumptions are not met, the operator will not deploy correctly. In these cases, storage must be manually configured. After configuring storage, a valid PVC template should be supplied in the `volume_claim_template` spec of the CostManagementMetricsConfig CR. + + ## Configurable parameters: + * `authentication`: + * `type: token` -> The authentication method for connecting to `console.redhat.com`. The default and preferred method is `token`. `basic` (deprecated) and `service-account` authentication methods are used when the openshift-config pull-secret does not contain a token for `console.redhat.com`. + * `secret_name` -> The Secret used by the operator when the authentication type is `basic` (deprecated) or `service-account`. This parameter is required **only if** the authentication type is `basic` (deprecated) or `service-account`. + * `packaging`: + * `max_reports_to_store: 30` -> The number of reports to store when configured in air-gapped mode. The default is 30, with a minimum of 1 and no maximum. When the operator is not configured in air-gapped mode, this parameter has no effect. Reports are removed as soon as they are uploaded. + * `max_size: 100` -> The maximum size for packaged files in Megabytes prior to compression. The default is 100, with a minimum of 1 and maximum of 100. + * `prometheus_config`: + * `collect_previous_data: true` -> Toggle for collecting all available data in Prometheus **upon CostManagementMetricsConfig creation** (This parameter will start to appear in CostManagementMetricsConfigs that were created prior to v2.0.0 but will not have any effect unless the CostManagementMetricsConfig is deleted and recreated). The default is `true`. The operator will first look for a `retention` period in the `cluster-monitoring-config` ConfigMap in the `openshift-monitoring` namespace and gather data over this time period up to a maximum of 90 days. If this configuration is not set, the default is 14 days. (New in v2.0.0) + * `disable_metrics_collection_cost_management: false` -> Toggle for disabling the collection of metrics for Cost Management. The default is false. (New in v2.0.0) + * `disable_metrics_collection_resource_optimization: false` -> Toggle for disabling the collection of metrics for Resource Optimization. The default is false. (New in v2.0.0) + * `context_timeout: 120` -> The time in seconds before Prometheus queries timeout due to exceeding context timeout. The default is 120, with a minimum of 10 and maximum of 180. + * `source`: + * `name: ''` -> The name of the integration the operator will create in `console.redhat.com`. If the name value is empty, the default intergration name is the **cluster id**. + * `create_source: false` -> Toggle for whether or not the operator will create the integration in `console.redhat.com`. The default is False. This parameter should be switched to True when an integration does not already exist in `console.redhat.com` for this cluster. + * `check_cycle: 1440` -> The time in minutes to wait between checking if an integration exists for this cluster. The default is 1440 minutes (24 hrs). + * `upload`: + * `upload_cycle: 360` -> The time in minutes between payload uploads. The default is 360 (6 hours), minimum is 60 (1 hour). + * `upload_toggle: true` -> Toggle to turn upload on or off -> true means upload, false means do not upload (false == air-gapped mode). The default is `true`. + * `upload_wait` -> The amount of time (in seconds) to pause before uploading a payload. The default is a random number between 0 and 35. This is used to decrease service load, but may be set to `0` if desired. + * `volume_claim_template` -> see the "Storage configuration prerequisite" section above. + + ## Configure the costmanagement-metrics-operator + **Note** There are separate instructions for configuring the `costmanagement-metrics-operator` to run in a restricted network. + ##### Configure authentication + The default authentication for the operator is `token`. No further steps are required to configure token authentication. If `basic` (deprecated) or `service-account` is the preferred authentication method, a Secret which holds the credentials must be created: + 1. On the left navigation pane, select `Workloads` -> `Secrets` -> select Project: `costmanagement-metrics-operator` -> `Create` -> `Key/Value Secret` + 2. Give the Secret a name and add 2 keys (all lowercase) for the respective authentication type. The values for these keys correspond to console.redhat.com credentials: + * basic auth (deprecated): `username` and `password` + * service-account auth: `client_id` and `client_secret` + + 3. Select `Create`. + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. For `basic` (deprecated) or `service-account` authentication, edit the following values in the spec: + * Replace `authentication: type:` with `basic` or `service-account`. + * Add the `secret_name` field under `authentication`, and set it equal to the name of the authentication Secret that was created above. The spec should look similar to the following: + + * for basic auth type (deprecated) + ``` + authentication: + secret_name: SECRET-NAME + type: basic + ``` + + * for service-account auth type + ``` + authentication: + secret_name: SECRET-NAME + type: service-account + ``` + + 3. To configure the costmanagement-metrics-operator to create a cost management integration, edit the following values in the `source` field: + * Replace the `name` field value with the preferred name of the integration to be created. + * Replace the `create_source` field value with `true`. + + **Note:** if the integration already exists, replace the empty string value of the `name` field with the existing name, and leave `create_source` as false. This will allow the operator to confirm that the integration exists. + + 4. If not specified, the operator will create a default PersistentVolumeClaim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec: + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 5. Select `Create`. + + # Restricted Network Usage (disconnected/air-gapped mode) + ## Installation + To install the `costmanagement-metrics-operator` in a restricted network, follow the [olm documentation](https://docs.openshift.com/container-platform/latest/operators/admin/olm-restricted-networks.html). The operator is found in the `community-operators` Catalog in the `registry.redhat.io/redhat/community-operator-index:latest` Index. If pruning the index before pushing to the mirrored registry, keep the `costmanagement-metrics-operator` package. + + Within a restricted network, the operator queries prometheus to gather the necessary usage metrics, writes the query results to CSV files, and packages the reports for storage in the PVC. These reports then need to be manually downloaded from the cluster and uploaded to [console.redhat.com](https://console.redhat.com). + + ## Configure the costmanagement-metrics-operator for a restricted network + ##### Create the CostManagementMetricsConfig + Configure the costmanagement-metrics-operator by creating a `CostManagementMetricsConfig`. + 1. On the left navigation pane, select `Operators` -> `Installed Operators` -> `costmanagement-metrics-operator` -> `CostManagementMetricsConfig` -> `Create Instance`. + 2. Specify the desired storage. If not specified, the operator will create a default Persistent Volume Claim called `costmanagement-metrics-operator-data` with 10Gi of storage. To configure the costmanagement-metrics-operator to use or create a different PVC, edit the following in the spec: + * Add the desired configuration to the `volume_claim_template` field in the spec (below is only a template. Any _valid_ `PersistentVolumeClaim` may be defined here): + + ``` + volume_claim_template: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: + spec: + storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + ``` + + **Note:** If using the YAML View, the `volume_claim_template` field must be added to the spec + 3. (Optional) Specify the desired report retention. The operator will retain 30 reports by default. This corresponds to approximately one week's worth of data if using the default packaging cycle. To modify the number of retained reports: + * Change the `packaging` spec field `max_reports_to_store` to the desired number of reports to retain. Once this max number is reached, the operator will start removing the oldest packages remaining on the PVC: + + ``` + packaging: + max_size_MB: 100 + max_reports_to_store: 30 + ``` + + **Note:** The number of retained reports directly affects the frequency that reports must be manually downloaded from the PVC. Take caution in setting this to a higher number of reports, as the operator cannot write data to the PVC if the storage is full. + 4. To configure the operator to perform in a restricted network, set the `upload_toggle` to `false`: + + ``` + upload: + upload_cycle: 360 + upload_toggle: false + ``` + + 5. Select `Create`. + + ## Download reports from the Operator & clean up the PVC + If the `costmanagement-metrics-operator` is configured to run in a restricted network, the metric reports will not automatically upload to cost managment. Instead, they need to be manually copied from the PVC for upload to [console.redhat.com](https://console.redhat.com). The default configuration saves one week of reports which means the process of downloading and uploading reports should be repeated weekly to prevent loss of metrics data. To download the reports, complete the following steps: + 1. Create the following Pod, ensuring the `claimName` matches the PVC containing the report data: + + ``` + kind: Pod + apiVersion: v1 + metadata: + name: volume-shell + namespace: costmanagement-metrics-operator + labels: + app: costmanagement-metrics-operator + spec: + volumes: + - name: costmanagement-metrics-operator-reports + persistentVolumeClaim: + claimName: costmanagement-metrics-operator-data + containers: + - name: volume-shell + image: busybox + command: ['sleep', 'infinity'] + volumeMounts: + - name: costmanagement-metrics-operator-reports + mountPath: /tmp/costmanagement-metrics-operator-reports + ``` + + 2. Use rsync to copy all of the files ready for upload from the PVC to a local folder: + + ``` + $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder + ``` + + 3. Once confirming that the files have been successfully copied, use rsh to connect to the pod and delete the contents of the upload folder so that they are no longer in storage: + + ``` + $ oc rsh volume-shell + $ rm /tmp/costmanagement-metrics-operator-reports/upload/* + ``` + + 4. (Optional) Delete the pod that was used to connect to the PVC: + + ``` + $ oc delete -f volume-shell.yaml + ``` + + ## Create an Integration + In a restricted network, the `costmanagement-metrics-operator` cannot automatically create an integration. This process must be done manually. In the console.redhat.com platform, open the [Integrations menu](https://console.redhat.com/settings/integrations/) to begin adding an OpenShift integration to Cost Management: + + Prerequisites: + * The cluster identifier which can be found in the CostManagementMetricsConfig CR, the cluster Overview page, or the cluster Help > About. + + Creating an integration: + 1. Navigate to the Integrations menu + 2. Select the `Red Hat` tab + 3. Create a new `Red Hat Openshift Container Platform` integration: + * give the integration a unique name + * add the Cost Management application + * add the cluster identifier + 4. In the Source wizard, review the details and click `Finish` to create the source. + + ## Upload the reports to cost managment + Uploading reports to cost managment is done through curl: + + $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://console.redhat.com/api/ingress/v1/upload -H "Authorization: Bearer ${ACCESS_TOKEN}" + + where `FILE_NAME` is the name of the report to upload. The `ACCESS_TOKEN` is acquired using a [service-account](https://access.redhat.com/articles/7036194). + displayName: Cost Management Metrics Operator + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - cost + - management + - usage + - monitor + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + operatorframework.io/os.linux: supported + links: + - name: Cost Management Metrics Operator source code repository + url: https://github.com/project-koku/koku-metrics-operator + maintainers: + - email: costmanagement@redhat.com + name: costmanagement + maturity: alpha + minKubeVersion: 1.24.0 + provider: + name: Red Hat relatedImages: - image: registry.redhat.io/costmanagement/costmanagement-metrics-operator-bundle@sha256:01cab18a6af3cc819a936ce434004d5dce4495474e62bc116643eb753c25cd91 name: ""