diff --git a/pkg/model/resources/nodeup.go b/pkg/model/resources/nodeup.go index 012eb49c5934a..d958cae29df76 100644 --- a/pkg/model/resources/nodeup.go +++ b/pkg/model/resources/nodeup.go @@ -120,9 +120,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/pkg/model/tests/data/bootstrapscript_0.txt b/pkg/model/tests/data/bootstrapscript_0.txt index 61745804e3300..e331d6596ea4c 100644 --- a/pkg/model/tests/data/bootstrapscript_0.txt +++ b/pkg/model/tests/data/bootstrapscript_0.txt @@ -109,9 +109,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/pkg/model/tests/data/bootstrapscript_1.txt b/pkg/model/tests/data/bootstrapscript_1.txt index 8a9278fd28e59..74a5346896af2 100644 --- a/pkg/model/tests/data/bootstrapscript_1.txt +++ b/pkg/model/tests/data/bootstrapscript_1.txt @@ -109,9 +109,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/pkg/model/tests/data/bootstrapscript_2.txt b/pkg/model/tests/data/bootstrapscript_2.txt index 8a9278fd28e59..74a5346896af2 100644 --- a/pkg/model/tests/data/bootstrapscript_2.txt +++ b/pkg/model/tests/data/bootstrapscript_2.txt @@ -109,9 +109,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/pkg/model/tests/data/bootstrapscript_3.txt b/pkg/model/tests/data/bootstrapscript_3.txt index 950d9777eea51..7587eb4e21f2f 100644 --- a/pkg/model/tests/data/bootstrapscript_3.txt +++ b/pkg/model/tests/data/bootstrapscript_3.txt @@ -109,9 +109,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/pkg/model/tests/data/bootstrapscript_4.txt b/pkg/model/tests/data/bootstrapscript_4.txt index 38a160e876d2b..b2d602b8a0a31 100644 --- a/pkg/model/tests/data/bootstrapscript_4.txt +++ b/pkg/model/tests/data/bootstrapscript_4.txt @@ -109,9 +109,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/pkg/model/tests/data/bootstrapscript_5.txt b/pkg/model/tests/data/bootstrapscript_5.txt index 38a160e876d2b..b2d602b8a0a31 100644 --- a/pkg/model/tests/data/bootstrapscript_5.txt +++ b/pkg/model/tests/data/bootstrapscript_5.txt @@ -109,9 +109,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/additional_cidr/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/additional_cidr/cloudformation.json.extracted.yaml index 05ef871f0856f..c299546c12a6e 100644 --- a/tests/integration/update_cluster/additional_cidr/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/additional_cidr/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersadditionalcidrex } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -390,9 +387,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodesadditionalcidrexamplecom.Propert } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1a.masters.additionalcidr.example.com_user_data b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1a.masters.additionalcidr.example.com_user_data index effed6270d8eb..4cc1f2faae96d 100644 --- a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1a.masters.additionalcidr.example.com_user_data +++ b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1a.masters.additionalcidr.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1b.masters.additionalcidr.example.com_user_data b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1b.masters.additionalcidr.example.com_user_data index b82dee7b3bfa1..1eaad23812409 100644 --- a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1b.masters.additionalcidr.example.com_user_data +++ b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1b.masters.additionalcidr.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1c.masters.additionalcidr.example.com_user_data b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1c.masters.additionalcidr.example.com_user_data index b331bbf193b67..dfd7db6bb6ac8 100644 --- a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1c.masters.additionalcidr.example.com_user_data +++ b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1c.masters.additionalcidr.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_nodes.additionalcidr.example.com_user_data b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_nodes.additionalcidr.example.com_user_data index ef3053e128313..029a0e04cc74f 100644 --- a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_nodes.additionalcidr.example.com_user_data +++ b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_nodes.additionalcidr.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/additional_user-data/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/additional_user-data/cloudformation.json.extracted.yaml index e0bc0bd01bc91..1c6cee950a64b 100644 --- a/tests/integration/update_cluster/additional_user-data/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/additional_user-data/cloudformation.json.extracted.yaml @@ -103,9 +103,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersadditionaluserda } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -419,9 +416,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodesadditionaluserdataexamplecom.Pro } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_master-us-test-1a.masters.crosszone.example.com_user_data b/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_master-us-test-1a.masters.crosszone.example.com_user_data index e8af32ad8d965..db39d24afec24 100644 --- a/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_master-us-test-1a.masters.crosszone.example.com_user_data +++ b/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_master-us-test-1a.masters.crosszone.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_nodes.crosszone.example.com_user_data b/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_nodes.crosszone.example.com_user_data index 098453fc036bc..60ce883d4105f 100644 --- a/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_nodes.crosszone.example.com_user_data +++ b/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_nodes.crosszone.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_master-us-test-1a.masters.bastionuserdata.example.com_user_data b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_master-us-test-1a.masters.bastionuserdata.example.com_user_data index 21b0194da0c2e..f8b3665ea6417 100644 --- a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_master-us-test-1a.masters.bastionuserdata.example.com_user_data +++ b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_master-us-test-1a.masters.bastionuserdata.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_nodes.bastionuserdata.example.com_user_data b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_nodes.bastionuserdata.example.com_user_data index 1282db165b48e..7cebc7230407e 100644 --- a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_nodes.bastionuserdata.example.com_user_data +++ b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_nodes.bastionuserdata.example.com_user_data @@ -102,9 +102,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml index 5126f3820bcf1..39d8688a93364 100644 --- a/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amasterscomplexexampleco } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -392,9 +389,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodescomplexexamplecom.Properties.Use } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/complex/data/aws_launch_configuration_master-us-test-1a.masters.complex.example.com_user_data b/tests/integration/update_cluster/complex/data/aws_launch_configuration_master-us-test-1a.masters.complex.example.com_user_data index 7b9df836aef35..731737e8968a4 100644 --- a/tests/integration/update_cluster/complex/data/aws_launch_configuration_master-us-test-1a.masters.complex.example.com_user_data +++ b/tests/integration/update_cluster/complex/data/aws_launch_configuration_master-us-test-1a.masters.complex.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/complex/data/aws_launch_configuration_nodes.complex.example.com_user_data b/tests/integration/update_cluster/complex/data/aws_launch_configuration_nodes.complex.example.com_user_data index b18114e0db8b2..9ff06366b97bd 100644 --- a/tests/integration/update_cluster/complex/data/aws_launch_configuration_nodes.complex.example.com_user_data +++ b/tests/integration/update_cluster/complex/data/aws_launch_configuration_nodes.complex.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml index 481902bf5193d..4a3f44ca5659c 100644 --- a/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amasterscontainerdexampl } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -384,9 +381,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodescontainerdexamplecom.Properties. } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1a.masters.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1a.masters.existing-iam.example.com_user_data index 1aec9f250dd78..97eed3c18eef1 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1a.masters.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1a.masters.existing-iam.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1b.masters.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1b.masters.existing-iam.example.com_user_data index 52b9a6f30c3f8..7ece69c523a7b 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1b.masters.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1b.masters.existing-iam.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1c.masters.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1c.masters.existing-iam.example.com_user_data index 2def5095f2306..41c01b84fa236 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1c.masters.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1c.masters.existing-iam.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_nodes.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_nodes.existing-iam.example.com_user_data index 28734c924226b..3c6c129706d5d 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_nodes.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_nodes.existing-iam.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/existing_iam_cloudformation/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/existing_iam_cloudformation/cloudformation.json.extracted.yaml index 6e327824d8aca..222f6fd938a83 100644 --- a/tests/integration/update_cluster/existing_iam_cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/existing_iam_cloudformation/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -390,9 +387,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodesminimalexamplecom.Properties.Use } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1a.masters.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1a.masters.existingsg.example.com_user_data index 4525545ca3f5e..b0f89d2989659 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1a.masters.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1a.masters.existingsg.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1b.masters.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1b.masters.existingsg.example.com_user_data index 78172aa9589a4..1b414a86dc135 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1b.masters.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1b.masters.existingsg.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1c.masters.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1c.masters.existingsg.example.com_user_data index fffc696bf74e3..c09027c795041 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1c.masters.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1c.masters.existingsg.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_nodes.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_nodes.existingsg.example.com_user_data index 634bd1208ef15..d0182af66c99d 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_nodes.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_nodes.existingsg.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml index 0b7ab7869e30c..62ff6fd893bb7 100644 --- a/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersexternallbexampl } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -390,9 +387,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodesexternallbexamplecom.Properties. } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/externallb/data/aws_launch_configuration_master-us-test-1a.masters.externallb.example.com_user_data b/tests/integration/update_cluster/externallb/data/aws_launch_configuration_master-us-test-1a.masters.externallb.example.com_user_data index c820d08f6467a..f51f50bc4d0be 100644 --- a/tests/integration/update_cluster/externallb/data/aws_launch_configuration_master-us-test-1a.masters.externallb.example.com_user_data +++ b/tests/integration/update_cluster/externallb/data/aws_launch_configuration_master-us-test-1a.masters.externallb.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/externallb/data/aws_launch_configuration_nodes.externallb.example.com_user_data b/tests/integration/update_cluster/externallb/data/aws_launch_configuration_nodes.externallb.example.com_user_data index 61c0fbdfcb48e..b9a14cc8dfcda 100644 --- a/tests/integration/update_cluster/externallb/data/aws_launch_configuration_nodes.externallb.example.com_user_data +++ b/tests/integration/update_cluster/externallb/data/aws_launch_configuration_nodes.externallb.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_master-us-test-1a.masters.externalpolicies.example.com_user_data b/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_master-us-test-1a.masters.externalpolicies.example.com_user_data index 330c96fe9659d..8f8ef1fbd6b81 100644 --- a/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_master-us-test-1a.masters.externalpolicies.example.com_user_data +++ b/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_master-us-test-1a.masters.externalpolicies.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_nodes.externalpolicies.example.com_user_data b/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_nodes.externalpolicies.example.com_user_data index 0b7079a0aca5d..72c46c55cf18b 100644 --- a/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_nodes.externalpolicies.example.com_user_data +++ b/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_nodes.externalpolicies.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1a.masters.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1a.masters.ha.example.com_user_data index 4dec85e9de2bc..ed4c4b8d39a4f 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1a.masters.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1a.masters.ha.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1b.masters.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1b.masters.ha.example.com_user_data index 2ebe7172b4dc6..be49c040930b1 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1b.masters.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1b.masters.ha.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1c.masters.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1c.masters.ha.example.com_user_data index de7a870443f5c..a22d99d4ad326 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1c.masters.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1c.masters.ha.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/ha/data/aws_launch_configuration_nodes.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_configuration_nodes.ha.example.com_user_data index 241448a17f907..01ded442ce734 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_configuration_nodes.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_configuration_nodes.ha.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script index 6e28e7d674cff..4074b1dea800d 100644 --- a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script @@ -92,9 +92,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script index 3abe5538a20ba..1f3a1d37fd308 100644 --- a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script @@ -92,9 +92,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script index 1856e5c4abebc..275861f34e04c 100644 --- a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script @@ -92,9 +92,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script index 960723971d1fa..b727a8f0de1cc 100644 --- a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script @@ -92,9 +92,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml index 726d8b331fce6..bd4dfd1db9b37 100644 --- a/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amasterslaunchtemplatesexamplecom.Pro } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -392,9 +389,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1bmasterslaunchtemplatesexamplecom.Pro } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -690,9 +684,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1cmasterslaunchtemplatesexamplecom.Pro } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -988,9 +979,6 @@ Resources.AWSEC2LaunchTemplatenodeslaunchtemplatesexamplecom.Properties.LaunchTe } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1a.masters.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1a.masters.launchtemplates.example.com_user_data index 5986af7146aec..f5560305f3b45 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1a.masters.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1a.masters.launchtemplates.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICAjIFRPRE8oem1lcmx5bm4pOiBOb3cgd2UgUkVBTExZIGhhdmUgbm8gZXhjdXNlIG5vdCB0byBkbyB0aGUgcmVib290CiAgIyBvcHRpbWl6YXRpb24uCgogIGxvY2FsIC1yIG5vZGV1cF91cmxzPSggJChzcGxpdC1jb21tYXMgIiR7Tk9ERVVQX1VSTH0iKSApCiAgaWYgW1sgLW4gIiR7Tk9ERVVQX0hBU0g6LX0iIF1dOyB0aGVuCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0iJHtOT0RFVVBfSEFTSH0iCiAgZWxzZQogICMgVE9ETzogUmVtb3ZlPwogICAgZWNobyAiRG93bmxvYWRpbmcgc2hhMjU2IChub3QgZm91bmQgaW4gZW52KSIKICAgIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwLnNoYTI1NiAiIiAiJHtub2RldXBfdXJsc1tAXS8lLy5zaGEyNTZ9IgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9JChjYXQgbm9kZXVwLnNoYTI1NikKICBmaQoKICBlY2hvICJEb3dubG9hZGluZyBub2RldXAgKCR7bm9kZXVwX3VybHNbQF19KSIKICBkb3dubG9hZC1vci1idXN0IG5vZGV1cCAiJHtub2RldXBfaGFzaH0iICIke25vZGV1cF91cmxzW0BdfSIKCiAgY2htb2QgK3ggbm9kZXVwCn0KCmZ1bmN0aW9uIGRvd25sb2FkLXJlbGVhc2UoKSB7CiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwplbmNyeXB0aW9uQ29uZmlnOiBudWxsCmV0Y2RDbHVzdGVyczoKICBldmVudHM6CiAgICB2ZXJzaW9uOiAzLjIuMjQKICBtYWluOgogICAgdmVyc2lvbjogMy4yLjI0Cmt1YmVBUElTZXJ2ZXI6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBhcGlTZXJ2ZXJDb3VudDogMwogIGF1dGhvcml6YXRpb25Nb2RlOiBBbHdheXNBbGxvdwogIGJpbmRBZGRyZXNzOiAwLjAuMC4wCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgZW5hYmxlQWRtaXNzaW9uUGx1Z2luczoKICAtIE5hbWVzcGFjZUxpZmVjeWNsZQogIC0gTGltaXRSYW5nZXIKICAtIFNlcnZpY2VBY2NvdW50CiAgLSBQZXJzaXN0ZW50Vm9sdW1lTGFiZWwKICAtIERlZmF1bHRTdG9yYWdlQ2xhc3MKICAtIERlZmF1bHRUb2xlcmF0aW9uU2Vjb25kcwogIC0gTXV0YXRpbmdBZG1pc3Npb25XZWJob29rCiAgLSBWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gTm9kZVJlc3RyaWN0aW9uCiAgLSBSZXNvdXJjZVF1b3RhCiAgZXRjZFNlcnZlcnM6CiAgLSBodHRwOi8vMTI3LjAuMC4xOjQwMDEKICBldGNkU2VydmVyc092ZXJyaWRlczoKICAtIC9ldmVudHMjaHR0cDovLzEyNy4wLjAuMTo0MDAyCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1hcGlzZXJ2ZXI6djEuMTIuOQogIGluc2VjdXJlQmluZEFkZHJlc3M6IDEyNy4wLjAuMQogIGluc2VjdXJlUG9ydDogODA4MAogIGt1YmVsZXRQcmVmZXJyZWRBZGRyZXNzVHlwZXM6CiAgLSBJbnRlcm5hbElQCiAgLSBIb3N0bmFtZQogIC0gRXh0ZXJuYWxJUAogIGxvZ0xldmVsOiAyCiAgcmVxdWVzdGhlYWRlckFsbG93ZWROYW1lczoKICAtIGFnZ3JlZ2F0b3IKICByZXF1ZXN0aGVhZGVyRXh0cmFIZWFkZXJQcmVmaXhlczoKICAtIFgtUmVtb3RlLUV4dHJhLQogIHJlcXVlc3RoZWFkZXJHcm91cEhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Hcm91cAogIHJlcXVlc3RoZWFkZXJVc2VybmFtZUhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Vc2VyCiAgc2VjdXJlUG9ydDogNDQzCiAgc2VydmljZUNsdXN0ZXJJUFJhbmdlOiAxMDAuNjQuMC4wLzEzCiAgc3RvcmFnZUJhY2tlbmQ6IGV0Y2QzCmt1YmVDb250cm9sbGVyTWFuYWdlcjoKICBhbGxvY2F0ZU5vZGVDSURSczogdHJ1ZQogIGF0dGFjaERldGFjaFJlY29uY2lsZVN5bmNQZXJpb2Q6IDFtMHMKICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KICBjb25maWd1cmVDbG91ZFJvdXRlczogdHJ1ZQogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtY29udHJvbGxlci1tYW5hZ2VyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKICB1c2VTZXJ2aWNlQWNjb3VudENyZWRlbnRpYWxzOiB0cnVlCmt1YmVQcm94eToKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNwdVJlcXVlc3Q6IDEwMG0KICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXByb3h5OnYxLjEyLjkKICBsb2dMZXZlbDogMgprdWJlU2NoZWR1bGVyOgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtc2NoZWR1bGVyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2UtYW1kNjQ6My4wCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCm1hc3Rlckt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMAogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwogIHJlZ2lzdGVyU2NoZWR1bGFibGU6IGZhbHNlCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKLSA3MWI3YmM0NDRiYTBhNWY3Y2Q3YTM2ZTkxYjU5NGMxYzNkMTM4OTBlMTYwZDg1ZTBkZmRlMzhjNDZhMjRlNDE2QGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC91dGlscy50YXIuZ3osaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva29wcy9yZWxlYXNlcy9kb3dubG9hZC92MS4xNS4wL2xpbnV4LWFtZDY0LXV0aWxzLnRhci5neixodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6CkNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFhClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKZXRjZE1hbmlmZXN0czoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9tYWluLnlhbWwKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9ldmVudHMueWFtbApwcm90b2t1YmVJbWFnZToKICBoYXNoOiA0MmE5YzQzMjRmZTI2ZDYzY2UxMWYzZGQ3ODM2MzcxYmM5M2ZhMDZjYThmNDc5ODA3NzI4ZjM3NDZlMjcwNjFiCiAgbmFtZTogcHJvdG9rdWJlOjEuMTUuMAogIHNvdXJjZXM6CiAgLSBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9pbWFnZXMtcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4yLjI0CiAgbWFpbjoKICAgIHZlcnNpb246IDMuMi4yNAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDMKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjEyLjkKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMAogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZS1hbWQ2NDozLjAKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6Ci0gNzFiN2JjNDQ0YmEwYTVmN2NkN2EzNmU5MWI1OTRjMWMzZDEzODkwZTE2MGQ4NWUwZGZkZTM4YzQ2YTI0ZTQxNkBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6LGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9saW51eC1hbWQ2NC11dGlscy50YXIuZ3osaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L3V0aWxzLnRhci5negpDbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCkNvbmZpZ0Jhc2U6IG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCkluc3RhbmNlR3JvdXBOYW1lOiBtYXN0ZXItdXMtdGVzdC0xYQpUYWdzOgotIF9hdXRvbWF0aWNfdXBncmFkZXMKLSBfYXdzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL2FkZG9ucy9ib290c3RyYXAtY2hhbm5lbC55YW1sCmV0Y2RNYW5pZmVzdHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vbWFuaWZlc3RzL2V0Y2QvbWFpbi55YW1sCi0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vbWFuaWZlc3RzL2V0Y2QvZXZlbnRzLnlhbWwKcHJvdG9rdWJlSW1hZ2U6CiAgaGFzaDogNDJhOWM0MzI0ZmUyNmQ2M2NlMTFmM2RkNzgzNjM3MWJjOTNmYTA2Y2E4ZjQ3OTgwNzcyOGYzNzQ2ZTI3MDYxYgogIG5hbWU6IHByb3Rva3ViZToxLjE1LjAKICBzb3VyY2VzOgogIC0gaHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvaW1hZ2VzLXByb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9pbWFnZXMvcHJvdG9rdWJlLnRhci5negoKX19FT0ZfS1VCRV9FTlYKCmRvd25sb2FkLXJlbGVhc2UKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIGRvbmUgPT0iCg== diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1b.masters.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1b.masters.launchtemplates.example.com_user_data index a00b0b4fa25b6..8f8c8ec275a91 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1b.masters.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1b.masters.launchtemplates.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICAjIFRPRE8oem1lcmx5bm4pOiBOb3cgd2UgUkVBTExZIGhhdmUgbm8gZXhjdXNlIG5vdCB0byBkbyB0aGUgcmVib290CiAgIyBvcHRpbWl6YXRpb24uCgogIGxvY2FsIC1yIG5vZGV1cF91cmxzPSggJChzcGxpdC1jb21tYXMgIiR7Tk9ERVVQX1VSTH0iKSApCiAgaWYgW1sgLW4gIiR7Tk9ERVVQX0hBU0g6LX0iIF1dOyB0aGVuCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0iJHtOT0RFVVBfSEFTSH0iCiAgZWxzZQogICMgVE9ETzogUmVtb3ZlPwogICAgZWNobyAiRG93bmxvYWRpbmcgc2hhMjU2IChub3QgZm91bmQgaW4gZW52KSIKICAgIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwLnNoYTI1NiAiIiAiJHtub2RldXBfdXJsc1tAXS8lLy5zaGEyNTZ9IgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9JChjYXQgbm9kZXVwLnNoYTI1NikKICBmaQoKICBlY2hvICJEb3dubG9hZGluZyBub2RldXAgKCR7bm9kZXVwX3VybHNbQF19KSIKICBkb3dubG9hZC1vci1idXN0IG5vZGV1cCAiJHtub2RldXBfaGFzaH0iICIke25vZGV1cF91cmxzW0BdfSIKCiAgY2htb2QgK3ggbm9kZXVwCn0KCmZ1bmN0aW9uIGRvd25sb2FkLXJlbGVhc2UoKSB7CiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwplbmNyeXB0aW9uQ29uZmlnOiBudWxsCmV0Y2RDbHVzdGVyczoKICBldmVudHM6CiAgICB2ZXJzaW9uOiAzLjIuMjQKICBtYWluOgogICAgdmVyc2lvbjogMy4yLjI0Cmt1YmVBUElTZXJ2ZXI6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBhcGlTZXJ2ZXJDb3VudDogMwogIGF1dGhvcml6YXRpb25Nb2RlOiBBbHdheXNBbGxvdwogIGJpbmRBZGRyZXNzOiAwLjAuMC4wCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgZW5hYmxlQWRtaXNzaW9uUGx1Z2luczoKICAtIE5hbWVzcGFjZUxpZmVjeWNsZQogIC0gTGltaXRSYW5nZXIKICAtIFNlcnZpY2VBY2NvdW50CiAgLSBQZXJzaXN0ZW50Vm9sdW1lTGFiZWwKICAtIERlZmF1bHRTdG9yYWdlQ2xhc3MKICAtIERlZmF1bHRUb2xlcmF0aW9uU2Vjb25kcwogIC0gTXV0YXRpbmdBZG1pc3Npb25XZWJob29rCiAgLSBWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gTm9kZVJlc3RyaWN0aW9uCiAgLSBSZXNvdXJjZVF1b3RhCiAgZXRjZFNlcnZlcnM6CiAgLSBodHRwOi8vMTI3LjAuMC4xOjQwMDEKICBldGNkU2VydmVyc092ZXJyaWRlczoKICAtIC9ldmVudHMjaHR0cDovLzEyNy4wLjAuMTo0MDAyCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1hcGlzZXJ2ZXI6djEuMTIuOQogIGluc2VjdXJlQmluZEFkZHJlc3M6IDEyNy4wLjAuMQogIGluc2VjdXJlUG9ydDogODA4MAogIGt1YmVsZXRQcmVmZXJyZWRBZGRyZXNzVHlwZXM6CiAgLSBJbnRlcm5hbElQCiAgLSBIb3N0bmFtZQogIC0gRXh0ZXJuYWxJUAogIGxvZ0xldmVsOiAyCiAgcmVxdWVzdGhlYWRlckFsbG93ZWROYW1lczoKICAtIGFnZ3JlZ2F0b3IKICByZXF1ZXN0aGVhZGVyRXh0cmFIZWFkZXJQcmVmaXhlczoKICAtIFgtUmVtb3RlLUV4dHJhLQogIHJlcXVlc3RoZWFkZXJHcm91cEhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Hcm91cAogIHJlcXVlc3RoZWFkZXJVc2VybmFtZUhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Vc2VyCiAgc2VjdXJlUG9ydDogNDQzCiAgc2VydmljZUNsdXN0ZXJJUFJhbmdlOiAxMDAuNjQuMC4wLzEzCiAgc3RvcmFnZUJhY2tlbmQ6IGV0Y2QzCmt1YmVDb250cm9sbGVyTWFuYWdlcjoKICBhbGxvY2F0ZU5vZGVDSURSczogdHJ1ZQogIGF0dGFjaERldGFjaFJlY29uY2lsZVN5bmNQZXJpb2Q6IDFtMHMKICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KICBjb25maWd1cmVDbG91ZFJvdXRlczogdHJ1ZQogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtY29udHJvbGxlci1tYW5hZ2VyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKICB1c2VTZXJ2aWNlQWNjb3VudENyZWRlbnRpYWxzOiB0cnVlCmt1YmVQcm94eToKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNwdVJlcXVlc3Q6IDEwMG0KICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXByb3h5OnYxLjEyLjkKICBsb2dMZXZlbDogMgprdWJlU2NoZWR1bGVyOgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtc2NoZWR1bGVyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2UtYW1kNjQ6My4wCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCm1hc3Rlckt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMAogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwogIHJlZ2lzdGVyU2NoZWR1bGFibGU6IGZhbHNlCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKLSA3MWI3YmM0NDRiYTBhNWY3Y2Q3YTM2ZTkxYjU5NGMxYzNkMTM4OTBlMTYwZDg1ZTBkZmRlMzhjNDZhMjRlNDE2QGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC91dGlscy50YXIuZ3osaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva29wcy9yZWxlYXNlcy9kb3dubG9hZC92MS4xNS4wL2xpbnV4LWFtZDY0LXV0aWxzLnRhci5neixodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6CkNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFiClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKZXRjZE1hbmlmZXN0czoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9tYWluLnlhbWwKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9ldmVudHMueWFtbApwcm90b2t1YmVJbWFnZToKICBoYXNoOiA0MmE5YzQzMjRmZTI2ZDYzY2UxMWYzZGQ3ODM2MzcxYmM5M2ZhMDZjYThmNDc5ODA3NzI4ZjM3NDZlMjcwNjFiCiAgbmFtZTogcHJvdG9rdWJlOjEuMTUuMAogIHNvdXJjZXM6CiAgLSBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9pbWFnZXMtcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4yLjI0CiAgbWFpbjoKICAgIHZlcnNpb246IDMuMi4yNAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDMKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjEyLjkKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMAogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZS1hbWQ2NDozLjAKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6Ci0gNzFiN2JjNDQ0YmEwYTVmN2NkN2EzNmU5MWI1OTRjMWMzZDEzODkwZTE2MGQ4NWUwZGZkZTM4YzQ2YTI0ZTQxNkBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6LGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9saW51eC1hbWQ2NC11dGlscy50YXIuZ3osaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L3V0aWxzLnRhci5negpDbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCkNvbmZpZ0Jhc2U6IG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCkluc3RhbmNlR3JvdXBOYW1lOiBtYXN0ZXItdXMtdGVzdC0xYgpUYWdzOgotIF9hdXRvbWF0aWNfdXBncmFkZXMKLSBfYXdzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL2FkZG9ucy9ib290c3RyYXAtY2hhbm5lbC55YW1sCmV0Y2RNYW5pZmVzdHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vbWFuaWZlc3RzL2V0Y2QvbWFpbi55YW1sCi0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vbWFuaWZlc3RzL2V0Y2QvZXZlbnRzLnlhbWwKcHJvdG9rdWJlSW1hZ2U6CiAgaGFzaDogNDJhOWM0MzI0ZmUyNmQ2M2NlMTFmM2RkNzgzNjM3MWJjOTNmYTA2Y2E4ZjQ3OTgwNzcyOGYzNzQ2ZTI3MDYxYgogIG5hbWU6IHByb3Rva3ViZToxLjE1LjAKICBzb3VyY2VzOgogIC0gaHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvaW1hZ2VzLXByb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9pbWFnZXMvcHJvdG9rdWJlLnRhci5negoKX19FT0ZfS1VCRV9FTlYKCmRvd25sb2FkLXJlbGVhc2UKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIGRvbmUgPT0iCg== diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1c.masters.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1c.masters.launchtemplates.example.com_user_data index a7bdf4b8010fd..ee69bb54ae903 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1c.masters.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1c.masters.launchtemplates.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICAjIFRPRE8oem1lcmx5bm4pOiBOb3cgd2UgUkVBTExZIGhhdmUgbm8gZXhjdXNlIG5vdCB0byBkbyB0aGUgcmVib290CiAgIyBvcHRpbWl6YXRpb24uCgogIGxvY2FsIC1yIG5vZGV1cF91cmxzPSggJChzcGxpdC1jb21tYXMgIiR7Tk9ERVVQX1VSTH0iKSApCiAgaWYgW1sgLW4gIiR7Tk9ERVVQX0hBU0g6LX0iIF1dOyB0aGVuCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0iJHtOT0RFVVBfSEFTSH0iCiAgZWxzZQogICMgVE9ETzogUmVtb3ZlPwogICAgZWNobyAiRG93bmxvYWRpbmcgc2hhMjU2IChub3QgZm91bmQgaW4gZW52KSIKICAgIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwLnNoYTI1NiAiIiAiJHtub2RldXBfdXJsc1tAXS8lLy5zaGEyNTZ9IgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9JChjYXQgbm9kZXVwLnNoYTI1NikKICBmaQoKICBlY2hvICJEb3dubG9hZGluZyBub2RldXAgKCR7bm9kZXVwX3VybHNbQF19KSIKICBkb3dubG9hZC1vci1idXN0IG5vZGV1cCAiJHtub2RldXBfaGFzaH0iICIke25vZGV1cF91cmxzW0BdfSIKCiAgY2htb2QgK3ggbm9kZXVwCn0KCmZ1bmN0aW9uIGRvd25sb2FkLXJlbGVhc2UoKSB7CiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwplbmNyeXB0aW9uQ29uZmlnOiBudWxsCmV0Y2RDbHVzdGVyczoKICBldmVudHM6CiAgICB2ZXJzaW9uOiAzLjIuMjQKICBtYWluOgogICAgdmVyc2lvbjogMy4yLjI0Cmt1YmVBUElTZXJ2ZXI6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBhcGlTZXJ2ZXJDb3VudDogMwogIGF1dGhvcml6YXRpb25Nb2RlOiBBbHdheXNBbGxvdwogIGJpbmRBZGRyZXNzOiAwLjAuMC4wCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgZW5hYmxlQWRtaXNzaW9uUGx1Z2luczoKICAtIE5hbWVzcGFjZUxpZmVjeWNsZQogIC0gTGltaXRSYW5nZXIKICAtIFNlcnZpY2VBY2NvdW50CiAgLSBQZXJzaXN0ZW50Vm9sdW1lTGFiZWwKICAtIERlZmF1bHRTdG9yYWdlQ2xhc3MKICAtIERlZmF1bHRUb2xlcmF0aW9uU2Vjb25kcwogIC0gTXV0YXRpbmdBZG1pc3Npb25XZWJob29rCiAgLSBWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gTm9kZVJlc3RyaWN0aW9uCiAgLSBSZXNvdXJjZVF1b3RhCiAgZXRjZFNlcnZlcnM6CiAgLSBodHRwOi8vMTI3LjAuMC4xOjQwMDEKICBldGNkU2VydmVyc092ZXJyaWRlczoKICAtIC9ldmVudHMjaHR0cDovLzEyNy4wLjAuMTo0MDAyCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1hcGlzZXJ2ZXI6djEuMTIuOQogIGluc2VjdXJlQmluZEFkZHJlc3M6IDEyNy4wLjAuMQogIGluc2VjdXJlUG9ydDogODA4MAogIGt1YmVsZXRQcmVmZXJyZWRBZGRyZXNzVHlwZXM6CiAgLSBJbnRlcm5hbElQCiAgLSBIb3N0bmFtZQogIC0gRXh0ZXJuYWxJUAogIGxvZ0xldmVsOiAyCiAgcmVxdWVzdGhlYWRlckFsbG93ZWROYW1lczoKICAtIGFnZ3JlZ2F0b3IKICByZXF1ZXN0aGVhZGVyRXh0cmFIZWFkZXJQcmVmaXhlczoKICAtIFgtUmVtb3RlLUV4dHJhLQogIHJlcXVlc3RoZWFkZXJHcm91cEhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Hcm91cAogIHJlcXVlc3RoZWFkZXJVc2VybmFtZUhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Vc2VyCiAgc2VjdXJlUG9ydDogNDQzCiAgc2VydmljZUNsdXN0ZXJJUFJhbmdlOiAxMDAuNjQuMC4wLzEzCiAgc3RvcmFnZUJhY2tlbmQ6IGV0Y2QzCmt1YmVDb250cm9sbGVyTWFuYWdlcjoKICBhbGxvY2F0ZU5vZGVDSURSczogdHJ1ZQogIGF0dGFjaERldGFjaFJlY29uY2lsZVN5bmNQZXJpb2Q6IDFtMHMKICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KICBjb25maWd1cmVDbG91ZFJvdXRlczogdHJ1ZQogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtY29udHJvbGxlci1tYW5hZ2VyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKICB1c2VTZXJ2aWNlQWNjb3VudENyZWRlbnRpYWxzOiB0cnVlCmt1YmVQcm94eToKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNwdVJlcXVlc3Q6IDEwMG0KICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXByb3h5OnYxLjEyLjkKICBsb2dMZXZlbDogMgprdWJlU2NoZWR1bGVyOgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtc2NoZWR1bGVyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2UtYW1kNjQ6My4wCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCm1hc3Rlckt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMAogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwogIHJlZ2lzdGVyU2NoZWR1bGFibGU6IGZhbHNlCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKLSA3MWI3YmM0NDRiYTBhNWY3Y2Q3YTM2ZTkxYjU5NGMxYzNkMTM4OTBlMTYwZDg1ZTBkZmRlMzhjNDZhMjRlNDE2QGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC91dGlscy50YXIuZ3osaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva29wcy9yZWxlYXNlcy9kb3dubG9hZC92MS4xNS4wL2xpbnV4LWFtZDY0LXV0aWxzLnRhci5neixodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6CkNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFjClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKZXRjZE1hbmlmZXN0czoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9tYWluLnlhbWwKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9ldmVudHMueWFtbApwcm90b2t1YmVJbWFnZToKICBoYXNoOiA0MmE5YzQzMjRmZTI2ZDYzY2UxMWYzZGQ3ODM2MzcxYmM5M2ZhMDZjYThmNDc5ODA3NzI4ZjM3NDZlMjcwNjFiCiAgbmFtZTogcHJvdG9rdWJlOjEuMTUuMAogIHNvdXJjZXM6CiAgLSBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9pbWFnZXMtcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4yLjI0CiAgbWFpbjoKICAgIHZlcnNpb246IDMuMi4yNAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDMKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjEyLjkKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMAogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZS1hbWQ2NDozLjAKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6Ci0gNzFiN2JjNDQ0YmEwYTVmN2NkN2EzNmU5MWI1OTRjMWMzZDEzODkwZTE2MGQ4NWUwZGZkZTM4YzQ2YTI0ZTQxNkBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6LGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9saW51eC1hbWQ2NC11dGlscy50YXIuZ3osaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L3V0aWxzLnRhci5negpDbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCkNvbmZpZ0Jhc2U6IG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCkluc3RhbmNlR3JvdXBOYW1lOiBtYXN0ZXItdXMtdGVzdC0xYwpUYWdzOgotIF9hdXRvbWF0aWNfdXBncmFkZXMKLSBfYXdzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL2FkZG9ucy9ib290c3RyYXAtY2hhbm5lbC55YW1sCmV0Y2RNYW5pZmVzdHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vbWFuaWZlc3RzL2V0Y2QvbWFpbi55YW1sCi0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vbWFuaWZlc3RzL2V0Y2QvZXZlbnRzLnlhbWwKcHJvdG9rdWJlSW1hZ2U6CiAgaGFzaDogNDJhOWM0MzI0ZmUyNmQ2M2NlMTFmM2RkNzgzNjM3MWJjOTNmYTA2Y2E4ZjQ3OTgwNzcyOGYzNzQ2ZTI3MDYxYgogIG5hbWU6IHByb3Rva3ViZToxLjE1LjAKICBzb3VyY2VzOgogIC0gaHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvaW1hZ2VzLXByb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9pbWFnZXMvcHJvdG9rdWJlLnRhci5negoKX19FT0ZfS1VCRV9FTlYKCmRvd25sb2FkLXJlbGVhc2UKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIGRvbmUgPT0iCg== diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_nodes.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_nodes.launchtemplates.example.com_user_data index 27e13776bec0e..7f66a0e0fe6b1 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_nodes.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_nodes.launchtemplates.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICAjIFRPRE8oem1lcmx5bm4pOiBOb3cgd2UgUkVBTExZIGhhdmUgbm8gZXhjdXNlIG5vdCB0byBkbyB0aGUgcmVib290CiAgIyBvcHRpbWl6YXRpb24uCgogIGxvY2FsIC1yIG5vZGV1cF91cmxzPSggJChzcGxpdC1jb21tYXMgIiR7Tk9ERVVQX1VSTH0iKSApCiAgaWYgW1sgLW4gIiR7Tk9ERVVQX0hBU0g6LX0iIF1dOyB0aGVuCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0iJHtOT0RFVVBfSEFTSH0iCiAgZWxzZQogICMgVE9ETzogUmVtb3ZlPwogICAgZWNobyAiRG93bmxvYWRpbmcgc2hhMjU2IChub3QgZm91bmQgaW4gZW52KSIKICAgIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwLnNoYTI1NiAiIiAiJHtub2RldXBfdXJsc1tAXS8lLy5zaGEyNTZ9IgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9JChjYXQgbm9kZXVwLnNoYTI1NikKICBmaQoKICBlY2hvICJEb3dubG9hZGluZyBub2RldXAgKCR7bm9kZXVwX3VybHNbQF19KSIKICBkb3dubG9hZC1vci1idXN0IG5vZGV1cCAiJHtub2RldXBfaGFzaH0iICIke25vZGV1cF91cmxzW0BdfSIKCiAgY2htb2QgK3ggbm9kZXVwCn0KCmZ1bmN0aW9uIGRvd25sb2FkLXJlbGVhc2UoKSB7CiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2UtYW1kNjQ6My4wCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKLSA3MWI3YmM0NDRiYTBhNWY3Y2Q3YTM2ZTkxYjU5NGMxYzNkMTM4OTBlMTYwZDg1ZTBkZmRlMzhjNDZhMjRlNDE2QGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC91dGlscy50YXIuZ3osaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva29wcy9yZWxlYXNlcy9kb3dubG9hZC92MS4xNS4wL2xpbnV4LWFtZDY0LXV0aWxzLnRhci5neixodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6CkNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG5vZGVzClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTIuOQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMAogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6Ci0gNzFiN2JjNDQ0YmEwYTVmN2NkN2EzNmU5MWI1OTRjMWMzZDEzODkwZTE2MGQ4NWUwZGZkZTM4YzQ2YTI0ZTQxNkBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6LGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9saW51eC1hbWQ2NC11dGlscy50YXIuZ3osaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L3V0aWxzLnRhci5negpDbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCkNvbmZpZ0Jhc2U6IG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCkluc3RhbmNlR3JvdXBOYW1lOiBub2RlcwpUYWdzOgotIF9hdXRvbWF0aWNfdXBncmFkZXMKLSBfYXdzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL2FkZG9ucy9ib290c3RyYXAtY2hhbm5lbC55YW1sCgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK diff --git a/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml index 6e327824d8aca..222f6fd938a83 100644 --- a/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -390,9 +387,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodesminimalexamplecom.Properties.Use } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_master-us-test-1a.masters.minimal-json.example.com_user_data b/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_master-us-test-1a.masters.minimal-json.example.com_user_data index a2ba17c70aed1..89bd83dfc577e 100644 --- a/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_master-us-test-1a.masters.minimal-json.example.com_user_data +++ b/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_master-us-test-1a.masters.minimal-json.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_nodes.minimal-json.example.com_user_data b/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_nodes.minimal-json.example.com_user_data index 84bcdcd61334c..7ec97054e85a8 100644 --- a/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_nodes.minimal-json.example.com_user_data +++ b/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_nodes.minimal-json.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_master-us-test-1a.masters.minimal-tf11.example.com_user_data b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_master-us-test-1a.masters.minimal-tf11.example.com_user_data index f14ed1f931ea2..4655dd05bc1c7 100644 --- a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_master-us-test-1a.masters.minimal-tf11.example.com_user_data +++ b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_master-us-test-1a.masters.minimal-tf11.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_nodes.minimal-tf11.example.com_user_data b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_nodes.minimal-tf11.example.com_user_data index 10d375c2b1d5f..32edc50e8c3b8 100644 --- a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_nodes.minimal-tf11.example.com_user_data +++ b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_nodes.minimal-tf11.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/minimal/data/aws_launch_configuration_master-us-test-1a.masters.minimal.example.com_user_data b/tests/integration/update_cluster/minimal/data/aws_launch_configuration_master-us-test-1a.masters.minimal.example.com_user_data index d59aad5fcd618..b71beb6fe7b3e 100644 --- a/tests/integration/update_cluster/minimal/data/aws_launch_configuration_master-us-test-1a.masters.minimal.example.com_user_data +++ b/tests/integration/update_cluster/minimal/data/aws_launch_configuration_master-us-test-1a.masters.minimal.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/minimal/data/aws_launch_configuration_nodes.minimal.example.com_user_data b/tests/integration/update_cluster/minimal/data/aws_launch_configuration_nodes.minimal.example.com_user_data index 02e801ccf00b3..3d79f2a6ef824 100644 --- a/tests/integration/update_cluster/minimal/data/aws_launch_configuration_nodes.minimal.example.com_user_data +++ b/tests/integration/update_cluster/minimal/data/aws_launch_configuration_nodes.minimal.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_master-us-test1-a-minimal-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_master-us-test1-a-minimal-gce-example-com_metadata_startup-script index 479c6140d3a6f..b271ab28ac612 100644 --- a/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_master-us-test1-a-minimal-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_master-us-test1-a-minimal-gce-example-com_metadata_startup-script @@ -92,9 +92,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_nodes-minimal-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_nodes-minimal-gce-example-com_metadata_startup-script index 1b0a7a47a02a5..9d7891d502d43 100644 --- a/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_nodes-minimal-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_nodes-minimal-gce-example-com_metadata_startup-script @@ -92,9 +92,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml index 0daf4182686a6..bf1e22de1b8a2 100644 --- a/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -392,9 +389,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -690,9 +684,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -988,9 +979,6 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data index ff79e40d90a8d..374c7775eb5d6 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data index 44ed048924940..913231d884204 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data index b3b5f0faa64ec..868d207428a8b 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_nodes.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_nodes.mixedinstances.example.com_user_data index 62cf98149187c..c81a3a3d82b4b 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_nodes.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_nodes.mixedinstances.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICAjIFRPRE8oem1lcmx5bm4pOiBOb3cgd2UgUkVBTExZIGhhdmUgbm8gZXhjdXNlIG5vdCB0byBkbyB0aGUgcmVib290CiAgIyBvcHRpbWl6YXRpb24uCgogIGxvY2FsIC1yIG5vZGV1cF91cmxzPSggJChzcGxpdC1jb21tYXMgIiR7Tk9ERVVQX1VSTH0iKSApCiAgaWYgW1sgLW4gIiR7Tk9ERVVQX0hBU0g6LX0iIF1dOyB0aGVuCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0iJHtOT0RFVVBfSEFTSH0iCiAgZWxzZQogICMgVE9ETzogUmVtb3ZlPwogICAgZWNobyAiRG93bmxvYWRpbmcgc2hhMjU2IChub3QgZm91bmQgaW4gZW52KSIKICAgIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwLnNoYTI1NiAiIiAiJHtub2RldXBfdXJsc1tAXS8lLy5zaGEyNTZ9IgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9JChjYXQgbm9kZXVwLnNoYTI1NikKICBmaQoKICBlY2hvICJEb3dubG9hZGluZyBub2RldXAgKCR7bm9kZXVwX3VybHNbQF19KSIKICBkb3dubG9hZC1vci1idXN0IG5vZGV1cCAiJHtub2RldXBfaGFzaH0iICIke25vZGV1cF91cmxzW0BdfSIKCiAgY2htb2QgK3ggbm9kZXVwCn0KCmZ1bmN0aW9uIGRvd25sb2FkLXJlbGVhc2UoKSB7CiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2UtYW1kNjQ6My4wCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKLSA3MWI3YmM0NDRiYTBhNWY3Y2Q3YTM2ZTkxYjU5NGMxYzNkMTM4OTBlMTYwZDg1ZTBkZmRlMzhjNDZhMjRlNDE2QGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC91dGlscy50YXIuZ3osaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva29wcy9yZWxlYXNlcy9kb3dubG9hZC92MS4xNS4wL2xpbnV4LWFtZDY0LXV0aWxzLnRhci5neixodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6CkNsdXN0ZXJOYW1lOiBtaXhlZGluc3RhbmNlcy5leGFtcGxlLmNvbQpDb25maWdCYXNlOiBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21peGVkaW5zdGFuY2VzLmV4YW1wbGUuY29tCkluc3RhbmNlR3JvdXBOYW1lOiBub2RlcwpUYWdzOgotIF9hdXRvbWF0aWNfdXBncmFkZXMKLSBfYXdzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWl4ZWRpbnN0YW5jZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTIuOQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMAogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6Ci0gNzFiN2JjNDQ0YmEwYTVmN2NkN2EzNmU5MWI1OTRjMWMzZDEzODkwZTE2MGQ4NWUwZGZkZTM4YzQ2YTI0ZTQxNkBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6LGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9saW51eC1hbWQ2NC11dGlscy50YXIuZ3osaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L3V0aWxzLnRhci5negpDbHVzdGVyTmFtZTogbWl4ZWRpbnN0YW5jZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taXhlZGluc3RhbmNlcy5leGFtcGxlLmNvbQpJbnN0YW5jZUdyb3VwTmFtZTogbm9kZXMKVGFnczoKLSBfYXV0b21hdGljX3VwZ3JhZGVzCi0gX2F3cwpjaGFubmVsczoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21peGVkaW5zdGFuY2VzLmV4YW1wbGUuY29tL2FkZG9ucy9ib290c3RyYXAtY2hhbm5lbC55YW1sCgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK diff --git a/tests/integration/update_cluster/mixed_instances_spot/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/mixed_instances_spot/cloudformation.json.extracted.yaml index 0daf4182686a6..bf1e22de1b8a2 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/mixed_instances_spot/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -392,9 +389,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -690,9 +684,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -988,9 +979,6 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data index ff79e40d90a8d..374c7775eb5d6 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data index 44ed048924940..913231d884204 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data index b3b5f0faa64ec..868d207428a8b 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_nodes.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_nodes.mixedinstances.example.com_user_data index 62cf98149187c..c81a3a3d82b4b 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_nodes.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_nodes.mixedinstances.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICAjIFRPRE8oem1lcmx5bm4pOiBOb3cgd2UgUkVBTExZIGhhdmUgbm8gZXhjdXNlIG5vdCB0byBkbyB0aGUgcmVib290CiAgIyBvcHRpbWl6YXRpb24uCgogIGxvY2FsIC1yIG5vZGV1cF91cmxzPSggJChzcGxpdC1jb21tYXMgIiR7Tk9ERVVQX1VSTH0iKSApCiAgaWYgW1sgLW4gIiR7Tk9ERVVQX0hBU0g6LX0iIF1dOyB0aGVuCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0iJHtOT0RFVVBfSEFTSH0iCiAgZWxzZQogICMgVE9ETzogUmVtb3ZlPwogICAgZWNobyAiRG93bmxvYWRpbmcgc2hhMjU2IChub3QgZm91bmQgaW4gZW52KSIKICAgIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwLnNoYTI1NiAiIiAiJHtub2RldXBfdXJsc1tAXS8lLy5zaGEyNTZ9IgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9JChjYXQgbm9kZXVwLnNoYTI1NikKICBmaQoKICBlY2hvICJEb3dubG9hZGluZyBub2RldXAgKCR7bm9kZXVwX3VybHNbQF19KSIKICBkb3dubG9hZC1vci1idXN0IG5vZGV1cCAiJHtub2RldXBfaGFzaH0iICIke25vZGV1cF91cmxzW0BdfSIKCiAgY2htb2QgK3ggbm9kZXVwCn0KCmZ1bmN0aW9uIGRvd25sb2FkLXJlbGVhc2UoKSB7CiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2UtYW1kNjQ6My4wCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKLSA3MWI3YmM0NDRiYTBhNWY3Y2Q3YTM2ZTkxYjU5NGMxYzNkMTM4OTBlMTYwZDg1ZTBkZmRlMzhjNDZhMjRlNDE2QGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC91dGlscy50YXIuZ3osaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva29wcy9yZWxlYXNlcy9kb3dubG9hZC92MS4xNS4wL2xpbnV4LWFtZDY0LXV0aWxzLnRhci5neixodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6CkNsdXN0ZXJOYW1lOiBtaXhlZGluc3RhbmNlcy5leGFtcGxlLmNvbQpDb25maWdCYXNlOiBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21peGVkaW5zdGFuY2VzLmV4YW1wbGUuY29tCkluc3RhbmNlR3JvdXBOYW1lOiBub2RlcwpUYWdzOgotIF9hdXRvbWF0aWNfdXBncmFkZXMKLSBfYXdzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWl4ZWRpbnN0YW5jZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTIuOQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMAogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6Ci0gNzFiN2JjNDQ0YmEwYTVmN2NkN2EzNmU5MWI1OTRjMWMzZDEzODkwZTE2MGQ4NWUwZGZkZTM4YzQ2YTI0ZTQxNkBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvbGludXgvYW1kNjQvdXRpbHMudGFyLmd6LGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9saW51eC1hbWQ2NC11dGlscy50YXIuZ3osaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L3V0aWxzLnRhci5negpDbHVzdGVyTmFtZTogbWl4ZWRpbnN0YW5jZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taXhlZGluc3RhbmNlcy5leGFtcGxlLmNvbQpJbnN0YW5jZUdyb3VwTmFtZTogbm9kZXMKVGFnczoKLSBfYXV0b21hdGljX3VwZ3JhZGVzCi0gX2F3cwpjaGFubmVsczoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21peGVkaW5zdGFuY2VzLmV4YW1wbGUuY29tL2FkZG9ucy9ib290c3RyYXAtY2hhbm5lbC55YW1sCgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK diff --git a/tests/integration/update_cluster/nosshkey-cloudformation/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/nosshkey-cloudformation/cloudformation.json.extracted.yaml index c159bfc7450a8..711e1e676861c 100644 --- a/tests/integration/update_cluster/nosshkey-cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/nosshkey-cloudformation/cloudformation.json.extracted.yaml @@ -94,9 +94,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersnosshkeyexamplec } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -393,9 +390,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodesnosshkeyexamplecom.Properties.Us } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_master-us-test-1a.masters.nosshkey.example.com_user_data b/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_master-us-test-1a.masters.nosshkey.example.com_user_data index 313a2e610e233..6024f1115d157 100644 --- a/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_master-us-test-1a.masters.nosshkey.example.com_user_data +++ b/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_master-us-test-1a.masters.nosshkey.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_nodes.nosshkey.example.com_user_data b/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_nodes.nosshkey.example.com_user_data index 6e6cd56e2b07c..849d2a7721a43 100644 --- a/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_nodes.nosshkey.example.com_user_data +++ b/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_nodes.nosshkey.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_master-us-test-1a.masters.private-shared-subnet.example.com_user_data b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_master-us-test-1a.masters.private-shared-subnet.example.com_user_data index c325d1a15fa96..b336d9b027be7 100644 --- a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_master-us-test-1a.masters.private-shared-subnet.example.com_user_data +++ b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_master-us-test-1a.masters.private-shared-subnet.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_nodes.private-shared-subnet.example.com_user_data b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_nodes.private-shared-subnet.example.com_user_data index b7e0af660c869..3b3441ba4a84e 100644 --- a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_nodes.private-shared-subnet.example.com_user_data +++ b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_nodes.private-shared-subnet.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml index e29344d482ce5..4c2bed8ab42ad 100644 --- a/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml @@ -95,9 +95,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivatecalicoexa } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -389,9 +386,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodesprivatecalicoexamplecom.Properti } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_master-us-test-1a.masters.privatecalico.example.com_user_data b/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_master-us-test-1a.masters.privatecalico.example.com_user_data index 4194b4e1a17f8..4c2449ed38553 100644 --- a/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_master-us-test-1a.masters.privatecalico.example.com_user_data +++ b/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_master-us-test-1a.masters.privatecalico.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_nodes.privatecalico.example.com_user_data b/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_nodes.privatecalico.example.com_user_data index cdefb4d45f647..beca2e9f2beda 100644 --- a/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_nodes.privatecalico.example.com_user_data +++ b/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_nodes.privatecalico.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_master-us-test-1a.masters.privatecanal.example.com_user_data b/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_master-us-test-1a.masters.privatecanal.example.com_user_data index c5358f6de0e69..02c09d9116647 100644 --- a/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_master-us-test-1a.masters.privatecanal.example.com_user_data +++ b/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_master-us-test-1a.masters.privatecanal.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_nodes.privatecanal.example.com_user_data b/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_nodes.privatecanal.example.com_user_data index e613d37bb1a49..c3eb554d092d0 100644 --- a/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_nodes.privatecanal.example.com_user_data +++ b/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_nodes.privatecanal.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml index 79a348aaedff6..d4a588561dc88 100644 --- a/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml @@ -95,9 +95,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivateciliumexa } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -389,9 +386,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodesprivateciliumexamplecom.Properti } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_master-us-test-1a.masters.privatecilium.example.com_user_data b/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_master-us-test-1a.masters.privatecilium.example.com_user_data index 7fe7ee77281c8..fe4777122744e 100644 --- a/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_master-us-test-1a.masters.privatecilium.example.com_user_data +++ b/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_master-us-test-1a.masters.privatecilium.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_nodes.privatecilium.example.com_user_data b/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_nodes.privatecilium.example.com_user_data index 72c28bc6e8abc..f4818f9638d83 100644 --- a/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_nodes.privatecilium.example.com_user_data +++ b/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_nodes.privatecilium.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml index d947d19148832..ac02ea2dd3d70 100644 --- a/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml @@ -95,9 +95,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivateciliumadv } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" @@ -393,9 +390,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodesprivateciliumadvancedexamplecom. } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data index 74c160960045f..8b3a93b20b04d 100644 --- a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data +++ b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_nodes.privateciliumadvanced.example.com_user_data b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_nodes.privateciliumadvanced.example.com_user_data index 84efbad34fe1f..f24797f951957 100644 --- a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_nodes.privateciliumadvanced.example.com_user_data +++ b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_nodes.privateciliumadvanced.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_master-us-test-1a.masters.privatedns1.example.com_user_data b/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_master-us-test-1a.masters.privatedns1.example.com_user_data index b2f2e65a3ac26..6e8e6ef7b44b5 100644 --- a/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_master-us-test-1a.masters.privatedns1.example.com_user_data +++ b/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_master-us-test-1a.masters.privatedns1.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_nodes.privatedns1.example.com_user_data b/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_nodes.privatedns1.example.com_user_data index 0c23cda3776e1..cebd848a8f40a 100644 --- a/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_nodes.privatedns1.example.com_user_data +++ b/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_nodes.privatedns1.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_master-us-test-1a.masters.privatedns2.example.com_user_data b/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_master-us-test-1a.masters.privatedns2.example.com_user_data index 97af75168f20a..e230a312e9407 100644 --- a/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_master-us-test-1a.masters.privatedns2.example.com_user_data +++ b/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_master-us-test-1a.masters.privatedns2.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_nodes.privatedns2.example.com_user_data b/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_nodes.privatedns2.example.com_user_data index 4d6188d39aa04..ccc04e07428c1 100644 --- a/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_nodes.privatedns2.example.com_user_data +++ b/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_nodes.privatedns2.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_master-us-test-1a.masters.privateflannel.example.com_user_data b/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_master-us-test-1a.masters.privateflannel.example.com_user_data index d7026e88990b2..b06ac165dc2c9 100644 --- a/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_master-us-test-1a.masters.privateflannel.example.com_user_data +++ b/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_master-us-test-1a.masters.privateflannel.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_nodes.privateflannel.example.com_user_data b/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_nodes.privateflannel.example.com_user_data index 080de90916254..3662d64f44403 100644 --- a/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_nodes.privateflannel.example.com_user_data +++ b/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_nodes.privateflannel.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_master-us-test-1a.masters.privatekopeio.example.com_user_data b/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_master-us-test-1a.masters.privatekopeio.example.com_user_data index 37d95f59af447..573fad8154740 100644 --- a/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_master-us-test-1a.masters.privatekopeio.example.com_user_data +++ b/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_master-us-test-1a.masters.privatekopeio.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_nodes.privatekopeio.example.com_user_data b/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_nodes.privatekopeio.example.com_user_data index f98c2b077d536..6a49c143353ab 100644 --- a/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_nodes.privatekopeio.example.com_user_data +++ b/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_nodes.privatekopeio.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_master-us-test-1a.masters.privateweave.example.com_user_data b/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_master-us-test-1a.masters.privateweave.example.com_user_data index 009662cc2ba89..544dc86832970 100644 --- a/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_master-us-test-1a.masters.privateweave.example.com_user_data +++ b/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_master-us-test-1a.masters.privateweave.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_nodes.privateweave.example.com_user_data b/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_nodes.privateweave.example.com_user_data index 34c15d71508f4..3e9ade29a6c8d 100644 --- a/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_nodes.privateweave.example.com_user_data +++ b/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_nodes.privateweave.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_master-us-test-1a.masters.restrictaccess.example.com_user_data b/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_master-us-test-1a.masters.restrictaccess.example.com_user_data index 07c6f9c866433..9c92ab718a7c4 100644 --- a/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_master-us-test-1a.masters.restrictaccess.example.com_user_data +++ b/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_master-us-test-1a.masters.restrictaccess.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_nodes.restrictaccess.example.com_user_data b/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_nodes.restrictaccess.example.com_user_data index 531e40ccdff0e..a6705b34302c0 100644 --- a/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_nodes.restrictaccess.example.com_user_data +++ b/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_nodes.restrictaccess.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_master-us-test-1a.masters.sharedsubnet.example.com_user_data b/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_master-us-test-1a.masters.sharedsubnet.example.com_user_data index 9e2a11539e060..c97f0ed10ff42 100644 --- a/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_master-us-test-1a.masters.sharedsubnet.example.com_user_data +++ b/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_master-us-test-1a.masters.sharedsubnet.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_nodes.sharedsubnet.example.com_user_data b/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_nodes.sharedsubnet.example.com_user_data index 50f61f9c538ef..3de999824d42e 100644 --- a/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_nodes.sharedsubnet.example.com_user_data +++ b/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_nodes.sharedsubnet.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_master-us-test-1a.masters.sharedvpc.example.com_user_data b/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_master-us-test-1a.masters.sharedvpc.example.com_user_data index e4ffff2f53c36..ce0a100a927d5 100644 --- a/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_master-us-test-1a.masters.sharedvpc.example.com_user_data +++ b/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_master-us-test-1a.masters.sharedvpc.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_nodes.sharedvpc.example.com_user_data b/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_nodes.sharedvpc.example.com_user_data index b7a40a43b0999..f76e20ee73201 100644 --- a/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_nodes.sharedvpc.example.com_user_data +++ b/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_nodes.sharedvpc.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_master-us-test-1a.masters.unmanaged.example.com_user_data b/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_master-us-test-1a.masters.unmanaged.example.com_user_data index 47f168ae2ee8a..35c04482b805c 100644 --- a/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_master-us-test-1a.masters.unmanaged.example.com_user_data +++ b/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_master-us-test-1a.masters.unmanaged.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}" diff --git a/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_nodes.unmanaged.example.com_user_data b/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_nodes.unmanaged.example.com_user_data index 26e173147f08b..771bc6ca8c76a 100644 --- a/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_nodes.unmanaged.example.com_user_data +++ b/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_nodes.unmanaged.example.com_user_data @@ -93,9 +93,6 @@ function split-commas() { } function try-download-release() { - # TODO(zmerlynn): Now we REALLY have no excuse not to do the reboot - # optimization. - local -r nodeup_urls=( $(split-commas "${NODEUP_URL}") ) if [[ -n "${NODEUP_HASH:-}" ]]; then local -r nodeup_hash="${NODEUP_HASH}"