diff --git a/templates/compose/sessy.yaml b/templates/compose/sessy.yaml new file mode 100644 index 000000000..0cfe73bb2 --- /dev/null +++ b/templates/compose/sessy.yaml @@ -0,0 +1,22 @@ +# documentation: https://github.com/marckohlbrugge/sessy/blob/main/docs/docker-deployment.md +# slogan: Email observability platform for monitoring and analyzing email systems. +# category: monitoring +# tags: email, observability, monitoring, analytics +# logo: svgs/sessy.svg +# port: 80 + +services: + sessy: + image: ghcr.io/marckohlbrugge/sessy:main + environment: + - SERVICE_URL_SESSY_80 + - SECRET_KEY_BASE=$SERVICE_HEX_64_SESSYSECRET + - HTTP_AUTH_USERNAME=$SERVICE_USER_SESSY + - HTTP_AUTH_PASSWORD=$SERVICE_PASSWORD_SESSY + volumes: + - sessy-data:/rails/storage + healthcheck: + test: ["CMD-SHELL", "curl -sf http://127.0.0.1:80 || [ $? -eq 22 ]"] + interval: 5s + timeout: 10s + retries: 10 diff --git a/templates/service-templates-latest.json b/templates/service-templates-latest.json index 483ff8928..540a47bbe 100644 --- a/templates/service-templates-latest.json +++ b/templates/service-templates-latest.json @@ -192,7 +192,7 @@ "autobase": { "documentation": "https://autobase.tech/docs/?utm_source=coolify.io", "slogan": "Autobase for PostgreSQL\u00ae is an open-source alternative to cloud-managed databases (self-hosted DBaaS).", - "compose": "c2VydmljZXM6CiAgYXV0b2Jhc2U6CiAgICBpbWFnZTogJ2F1dG9iYXNlL2NvbnNvbGVfdWk6Mi40LjEnCiAgICBwbGF0Zm9ybTogbGludXgvYW1kNjQKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9BVVRPQkFTRV84MAogICAgICAtICdQR19DT05TT0xFX0FVVEhPUklaQVRJT05fVE9LRU49JHtTRVJWSUNFX1BBU1NXT1JEX1VJfScKICAgICAgLSBQR19DT05TT0xFX0FQSV9IT1NUPWF1dG9iYXNlLWFwaQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjgwLycKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICBkZXBlbmRzX29uOgogICAgICBhdXRvYmFzZS1hcGk6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICBhdXRvYmFzZS1kYjoKICAgIGltYWdlOiAnYXV0b2Jhc2UvY29uc29sZV9kYjoyLjQuMScKICAgIHBsYXRmb3JtOiBsaW51eC9hbWQ2NAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU30nCiAgICB2b2x1bWVzOgogICAgICAtICdhdXRvYmFzZS1kYi1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAncGdfaXNyZWFkeSAtVSBwb3N0Z3JlcycKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCiAgYXV0b2Jhc2UtYXBpOgogICAgaW1hZ2U6ICdhdXRvYmFzZS9jb25zb2xlX2FwaToyLjQuMScKICAgIHBsYXRmb3JtOiBsaW51eC9hbWQ2NAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUEdfQ09OU09MRV9EQl9IT1NUPWF1dG9iYXNlLWRiCiAgICAgIC0gJ1BHX0NPTlNPTEVfREJfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTfScKICAgICAgLSAnUEdfQ09OU09MRV9BVVRIT1JJWkFUSU9OX1RPS0VOPSR7U0VSVklDRV9QQVNTV09SRF9VSX0nCiAgICAgIC0gJ1BHX0NPTlNPTEVfRU5DUllQVElPTktFWT0ke1NFUlZJQ0VfQkFTRTY0X0VOQ1JZUFRJT05LRVl9JwogICAgICAtICdQR19DT05TT0xFX0xPR0dFUl9MRVZFTD0ke1BHX0NPTlNPTEVfTE9HR0VSX0xFVkVMOi1pbmZvfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJy92YXIvcnVuL2RvY2tlci5zb2NrOi92YXIvcnVuL2RvY2tlci5zb2NrJwogICAgICAtICcvdG1wL2Fuc2libGU6L3RtcC9hbnNpYmxlJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZnNTJwogICAgICAgIC0gJy1IJwogICAgICAgIC0gJ2FjY2VwdDogYXBwbGljYXRpb24vanNvbicKICAgICAgICAtICctSCcKICAgICAgICAtICdBdXRob3JpemF0aW9uOiBCZWFyZXIgJHtTRVJWSUNFX1BBU1NXT1JEX1VJfScKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL3YxL3ZlcnNpb24nCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgZGVwZW5kc19vbjoKICAgICAgYXV0b2Jhc2UtZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkK", + "compose": "c2VydmljZXM6CiAgYXV0b2Jhc2U6CiAgICBpbWFnZTogJ2F1dG9iYXNlL2NvbnNvbGVfdWk6Mi41LjInCiAgICBwbGF0Zm9ybTogbGludXgvYW1kNjQKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9BVVRPQkFTRV84MAogICAgICAtICdQR19DT05TT0xFX0FVVEhPUklaQVRJT05fVE9LRU49JHtTRVJWSUNFX1BBU1NXT1JEX1VJfScKICAgICAgLSBQR19DT05TT0xFX0FQSV9IT1NUPWF1dG9iYXNlLWFwaQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjgwLycKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICBkZXBlbmRzX29uOgogICAgICBhdXRvYmFzZS1hcGk6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICBhdXRvYmFzZS1kYjoKICAgIGltYWdlOiAnYXV0b2Jhc2UvY29uc29sZV9kYjoyLjUuMicKICAgIHBsYXRmb3JtOiBsaW51eC9hbWQ2NAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU30nCiAgICB2b2x1bWVzOgogICAgICAtICdhdXRvYmFzZS1kYi1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAncGdfaXNyZWFkeSAtVSBwb3N0Z3JlcycKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCiAgYXV0b2Jhc2UtYXBpOgogICAgaW1hZ2U6ICdhdXRvYmFzZS9jb25zb2xlX2FwaToyLjUuMicKICAgIHBsYXRmb3JtOiBsaW51eC9hbWQ2NAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUEdfQ09OU09MRV9EQl9IT1NUPWF1dG9iYXNlLWRiCiAgICAgIC0gJ1BHX0NPTlNPTEVfREJfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTfScKICAgICAgLSAnUEdfQ09OU09MRV9BVVRIT1JJWkFUSU9OX1RPS0VOPSR7U0VSVklDRV9QQVNTV09SRF9VSX0nCiAgICAgIC0gJ1BHX0NPTlNPTEVfRU5DUllQVElPTktFWT0ke1NFUlZJQ0VfQkFTRTY0X0VOQ1JZUFRJT05LRVl9JwogICAgICAtICdQR19DT05TT0xFX0xPR0dFUl9MRVZFTD0ke1BHX0NPTlNPTEVfTE9HR0VSX0xFVkVMOi1pbmZvfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJy92YXIvcnVuL2RvY2tlci5zb2NrOi92YXIvcnVuL2RvY2tlci5zb2NrJwogICAgICAtICcvdG1wL2Fuc2libGU6L3RtcC9hbnNpYmxlJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZnNTJwogICAgICAgIC0gJy1IJwogICAgICAgIC0gJ2FjY2VwdDogYXBwbGljYXRpb24vanNvbicKICAgICAgICAtICctSCcKICAgICAgICAtICdBdXRob3JpemF0aW9uOiBCZWFyZXIgJHtTRVJWSUNFX1BBU1NXT1JEX1VJfScKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL3YxL3ZlcnNpb24nCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgZGVwZW5kc19vbjoKICAgICAgYXV0b2Jhc2UtZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkK", "tags": [ "database", "postgres", @@ -546,6 +546,21 @@ "minversion": "0.0.0", "port": "80" }, + "chibisafe": { + "documentation": "https://chibisafe.app/docs/intro?utm_source=coolify.io", + "slogan": "A beautiful and performant vault to save all your files in the cloud.", + "compose": "c2VydmljZXM6CiAgY2hpYmlzYWZlOgogICAgaW1hZ2U6ICdjaGliaXNhZmUvY2hpYmlzYWZlOnY2LjUuNScKICAgIGVudmlyb25tZW50OgogICAgICAtICdCQVNFX0FQSV9VUkw9aHR0cDovL2NoaWJpc2FmZS1zZXJ2ZXI6ODAwMCcKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnLS1xdWlldCcKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwMDEnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDMKICAgICAgc3RhcnRfcGVyaW9kOiAxMHMKICBjaGliaXNhZmUtc2VydmVyOgogICAgaW1hZ2U6ICdjaGliaXNhZmUvY2hpYmlzYWZlLXNlcnZlcjp2Ni41LjUnCiAgICB2b2x1bWVzOgogICAgICAtICdjaGliaXNhZmUtZGF0YWJhc2U6L2FwcC9kYXRhYmFzZTpydycKICAgICAgLSAnY2hpYmlzYWZlLXVwbG9hZHM6L2FwcC91cGxvYWRzOnJ3JwogICAgICAtICdjaGliaXNhZmUtbG9nczovYXBwL2xvZ3M6cncnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gd2dldAogICAgICAgIC0gJy0tc3BpZGVyJwogICAgICAgIC0gJy0tcXVpZXQnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwaS9oZWFsdGgnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDMKICAgICAgc3RhcnRfcGVyaW9kOiAxMHMKICBjYWRkeToKICAgIGltYWdlOiAnY2FkZHk6Mi1hbHBpbmUnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9DSElCSVNBRkVfODAKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnLS1xdWlldCcKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwJwogICAgICBpbnRlcnZhbDogMzBzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAzCiAgICAgIHN0YXJ0X3BlcmlvZDogMTBzCiAgICB2b2x1bWVzOgogICAgICAtICd1cGxvYWRzOi9hcHAvdXBsb2FkczpybycKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vQ2FkZHlmaWxlCiAgICAgICAgdGFyZ2V0OiAvZXRjL2NhZGR5L0NhZGR5ZmlsZQogICAgICAgIGNvbnRlbnQ6ICIjIGNoaWJpc2FmZS9DYWRkeWZpbGVcbiMgaHR0cHM6Ly9jaGliaXNhZmUubW9lL2d1aWRlcy9ydW5uaW5nLXdpdGgtZG9ja2VyXG46ODAge1xuICByb3V0ZSB7XG4gICAgZmlsZV9zZXJ2ZXIgKiB7XG4gICAgICAgIHJvb3QgL2FwcC91cGxvYWRzXG4gICAgICAgIHBhc3NfdGhydVxuICAgIH1cbiAgICBAYXBpIHBhdGggL2FwaS8qXG4gICAgcmV2ZXJzZV9wcm94eSBAYXBpIGh0dHA6Ly9jaGliaXNhZmUtc2VydmVyOjgwMDAge1xuICAgICAgICBoZWFkZXJfdXAgSG9zdCB7aHR0cC5yZXZlcnNlX3Byb3h5LnVwc3RyZWFtLmhvc3Rwb3J0fVxuICAgICAgICBoZWFkZXJfdXAgWC1SZWFsLUlQIHtodHRwLnJlcXVlc3QuaGVhZGVyLlgtUmVhbC1JUH1cbiAgICB9XG4gICAgQGRvY3MgcGF0aCAvZG9jcypcbiAgICByZXZlcnNlX3Byb3h5IEBkb2NzIGh0dHA6Ly9jaGliaXNhZmUtc2VydmVyOjgwMDAge1xuICAgICAgICBoZWFkZXJfdXAgSG9zdCB7aHR0cC5yZXZlcnNlX3Byb3h5LnVwc3RyZWFtLmhvc3Rwb3J0fVxuICAgICAgICBoZWFkZXJfdXAgWC1SZWFsLUlQIHtodHRwLnJlcXVlc3QuaGVhZGVyLlgtUmVhbC1JUH1cbiAgICB9XG4gICAgcmV2ZXJzZV9wcm94eSBodHRwOi8vY2hpYmlzYWZlOjgwMDEge1xuICAgICAgICBoZWFkZXJfdXAgSG9zdCB7aHR0cC5yZXZlcnNlX3Byb3h5LnVwc3RyZWFtLmhvc3Rwb3J0fVxuICAgICAgICBoZWFkZXJfdXAgWC1SZWFsLUlQIHtodHRwLnJlcXVlc3QuaGVhZGVyLlgtUmVhbC1JUH1cbiAgICB9XG4gIH1cbn1cbiIK", + "tags": [ + "storage", + "file-sharing", + "upload", + "sharing" + ], + "category": null, + "logo": "svgs/chibisafe.svg", + "minversion": "0.0.0", + "port": "80" + }, "chroma": { "documentation": "https://cookbook.chromadb.dev/?utm_source=coolify.io", "slogan": "Chroma is the open-source search and retrieval database for AI applications.", @@ -1731,6 +1746,21 @@ "minversion": "0.0.0", "port": "8080" }, + "glpi": { + "documentation": "https://help.glpi-project.org/documentation?utm_source=coolify.io", + "slogan": "GLPI (Gestionnaire Libre de Parc Informatique) is a free, open-source IT Service Management (ITSM) platform used for IT asset management, helpdesk, and service desk operations.", + "compose": "c2VydmljZXM6CiAgZ2xwaToKICAgIGltYWdlOiAnZ2xwaS9nbHBpOjExJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gU0VSVklDRV9VUkxfR0xQSV84MAogICAgICAtIEdMUElfREJfSE9TVD1nbHBpLWRiCiAgICAgIC0gR0xQSV9EQl9QT1JUPTMzMDYKICAgICAgLSAnR0xQSV9EQl9OQU1FPSR7TVlTUUxfREFUQUJBU0U6LWdscGktZGJ9JwogICAgICAtICdHTFBJX0RCX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdHTFBJX0RCX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICB2b2x1bWVzOgogICAgICAtICdnbHBpLWRhdGE6L3Zhci9nbHBpOnJ3JwogICAgZGVwZW5kc19vbjoKICAgICAgZ2xwaS1kYjoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0LycKICAgICAgaW50ZXJ2YWw6IDMwcwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMwogIGdscGktZGI6CiAgICBpbWFnZTogJ215c3FsOjgnCiAgICB2b2x1bWVzOgogICAgICAtICdteXNxbC1kYXRhOi92YXIvbGliL215c3FsJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ01ZU1FMX1JPT1RfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1JPT1R9JwogICAgICAtICdNWVNRTF9EQVRBQkFTRT0ke01ZU1FMX0RBVEFCQVNFOi1nbHBpLWRifScKICAgICAgLSAnTVlTUUxfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gbXlzcWxhZG1pbgogICAgICAgIC0gcGluZwogICAgICAgIC0gJy1oJwogICAgICAgIC0gMTI3LjAuMC4xCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAK", + "tags": [ + "helpdesk", + "ticketing", + "support", + "open-source" + ], + "category": "helpdesk", + "logo": "svgs/glpi.svg", + "minversion": "0.0.0", + "port": "80" + }, "gotenberg": { "documentation": "https://gotenberg.dev/docs/getting-started/introduction?utm_source=coolify.io", "slogan": "Gotenberg is a Docker-powered stateless API for PDF files.", @@ -3296,6 +3326,21 @@ "minversion": "0.0.0", "port": "3000" }, + "open-archiver": { + "documentation": "https://docs.openarchiver.com/?utm_source=coolify.io", + "slogan": "A self-hosted, open-source email archiving solution with full-text search capability.", + "compose": "c2VydmljZXM6CiAgb3Blbi1hcmNoaXZlcjoKICAgIGltYWdlOiAnbG9naWNsYWJzaHEvb3Blbi1hcmNoaXZlcjpsYXRlc3QnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9PUEVOQVJDSElWRVJfMzAwMAogICAgICAtICdFTkNSWVBUSU9OX0tFWT0ke1NFUlZJQ0VfSEVYXzMyX0VOQ1JZUFRJT05LRVl9JwogICAgICAtICdTVE9SQUdFX0VOQ1JZUFRJT05fS0VZPSR7U0VSVklDRV9IRVhfMzJfU1RPUkFHRUVOQ1JZUFRJT05LRVl9JwogICAgICAtICdQT1JUX0JBQ0tFTkQ9JHtQT1JUX0JBQ0tFTkQ6LTQwMDB9JwogICAgICAtICdQT1JUX0ZST05URU5EPSR7UE9SVF9GUk9OVEVORDotMzAwMH0nCiAgICAgIC0gJ05PREVfRU5WPSR7Tk9ERV9FTlY6LXByb2R1Y3Rpb259JwogICAgICAtICdTWU5DX0ZSRVFVRU5DWT0ke1NZTkNfRlJFUVVFTkNZOi0qICogKiAqICp9JwogICAgICAtICdQT1NUR1JFU19EQj0ke1BPU1RHUkVTX0RCOi1vcGVuX2FyY2hpdmV9JwogICAgICAtICdQT1NUR1JFU19VU0VSPSR7U0VSVklDRV9VU0VSX1BPU1RHUkVTfScKICAgICAgLSAnUE9TVEdSRVNfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTfScKICAgICAgLSAnREFUQUJBU0VfVVJMPXBvc3RncmVzcWw6Ly8ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU306JHtTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTfUBwb3N0Z3Jlczo1NDMyLyR7UE9TVEdSRVNfREI6LW9wZW4tYXJjaGl2ZXItZGJ9JwogICAgICAtICdNRUlMSV9NQVNURVJfS0VZPSR7U0VSVklDRV9QQVNTV09SRF9NRUlMSVNFQVJDSH0nCiAgICAgIC0gJ01FSUxJX0hPU1Q9aHR0cDovL21laWxpc2VhcmNoOjc3MDAnCiAgICAgIC0gUkVESVNfSE9TVD12YWxrZXkKICAgICAgLSBSRURJU19QT1JUPTYzNzkKICAgICAgLSAnUkVESVNfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1ZBTEtFWX0nCiAgICAgIC0gUkVESVNfVExTX0VOQUJMRUQ9ZmFsc2UKICAgICAgLSAnU1RPUkFHRV9UWVBFPSR7U1RPUkFHRV9UWVBFOi1sb2NhbH0nCiAgICAgIC0gJ1NUT1JBR0VfTE9DQUxfUk9PVF9QQVRIPSR7U1RPUkFHRV9MT0NBTF9ST09UX1BBVEg6LS92YXIvZGF0YS9vcGVuLWFyY2hpdmVyfScKICAgICAgLSAnQk9EWV9TSVpFX0xJTUlUPSR7Qk9EWV9TSVpFX0xJTUlUOi0xMDBNfScKICAgICAgLSAnU1RPUkFHRV9TM19FTkRQT0lOVD0ke1NUT1JBR0VfUzNfRU5EUE9JTlR9JwogICAgICAtICdTVE9SQUdFX1MzX0JVQ0tFVD0ke1NUT1JBR0VfUzNfQlVDS0VUfScKICAgICAgLSAnU1RPUkFHRV9TM19BQ0NFU1NfS0VZX0lEPSR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZX0lEfScKICAgICAgLSAnU1RPUkFHRV9TM19TRUNSRVRfQUNDRVNTX0tFWT0ke1NUT1JBR0VfUzNfU0VDUkVUX0FDQ0VTU19LRVl9JwogICAgICAtICdTVE9SQUdFX1MzX1JFR0lPTj0ke1NUT1JBR0VfUzNfUkVHSU9OfScKICAgICAgLSAnU1RPUkFHRV9TM19GT1JDRV9QQVRIX1NUWUxFPSR7U1RPUkFHRV9TM19GT1JDRV9QQVRIX1NUWUxFOi1mYWxzZX0nCiAgICAgIC0gJ0pXVF9TRUNSRVQ9JHtTRVJWSUNFX0JBU0U2NF8xMjhfSldUfScKICAgICAgLSAnSldUX0VYUElSRVNfSU49JHtKV1RfRVhQSVJFU19JTjotN2R9JwogICAgICAtICdSQVRFX0xJTUlUX1dJTkRPV19NUz0ke1JBVEVfTElNSVRfV0lORE9XX01TOi02MDAwMH0nCiAgICAgIC0gJ1JBVEVfTElNSVRfTUFYX1JFUVVFU1RTPSR7UkFURV9MSU1JVF9NQVhfUkVRVUVTVFM6LTEwMH0nCiAgICB2b2x1bWVzOgogICAgICAtICdhcmNoaXZlci1kYXRhOi92YXIvZGF0YS9vcGVuLWFyY2hpdmVyJwogICAgZGVwZW5kc19vbjoKICAgICAgcG9zdGdyZXM6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgICAgdmFsa2V5OgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICAgIG1laWxpc2VhcmNoOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgcG9zdGdyZXM6CiAgICBpbWFnZTogJ3Bvc3RncmVzOjE3LWFscGluZScKICAgIGVudmlyb25tZW50OgogICAgICAtICdQT1NUR1JFU19EQj0ke1BPU1RHUkVTX0RCOi1vcGVuLWFyY2hpdmVyLWRifScKICAgICAgLSAnUE9TVEdSRVNfVVNFUj0ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU30nCiAgICAgIC0gTENfQUxMPUMKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3Bvc3RncmVzLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAKICB2YWxrZXk6CiAgICBpbWFnZTogJ3ZhbGtleS92YWxrZXk6OC1hbHBpbmUnCiAgICBjb21tYW5kOiAndmFsa2V5LXNlcnZlciAtLXJlcXVpcmVwYXNzICR7U0VSVklDRV9QQVNTV09SRF9WQUxLRVl9JwogICAgdm9sdW1lczoKICAgICAgLSAndmFsa2V5LWRhdGE6L2RhdGEnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gcmVkaXMtY2xpCiAgICAgICAgLSBwaW5nCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogIG1laWxpc2VhcmNoOgogICAgaW1hZ2U6ICdnZXRtZWlsaS9tZWlsaXNlYXJjaDp2MS4xNScKICAgIGVudmlyb25tZW50OgogICAgICAtICdNRUlMSV9NQVNURVJfS0VZPSR7U0VSVklDRV9QQVNTV09SRF9NRUlMSVNFQVJDSH0nCiAgICB2b2x1bWVzOgogICAgICAtICdtZWlsaXNlYXJjaC1kYXRhOi9tZWlsaV9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjc3MDAvaGVhbHRoJwogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1Cg==", + "tags": [ + "email archiving", + "email", + "compliance", + "search" + ], + "category": null, + "logo": "svgs/openarchiver.svg", + "minversion": "0.0.0", + "port": "3000" + }, "open-webui": { "documentation": "https://docs.openwebui.com?utm_source=coolify.io", "slogan": "User-friendly AI Interface (Supports Ollama, OpenAI API, ...)", @@ -4066,6 +4111,22 @@ "minversion": "0.0.0", "port": "8080" }, + "seaweedfs": { + "documentation": "https://github.com/seaweedfs/seaweedfs?utm_source=coolify.io", + "slogan": "SeaweedFS is a simple and highly scalable distributed file system. Compatible with S3, with an admin web interface.", + "compose": "c2VydmljZXM6CiAgc2Vhd2VlZGZzLW1hc3RlcjoKICAgIGltYWdlOiAnY2hyaXNsdXNmL3NlYXdlZWRmczo0LjA1JwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gU0VSVklDRV9VUkxfUzNfODMzMwogICAgICAtICdBV1NfQUNDRVNTX0tFWV9JRD0ke1NFUlZJQ0VfVVNFUl9TM30nCiAgICAgIC0gJ0FXU19TRUNSRVRfQUNDRVNTX0tFWT0ke1NFUlZJQ0VfUEFTU1dPUkRfUzN9JwogICAgdm9sdW1lczoKICAgICAgLSAnc2Vhd2VlZGZzLXMzLWRhdGE6L2RhdGEnCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL2Jhc2UtY29uZmlnLmpzb24KICAgICAgICB0YXJnZXQ6IC9iYXNlLWNvbmZpZy5qc29uCiAgICAgICAgY29udGVudDogIntcbiAgXCJpZGVudGl0aWVzXCI6IFtcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJhbm9ueW1vdXNcIixcbiAgICAgIFwiYWN0aW9uc1wiOiBbXG4gICAgICAgIFwiUmVhZFwiXG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJhZG1pblwiLFxuICAgICAgXCJjcmVkZW50aWFsc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImFjY2Vzc0tleVwiOiBcImVudjpBV1NfQUNDRVNTX0tFWV9JRFwiLFxuICAgICAgICAgIFwic2VjcmV0S2V5XCI6IFwiZW52OkFXU19TRUNSRVRfQUNDRVNTX0tFWVwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcImFjdGlvbnNcIjogW1xuICAgICAgICBcIkFkbWluXCIsXG4gICAgICAgIFwiUmVhZFwiLFxuICAgICAgICBcIlJlYWRBY3BcIixcbiAgICAgICAgXCJMaXN0XCIsXG4gICAgICAgIFwiVGFnZ2luZ1wiLFxuICAgICAgICBcIldyaXRlXCIsXG4gICAgICAgIFwiV3JpdGVBY3BcIlxuICAgICAgXVxuICAgIH1cbiAgXVxufVxuIgogICAgZW50cnlwb2ludDogInNoIC1jICdcXFxuc2VkIFwicy9lbnY6QVdTX0FDQ0VTU19LRVlfSUQvJEFXU19BQ0NFU1NfS0VZX0lEL2dcIiAvYmFzZS1jb25maWcuanNvbiA+IC9iYXNlMS1jb25maWcuanNvbjsgXFxcbnNlZCBcInMvZW52OkFXU19TRUNSRVRfQUNDRVNTX0tFWS8kQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZL2dcIiAvYmFzZTEtY29uZmlnLmpzb24gPiAvY29uZmlnLmpzb247IFxcXG53ZWVkIHNlcnZlciAtZGlyPS9kYXRhIC1tYXN0ZXIucG9ydD05MzMzIC1zMyAtczMucG9ydD04MzMzIC1zMy5jb25maWc9L2NvbmZpZy5qc29uXFxcbidcbiIKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnd2dldCAtLXNwaWRlciAtcSBodHRwOi8vMC4wLjAuMDo4MzMzOyBbICQkPyAtbGUgOCBdJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCiAgc2Vhd2VlZGZzLWFkbWluOgogICAgaW1hZ2U6ICdjaHJpc2x1c2Yvc2Vhd2VlZGZzOjQuMDUnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9BRE1JTl8yMzY0NgogICAgICAtICdTRUFXRUVEX1VTRVJfQURNSU49JHtTRVJWSUNFX1VTRVJfQURNSU59JwogICAgICAtICdTRUFXRUVEX1BBU1NXT1JEX0FETUlOPSR7U0VSVklDRV9QQVNTV09SRF9BRE1JTn0nCiAgICBjb21tYW5kOgogICAgICAtIGFkbWluCiAgICAgIC0gJy1tYXN0ZXI9c2Vhd2VlZGZzLW1hc3Rlcjo5MzMzJwogICAgICAtICctYWRtaW5Vc2VyPSR7U0VBV0VFRF9VU0VSX0FETUlOfScKICAgICAgLSAnLWFkbWluUGFzc3dvcmQ9JHtTRUFXRUVEX1BBU1NXT1JEX0FETUlOfScKICAgICAgLSAnLXBvcnQ9MjM2NDYnCiAgICAgIC0gJy1kYXRhRGlyPS9kYXRhJwogICAgdm9sdW1lczoKICAgICAgLSAnc2Vhd2VlZGZzLWFkbWluLWRhdGE6L2RhdGEnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ3dnZXQgLS1zcGlkZXIgLXEgaHR0cDovLzAuMC4wLjA6MjM2NDY7IFsgJCQ/IC1sZSA4IF0nCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMTAKICAgIGRlcGVuZHNfb246CiAgICAgIHNlYXdlZWRmcy1tYXN0ZXI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkK", + "tags": [ + "object", + "storage", + "server", + "s3", + "api" + ], + "category": "storage", + "logo": "svgs/garage.svg", + "minversion": "0.0.0", + "port": "8333" + }, "sequin": { "documentation": "https://sequinstream.com/docs/?utm_source=coolify.io", "slogan": "The fastest Postgres change data capture", @@ -4080,10 +4141,25 @@ "minversion": "0.0.0", "port": "7376" }, + "sessy": { + "documentation": "https://github.com/marckohlbrugge/sessy/blob/main/docs/docker-deployment.md?utm_source=coolify.io", + "slogan": "Email observability platform for monitoring and analyzing email systems.", + "compose": "c2VydmljZXM6CiAgc2Vzc3k6CiAgICBpbWFnZTogJ2doY3IuaW8vbWFyY2tvaGxicnVnZ2Uvc2Vzc3k6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX1NFU1NZXzgwCiAgICAgIC0gU0VDUkVUX0tFWV9CQVNFPSRTRVJWSUNFX0hFWF82NF9TRVNTWVNFQ1JFVAogICAgICAtIEhUVFBfQVVUSF9VU0VSTkFNRT0kU0VSVklDRV9VU0VSX1NFU1NZCiAgICAgIC0gSFRUUF9BVVRIX1BBU1NXT1JEPSRTRVJWSUNFX1BBU1NXT1JEX1NFU1NZCiAgICB2b2x1bWVzOgogICAgICAtICdzZXNzeS1kYXRhOi9yYWlscy9zdG9yYWdlJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdjdXJsIC1zZiBodHRwOi8vMTI3LjAuMC4xOjgwIHx8IFsgJD8gLWVxIDIyIF0nCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTAK", + "tags": [ + "email", + "observability", + "monitoring", + "analytics" + ], + "category": "monitoring", + "logo": "svgs/sessy.svg", + "minversion": "0.0.0", + "port": "80" + }, "sftpgo": { "documentation": "https://docs.sftpgo.com/2.7/?utm_source=coolify.io", "slogan": "SFTPGo is an event-driven SFTP, FTP/S, HTTP/S and WebDAV server.", - "compose": "c2VydmljZXM6CiAgc2Z0cGdvOgogICAgaW1hZ2U6ICdnaGNyLmlvL2RyYWtrYW4vc2Z0cGdvOnYyLjctYWxwaW5lJwogICAgcG9ydHM6CiAgICAgIC0gJzIyMjI6MjIyMicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9TRlRQR09fODA4MAogICAgICAtIFNGVFBHT19EQVRBX1BST1ZJREVSX19EUklWRVI9cG9zdGdyZXNxbAogICAgICAtICdTRlRQR09fREFUQV9QUk9WSURFUl9fQ09OTkVDVElPTl9TVFJJTkc9cG9zdGdyZXNxbDovLyR7U0VSVklDRV9VU0VSX1BPU1RHUkVTfToke1NFUlZJQ0VfUEFTU1dPUkRfNjRfUE9TVEdSRVN9QHBvc3RncmVzcWw6NTQzMi8ke1BPU1RHUkVTX0RBVEFCQVNFOi1zZnRwZ28tZGJ9JwogICAgICAtIFNGVFBHT19TRlRQRF9fQklORElOR1NfXzBfX1BPUlQ9MjAyMgogICAgICAtICdTRlRQR09fTE9HX0xFVkVMPSR7TE9HX0xFVkVMOi1pbmZvfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnd2dldCAtcU8tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC8nCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAKICAgIGRlcGVuZHNfb246CiAgICAgIHBvc3RncmVzcWw6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3NmdHBnby1kYXRhOi9zcnYvc2Z0cGdvL2RhdGEnCiAgICAgIC0gJ3NmdHBnby1rZXlzOi92YXIvbGliL3NmdHBnbycKICBwb3N0Z3Jlc3FsOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNy1hbHBpbmUnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUE9TVEdSRVNfVVNFUj0ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF82NF9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNfREFUQUJBU0U6LXNmdHBnby1kYn0nCiAgICB2b2x1bWVzOgogICAgICAtICdwb3N0Z3Jlc3FsLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAyMAo=", + "compose": "c2VydmljZXM6CiAgc2Z0cGdvOgogICAgaW1hZ2U6ICdnaGNyLmlvL2RyYWtrYW4vc2Z0cGdvOnYyLjctYWxwaW5lJwogICAgcG9ydHM6CiAgICAgIC0gJzIyMjI6MjIyMicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9TRlRQR09fODA4MAogICAgICAtIFNGVFBHT19EQVRBX1BST1ZJREVSX19EUklWRVI9cG9zdGdyZXNxbAogICAgICAtICdTRlRQR09fREFUQV9QUk9WSURFUl9fQ09OTkVDVElPTl9TVFJJTkc9cG9zdGdyZXNxbDovLyR7U0VSVklDRV9VU0VSX1BPU1RHUkVTfToke1NFUlZJQ0VfUEFTU1dPUkRfNjRfUE9TVEdSRVN9QHBvc3RncmVzcWw6NTQzMi8ke1BPU1RHUkVTX0RBVEFCQVNFOi1zZnRwZ28tZGJ9JwogICAgICAtICdTRlRQR09fU0ZUUERfX0JJTkRJTkdTX18wX19QT1JUPSR7UE9SVF9TRlRQR086LTIyMjJ9JwogICAgICAtICdTRlRQR09fTE9HX0xFVkVMPSR7TE9HX0xFVkVMOi1pbmZvfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnd2dldCAtcU8tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC8nCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAKICAgIGRlcGVuZHNfb246CiAgICAgIHBvc3RncmVzcWw6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3NmdHBnby1kYXRhOi9zcnYvc2Z0cGdvL2RhdGEnCiAgICAgIC0gJ3NmdHBnby1rZXlzOi92YXIvbGliL3NmdHBnbycKICBwb3N0Z3Jlc3FsOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNy1hbHBpbmUnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUE9TVEdSRVNfVVNFUj0ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF82NF9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNfREFUQUJBU0U6LXNmdHBnby1kYn0nCiAgICB2b2x1bWVzOgogICAgICAtICdwb3N0Z3Jlc3FsLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAyMAo=", "tags": [ "sftpgo", "sftp", @@ -4117,7 +4193,7 @@ "signoz": { "documentation": "https://signoz.io/docs/introduction/?utm_source=coolify.io", "slogan": "An observability platform native to OpenTelemetry with logs, traces and metrics.", - "compose": "c2VydmljZXM6CiAgaW5pdC1jbGlja2hvdXNlOgogICAgaW1hZ2U6ICdjbGlja2hvdXNlL2NsaWNraG91c2Utc2VydmVyOjI1LjUuNi1hbHBpbmUnCiAgICBjb21tYW5kOgogICAgICAtIGJhc2gKICAgICAgLSAnLWMnCiAgICAgIC0gInZlcnNpb249XCJ2MC4wLjFcIlxubm9kZV9vcz0kJCh1bmFtZSAtcyB8IHRyICdbOnVwcGVyOl0nICdbOmxvd2VyOl0nKVxubm9kZV9hcmNoPSQkKHVuYW1lIC1tIHwgc2VkIHMvYWFyY2g2NC9hcm02NC8gfCBzZWQgcy94ODZfNjQvYW1kNjQvKVxuZWNobyBcIkZldGNoaW5nIGhpc3RvZ3JhbS1iaW5hcnkgZm9yICQke25vZGVfb3N9LyQke25vZGVfYXJjaH1cIlxuY2QgL3RtcFxud2dldCAtTyBoaXN0b2dyYW0tcXVhbnRpbGUudGFyLmd6IFwiaHR0cHM6Ly9naXRodWIuY29tL1NpZ05vei9zaWdub3ovcmVsZWFzZXMvZG93bmxvYWQvaGlzdG9ncmFtLXF1YW50aWxlJTJGJCR7dmVyc2lvbn0vaGlzdG9ncmFtLXF1YW50aWxlXyQke25vZGVfb3N9XyQke25vZGVfYXJjaH0udGFyLmd6XCJcbnRhciAteHZ6ZiBoaXN0b2dyYW0tcXVhbnRpbGUudGFyLmd6XG5ta2RpciAtcCAvdmFyL2xpYi9jbGlja2hvdXNlL3VzZXJfc2NyaXB0cy9oaXN0b2dyYW1RdWFudGlsZVxubXYgaGlzdG9ncmFtLXF1YW50aWxlIC92YXIvbGliL2NsaWNraG91c2UvdXNlcl9zY3JpcHRzL2hpc3RvZ3JhbVF1YW50aWxlXG4iCiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICB6b29rZWVwZXI6CiAgICBpbWFnZTogJ3NpZ25vei96b29rZWVwZXI6My45LjMnCiAgICB1c2VyOiByb290CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ2N1cmwgLXMgLW0gMiBodHRwOi8vbG9jYWxob3N0OjgwODAvY29tbWFuZHMvcnVvayB8IGdyZXAgZXJyb3IgfCBncmVwIG51bGwnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogICAgbG9nZ2luZzoKICAgICAgb3B0aW9uczoKICAgICAgICBtYXgtc2l6ZTogNTBtCiAgICAgICAgbWF4LWZpbGU6ICczJwogICAgdm9sdW1lczoKICAgICAgLSAnem9va2VlcGVyOi9iaXRuYW1pL3pvb2tlZXBlcicKICAgIGVudmlyb25tZW50OgogICAgICAtICdBTExPV19BTk9OWU1PVVNfTE9HSU49JHtaT09fQUxMT1dfQU5PTllNT1VTX0xPR0lOOi15ZXN9JwogICAgICAtICdaT09fQVVUT1BVUkdFX0lOVEVSVkFMPSR7Wk9PX0FVVE9QVVJHRV9JTlRFUlZBTDotMX0nCiAgICAgIC0gJ1pPT19FTkFCTEVfUFJPTUVUSEVVU19NRVRSSUNTPSR7Wk9PX0VOQUJMRV9QUk9NRVRIRVVTX01FVFJJQ1M6LXllc30nCiAgICAgIC0gJ1pPT19QUk9NRVRIRVVTX01FVFJJQ1NfUE9SVF9OVU1CRVI9JHtaT09fUFJPTUVUSEVVU19NRVRSSUNTX1BPUlRfTlVNQkVSOi05MTQxfScKICBjbGlja2hvdXNlOgogICAgaW1hZ2U6ICdjbGlja2hvdXNlL2NsaWNraG91c2Utc2VydmVyOjI1LjUuNi1hbHBpbmUnCiAgICB0dHk6IHRydWUKICAgIGRlcGVuZHNfb246CiAgICAgIGluaXQtY2xpY2tob3VzZToKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseQogICAgICB6b29rZWVwZXI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnLXEnCiAgICAgICAgLSAnMC4wLjAuMDo4MTIzL3BpbmcnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogICAgdWxpbWl0czoKICAgICAgbnByb2M6IDY1NTM1CiAgICAgIG5vZmlsZToKICAgICAgICBzb2Z0OiAyNjIxNDQKICAgICAgICBoYXJkOiAyNjIxNDQKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGVudmlyb25tZW50OgogICAgICAtIENMSUNLSE9VU0VfU0tJUF9VU0VSX1NFVFVQPTEKICAgIHZvbHVtZXM6CiAgICAgIC0KICAgICAgICB0eXBlOiB2b2x1bWUKICAgICAgICBzb3VyY2U6IGNsaWNraG91c2UKICAgICAgICB0YXJnZXQ6IC92YXIvbGliL2NsaWNraG91c2UvCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL2NsaWNraG91c2UvY3VzdG9tLWZ1bmN0aW9uLnhtbAogICAgICAgIHRhcmdldDogL2V0Yy9jbGlja2hvdXNlLXNlcnZlci9jdXN0b20tZnVuY3Rpb24ueG1sCiAgICAgICAgY29udGVudDogIjxmdW5jdGlvbnM+XG4gICAgPGZ1bmN0aW9uPlxuICAgICAgICA8dHlwZT5leGVjdXRhYmxlPC90eXBlPlxuICAgICAgICA8bmFtZT5oaXN0b2dyYW1RdWFudGlsZTwvbmFtZT5cbiAgICAgICAgPHJldHVybl90eXBlPkZsb2F0NjQ8L3JldHVybl90eXBlPlxuICAgICAgICA8YXJndW1lbnQ+XG4gICAgICAgICAgICA8dHlwZT5BcnJheShGbG9hdDY0KTwvdHlwZT5cbiAgICAgICAgICAgIDxuYW1lPmJ1Y2tldHM8L25hbWU+XG4gICAgICAgIDwvYXJndW1lbnQ+XG4gICAgICAgIDxhcmd1bWVudD5cbiAgICAgICAgICAgIDx0eXBlPkFycmF5KEZsb2F0NjQpPC90eXBlPlxuICAgICAgICAgICAgPG5hbWU+Y291bnRzPC9uYW1lPlxuICAgICAgICA8L2FyZ3VtZW50PlxuICAgICAgICA8YXJndW1lbnQ+XG4gICAgICAgICAgICA8dHlwZT5GbG9hdDY0PC90eXBlPlxuICAgICAgICAgICAgPG5hbWU+cXVhbnRpbGU8L25hbWU+XG4gICAgICAgIDwvYXJndW1lbnQ+XG4gICAgICAgIDxmb3JtYXQ+Q1NWPC9mb3JtYXQ+XG4gICAgICAgIDxjb21tYW5kPi4vaGlzdG9ncmFtUXVhbnRpbGU8L2NvbW1hbmQ+XG4gICAgPC9mdW5jdGlvbj5cbjwvZnVuY3Rpb25zPlxuIgogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9jbGlja2hvdXNlL2NsdXN0ZXIueG1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL2NsaWNraG91c2Utc2VydmVyL2NvbmZpZy5kL2NsdXN0ZXIueG1sCiAgICAgICAgY29udGVudDogIjw/eG1sIHZlcnNpb249XCIxLjBcIj8+XG48Y2xpY2tob3VzZT5cbiAgICA8IS0tIFpvb0tlZXBlciBpcyB1c2VkIHRvIHN0b3JlIG1ldGFkYXRhIGFib3V0IHJlcGxpY2FzLCB3aGVuIHVzaW5nIFJlcGxpY2F0ZWQgdGFibGVzLlxuICAgICAgICBPcHRpb25hbC4gSWYgeW91IGRvbid0IHVzZSByZXBsaWNhdGVkIHRhYmxlcywgeW91IGNvdWxkIG9taXQgdGhhdC5cblxuICAgICAgICBTZWUgaHR0cHM6Ly9jbGlja2hvdXNlLmNvbS9kb2NzL2VuL2VuZ2luZXMvdGFibGUtZW5naW5lcy9tZXJnZXRyZWUtZmFtaWx5L3JlcGxpY2F0aW9uL1xuICAgICAgLS0+XG4gICAgPHpvb2tlZXBlcj5cbiAgICAgICAgPG5vZGUgaW5kZXg9XCIxXCI+XG4gICAgICAgICAgICA8aG9zdD56b29rZWVwZXI8L2hvc3Q+XG4gICAgICAgICAgICA8cG9ydD4yMTgxPC9wb3J0PlxuICAgICAgICA8L25vZGU+XG4gICAgPC96b29rZWVwZXI+XG5cbiAgICA8IS0tIENvbmZpZ3VyYXRpb24gb2YgY2x1c3RlcnMgdGhhdCBjb3VsZCBiZSB1c2VkIGluIERpc3RyaWJ1dGVkIHRhYmxlcy5cbiAgICAgICAgaHR0cHM6Ly9jbGlja2hvdXNlLmNvbS9kb2NzL2VuL29wZXJhdGlvbnMvdGFibGVfZW5naW5lcy9kaXN0cmlidXRlZC9cbiAgICAgIC0tPlxuICAgIDxyZW1vdGVfc2VydmVycz5cbiAgICAgICAgPGNsdXN0ZXI+XG4gICAgICAgICAgICA8IS0tIEludGVyLXNlcnZlciBwZXItY2x1c3RlciBzZWNyZXQgZm9yIERpc3RyaWJ1dGVkIHF1ZXJpZXNcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBubyBzZWNyZXQgKG5vIGF1dGhlbnRpY2F0aW9uIHdpbGwgYmUgcGVyZm9ybWVkKVxuXG4gICAgICAgICAgICAgICAgSWYgc2V0LCB0aGVuIERpc3RyaWJ1dGVkIHF1ZXJpZXMgd2lsbCBiZSB2YWxpZGF0ZWQgb24gc2hhcmRzLCBzbyBhdCBsZWFzdDpcbiAgICAgICAgICAgICAgICAtIHN1Y2ggY2x1c3RlciBzaG91bGQgZXhpc3Qgb24gdGhlIHNoYXJkLFxuICAgICAgICAgICAgICAgIC0gc3VjaCBjbHVzdGVyIHNob3VsZCBoYXZlIHRoZSBzYW1lIHNlY3JldC5cblxuICAgICAgICAgICAgICAgIEFuZCBhbHNvIChhbmQgd2hpY2ggaXMgbW9yZSBpbXBvcnRhbnQpLCB0aGUgaW5pdGlhbF91c2VyIHdpbGxcbiAgICAgICAgICAgICAgICBiZSB1c2VkIGFzIGN1cnJlbnQgdXNlciBmb3IgdGhlIHF1ZXJ5LlxuXG4gICAgICAgICAgICAgICAgUmlnaHQgbm93IHRoZSBwcm90b2NvbCBpcyBwcmV0dHkgc2ltcGxlIGFuZCBpdCBvbmx5IHRha2VzIGludG8gYWNjb3VudDpcbiAgICAgICAgICAgICAgICAtIGNsdXN0ZXIgbmFtZVxuICAgICAgICAgICAgICAgIC0gcXVlcnlcblxuICAgICAgICAgICAgICAgIEFsc28gaXQgd2lsbCBiZSBuaWNlIGlmIHRoZSBmb2xsb3dpbmcgd2lsbCBiZSBpbXBsZW1lbnRlZDpcbiAgICAgICAgICAgICAgICAtIHNvdXJjZSBob3N0bmFtZSAoc2VlIGludGVyc2VydmVyX2h0dHBfaG9zdCksIGJ1dCB0aGVuIGl0IHdpbGwgZGVwZW5kcyBmcm9tIEROUyxcbiAgICAgICAgICAgICAgICAgIGl0IGNhbiB1c2UgSVAgYWRkcmVzcyBpbnN0ZWFkLCBidXQgdGhlbiB0aGUgeW91IG5lZWQgdG8gZ2V0IGNvcnJlY3Qgb24gdGhlIGluaXRpYXRvciBub2RlLlxuICAgICAgICAgICAgICAgIC0gdGFyZ2V0IGhvc3RuYW1lIC8gaXAgYWRkcmVzcyAoc2FtZSBub3RlcyBhcyBmb3Igc291cmNlIGhvc3RuYW1lKVxuICAgICAgICAgICAgICAgIC0gdGltZS1iYXNlZCBzZWN1cml0eSB0b2tlbnNcbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPCEtLSA8c2VjcmV0Pjwvc2VjcmV0PiAtLT5cbiAgICAgICAgICAgIDxzaGFyZD5cbiAgICAgICAgICAgICAgICA8IS0tIE9wdGlvbmFsLiBXaGV0aGVyIHRvIHdyaXRlIGRhdGEgdG8ganVzdCBvbmUgb2YgdGhlIHJlcGxpY2FzLiBEZWZhdWx0OiBmYWxzZSAod3JpdGUgZGF0YSB0byBhbGwgcmVwbGljYXMpLiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxpbnRlcm5hbF9yZXBsaWNhdGlvbj5mYWxzZTwvaW50ZXJuYWxfcmVwbGljYXRpb24+IC0tPlxuICAgICAgICAgICAgICAgIDwhLS0gT3B0aW9uYWwuIFNoYXJkIHdlaWdodCB3aGVuIHdyaXRpbmcgZGF0YS4gRGVmYXVsdDogMS4gLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8d2VpZ2h0PjE8L3dlaWdodD4gLS0+XG4gICAgICAgICAgICAgICAgPHJlcGxpY2E+XG4gICAgICAgICAgICAgICAgICAgIDxob3N0PmNsaWNraG91c2U8L2hvc3Q+XG4gICAgICAgICAgICAgICAgICAgIDxwb3J0PjkwMDA8L3BvcnQ+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gT3B0aW9uYWwuIFByaW9yaXR5IG9mIHRoZSByZXBsaWNhIGZvciBsb2FkX2JhbGFuY2luZy4gRGVmYXVsdDogMSAobGVzcyB2YWx1ZSBoYXMgbW9yZSBwcmlvcml0eSkuIC0tPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwcmlvcml0eT4xPC9wcmlvcml0eT4gLS0+XG4gICAgICAgICAgICAgICAgPC9yZXBsaWNhPlxuICAgICAgICAgICAgPC9zaGFyZD5cbiAgICAgICAgICAgIDwhLS0gPHNoYXJkPlxuICAgICAgICAgICAgICAgIDxyZXBsaWNhPlxuICAgICAgICAgICAgICAgICAgICA8aG9zdD5jbGlja2hvdXNlLTI8L2hvc3Q+XG4gICAgICAgICAgICAgICAgICAgIDxwb3J0PjkwMDA8L3BvcnQ+XG4gICAgICAgICAgICAgICAgPC9yZXBsaWNhPlxuICAgICAgICAgICAgPC9zaGFyZD5cbiAgICAgICAgICAgIDxzaGFyZD5cbiAgICAgICAgICAgICAgICA8cmVwbGljYT5cbiAgICAgICAgICAgICAgICAgICAgPGhvc3Q+Y2xpY2tob3VzZS0zPC9ob3N0PlxuICAgICAgICAgICAgICAgICAgICA8cG9ydD45MDAwPC9wb3J0PlxuICAgICAgICAgICAgICAgIDwvcmVwbGljYT5cbiAgICAgICAgICAgIDwvc2hhcmQ+IC0tPlxuICAgICAgICA8L2NsdXN0ZXI+XG4gICAgPC9yZW1vdGVfc2VydmVycz5cbjwvY2xpY2tob3VzZT5cbiIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vY2xpY2tob3VzZS91c2Vycy54bWwKICAgICAgICB0YXJnZXQ6IC9ldGMvY2xpY2tob3VzZS1zZXJ2ZXIvdXNlcnMueG1sCiAgICAgICAgY29udGVudDogIjw/eG1sIHZlcnNpb249XCIxLjBcIj8+XG48Y2xpY2tob3VzZT5cbiAgICA8IS0tIFNlZSBhbHNvIHRoZSBmaWxlcyBpbiB1c2Vycy5kIGRpcmVjdG9yeSB3aGVyZSB0aGUgc2V0dGluZ3MgY2FuIGJlIG92ZXJyaWRkZW4uIC0tPlxuXG4gICAgPCEtLSBQcm9maWxlcyBvZiBzZXR0aW5ncy4gLS0+XG4gICAgPHByb2ZpbGVzPlxuICAgICAgICA8IS0tIERlZmF1bHQgc2V0dGluZ3MuIC0tPlxuICAgICAgICA8ZGVmYXVsdD5cbiAgICAgICAgICAgIDwhLS0gTWF4aW11bSBtZW1vcnkgdXNhZ2UgZm9yIHByb2Nlc3Npbmcgc2luZ2xlIHF1ZXJ5LCBpbiBieXRlcy4gLS0+XG4gICAgICAgICAgICA8bWF4X21lbW9yeV91c2FnZT4xMDAwMDAwMDAwMDwvbWF4X21lbW9yeV91c2FnZT5cblxuICAgICAgICAgICAgPCEtLSBIb3cgdG8gY2hvb3NlIGJldHdlZW4gcmVwbGljYXMgZHVyaW5nIGRpc3RyaWJ1dGVkIHF1ZXJ5IHByb2Nlc3NpbmcuXG4gICAgICAgICAgICAgICAgcmFuZG9tIC0gY2hvb3NlIHJhbmRvbSByZXBsaWNhIGZyb20gc2V0IG9mIHJlcGxpY2FzIHdpdGggbWluaW11bSBudW1iZXIgb2YgZXJyb3JzXG4gICAgICAgICAgICAgICAgbmVhcmVzdF9ob3N0bmFtZSAtIGZyb20gc2V0IG9mIHJlcGxpY2FzIHdpdGggbWluaW11bSBudW1iZXIgb2YgZXJyb3JzLCBjaG9vc2UgcmVwbGljYVxuICAgICAgICAgICAgICAgICAgd2l0aCBtaW5pbXVtIG51bWJlciBvZiBkaWZmZXJlbnQgc3ltYm9scyBiZXR3ZWVuIHJlcGxpY2EncyBob3N0bmFtZSBhbmQgbG9jYWwgaG9zdG5hbWVcbiAgICAgICAgICAgICAgICAgIChIYW1taW5nIGRpc3RhbmNlKS5cbiAgICAgICAgICAgICAgICBpbl9vcmRlciAtIGZpcnN0IGxpdmUgcmVwbGljYSBpcyBjaG9zZW4gaW4gc3BlY2lmaWVkIG9yZGVyLlxuICAgICAgICAgICAgICAgIGZpcnN0X29yX3JhbmRvbSAtIGlmIGZpcnN0IHJlcGxpY2Egb25lIGhhcyBoaWdoZXIgbnVtYmVyIG9mIGVycm9ycywgcGljayBhIHJhbmRvbSBvbmUgZnJvbSByZXBsaWNhcyB3aXRoIG1pbmltdW0gbnVtYmVyIG9mIGVycm9ycy5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPGxvYWRfYmFsYW5jaW5nPnJhbmRvbTwvbG9hZF9iYWxhbmNpbmc+XG4gICAgICAgIDwvZGVmYXVsdD5cblxuICAgICAgICA8IS0tIFByb2ZpbGUgdGhhdCBhbGxvd3Mgb25seSByZWFkIHF1ZXJpZXMuIC0tPlxuICAgICAgICA8cmVhZG9ubHk+XG4gICAgICAgICAgICA8cmVhZG9ubHk+MTwvcmVhZG9ubHk+XG4gICAgICAgIDwvcmVhZG9ubHk+XG4gICAgPC9wcm9maWxlcz5cblxuICAgIDwhLS0gVXNlcnMgYW5kIEFDTC4gLS0+XG4gICAgPHVzZXJzPlxuICAgICAgICA8IS0tIElmIHVzZXIgbmFtZSB3YXMgbm90IHNwZWNpZmllZCwgJ2RlZmF1bHQnIHVzZXIgaXMgdXNlZC4gLS0+XG4gICAgICAgIDxkZWZhdWx0PlxuICAgICAgICAgICAgPCEtLSBTZWUgYWxzbyB0aGUgZmlsZXMgaW4gdXNlcnMuZCBkaXJlY3Rvcnkgd2hlcmUgdGhlIHBhc3N3b3JkIGNhbiBiZSBvdmVycmlkZGVuLlxuXG4gICAgICAgICAgICAgICAgUGFzc3dvcmQgY291bGQgYmUgc3BlY2lmaWVkIGluIHBsYWludGV4dCBvciBpbiBTSEEyNTYgKGluIGhleCBmb3JtYXQpLlxuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBwYXNzd29yZCBpbiBwbGFpbnRleHQgKG5vdCByZWNvbW1lbmRlZCksIHBsYWNlIGl0IGluICdwYXNzd29yZCcgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBFeGFtcGxlOiA8cGFzc3dvcmQ+cXdlcnR5PC9wYXNzd29yZD4uXG4gICAgICAgICAgICAgICAgUGFzc3dvcmQgY291bGQgYmUgZW1wdHkuXG5cbiAgICAgICAgICAgICAgICBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IFNIQTI1NiwgcGxhY2UgaXQgaW4gJ3Bhc3N3b3JkX3NoYTI1Nl9oZXgnIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPHBhc3N3b3JkX3NoYTI1Nl9oZXg+NjVlODRiZTMzNTMyZmI3ODRjNDgxMjk2NzVmOWVmZjNhNjgyYjI3MTY4YzBlYTc0NGIyY2Y1OGVlMDIzMzdjNTwvcGFzc3dvcmRfc2hhMjU2X2hleD5cbiAgICAgICAgICAgICAgICBSZXN0cmljdGlvbnMgb2YgU0hBMjU2OiBpbXBvc3NpYmlsaXR5IHRvIGNvbm5lY3QgdG8gQ2xpY2tIb3VzZSB1c2luZyBNeVNRTCBKUyBjbGllbnQgKGFzIG9mIEp1bHkgMjAxOSkuXG5cbiAgICAgICAgICAgICAgICBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGRvdWJsZSBTSEExLCBwbGFjZSBpdCBpbiAncGFzc3dvcmRfZG91YmxlX3NoYTFfaGV4JyBlbGVtZW50LlxuICAgICAgICAgICAgICAgIEV4YW1wbGU6IDxwYXNzd29yZF9kb3VibGVfc2hhMV9oZXg+ZTM5NTc5NmQ2NTQ2YjFiNjVkYjlkNjY1Y2Q0M2YwZTg1OGRkNDMwMzwvcGFzc3dvcmRfZG91YmxlX3NoYTFfaGV4PlxuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIHByZXZpb3VzbHkgZGVmaW5lZCBMREFQIHNlcnZlciAoc2VlICdsZGFwX3NlcnZlcnMnIGluIHRoZSBtYWluIGNvbmZpZykgZm9yIGF1dGhlbnRpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgcGxhY2UgaXRzIG5hbWUgaW4gJ3NlcnZlcicgZWxlbWVudCBpbnNpZGUgJ2xkYXAnIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGxkYXA+PHNlcnZlcj5teV9sZGFwX3NlcnZlcjwvc2VydmVyPjwvbGRhcD5cblxuICAgICAgICAgICAgICAgIElmIHlvdSB3YW50IHRvIGF1dGhlbnRpY2F0ZSB0aGUgdXNlciB2aWEgS2VyYmVyb3MgKGFzc3VtaW5nIEtlcmJlcm9zIGlzIGVuYWJsZWQsIHNlZSAna2VyYmVyb3MnIGluIHRoZSBtYWluIGNvbmZpZyksXG4gICAgICAgICAgICAgICAgICBwbGFjZSAna2VyYmVyb3MnIGVsZW1lbnQgaW5zdGVhZCBvZiAncGFzc3dvcmQnIChhbmQgc2ltaWxhcikgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgVGhlIG5hbWUgcGFydCBvZiB0aGUgY2Fub25pY2FsIHByaW5jaXBhbCBuYW1lIG9mIHRoZSBpbml0aWF0b3IgbXVzdCBtYXRjaCB0aGUgdXNlciBuYW1lIGZvciBhdXRoZW50aWNhdGlvbiB0byBzdWNjZWVkLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gYWxzbyBwbGFjZSAncmVhbG0nIGVsZW1lbnQgaW5zaWRlICdrZXJiZXJvcycgZWxlbWVudCB0byBmdXJ0aGVyIHJlc3RyaWN0IGF1dGhlbnRpY2F0aW9uIHRvIG9ubHkgdGhvc2UgcmVxdWVzdHNcbiAgICAgICAgICAgICAgICAgIHdob3NlIGluaXRpYXRvcidzIHJlYWxtIG1hdGNoZXMgaXQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGtlcmJlcm9zIC8+XG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGtlcmJlcm9zPjxyZWFsbT5FWEFNUExFLkNPTTwvcmVhbG0+PC9rZXJiZXJvcz5cblxuICAgICAgICAgICAgICAgIEhvdyB0byBnZW5lcmF0ZSBkZWNlbnQgcGFzc3dvcmQ6XG4gICAgICAgICAgICAgICAgRXhlY3V0ZTogUEFTU1dPUkQ9JChiYXNlNjQgPCAvZGV2L3VyYW5kb20gfCBoZWFkIC1jOCk7IGVjaG8gXCIkUEFTU1dPUkRcIjsgZWNobyAtbiBcIiRQQVNTV09SRFwiIHwgc2hhMjU2c3VtIHwgdHIgLWQgJy0nXG4gICAgICAgICAgICAgICAgSW4gZmlyc3QgbGluZSB3aWxsIGJlIHBhc3N3b3JkIGFuZCBpbiBzZWNvbmQgLSBjb3JyZXNwb25kaW5nIFNIQTI1Ni5cblxuICAgICAgICAgICAgICAgIEhvdyB0byBnZW5lcmF0ZSBkb3VibGUgU0hBMTpcbiAgICAgICAgICAgICAgICBFeGVjdXRlOiBQQVNTV09SRD0kKGJhc2U2NCA8IC9kZXYvdXJhbmRvbSB8IGhlYWQgLWM4KTsgZWNobyBcIiRQQVNTV09SRFwiOyBlY2hvIC1uIFwiJFBBU1NXT1JEXCIgfCBzaGExc3VtIHwgdHIgLWQgJy0nIHwgeHhkIC1yIC1wIHwgc2hhMXN1bSB8IHRyIC1kICctJ1xuICAgICAgICAgICAgICAgIEluIGZpcnN0IGxpbmUgd2lsbCBiZSBwYXNzd29yZCBhbmQgaW4gc2Vjb25kIC0gY29ycmVzcG9uZGluZyBkb3VibGUgU0hBMS5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPHBhc3N3b3JkPjwvcGFzc3dvcmQ+XG5cbiAgICAgICAgICAgIDwhLS0gTGlzdCBvZiBuZXR3b3JrcyB3aXRoIG9wZW4gYWNjZXNzLlxuXG4gICAgICAgICAgICAgICAgVG8gb3BlbiBhY2Nlc3MgZnJvbSBldmVyeXdoZXJlLCBzcGVjaWZ5OlxuICAgICAgICAgICAgICAgICAgICA8aXA+OjovMDwvaXA+XG5cbiAgICAgICAgICAgICAgICBUbyBvcGVuIGFjY2VzcyBvbmx5IGZyb20gbG9jYWxob3N0LCBzcGVjaWZ5OlxuICAgICAgICAgICAgICAgICAgICA8aXA+OjoxPC9pcD5cbiAgICAgICAgICAgICAgICAgICAgPGlwPjEyNy4wLjAuMTwvaXA+XG5cbiAgICAgICAgICAgICAgICBFYWNoIGVsZW1lbnQgb2YgbGlzdCBoYXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybXM6XG4gICAgICAgICAgICAgICAgPGlwPiBJUC1hZGRyZXNzIG9yIG5ldHdvcmsgbWFzay4gRXhhbXBsZXM6IDIxMy4xODAuMjA0LjMgb3IgMTAuMC4wLjEvOCBvciAxMC4wLjAuMS8yNTUuMjU1LjI1NS4wXG4gICAgICAgICAgICAgICAgICAgIDJhMDI6NmI4OjozIG9yIDJhMDI6NmI4OjozLzY0IG9yIDJhMDI6NmI4OjozL2ZmZmY6ZmZmZjpmZmZmOmZmZmY6Oi5cbiAgICAgICAgICAgICAgICA8aG9zdD4gSG9zdG5hbWUuIEV4YW1wbGU6IHNlcnZlcjAxLmNsaWNraG91c2UuY29tLlxuICAgICAgICAgICAgICAgICAgICBUbyBjaGVjayBhY2Nlc3MsIEROUyBxdWVyeSBpcyBwZXJmb3JtZWQsIGFuZCBhbGwgcmVjZWl2ZWQgYWRkcmVzc2VzIGNvbXBhcmVkIHRvIHBlZXIgYWRkcmVzcy5cbiAgICAgICAgICAgICAgICA8aG9zdF9yZWdleHA+IFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgaG9zdCBuYW1lcy4gRXhhbXBsZSwgXnNlcnZlclxcZFxcZC1cXGRcXGQtXFxkXFwuY2xpY2tob3VzZVxcLmNvbSRcbiAgICAgICAgICAgICAgICAgICAgVG8gY2hlY2sgYWNjZXNzLCBETlMgUFRSIHF1ZXJ5IGlzIHBlcmZvcm1lZCBmb3IgcGVlciBhZGRyZXNzIGFuZCB0aGVuIHJlZ2V4cCBpcyBhcHBsaWVkLlxuICAgICAgICAgICAgICAgICAgICBUaGVuLCBmb3IgcmVzdWx0IG9mIFBUUiBxdWVyeSwgYW5vdGhlciBETlMgcXVlcnkgaXMgcGVyZm9ybWVkIGFuZCBhbGwgcmVjZWl2ZWQgYWRkcmVzc2VzIGNvbXBhcmVkIHRvIHBlZXIgYWRkcmVzcy5cbiAgICAgICAgICAgICAgICAgICAgU3Ryb25nbHkgcmVjb21tZW5kZWQgdGhhdCByZWdleHAgaXMgZW5kcyB3aXRoICRcbiAgICAgICAgICAgICAgICBBbGwgcmVzdWx0cyBvZiBETlMgcmVxdWVzdHMgYXJlIGNhY2hlZCB0aWxsIHNlcnZlciByZXN0YXJ0LlxuICAgICAgICAgICAgLS0+XG4gICAgICAgICAgICA8bmV0d29ya3M+XG4gICAgICAgICAgICAgICAgPGlwPjo6LzA8L2lwPlxuICAgICAgICAgICAgPC9uZXR3b3Jrcz5cblxuICAgICAgICAgICAgPCEtLSBTZXR0aW5ncyBwcm9maWxlIGZvciB1c2VyLiAtLT5cbiAgICAgICAgICAgIDxwcm9maWxlPmRlZmF1bHQ8L3Byb2ZpbGU+XG5cbiAgICAgICAgICAgIDwhLS0gUXVvdGEgZm9yIHVzZXIuIC0tPlxuICAgICAgICAgICAgPHF1b3RhPmRlZmF1bHQ8L3F1b3RhPlxuXG4gICAgICAgICAgICA8IS0tIFVzZXIgY2FuIGNyZWF0ZSBvdGhlciB1c2VycyBhbmQgZ3JhbnQgcmlnaHRzIHRvIHRoZW0uIC0tPlxuICAgICAgICAgICAgPCEtLSA8YWNjZXNzX21hbmFnZW1lbnQ+MTwvYWNjZXNzX21hbmFnZW1lbnQ+IC0tPlxuICAgICAgICA8L2RlZmF1bHQ+XG4gICAgPC91c2Vycz5cblxuICAgIDwhLS0gUXVvdGFzLiAtLT5cbiAgICA8cXVvdGFzPlxuICAgICAgICA8IS0tIE5hbWUgb2YgcXVvdGEuIC0tPlxuICAgICAgICA8ZGVmYXVsdD5cbiAgICAgICAgICAgIDwhLS0gTGltaXRzIGZvciB0aW1lIGludGVydmFsLiBZb3UgY291bGQgc3BlY2lmeSBtYW55IGludGVydmFscyB3aXRoIGRpZmZlcmVudCBsaW1pdHMuIC0tPlxuICAgICAgICAgICAgPGludGVydmFsPlxuICAgICAgICAgICAgICAgIDwhLS0gTGVuZ3RoIG9mIGludGVydmFsLiAtLT5cbiAgICAgICAgICAgICAgICA8ZHVyYXRpb24+MzYwMDwvZHVyYXRpb24+XG5cbiAgICAgICAgICAgICAgICA8IS0tIE5vIGxpbWl0cy4gSnVzdCBjYWxjdWxhdGUgcmVzb3VyY2UgdXNhZ2UgZm9yIHRpbWUgaW50ZXJ2YWwuIC0tPlxuICAgICAgICAgICAgICAgIDxxdWVyaWVzPjA8L3F1ZXJpZXM+XG4gICAgICAgICAgICAgICAgPGVycm9ycz4wPC9lcnJvcnM+XG4gICAgICAgICAgICAgICAgPHJlc3VsdF9yb3dzPjA8L3Jlc3VsdF9yb3dzPlxuICAgICAgICAgICAgICAgIDxyZWFkX3Jvd3M+MDwvcmVhZF9yb3dzPlxuICAgICAgICAgICAgICAgIDxleGVjdXRpb25fdGltZT4wPC9leGVjdXRpb25fdGltZT5cbiAgICAgICAgICAgIDwvaW50ZXJ2YWw+XG4gICAgICAgIDwvZGVmYXVsdD5cbiAgICA8L3F1b3Rhcz5cbjwvY2xpY2tob3VzZT5cbiIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vY2xpY2tob3VzZS9jb25maWcueG1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL2NsaWNraG91c2Utc2VydmVyL2NvbmZpZy54bWwKICAgICAgICBjb250ZW50OiAiPD94bWwgdmVyc2lvbj1cIjEuMFwiPz5cbjxjbGlja2hvdXNlPlxuICA8bWF4X2Nvbm5lY3Rpb25zPjQwOTY8L21heF9jb25uZWN0aW9ucz5cbiAgPGtlZXBfYWxpdmVfdGltZW91dD4zPC9rZWVwX2FsaXZlX3RpbWVvdXQ+XG4gIDxtYXhfY29uY3VycmVudF9xdWVyaWVzPjEwMDwvbWF4X2NvbmN1cnJlbnRfcXVlcmllcz5cbiAgPG1hcmtfY2FjaGVfc2l6ZT41MzY4NzA5MTIwPC9tYXJrX2NhY2hlX3NpemU+XG4gIDxtbWFwX2NhY2hlX3NpemU+MTAwMDwvbW1hcF9jYWNoZV9zaXplPlxuICA8Y29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9zaXplPjEzNDIxNzcyODwvY29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9zaXplPlxuICA8Y29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9lbGVtZW50c19zaXplPjEwMDAwPC9jb21waWxlZF9leHByZXNzaW9uX2NhY2hlX2VsZW1lbnRzX3NpemU+XG4gIDxjdXN0b21fc2V0dGluZ3NfcHJlZml4ZXM+PC9jdXN0b21fc2V0dGluZ3NfcHJlZml4ZXM+XG4gIDxkaWN0aW9uYXJpZXNfY29uZmlnPipfZGljdGlvbmFyeS54bWw8L2RpY3Rpb25hcmllc19jb25maWc+XG4gIDx1c2VyX2RlZmluZWRfZXhlY3V0YWJsZV9mdW5jdGlvbnNfY29uZmlnPipmdW5jdGlvbi54bWw8L3VzZXJfZGVmaW5lZF9leGVjdXRhYmxlX2Z1bmN0aW9uc19jb25maWc+XG4gIDx1c2VyX3NjcmlwdHNfcGF0aD4vdmFyL2xpYi9jbGlja2hvdXNlL3VzZXJfc2NyaXB0cy88L3VzZXJfc2NyaXB0c19wYXRoPlxuICA8aHR0cF9wb3J0PjgxMjM8L2h0dHBfcG9ydD5cbiAgPHRjcF9wb3J0PjkwMDA8L3RjcF9wb3J0PlxuICA8bXlzcWxfcG9ydD45MDA0PC9teXNxbF9wb3J0PlxuICA8cG9zdGdyZXNxbF9wb3J0PjkwMDU8L3Bvc3RncmVzcWxfcG9ydD5cbiAgPGludGVyc2VydmVyX2h0dHBfcG9ydD45MDA5PC9pbnRlcnNlcnZlcl9odHRwX3BvcnQ+XG4gIDxsb2dnZXI+XG4gICAgPGxldmVsPmluZm9ybWF0aW9uPC9sZXZlbD5cbiAgICA8Zm9ybWF0dGluZz5cbiAgICAgIDx0eXBlPmpzb248L3R5cGU+XG4gICAgPC9mb3JtYXR0aW5nPlxuICA8L2xvZ2dlcj5cbiAgPG1hY3Jvcz5cbiAgICA8c2hhcmQ+MDE8L3NoYXJkPlxuICAgIDxyZXBsaWNhPmV4YW1wbGUwMS0wMS0xPC9yZXBsaWNhPlxuICA8L21hY3Jvcz5cbiAgPHByb21ldGhldXM+XG4gICAgPGVuZHBvaW50Pi9tZXRyaWNzPC9lbmRwb2ludD5cbiAgICA8cG9ydD45MzYzPC9wb3J0PlxuICAgIDxtZXRyaWNzPnRydWU8L21ldHJpY3M+XG4gICAgPGV2ZW50cz50cnVlPC9ldmVudHM+XG4gICAgPGFzeW5jaHJvbm91c19tZXRyaWNzPnRydWU8L2FzeW5jaHJvbm91c19tZXRyaWNzPlxuICAgIDxzdGF0dXNfaW5mbz50cnVlPC9zdGF0dXNfaW5mbz5cbiAgPC9wcm9tZXRoZXVzPlxuICA8b3BlbnRlbGVtZXRyeV9zcGFuX2xvZz5cbiAgICA8ZW5naW5lPmVuZ2luZSBNZXJnZVRyZWVcbiAgICAgICAgICAgIHBhcnRpdGlvbiBieSB0b1lZWVlNTShmaW5pc2hfZGF0ZSlcbiAgICAgICAgICAgIG9yZGVyIGJ5IChmaW5pc2hfZGF0ZSwgZmluaXNoX3RpbWVfdXMsIHRyYWNlX2lkKTwvZW5naW5lPlxuICA8L29wZW50ZWxlbWV0cnlfc3Bhbl9sb2c+XG4gIDxxdWVyeV9tYXNraW5nX3J1bGVzPlxuICAgIDxydWxlPlxuICAgICAgPG5hbWU+aGlkZSBlbmNyeXB0L2RlY3J5cHQgYXJndW1lbnRzPC9uYW1lPlxuICAgICAgPHJlZ2V4cD4oKD86YWVzXyk/KD86ZW5jcnlwdHxkZWNyeXB0KSg/Ol9teXNxbCk/KVxccypcXChcXHMqKD86Jyg/OlxcXFwnfC4pKyd8Lio/KVxccypcXCk8L3JlZ2V4cD5cbiAgICAgIDxyZXBsYWNlPlxcMSg/Pz8pPC9yZXBsYWNlPlxuICAgIDwvcnVsZT5cbiAgPC9xdWVyeV9tYXNraW5nX3J1bGVzPlxuICA8c2VuZF9jcmFzaF9yZXBvcnRzPlxuICAgIDxlbmFibGVkPmZhbHNlPC9lbmFibGVkPlxuICAgIDxhbm9ueW1pemU+ZmFsc2U8L2Fub255bWl6ZT5cbiAgICA8ZW5kcG9pbnQ+aHR0cHM6Ly82ZjMzMDM0Y2ZlNjg0ZGQ3YTNhYjk4NzVlNTdiMWM4ZEBvMzg4ODcwLmluZ2VzdC5zZW50cnkuaW8vNTIyNjI3NzwvZW5kcG9pbnQ+XG4gIDwvc2VuZF9jcmFzaF9yZXBvcnRzPlxuICA8bWVyZ2VfdHJlZV9tZXRhZGF0YV9jYWNoZT5cbiAgICA8bHJ1X2NhY2hlX3NpemU+MjY4NDM1NDU2PC9scnVfY2FjaGVfc2l6ZT5cbiAgICA8Y29udGludWVfaWZfY29ycnVwdGVkPnRydWU8L2NvbnRpbnVlX2lmX2NvcnJ1cHRlZD5cbiAgPC9tZXJnZV90cmVlX21ldGFkYXRhX2NhY2hlPlxuICA8dXNlcl9kaXJlY3Rvcmllcz5cbiAgICA8dXNlcnNfeG1sPlxuICAgICAgICA8IS0tIFBhdGggdG8gY29uZmlndXJhdGlvbiBmaWxlIHdpdGggcHJlZGVmaW5lZCB1c2Vycy4gLS0+XG4gICAgICAgIDxwYXRoPnVzZXJzLnhtbDwvcGF0aD5cbiAgICA8L3VzZXJzX3htbD5cbiAgICA8bG9jYWxfZGlyZWN0b3J5PlxuICAgICAgICA8IS0tIFBhdGggdG8gZm9sZGVyIHdoZXJlIHVzZXJzIGNyZWF0ZWQgYnkgU1FMIGNvbW1hbmRzIGFyZSBzdG9yZWQuIC0tPlxuICAgICAgICA8cGF0aD4vdmFyL2xpYi9jbGlja2hvdXNlL2FjY2Vzcy88L3BhdGg+XG4gICAgPC9sb2NhbF9kaXJlY3Rvcnk+XG4gIDwvdXNlcl9kaXJlY3Rvcmllcz5cbiAgPGRlZmF1bHRfcHJvZmlsZT5kZWZhdWx0PC9kZWZhdWx0X3Byb2ZpbGU+XG4gICAgPGRpc3RyaWJ1dGVkX2RkbD5cbiAgICAgICAgPCEtLSBQYXRoIGluIFpvb0tlZXBlciB0byBxdWV1ZSB3aXRoIERETCBxdWVyaWVzIC0tPlxuICAgICAgICA8cGF0aD4vY2xpY2tob3VzZS90YXNrX3F1ZXVlL2RkbDwvcGF0aD5cbiAgICA8L2Rpc3RyaWJ1dGVkX2RkbD5cbjwvY2xpY2tob3VzZT5cbiIKICBzaWdub3o6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3o6djAuOTcuMScKICAgIGRlcGVuZHNfb246CiAgICAgIGNsaWNraG91c2U6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgICAgc2NoZW1hLW1pZ3JhdG9yLXN5bmM6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHkKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGNvbW1hbmQ6CiAgICAgIC0gJy0tY29uZmlnPS9yb290L2NvbmZpZy9wcm9tZXRoZXVzLnltbCcKICAgIHZvbHVtZXM6CiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL3Byb21ldGhldXMueW1sCiAgICAgICAgdGFyZ2V0OiAvcm9vdC9jb25maWcvcHJvbWV0aGV1cy55bWwKICAgICAgICBjb250ZW50OiAiIyBteSBnbG9iYWwgY29uZmlnXG5nbG9iYWw6XG4gIHNjcmFwZV9pbnRlcnZhbDogICAgIDVzICMgU2V0IHRoZSBzY3JhcGUgaW50ZXJ2YWwgdG8gZXZlcnkgMTUgc2Vjb25kcy4gRGVmYXVsdCBpcyBldmVyeSAxIG1pbnV0ZS5cbiAgZXZhbHVhdGlvbl9pbnRlcnZhbDogMTVzICMgRXZhbHVhdGUgcnVsZXMgZXZlcnkgMTUgc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgZXZlcnkgMSBtaW51dGUuXG4gICMgc2NyYXBlX3RpbWVvdXQgaXMgc2V0IHRvIHRoZSBnbG9iYWwgZGVmYXVsdCAoMTBzKS5cblxuIyBBbGVydG1hbmFnZXIgY29uZmlndXJhdGlvblxuYWxlcnRpbmc6XG4gIGFsZXJ0bWFuYWdlcnM6XG4gIC0gc3RhdGljX2NvbmZpZ3M6XG4gICAgLSB0YXJnZXRzOlxuICAgICAgLSBhbGVydG1hbmFnZXI6OTA5M1xuXG4jIExvYWQgcnVsZXMgb25jZSBhbmQgcGVyaW9kaWNhbGx5IGV2YWx1YXRlIHRoZW0gYWNjb3JkaW5nIHRvIHRoZSBnbG9iYWwgJ2V2YWx1YXRpb25faW50ZXJ2YWwnLlxucnVsZV9maWxlczogW11cbiAgIyAtIFwiZmlyc3RfcnVsZXMueW1sXCJcbiAgIyAtIFwic2Vjb25kX3J1bGVzLnltbFwiXG4gICMgLSAnYWxlcnRzLnltbCdcblxuIyBBIHNjcmFwZSBjb25maWd1cmF0aW9uIGNvbnRhaW5pbmcgZXhhY3RseSBvbmUgZW5kcG9pbnQgdG8gc2NyYXBlOlxuIyBIZXJlIGl0J3MgUHJvbWV0aGV1cyBpdHNlbGYuXG5zY3JhcGVfY29uZmlnczogW11cblxucmVtb3RlX3JlYWQ6XG4gIC0gdXJsOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X21ldHJpY3NcbiIKICAgICAgLQogICAgICAgIHR5cGU6IHZvbHVtZQogICAgICAgIHNvdXJjZTogc3FsaXRlCiAgICAgICAgdGFyZ2V0OiAvdmFyL2xpYi9zaWdub3ovCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9TSUdOT1pfODA4MAogICAgICAtICdTSUdOT1pfSldUX1NFQ1JFVD0ke1NFUlZJQ0VfUkVBTEJBU0U2NF9KV1RTRUNSRVR9JwogICAgICAtICdTSUdOT1pfVEVMRU1FVFJZU1RPUkVfQ0xJQ0tIT1VTRV9EU049dGNwOi8vY2xpY2tob3VzZTo5MDAwJwogICAgICAtIFNJR05PWl9TUUxTVE9SRV9TUUxJVEVfUEFUSD0vdmFyL2xpYi9zaWdub3ovc2lnbm96LmRiCiAgICAgIC0gREFTSEJPQVJEU19QQVRIPS9yb290L2NvbmZpZy9kYXNoYm9hcmRzCiAgICAgIC0gU1RPUkFHRT1jbGlja2hvdXNlCiAgICAgIC0gR09ERUJVRz1uZXRkbnM9Z28KICAgICAgLSBERVBMT1lNRU5UX1RZUEU9ZG9ja2VyLXN0YW5kYWxvbmUtYW1kCiAgICAgIC0gJ1NJR05PWl9TVEFUU1JFUE9SVEVSX0VOQUJMRUQ9JHtTSUdOT1pfU1RBVFNSRVBPUlRFUl9FTkFCTEVEOi10cnVlfScKICAgICAgLSAnU0lHTk9aX0VNQUlMSU5HX0VOQUJMRUQ9JHtTSUdOT1pfRU1BSUxJTkdfRU5BQkxFRDotZmFsc2V9JwogICAgICAtICdTSUdOT1pfRU1BSUxJTkdfU01UUF9BRERSRVNTPSR7U0lHTk9aX0VNQUlMSU5HX1NNVFBfQUREUkVTU30nCiAgICAgIC0gJ1NJR05PWl9FTUFJTElOR19TTVRQX0ZST009JHtTSUdOT1pfRU1BSUxJTkdfU01UUF9GUk9NfScKICAgICAgLSAnU0lHTk9aX0VNQUlMSU5HX1NNVFBfQVVUSF9VU0VSTkFNRT0ke1NJR05PWl9FTUFJTElOR19TTVRQX0FVVEhfVVNFUk5BTUV9JwogICAgICAtICdTSUdOT1pfRU1BSUxJTkdfU01UUF9BVVRIX1BBU1NXT1JEPSR7U0lHTk9aX0VNQUlMSU5HX1NNVFBfQVVUSF9QQVNTV09SRH0nCiAgICAgIC0gU0lHTk9aX0FMRVJUTUFOQUdFUl9QUk9WSURFUj1zaWdub3oKICAgICAgLSAnU0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0FVVEhfX1BBU1NXT1JEPSR7U0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0FVVEhfX1BBU1NXT1JEfScKICAgICAgLSAnU0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0FVVEhfX1VTRVJOQU1FPSR7U0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0FVVEhfX1VTRVJOQU1FfScKICAgICAgLSAnU0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0ZST009JHtTSUdOT1pfQUxFUlRNQU5BR0VSX1NJR05PWl9HTE9CQUxfU01UUF9fRlJPTX0nCiAgICAgIC0gJ1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19TTUFSVEhPU1Q9JHtTSUdOT1pfQUxFUlRNQU5BR0VSX1NJR05PWl9HTE9CQUxfU01UUF9fU01BUlRIT1NUfScKICAgICAgLSBET1RfTUVUUklDU19FTkFCRUxEPXRydWUKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnLXEnCiAgICAgICAgLSAnbG9jYWxob3N0OjgwODAvYXBpL3YxL2hlYWx0aCcKICAgICAgaW50ZXJ2YWw6IDMwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAzCiAgb3RlbC1jb2xsZWN0b3I6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3otb3RlbC1jb2xsZWN0b3I6djAuMTI5LjcnCiAgICBkZXBlbmRzX29uOgogICAgICBjbGlja2hvdXNlOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICAgIHNjaGVtYS1taWdyYXRvci1zeW5jOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5CiAgICAgIHNpZ25vejoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgbG9nZ2luZzoKICAgICAgb3B0aW9uczoKICAgICAgICBtYXgtc2l6ZTogNTBtCiAgICAgICAgbWF4LWZpbGU6ICczJwogICAgY29tbWFuZDoKICAgICAgLSAnLS1jb25maWc9L2V0Yy9vdGVsLWNvbGxlY3Rvci1jb25maWcueWFtbCcKICAgICAgLSAnLS1tYW5hZ2VyLWNvbmZpZz0vZXRjL21hbmFnZXItY29uZmlnLnlhbWwnCiAgICAgIC0gJy0tY29weS1wYXRoPS92YXIvdG1wL2NvbGxlY3Rvci1jb25maWcueWFtbCcKICAgICAgLSAnLS1mZWF0dXJlLWdhdGVzPS1wa2cudHJhbnNsYXRvci5wcm9tZXRoZXVzLk5vcm1hbGl6ZU5hbWUnCiAgICB2b2x1bWVzOgogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9vdGVsLWNvbGxlY3Rvci1jb25maWcueWFtbAogICAgICAgIHRhcmdldDogL2V0Yy9vdGVsLWNvbGxlY3Rvci1jb25maWcueWFtbAogICAgICAgIGNvbnRlbnQ6ICJyZWNlaXZlcnM6XG4gIG90bHA6XG4gICAgcHJvdG9jb2xzOlxuICAgICAgZ3JwYzpcbiAgICAgICAgZW5kcG9pbnQ6IDAuMC4wLjA6NDMxN1xuICAgICAgaHR0cDpcbiAgICAgICAgZW5kcG9pbnQ6IDAuMC4wLjA6NDMxOFxuICBwcm9tZXRoZXVzOlxuICAgIGNvbmZpZzpcbiAgICAgIGdsb2JhbDpcbiAgICAgICAgc2NyYXBlX2ludGVydmFsOiA2MHNcbiAgICAgIHNjcmFwZV9jb25maWdzOlxuICAgICAgICAtIGpvYl9uYW1lOiBvdGVsLWNvbGxlY3RvclxuICAgICAgICAgIHN0YXRpY19jb25maWdzOlxuICAgICAgICAgIC0gdGFyZ2V0czpcbiAgICAgICAgICAgICAgLSBsb2NhbGhvc3Q6ODg4OFxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBqb2JfbmFtZTogb3RlbC1jb2xsZWN0b3JcbnByb2Nlc3NvcnM6XG4gIGJhdGNoOlxuICAgIHNlbmRfYmF0Y2hfc2l6ZTogMTAwMDBcbiAgICBzZW5kX2JhdGNoX21heF9zaXplOiAxMTAwMFxuICAgIHRpbWVvdXQ6IDEwc1xuICByZXNvdXJjZWRldGVjdGlvbjpcbiAgICAjIFVzaW5nIE9URUxfUkVTT1VSQ0VfQVRUUklCVVRFUyBlbnZ2YXIsIGVudiBkZXRlY3RvciBhZGRzIGN1c3RvbSBsYWJlbHMuXG4gICAgZGV0ZWN0b3JzOiBbZW52LCBzeXN0ZW1dXG4gICAgdGltZW91dDogMnNcbiAgc2lnbm96c3Bhbm1ldHJpY3MvZGVsdGE6XG4gICAgbWV0cmljc19leHBvcnRlcjogc2lnbm96Y2xpY2tob3VzZW1ldHJpY3NcbiAgICBtZXRyaWNzX2ZsdXNoX2ludGVydmFsOiA2MHNcbiAgICBsYXRlbmN5X2hpc3RvZ3JhbV9idWNrZXRzOiBbMTAwdXMsIDFtcywgMm1zLCA2bXMsIDEwbXMsIDUwbXMsIDEwMG1zLCAyNTBtcywgNTAwbXMsIDEwMDBtcywgMTQwMG1zLCAyMDAwbXMsIDVzLCAxMHMsIDIwcywgNDBzLCA2MHMgXVxuICAgIGRpbWVuc2lvbnNfY2FjaGVfc2l6ZTogMTAwMDAwXG4gICAgYWdncmVnYXRpb25fdGVtcG9yYWxpdHk6IEFHR1JFR0FUSU9OX1RFTVBPUkFMSVRZX0RFTFRBXG4gICAgZW5hYmxlX2V4cF9oaXN0b2dyYW06IHRydWVcbiAgICBkaW1lbnNpb25zOlxuICAgICAgLSBuYW1lOiBzZXJ2aWNlLm5hbWVzcGFjZVxuICAgICAgICBkZWZhdWx0OiBkZWZhdWx0XG4gICAgICAtIG5hbWU6IGRlcGxveW1lbnQuZW52aXJvbm1lbnRcbiAgICAgICAgZGVmYXVsdDogZGVmYXVsdFxuICAgICAgIyBUaGlzIGlzIGFkZGVkIHRvIGVuc3VyZSB0aGUgdW5pcXVlbmVzcyBvZiB0aGUgdGltZXNlcmllc1xuICAgICAgIyBPdGhlcndpc2UsIGlkZW50aWNhbCB0aW1lc2VyaWVzIHByb2R1Y2VkIGJ5IG11bHRpcGxlIHJlcGxpY2FzIG9mXG4gICAgICAjIGNvbGxlY3RvcnMgcmVzdWx0IGluIGluY29ycmVjdCBBUE0gbWV0cmljc1xuICAgICAgLSBuYW1lOiBzaWdub3ouY29sbGVjdG9yLmlkXG4gICAgICAtIG5hbWU6IHNlcnZpY2UudmVyc2lvblxuICAgICAgLSBuYW1lOiBicm93c2VyLnBsYXRmb3JtXG4gICAgICAtIG5hbWU6IGJyb3dzZXIubW9iaWxlXG4gICAgICAtIG5hbWU6IGs4cy5jbHVzdGVyLm5hbWVcbiAgICAgIC0gbmFtZTogazhzLm5vZGUubmFtZVxuICAgICAgLSBuYW1lOiBrOHMubmFtZXNwYWNlLm5hbWVcbiAgICAgIC0gbmFtZTogaG9zdC5uYW1lXG4gICAgICAtIG5hbWU6IGhvc3QudHlwZVxuICAgICAgLSBuYW1lOiBjb250YWluZXIubmFtZVxuZXh0ZW5zaW9uczpcbiAgaGVhbHRoX2NoZWNrOlxuICAgIGVuZHBvaW50OiAwLjAuMC4wOjEzMTMzXG4gIHBwcm9mOlxuICAgIGVuZHBvaW50OiAwLjAuMC4wOjE3NzdcbmV4cG9ydGVyczpcbiAgY2xpY2tob3VzZXRyYWNlczpcbiAgICBkYXRhc291cmNlOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X3RyYWNlc1xuICAgIGxvd19jYXJkaW5hbF9leGNlcHRpb25fZ3JvdXBpbmc6ICR7ZW52OkxPV19DQVJESU5BTF9FWENFUFRJT05fR1JPVVBJTkd9XG4gICAgdXNlX25ld19zY2hlbWE6IHRydWVcbiAgc2lnbm96Y2xpY2tob3VzZW1ldHJpY3M6XG4gICAgZHNuOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X21ldHJpY3NcbiAgY2xpY2tob3VzZWxvZ3NleHBvcnRlcjpcbiAgICBkc246IHRjcDovL2NsaWNraG91c2U6OTAwMC9zaWdub3pfbG9nc1xuICAgIHRpbWVvdXQ6IDEwc1xuICAgIHVzZV9uZXdfc2NoZW1hOiB0cnVlXG5zZXJ2aWNlOlxuICB0ZWxlbWV0cnk6XG4gICAgbG9nczpcbiAgICAgIGVuY29kaW5nOiBqc29uXG4gIGV4dGVuc2lvbnM6XG4gICAgLSBoZWFsdGhfY2hlY2tcbiAgICAtIHBwcm9mXG4gIHBpcGVsaW5lczpcbiAgICB0cmFjZXM6XG4gICAgICByZWNlaXZlcnM6IFtvdGxwXVxuICAgICAgcHJvY2Vzc29yczogW3NpZ25venNwYW5tZXRyaWNzL2RlbHRhLCBiYXRjaF1cbiAgICAgIGV4cG9ydGVyczogW2NsaWNraG91c2V0cmFjZXNdXG4gICAgbWV0cmljczpcbiAgICAgIHJlY2VpdmVyczogW290bHBdXG4gICAgICBwcm9jZXNzb3JzOiBbYmF0Y2hdXG4gICAgICBleHBvcnRlcnM6IFtzaWdub3pjbGlja2hvdXNlbWV0cmljc11cbiAgICBtZXRyaWNzL3Byb21ldGhldXM6XG4gICAgICByZWNlaXZlcnM6IFtwcm9tZXRoZXVzXVxuICAgICAgcHJvY2Vzc29yczogW2JhdGNoXVxuICAgICAgZXhwb3J0ZXJzOiBbc2lnbm96Y2xpY2tob3VzZW1ldHJpY3NdXG4gICAgbG9nczpcbiAgICAgIHJlY2VpdmVyczogW290bHBdXG4gICAgICBwcm9jZXNzb3JzOiBbYmF0Y2hdXG4gICAgICBleHBvcnRlcnM6IFtjbGlja2hvdXNlbG9nc2V4cG9ydGVyXSIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vb3RlbC1jb2xsZWN0b3Itb3BhbXAtY29uZmlnLnlhbWwKICAgICAgICB0YXJnZXQ6IC9ldGMvbWFuYWdlci1jb25maWcueWFtbAogICAgICAgIGNvbnRlbnQ6ICJzZXJ2ZXJfZW5kcG9pbnQ6IHdzOi8vc2lnbm96OjQzMjAvdjEvb3BhbXBcbiIKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX09URUxDT0xMRUNUT1JIVFRQXzQzMTgKICAgICAgLSAnT1RFTF9SRVNPVVJDRV9BVFRSSUJVVEVTPWhvc3QubmFtZT1zaWdub3otaG9zdCxvcy50eXBlPWxpbnV4JwogICAgICAtIExPV19DQVJESU5BTF9FWENFUFRJT05fR1JPVVBJTkc9ZmFsc2UKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OiAnYmFzaCAtYyAiZXhlYyA2PD4gL2Rldi90Y3AvbG9jYWxob3N0LzEzMTMzIicKICAgICAgaW50ZXJ2YWw6IDMwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAzCiAgc2NoZW1hLW1pZ3JhdG9yLXN5bmM6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3otc2NoZW1hLW1pZ3JhdG9yOnYwLjEyOS43JwogICAgY29tbWFuZDoKICAgICAgLSBzeW5jCiAgICAgIC0gJy0tZHNuPXRjcDovL2NsaWNraG91c2U6OTAwMCcKICAgICAgLSAnLS11cD0nCiAgICBkZXBlbmRzX29uOgogICAgICBjbGlja2hvdXNlOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICBzY2hlbWEtbWlncmF0b3ItYXN5bmM6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3otc2NoZW1hLW1pZ3JhdG9yOnYwLjEyOS43JwogICAgZGVwZW5kc19vbjoKICAgICAgY2xpY2tob3VzZToKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgICBzY2hlbWEtbWlncmF0b3Itc3luYzoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseQogICAgcmVzdGFydDogb24tZmFpbHVyZQogICAgZXhjbHVkZV9mcm9tX2hjOiB0cnVlCiAgICBsb2dnaW5nOgogICAgICBvcHRpb25zOgogICAgICAgIG1heC1zaXplOiA1MG0KICAgICAgICBtYXgtZmlsZTogJzMnCiAgICBjb21tYW5kOgogICAgICAtIGFzeW5jCiAgICAgIC0gJy0tZHNuPXRjcDovL2NsaWNraG91c2U6OTAwMCcKICAgICAgLSAnLS11cD0nCg==", + "compose": "c2VydmljZXM6CiAgaW5pdC1jbGlja2hvdXNlOgogICAgaW1hZ2U6ICdjbGlja2hvdXNlL2NsaWNraG91c2Utc2VydmVyOjI1LjUuNi1hbHBpbmUnCiAgICBjb21tYW5kOgogICAgICAtIGJhc2gKICAgICAgLSAnLWMnCiAgICAgIC0gInZlcnNpb249XCJ2MC4wLjFcIlxubm9kZV9vcz0kJCh1bmFtZSAtcyB8IHRyICdbOnVwcGVyOl0nICdbOmxvd2VyOl0nKVxubm9kZV9hcmNoPSQkKHVuYW1lIC1tIHwgc2VkIHMvYWFyY2g2NC9hcm02NC8gfCBzZWQgcy94ODZfNjQvYW1kNjQvKVxuZWNobyBcIkZldGNoaW5nIGhpc3RvZ3JhbS1iaW5hcnkgZm9yICQke25vZGVfb3N9LyQke25vZGVfYXJjaH1cIlxuY2QgL3RtcFxud2dldCAtTyBoaXN0b2dyYW0tcXVhbnRpbGUudGFyLmd6IFwiaHR0cHM6Ly9naXRodWIuY29tL1NpZ05vei9zaWdub3ovcmVsZWFzZXMvZG93bmxvYWQvaGlzdG9ncmFtLXF1YW50aWxlJTJGJCR7dmVyc2lvbn0vaGlzdG9ncmFtLXF1YW50aWxlXyQke25vZGVfb3N9XyQke25vZGVfYXJjaH0udGFyLmd6XCJcbnRhciAteHZ6ZiBoaXN0b2dyYW0tcXVhbnRpbGUudGFyLmd6XG5ta2RpciAtcCAvdmFyL2xpYi9jbGlja2hvdXNlL3VzZXJfc2NyaXB0cy9oaXN0b2dyYW1RdWFudGlsZVxubXYgaGlzdG9ncmFtLXF1YW50aWxlIC92YXIvbGliL2NsaWNraG91c2UvdXNlcl9zY3JpcHRzL2hpc3RvZ3JhbVF1YW50aWxlXG4iCiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICB6b29rZWVwZXI6CiAgICBpbWFnZTogJ3NpZ25vei96b29rZWVwZXI6My45LjMnCiAgICB1c2VyOiByb290CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ2N1cmwgLXMgLW0gMiBodHRwOi8vbG9jYWxob3N0OjgwODAvY29tbWFuZHMvcnVvayB8IGdyZXAgZXJyb3IgfCBncmVwIG51bGwnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogICAgbG9nZ2luZzoKICAgICAgb3B0aW9uczoKICAgICAgICBtYXgtc2l6ZTogNTBtCiAgICAgICAgbWF4LWZpbGU6ICczJwogICAgdm9sdW1lczoKICAgICAgLSAnem9va2VlcGVyOi9iaXRuYW1pL3pvb2tlZXBlcicKICAgIGVudmlyb25tZW50OgogICAgICAtICdBTExPV19BTk9OWU1PVVNfTE9HSU49JHtaT09fQUxMT1dfQU5PTllNT1VTX0xPR0lOOi15ZXN9JwogICAgICAtICdaT09fQVVUT1BVUkdFX0lOVEVSVkFMPSR7Wk9PX0FVVE9QVVJHRV9JTlRFUlZBTDotMX0nCiAgICAgIC0gJ1pPT19FTkFCTEVfUFJPTUVUSEVVU19NRVRSSUNTPSR7Wk9PX0VOQUJMRV9QUk9NRVRIRVVTX01FVFJJQ1M6LXllc30nCiAgICAgIC0gJ1pPT19QUk9NRVRIRVVTX01FVFJJQ1NfUE9SVF9OVU1CRVI9JHtaT09fUFJPTUVUSEVVU19NRVRSSUNTX1BPUlRfTlVNQkVSOi05MTQxfScKICBjbGlja2hvdXNlOgogICAgaW1hZ2U6ICdjbGlja2hvdXNlL2NsaWNraG91c2Utc2VydmVyOjI1LjUuNi1hbHBpbmUnCiAgICB0dHk6IHRydWUKICAgIGRlcGVuZHNfb246CiAgICAgIGluaXQtY2xpY2tob3VzZToKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseQogICAgICB6b29rZWVwZXI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnLXEnCiAgICAgICAgLSAnMC4wLjAuMDo4MTIzL3BpbmcnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogICAgdWxpbWl0czoKICAgICAgbnByb2M6IDY1NTM1CiAgICAgIG5vZmlsZToKICAgICAgICBzb2Z0OiAyNjIxNDQKICAgICAgICBoYXJkOiAyNjIxNDQKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGVudmlyb25tZW50OgogICAgICAtIENMSUNLSE9VU0VfU0tJUF9VU0VSX1NFVFVQPTEKICAgIHZvbHVtZXM6CiAgICAgIC0KICAgICAgICB0eXBlOiB2b2x1bWUKICAgICAgICBzb3VyY2U6IGNsaWNraG91c2UKICAgICAgICB0YXJnZXQ6IC92YXIvbGliL2NsaWNraG91c2UvCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL2NsaWNraG91c2UvY3VzdG9tLWZ1bmN0aW9uLnhtbAogICAgICAgIHRhcmdldDogL2V0Yy9jbGlja2hvdXNlLXNlcnZlci9jdXN0b20tZnVuY3Rpb24ueG1sCiAgICAgICAgY29udGVudDogIjxmdW5jdGlvbnM+XG4gICAgPGZ1bmN0aW9uPlxuICAgICAgICA8dHlwZT5leGVjdXRhYmxlPC90eXBlPlxuICAgICAgICA8bmFtZT5oaXN0b2dyYW1RdWFudGlsZTwvbmFtZT5cbiAgICAgICAgPHJldHVybl90eXBlPkZsb2F0NjQ8L3JldHVybl90eXBlPlxuICAgICAgICA8YXJndW1lbnQ+XG4gICAgICAgICAgICA8dHlwZT5BcnJheShGbG9hdDY0KTwvdHlwZT5cbiAgICAgICAgICAgIDxuYW1lPmJ1Y2tldHM8L25hbWU+XG4gICAgICAgIDwvYXJndW1lbnQ+XG4gICAgICAgIDxhcmd1bWVudD5cbiAgICAgICAgICAgIDx0eXBlPkFycmF5KEZsb2F0NjQpPC90eXBlPlxuICAgICAgICAgICAgPG5hbWU+Y291bnRzPC9uYW1lPlxuICAgICAgICA8L2FyZ3VtZW50PlxuICAgICAgICA8YXJndW1lbnQ+XG4gICAgICAgICAgICA8dHlwZT5GbG9hdDY0PC90eXBlPlxuICAgICAgICAgICAgPG5hbWU+cXVhbnRpbGU8L25hbWU+XG4gICAgICAgIDwvYXJndW1lbnQ+XG4gICAgICAgIDxmb3JtYXQ+Q1NWPC9mb3JtYXQ+XG4gICAgICAgIDxjb21tYW5kPi4vaGlzdG9ncmFtUXVhbnRpbGU8L2NvbW1hbmQ+XG4gICAgPC9mdW5jdGlvbj5cbjwvZnVuY3Rpb25zPlxuIgogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9jbGlja2hvdXNlL2NsdXN0ZXIueG1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL2NsaWNraG91c2Utc2VydmVyL2NvbmZpZy5kL2NsdXN0ZXIueG1sCiAgICAgICAgY29udGVudDogIjw/eG1sIHZlcnNpb249XCIxLjBcIj8+XG48Y2xpY2tob3VzZT5cbiAgICA8IS0tIFpvb0tlZXBlciBpcyB1c2VkIHRvIHN0b3JlIG1ldGFkYXRhIGFib3V0IHJlcGxpY2FzLCB3aGVuIHVzaW5nIFJlcGxpY2F0ZWQgdGFibGVzLlxuICAgICAgICBPcHRpb25hbC4gSWYgeW91IGRvbid0IHVzZSByZXBsaWNhdGVkIHRhYmxlcywgeW91IGNvdWxkIG9taXQgdGhhdC5cblxuICAgICAgICBTZWUgaHR0cHM6Ly9jbGlja2hvdXNlLmNvbS9kb2NzL2VuL2VuZ2luZXMvdGFibGUtZW5naW5lcy9tZXJnZXRyZWUtZmFtaWx5L3JlcGxpY2F0aW9uL1xuICAgICAgLS0+XG4gICAgPHpvb2tlZXBlcj5cbiAgICAgICAgPG5vZGUgaW5kZXg9XCIxXCI+XG4gICAgICAgICAgICA8aG9zdD56b29rZWVwZXI8L2hvc3Q+XG4gICAgICAgICAgICA8cG9ydD4yMTgxPC9wb3J0PlxuICAgICAgICA8L25vZGU+XG4gICAgPC96b29rZWVwZXI+XG5cbiAgICA8IS0tIENvbmZpZ3VyYXRpb24gb2YgY2x1c3RlcnMgdGhhdCBjb3VsZCBiZSB1c2VkIGluIERpc3RyaWJ1dGVkIHRhYmxlcy5cbiAgICAgICAgaHR0cHM6Ly9jbGlja2hvdXNlLmNvbS9kb2NzL2VuL29wZXJhdGlvbnMvdGFibGVfZW5naW5lcy9kaXN0cmlidXRlZC9cbiAgICAgIC0tPlxuICAgIDxyZW1vdGVfc2VydmVycz5cbiAgICAgICAgPGNsdXN0ZXI+XG4gICAgICAgICAgICA8IS0tIEludGVyLXNlcnZlciBwZXItY2x1c3RlciBzZWNyZXQgZm9yIERpc3RyaWJ1dGVkIHF1ZXJpZXNcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBubyBzZWNyZXQgKG5vIGF1dGhlbnRpY2F0aW9uIHdpbGwgYmUgcGVyZm9ybWVkKVxuXG4gICAgICAgICAgICAgICAgSWYgc2V0LCB0aGVuIERpc3RyaWJ1dGVkIHF1ZXJpZXMgd2lsbCBiZSB2YWxpZGF0ZWQgb24gc2hhcmRzLCBzbyBhdCBsZWFzdDpcbiAgICAgICAgICAgICAgICAtIHN1Y2ggY2x1c3RlciBzaG91bGQgZXhpc3Qgb24gdGhlIHNoYXJkLFxuICAgICAgICAgICAgICAgIC0gc3VjaCBjbHVzdGVyIHNob3VsZCBoYXZlIHRoZSBzYW1lIHNlY3JldC5cblxuICAgICAgICAgICAgICAgIEFuZCBhbHNvIChhbmQgd2hpY2ggaXMgbW9yZSBpbXBvcnRhbnQpLCB0aGUgaW5pdGlhbF91c2VyIHdpbGxcbiAgICAgICAgICAgICAgICBiZSB1c2VkIGFzIGN1cnJlbnQgdXNlciBmb3IgdGhlIHF1ZXJ5LlxuXG4gICAgICAgICAgICAgICAgUmlnaHQgbm93IHRoZSBwcm90b2NvbCBpcyBwcmV0dHkgc2ltcGxlIGFuZCBpdCBvbmx5IHRha2VzIGludG8gYWNjb3VudDpcbiAgICAgICAgICAgICAgICAtIGNsdXN0ZXIgbmFtZVxuICAgICAgICAgICAgICAgIC0gcXVlcnlcblxuICAgICAgICAgICAgICAgIEFsc28gaXQgd2lsbCBiZSBuaWNlIGlmIHRoZSBmb2xsb3dpbmcgd2lsbCBiZSBpbXBsZW1lbnRlZDpcbiAgICAgICAgICAgICAgICAtIHNvdXJjZSBob3N0bmFtZSAoc2VlIGludGVyc2VydmVyX2h0dHBfaG9zdCksIGJ1dCB0aGVuIGl0IHdpbGwgZGVwZW5kcyBmcm9tIEROUyxcbiAgICAgICAgICAgICAgICAgIGl0IGNhbiB1c2UgSVAgYWRkcmVzcyBpbnN0ZWFkLCBidXQgdGhlbiB0aGUgeW91IG5lZWQgdG8gZ2V0IGNvcnJlY3Qgb24gdGhlIGluaXRpYXRvciBub2RlLlxuICAgICAgICAgICAgICAgIC0gdGFyZ2V0IGhvc3RuYW1lIC8gaXAgYWRkcmVzcyAoc2FtZSBub3RlcyBhcyBmb3Igc291cmNlIGhvc3RuYW1lKVxuICAgICAgICAgICAgICAgIC0gdGltZS1iYXNlZCBzZWN1cml0eSB0b2tlbnNcbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPCEtLSA8c2VjcmV0Pjwvc2VjcmV0PiAtLT5cbiAgICAgICAgICAgIDxzaGFyZD5cbiAgICAgICAgICAgICAgICA8IS0tIE9wdGlvbmFsLiBXaGV0aGVyIHRvIHdyaXRlIGRhdGEgdG8ganVzdCBvbmUgb2YgdGhlIHJlcGxpY2FzLiBEZWZhdWx0OiBmYWxzZSAod3JpdGUgZGF0YSB0byBhbGwgcmVwbGljYXMpLiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxpbnRlcm5hbF9yZXBsaWNhdGlvbj5mYWxzZTwvaW50ZXJuYWxfcmVwbGljYXRpb24+IC0tPlxuICAgICAgICAgICAgICAgIDwhLS0gT3B0aW9uYWwuIFNoYXJkIHdlaWdodCB3aGVuIHdyaXRpbmcgZGF0YS4gRGVmYXVsdDogMS4gLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8d2VpZ2h0PjE8L3dlaWdodD4gLS0+XG4gICAgICAgICAgICAgICAgPHJlcGxpY2E+XG4gICAgICAgICAgICAgICAgICAgIDxob3N0PmNsaWNraG91c2U8L2hvc3Q+XG4gICAgICAgICAgICAgICAgICAgIDxwb3J0PjkwMDA8L3BvcnQ+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gT3B0aW9uYWwuIFByaW9yaXR5IG9mIHRoZSByZXBsaWNhIGZvciBsb2FkX2JhbGFuY2luZy4gRGVmYXVsdDogMSAobGVzcyB2YWx1ZSBoYXMgbW9yZSBwcmlvcml0eSkuIC0tPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwcmlvcml0eT4xPC9wcmlvcml0eT4gLS0+XG4gICAgICAgICAgICAgICAgPC9yZXBsaWNhPlxuICAgICAgICAgICAgPC9zaGFyZD5cbiAgICAgICAgICAgIDwhLS0gPHNoYXJkPlxuICAgICAgICAgICAgICAgIDxyZXBsaWNhPlxuICAgICAgICAgICAgICAgICAgICA8aG9zdD5jbGlja2hvdXNlLTI8L2hvc3Q+XG4gICAgICAgICAgICAgICAgICAgIDxwb3J0PjkwMDA8L3BvcnQ+XG4gICAgICAgICAgICAgICAgPC9yZXBsaWNhPlxuICAgICAgICAgICAgPC9zaGFyZD5cbiAgICAgICAgICAgIDxzaGFyZD5cbiAgICAgICAgICAgICAgICA8cmVwbGljYT5cbiAgICAgICAgICAgICAgICAgICAgPGhvc3Q+Y2xpY2tob3VzZS0zPC9ob3N0PlxuICAgICAgICAgICAgICAgICAgICA8cG9ydD45MDAwPC9wb3J0PlxuICAgICAgICAgICAgICAgIDwvcmVwbGljYT5cbiAgICAgICAgICAgIDwvc2hhcmQ+IC0tPlxuICAgICAgICA8L2NsdXN0ZXI+XG4gICAgPC9yZW1vdGVfc2VydmVycz5cbjwvY2xpY2tob3VzZT5cbiIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vY2xpY2tob3VzZS91c2Vycy54bWwKICAgICAgICB0YXJnZXQ6IC9ldGMvY2xpY2tob3VzZS1zZXJ2ZXIvdXNlcnMueG1sCiAgICAgICAgY29udGVudDogIjw/eG1sIHZlcnNpb249XCIxLjBcIj8+XG48Y2xpY2tob3VzZT5cbiAgICA8IS0tIFNlZSBhbHNvIHRoZSBmaWxlcyBpbiB1c2Vycy5kIGRpcmVjdG9yeSB3aGVyZSB0aGUgc2V0dGluZ3MgY2FuIGJlIG92ZXJyaWRkZW4uIC0tPlxuXG4gICAgPCEtLSBQcm9maWxlcyBvZiBzZXR0aW5ncy4gLS0+XG4gICAgPHByb2ZpbGVzPlxuICAgICAgICA8IS0tIERlZmF1bHQgc2V0dGluZ3MuIC0tPlxuICAgICAgICA8ZGVmYXVsdD5cbiAgICAgICAgICAgIDwhLS0gTWF4aW11bSBtZW1vcnkgdXNhZ2UgZm9yIHByb2Nlc3Npbmcgc2luZ2xlIHF1ZXJ5LCBpbiBieXRlcy4gLS0+XG4gICAgICAgICAgICA8bWF4X21lbW9yeV91c2FnZT4xMDAwMDAwMDAwMDwvbWF4X21lbW9yeV91c2FnZT5cblxuICAgICAgICAgICAgPCEtLSBIb3cgdG8gY2hvb3NlIGJldHdlZW4gcmVwbGljYXMgZHVyaW5nIGRpc3RyaWJ1dGVkIHF1ZXJ5IHByb2Nlc3NpbmcuXG4gICAgICAgICAgICAgICAgcmFuZG9tIC0gY2hvb3NlIHJhbmRvbSByZXBsaWNhIGZyb20gc2V0IG9mIHJlcGxpY2FzIHdpdGggbWluaW11bSBudW1iZXIgb2YgZXJyb3JzXG4gICAgICAgICAgICAgICAgbmVhcmVzdF9ob3N0bmFtZSAtIGZyb20gc2V0IG9mIHJlcGxpY2FzIHdpdGggbWluaW11bSBudW1iZXIgb2YgZXJyb3JzLCBjaG9vc2UgcmVwbGljYVxuICAgICAgICAgICAgICAgICAgd2l0aCBtaW5pbXVtIG51bWJlciBvZiBkaWZmZXJlbnQgc3ltYm9scyBiZXR3ZWVuIHJlcGxpY2EncyBob3N0bmFtZSBhbmQgbG9jYWwgaG9zdG5hbWVcbiAgICAgICAgICAgICAgICAgIChIYW1taW5nIGRpc3RhbmNlKS5cbiAgICAgICAgICAgICAgICBpbl9vcmRlciAtIGZpcnN0IGxpdmUgcmVwbGljYSBpcyBjaG9zZW4gaW4gc3BlY2lmaWVkIG9yZGVyLlxuICAgICAgICAgICAgICAgIGZpcnN0X29yX3JhbmRvbSAtIGlmIGZpcnN0IHJlcGxpY2Egb25lIGhhcyBoaWdoZXIgbnVtYmVyIG9mIGVycm9ycywgcGljayBhIHJhbmRvbSBvbmUgZnJvbSByZXBsaWNhcyB3aXRoIG1pbmltdW0gbnVtYmVyIG9mIGVycm9ycy5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPGxvYWRfYmFsYW5jaW5nPnJhbmRvbTwvbG9hZF9iYWxhbmNpbmc+XG4gICAgICAgIDwvZGVmYXVsdD5cblxuICAgICAgICA8IS0tIFByb2ZpbGUgdGhhdCBhbGxvd3Mgb25seSByZWFkIHF1ZXJpZXMuIC0tPlxuICAgICAgICA8cmVhZG9ubHk+XG4gICAgICAgICAgICA8cmVhZG9ubHk+MTwvcmVhZG9ubHk+XG4gICAgICAgIDwvcmVhZG9ubHk+XG4gICAgPC9wcm9maWxlcz5cblxuICAgIDwhLS0gVXNlcnMgYW5kIEFDTC4gLS0+XG4gICAgPHVzZXJzPlxuICAgICAgICA8IS0tIElmIHVzZXIgbmFtZSB3YXMgbm90IHNwZWNpZmllZCwgJ2RlZmF1bHQnIHVzZXIgaXMgdXNlZC4gLS0+XG4gICAgICAgIDxkZWZhdWx0PlxuICAgICAgICAgICAgPCEtLSBTZWUgYWxzbyB0aGUgZmlsZXMgaW4gdXNlcnMuZCBkaXJlY3Rvcnkgd2hlcmUgdGhlIHBhc3N3b3JkIGNhbiBiZSBvdmVycmlkZGVuLlxuXG4gICAgICAgICAgICAgICAgUGFzc3dvcmQgY291bGQgYmUgc3BlY2lmaWVkIGluIHBsYWludGV4dCBvciBpbiBTSEEyNTYgKGluIGhleCBmb3JtYXQpLlxuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBwYXNzd29yZCBpbiBwbGFpbnRleHQgKG5vdCByZWNvbW1lbmRlZCksIHBsYWNlIGl0IGluICdwYXNzd29yZCcgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBFeGFtcGxlOiA8cGFzc3dvcmQ+cXdlcnR5PC9wYXNzd29yZD4uXG4gICAgICAgICAgICAgICAgUGFzc3dvcmQgY291bGQgYmUgZW1wdHkuXG5cbiAgICAgICAgICAgICAgICBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IFNIQTI1NiwgcGxhY2UgaXQgaW4gJ3Bhc3N3b3JkX3NoYTI1Nl9oZXgnIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPHBhc3N3b3JkX3NoYTI1Nl9oZXg+NjVlODRiZTMzNTMyZmI3ODRjNDgxMjk2NzVmOWVmZjNhNjgyYjI3MTY4YzBlYTc0NGIyY2Y1OGVlMDIzMzdjNTwvcGFzc3dvcmRfc2hhMjU2X2hleD5cbiAgICAgICAgICAgICAgICBSZXN0cmljdGlvbnMgb2YgU0hBMjU2OiBpbXBvc3NpYmlsaXR5IHRvIGNvbm5lY3QgdG8gQ2xpY2tIb3VzZSB1c2luZyBNeVNRTCBKUyBjbGllbnQgKGFzIG9mIEp1bHkgMjAxOSkuXG5cbiAgICAgICAgICAgICAgICBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGRvdWJsZSBTSEExLCBwbGFjZSBpdCBpbiAncGFzc3dvcmRfZG91YmxlX3NoYTFfaGV4JyBlbGVtZW50LlxuICAgICAgICAgICAgICAgIEV4YW1wbGU6IDxwYXNzd29yZF9kb3VibGVfc2hhMV9oZXg+ZTM5NTc5NmQ2NTQ2YjFiNjVkYjlkNjY1Y2Q0M2YwZTg1OGRkNDMwMzwvcGFzc3dvcmRfZG91YmxlX3NoYTFfaGV4PlxuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIHByZXZpb3VzbHkgZGVmaW5lZCBMREFQIHNlcnZlciAoc2VlICdsZGFwX3NlcnZlcnMnIGluIHRoZSBtYWluIGNvbmZpZykgZm9yIGF1dGhlbnRpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgcGxhY2UgaXRzIG5hbWUgaW4gJ3NlcnZlcicgZWxlbWVudCBpbnNpZGUgJ2xkYXAnIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGxkYXA+PHNlcnZlcj5teV9sZGFwX3NlcnZlcjwvc2VydmVyPjwvbGRhcD5cblxuICAgICAgICAgICAgICAgIElmIHlvdSB3YW50IHRvIGF1dGhlbnRpY2F0ZSB0aGUgdXNlciB2aWEgS2VyYmVyb3MgKGFzc3VtaW5nIEtlcmJlcm9zIGlzIGVuYWJsZWQsIHNlZSAna2VyYmVyb3MnIGluIHRoZSBtYWluIGNvbmZpZyksXG4gICAgICAgICAgICAgICAgICBwbGFjZSAna2VyYmVyb3MnIGVsZW1lbnQgaW5zdGVhZCBvZiAncGFzc3dvcmQnIChhbmQgc2ltaWxhcikgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgVGhlIG5hbWUgcGFydCBvZiB0aGUgY2Fub25pY2FsIHByaW5jaXBhbCBuYW1lIG9mIHRoZSBpbml0aWF0b3IgbXVzdCBtYXRjaCB0aGUgdXNlciBuYW1lIGZvciBhdXRoZW50aWNhdGlvbiB0byBzdWNjZWVkLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gYWxzbyBwbGFjZSAncmVhbG0nIGVsZW1lbnQgaW5zaWRlICdrZXJiZXJvcycgZWxlbWVudCB0byBmdXJ0aGVyIHJlc3RyaWN0IGF1dGhlbnRpY2F0aW9uIHRvIG9ubHkgdGhvc2UgcmVxdWVzdHNcbiAgICAgICAgICAgICAgICAgIHdob3NlIGluaXRpYXRvcidzIHJlYWxtIG1hdGNoZXMgaXQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGtlcmJlcm9zIC8+XG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGtlcmJlcm9zPjxyZWFsbT5FWEFNUExFLkNPTTwvcmVhbG0+PC9rZXJiZXJvcz5cblxuICAgICAgICAgICAgICAgIEhvdyB0byBnZW5lcmF0ZSBkZWNlbnQgcGFzc3dvcmQ6XG4gICAgICAgICAgICAgICAgRXhlY3V0ZTogUEFTU1dPUkQ9JChiYXNlNjQgPCAvZGV2L3VyYW5kb20gfCBoZWFkIC1jOCk7IGVjaG8gXCIkUEFTU1dPUkRcIjsgZWNobyAtbiBcIiRQQVNTV09SRFwiIHwgc2hhMjU2c3VtIHwgdHIgLWQgJy0nXG4gICAgICAgICAgICAgICAgSW4gZmlyc3QgbGluZSB3aWxsIGJlIHBhc3N3b3JkIGFuZCBpbiBzZWNvbmQgLSBjb3JyZXNwb25kaW5nIFNIQTI1Ni5cblxuICAgICAgICAgICAgICAgIEhvdyB0byBnZW5lcmF0ZSBkb3VibGUgU0hBMTpcbiAgICAgICAgICAgICAgICBFeGVjdXRlOiBQQVNTV09SRD0kKGJhc2U2NCA8IC9kZXYvdXJhbmRvbSB8IGhlYWQgLWM4KTsgZWNobyBcIiRQQVNTV09SRFwiOyBlY2hvIC1uIFwiJFBBU1NXT1JEXCIgfCBzaGExc3VtIHwgdHIgLWQgJy0nIHwgeHhkIC1yIC1wIHwgc2hhMXN1bSB8IHRyIC1kICctJ1xuICAgICAgICAgICAgICAgIEluIGZpcnN0IGxpbmUgd2lsbCBiZSBwYXNzd29yZCBhbmQgaW4gc2Vjb25kIC0gY29ycmVzcG9uZGluZyBkb3VibGUgU0hBMS5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPHBhc3N3b3JkPjwvcGFzc3dvcmQ+XG5cbiAgICAgICAgICAgIDwhLS0gTGlzdCBvZiBuZXR3b3JrcyB3aXRoIG9wZW4gYWNjZXNzLlxuXG4gICAgICAgICAgICAgICAgVG8gb3BlbiBhY2Nlc3MgZnJvbSBldmVyeXdoZXJlLCBzcGVjaWZ5OlxuICAgICAgICAgICAgICAgICAgICA8aXA+OjovMDwvaXA+XG5cbiAgICAgICAgICAgICAgICBUbyBvcGVuIGFjY2VzcyBvbmx5IGZyb20gbG9jYWxob3N0LCBzcGVjaWZ5OlxuICAgICAgICAgICAgICAgICAgICA8aXA+OjoxPC9pcD5cbiAgICAgICAgICAgICAgICAgICAgPGlwPjEyNy4wLjAuMTwvaXA+XG5cbiAgICAgICAgICAgICAgICBFYWNoIGVsZW1lbnQgb2YgbGlzdCBoYXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybXM6XG4gICAgICAgICAgICAgICAgPGlwPiBJUC1hZGRyZXNzIG9yIG5ldHdvcmsgbWFzay4gRXhhbXBsZXM6IDIxMy4xODAuMjA0LjMgb3IgMTAuMC4wLjEvOCBvciAxMC4wLjAuMS8yNTUuMjU1LjI1NS4wXG4gICAgICAgICAgICAgICAgICAgIDJhMDI6NmI4OjozIG9yIDJhMDI6NmI4OjozLzY0IG9yIDJhMDI6NmI4OjozL2ZmZmY6ZmZmZjpmZmZmOmZmZmY6Oi5cbiAgICAgICAgICAgICAgICA8aG9zdD4gSG9zdG5hbWUuIEV4YW1wbGU6IHNlcnZlcjAxLmNsaWNraG91c2UuY29tLlxuICAgICAgICAgICAgICAgICAgICBUbyBjaGVjayBhY2Nlc3MsIEROUyBxdWVyeSBpcyBwZXJmb3JtZWQsIGFuZCBhbGwgcmVjZWl2ZWQgYWRkcmVzc2VzIGNvbXBhcmVkIHRvIHBlZXIgYWRkcmVzcy5cbiAgICAgICAgICAgICAgICA8aG9zdF9yZWdleHA+IFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgaG9zdCBuYW1lcy4gRXhhbXBsZSwgXnNlcnZlclxcZFxcZC1cXGRcXGQtXFxkXFwuY2xpY2tob3VzZVxcLmNvbSRcbiAgICAgICAgICAgICAgICAgICAgVG8gY2hlY2sgYWNjZXNzLCBETlMgUFRSIHF1ZXJ5IGlzIHBlcmZvcm1lZCBmb3IgcGVlciBhZGRyZXNzIGFuZCB0aGVuIHJlZ2V4cCBpcyBhcHBsaWVkLlxuICAgICAgICAgICAgICAgICAgICBUaGVuLCBmb3IgcmVzdWx0IG9mIFBUUiBxdWVyeSwgYW5vdGhlciBETlMgcXVlcnkgaXMgcGVyZm9ybWVkIGFuZCBhbGwgcmVjZWl2ZWQgYWRkcmVzc2VzIGNvbXBhcmVkIHRvIHBlZXIgYWRkcmVzcy5cbiAgICAgICAgICAgICAgICAgICAgU3Ryb25nbHkgcmVjb21tZW5kZWQgdGhhdCByZWdleHAgaXMgZW5kcyB3aXRoICRcbiAgICAgICAgICAgICAgICBBbGwgcmVzdWx0cyBvZiBETlMgcmVxdWVzdHMgYXJlIGNhY2hlZCB0aWxsIHNlcnZlciByZXN0YXJ0LlxuICAgICAgICAgICAgLS0+XG4gICAgICAgICAgICA8bmV0d29ya3M+XG4gICAgICAgICAgICAgICAgPGlwPjo6LzA8L2lwPlxuICAgICAgICAgICAgPC9uZXR3b3Jrcz5cblxuICAgICAgICAgICAgPCEtLSBTZXR0aW5ncyBwcm9maWxlIGZvciB1c2VyLiAtLT5cbiAgICAgICAgICAgIDxwcm9maWxlPmRlZmF1bHQ8L3Byb2ZpbGU+XG5cbiAgICAgICAgICAgIDwhLS0gUXVvdGEgZm9yIHVzZXIuIC0tPlxuICAgICAgICAgICAgPHF1b3RhPmRlZmF1bHQ8L3F1b3RhPlxuXG4gICAgICAgICAgICA8IS0tIFVzZXIgY2FuIGNyZWF0ZSBvdGhlciB1c2VycyBhbmQgZ3JhbnQgcmlnaHRzIHRvIHRoZW0uIC0tPlxuICAgICAgICAgICAgPCEtLSA8YWNjZXNzX21hbmFnZW1lbnQ+MTwvYWNjZXNzX21hbmFnZW1lbnQ+IC0tPlxuICAgICAgICA8L2RlZmF1bHQ+XG4gICAgPC91c2Vycz5cblxuICAgIDwhLS0gUXVvdGFzLiAtLT5cbiAgICA8cXVvdGFzPlxuICAgICAgICA8IS0tIE5hbWUgb2YgcXVvdGEuIC0tPlxuICAgICAgICA8ZGVmYXVsdD5cbiAgICAgICAgICAgIDwhLS0gTGltaXRzIGZvciB0aW1lIGludGVydmFsLiBZb3UgY291bGQgc3BlY2lmeSBtYW55IGludGVydmFscyB3aXRoIGRpZmZlcmVudCBsaW1pdHMuIC0tPlxuICAgICAgICAgICAgPGludGVydmFsPlxuICAgICAgICAgICAgICAgIDwhLS0gTGVuZ3RoIG9mIGludGVydmFsLiAtLT5cbiAgICAgICAgICAgICAgICA8ZHVyYXRpb24+MzYwMDwvZHVyYXRpb24+XG5cbiAgICAgICAgICAgICAgICA8IS0tIE5vIGxpbWl0cy4gSnVzdCBjYWxjdWxhdGUgcmVzb3VyY2UgdXNhZ2UgZm9yIHRpbWUgaW50ZXJ2YWwuIC0tPlxuICAgICAgICAgICAgICAgIDxxdWVyaWVzPjA8L3F1ZXJpZXM+XG4gICAgICAgICAgICAgICAgPGVycm9ycz4wPC9lcnJvcnM+XG4gICAgICAgICAgICAgICAgPHJlc3VsdF9yb3dzPjA8L3Jlc3VsdF9yb3dzPlxuICAgICAgICAgICAgICAgIDxyZWFkX3Jvd3M+MDwvcmVhZF9yb3dzPlxuICAgICAgICAgICAgICAgIDxleGVjdXRpb25fdGltZT4wPC9leGVjdXRpb25fdGltZT5cbiAgICAgICAgICAgIDwvaW50ZXJ2YWw+XG4gICAgICAgIDwvZGVmYXVsdD5cbiAgICA8L3F1b3Rhcz5cbjwvY2xpY2tob3VzZT5cbiIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vY2xpY2tob3VzZS9jb25maWcueG1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL2NsaWNraG91c2Utc2VydmVyL2NvbmZpZy54bWwKICAgICAgICBjb250ZW50OiAiPD94bWwgdmVyc2lvbj1cIjEuMFwiPz5cbjxjbGlja2hvdXNlPlxuICA8bWF4X2Nvbm5lY3Rpb25zPjQwOTY8L21heF9jb25uZWN0aW9ucz5cbiAgPGtlZXBfYWxpdmVfdGltZW91dD4zPC9rZWVwX2FsaXZlX3RpbWVvdXQ+XG4gIDxtYXhfY29uY3VycmVudF9xdWVyaWVzPjEwMDwvbWF4X2NvbmN1cnJlbnRfcXVlcmllcz5cbiAgPG1hcmtfY2FjaGVfc2l6ZT41MzY4NzA5MTIwPC9tYXJrX2NhY2hlX3NpemU+XG4gIDxtbWFwX2NhY2hlX3NpemU+MTAwMDwvbW1hcF9jYWNoZV9zaXplPlxuICA8Y29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9zaXplPjEzNDIxNzcyODwvY29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9zaXplPlxuICA8Y29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9lbGVtZW50c19zaXplPjEwMDAwPC9jb21waWxlZF9leHByZXNzaW9uX2NhY2hlX2VsZW1lbnRzX3NpemU+XG4gIDxjdXN0b21fc2V0dGluZ3NfcHJlZml4ZXM+PC9jdXN0b21fc2V0dGluZ3NfcHJlZml4ZXM+XG4gIDxkaWN0aW9uYXJpZXNfY29uZmlnPipfZGljdGlvbmFyeS54bWw8L2RpY3Rpb25hcmllc19jb25maWc+XG4gIDx1c2VyX2RlZmluZWRfZXhlY3V0YWJsZV9mdW5jdGlvbnNfY29uZmlnPipmdW5jdGlvbi54bWw8L3VzZXJfZGVmaW5lZF9leGVjdXRhYmxlX2Z1bmN0aW9uc19jb25maWc+XG4gIDx1c2VyX3NjcmlwdHNfcGF0aD4vdmFyL2xpYi9jbGlja2hvdXNlL3VzZXJfc2NyaXB0cy88L3VzZXJfc2NyaXB0c19wYXRoPlxuICA8aHR0cF9wb3J0PjgxMjM8L2h0dHBfcG9ydD5cbiAgPHRjcF9wb3J0PjkwMDA8L3RjcF9wb3J0PlxuICA8bXlzcWxfcG9ydD45MDA0PC9teXNxbF9wb3J0PlxuICA8cG9zdGdyZXNxbF9wb3J0PjkwMDU8L3Bvc3RncmVzcWxfcG9ydD5cbiAgPGludGVyc2VydmVyX2h0dHBfcG9ydD45MDA5PC9pbnRlcnNlcnZlcl9odHRwX3BvcnQ+XG4gIDxsb2dnZXI+XG4gICAgPGxldmVsPmluZm9ybWF0aW9uPC9sZXZlbD5cbiAgICA8Zm9ybWF0dGluZz5cbiAgICAgIDx0eXBlPmpzb248L3R5cGU+XG4gICAgPC9mb3JtYXR0aW5nPlxuICA8L2xvZ2dlcj5cbiAgPG1hY3Jvcz5cbiAgICA8c2hhcmQ+MDE8L3NoYXJkPlxuICAgIDxyZXBsaWNhPmV4YW1wbGUwMS0wMS0xPC9yZXBsaWNhPlxuICA8L21hY3Jvcz5cbiAgPHByb21ldGhldXM+XG4gICAgPGVuZHBvaW50Pi9tZXRyaWNzPC9lbmRwb2ludD5cbiAgICA8cG9ydD45MzYzPC9wb3J0PlxuICAgIDxtZXRyaWNzPnRydWU8L21ldHJpY3M+XG4gICAgPGV2ZW50cz50cnVlPC9ldmVudHM+XG4gICAgPGFzeW5jaHJvbm91c19tZXRyaWNzPnRydWU8L2FzeW5jaHJvbm91c19tZXRyaWNzPlxuICAgIDxzdGF0dXNfaW5mbz50cnVlPC9zdGF0dXNfaW5mbz5cbiAgPC9wcm9tZXRoZXVzPlxuICA8b3BlbnRlbGVtZXRyeV9zcGFuX2xvZz5cbiAgICA8ZW5naW5lPmVuZ2luZSBNZXJnZVRyZWVcbiAgICAgICAgICAgIHBhcnRpdGlvbiBieSB0b1lZWVlNTShmaW5pc2hfZGF0ZSlcbiAgICAgICAgICAgIG9yZGVyIGJ5IChmaW5pc2hfZGF0ZSwgZmluaXNoX3RpbWVfdXMsIHRyYWNlX2lkKTwvZW5naW5lPlxuICA8L29wZW50ZWxlbWV0cnlfc3Bhbl9sb2c+XG4gIDxxdWVyeV9tYXNraW5nX3J1bGVzPlxuICAgIDxydWxlPlxuICAgICAgPG5hbWU+aGlkZSBlbmNyeXB0L2RlY3J5cHQgYXJndW1lbnRzPC9uYW1lPlxuICAgICAgPHJlZ2V4cD4oKD86YWVzXyk/KD86ZW5jcnlwdHxkZWNyeXB0KSg/Ol9teXNxbCk/KVxccypcXChcXHMqKD86Jyg/OlxcXFwnfC4pKyd8Lio/KVxccypcXCk8L3JlZ2V4cD5cbiAgICAgIDxyZXBsYWNlPlxcMSg/Pz8pPC9yZXBsYWNlPlxuICAgIDwvcnVsZT5cbiAgPC9xdWVyeV9tYXNraW5nX3J1bGVzPlxuICA8c2VuZF9jcmFzaF9yZXBvcnRzPlxuICAgIDxlbmFibGVkPmZhbHNlPC9lbmFibGVkPlxuICAgIDxhbm9ueW1pemU+ZmFsc2U8L2Fub255bWl6ZT5cbiAgICA8ZW5kcG9pbnQ+aHR0cHM6Ly82ZjMzMDM0Y2ZlNjg0ZGQ3YTNhYjk4NzVlNTdiMWM4ZEBvMzg4ODcwLmluZ2VzdC5zZW50cnkuaW8vNTIyNjI3NzwvZW5kcG9pbnQ+XG4gIDwvc2VuZF9jcmFzaF9yZXBvcnRzPlxuICA8bWVyZ2VfdHJlZV9tZXRhZGF0YV9jYWNoZT5cbiAgICA8bHJ1X2NhY2hlX3NpemU+MjY4NDM1NDU2PC9scnVfY2FjaGVfc2l6ZT5cbiAgICA8Y29udGludWVfaWZfY29ycnVwdGVkPnRydWU8L2NvbnRpbnVlX2lmX2NvcnJ1cHRlZD5cbiAgPC9tZXJnZV90cmVlX21ldGFkYXRhX2NhY2hlPlxuICA8dXNlcl9kaXJlY3Rvcmllcz5cbiAgICA8dXNlcnNfeG1sPlxuICAgICAgICA8IS0tIFBhdGggdG8gY29uZmlndXJhdGlvbiBmaWxlIHdpdGggcHJlZGVmaW5lZCB1c2Vycy4gLS0+XG4gICAgICAgIDxwYXRoPnVzZXJzLnhtbDwvcGF0aD5cbiAgICA8L3VzZXJzX3htbD5cbiAgICA8bG9jYWxfZGlyZWN0b3J5PlxuICAgICAgICA8IS0tIFBhdGggdG8gZm9sZGVyIHdoZXJlIHVzZXJzIGNyZWF0ZWQgYnkgU1FMIGNvbW1hbmRzIGFyZSBzdG9yZWQuIC0tPlxuICAgICAgICA8cGF0aD4vdmFyL2xpYi9jbGlja2hvdXNlL2FjY2Vzcy88L3BhdGg+XG4gICAgPC9sb2NhbF9kaXJlY3Rvcnk+XG4gIDwvdXNlcl9kaXJlY3Rvcmllcz5cbiAgPGRlZmF1bHRfcHJvZmlsZT5kZWZhdWx0PC9kZWZhdWx0X3Byb2ZpbGU+XG4gICAgPGRpc3RyaWJ1dGVkX2RkbD5cbiAgICAgICAgPCEtLSBQYXRoIGluIFpvb0tlZXBlciB0byBxdWV1ZSB3aXRoIERETCBxdWVyaWVzIC0tPlxuICAgICAgICA8cGF0aD4vY2xpY2tob3VzZS90YXNrX3F1ZXVlL2RkbDwvcGF0aD5cbiAgICA8L2Rpc3RyaWJ1dGVkX2RkbD5cbjwvY2xpY2tob3VzZT5cbiIKICBzaWdub3o6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3o6djAuOTcuMScKICAgIGRlcGVuZHNfb246CiAgICAgIGNsaWNraG91c2U6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgICAgc2NoZW1hLW1pZ3JhdG9yLXN5bmM6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHkKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGNvbW1hbmQ6CiAgICAgIC0gJy0tY29uZmlnPS9yb290L2NvbmZpZy9wcm9tZXRoZXVzLnltbCcKICAgIHZvbHVtZXM6CiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL3Byb21ldGhldXMueW1sCiAgICAgICAgdGFyZ2V0OiAvcm9vdC9jb25maWcvcHJvbWV0aGV1cy55bWwKICAgICAgICBjb250ZW50OiAiIyBteSBnbG9iYWwgY29uZmlnXG5nbG9iYWw6XG4gIHNjcmFwZV9pbnRlcnZhbDogICAgIDVzICMgU2V0IHRoZSBzY3JhcGUgaW50ZXJ2YWwgdG8gZXZlcnkgMTUgc2Vjb25kcy4gRGVmYXVsdCBpcyBldmVyeSAxIG1pbnV0ZS5cbiAgZXZhbHVhdGlvbl9pbnRlcnZhbDogMTVzICMgRXZhbHVhdGUgcnVsZXMgZXZlcnkgMTUgc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgZXZlcnkgMSBtaW51dGUuXG4gICMgc2NyYXBlX3RpbWVvdXQgaXMgc2V0IHRvIHRoZSBnbG9iYWwgZGVmYXVsdCAoMTBzKS5cblxuIyBBbGVydG1hbmFnZXIgY29uZmlndXJhdGlvblxuYWxlcnRpbmc6XG4gIGFsZXJ0bWFuYWdlcnM6XG4gIC0gc3RhdGljX2NvbmZpZ3M6XG4gICAgLSB0YXJnZXRzOlxuICAgICAgLSBhbGVydG1hbmFnZXI6OTA5M1xuXG4jIExvYWQgcnVsZXMgb25jZSBhbmQgcGVyaW9kaWNhbGx5IGV2YWx1YXRlIHRoZW0gYWNjb3JkaW5nIHRvIHRoZSBnbG9iYWwgJ2V2YWx1YXRpb25faW50ZXJ2YWwnLlxucnVsZV9maWxlczogW11cbiAgIyAtIFwiZmlyc3RfcnVsZXMueW1sXCJcbiAgIyAtIFwic2Vjb25kX3J1bGVzLnltbFwiXG4gICMgLSAnYWxlcnRzLnltbCdcblxuIyBBIHNjcmFwZSBjb25maWd1cmF0aW9uIGNvbnRhaW5pbmcgZXhhY3RseSBvbmUgZW5kcG9pbnQgdG8gc2NyYXBlOlxuIyBIZXJlIGl0J3MgUHJvbWV0aGV1cyBpdHNlbGYuXG5zY3JhcGVfY29uZmlnczogW11cblxucmVtb3RlX3JlYWQ6XG4gIC0gdXJsOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X21ldHJpY3NcbiIKICAgICAgLQogICAgICAgIHR5cGU6IHZvbHVtZQogICAgICAgIHNvdXJjZTogc3FsaXRlCiAgICAgICAgdGFyZ2V0OiAvdmFyL2xpYi9zaWdub3ovCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9TSUdOT1pfODA4MAogICAgICAtICdTSUdOT1pfSldUX1NFQ1JFVD0ke1NFUlZJQ0VfUkVBTEJBU0U2NF9KV1RTRUNSRVR9JwogICAgICAtICdTSUdOT1pfVEVMRU1FVFJZU1RPUkVfQ0xJQ0tIT1VTRV9EU049dGNwOi8vY2xpY2tob3VzZTo5MDAwJwogICAgICAtIFNJR05PWl9TUUxTVE9SRV9TUUxJVEVfUEFUSD0vdmFyL2xpYi9zaWdub3ovc2lnbm96LmRiCiAgICAgIC0gREFTSEJPQVJEU19QQVRIPS9yb290L2NvbmZpZy9kYXNoYm9hcmRzCiAgICAgIC0gU1RPUkFHRT1jbGlja2hvdXNlCiAgICAgIC0gR09ERUJVRz1uZXRkbnM9Z28KICAgICAgLSBERVBMT1lNRU5UX1RZUEU9ZG9ja2VyLXN0YW5kYWxvbmUtYW1kCiAgICAgIC0gJ1NJR05PWl9TVEFUU1JFUE9SVEVSX0VOQUJMRUQ9JHtTSUdOT1pfU1RBVFNSRVBPUlRFUl9FTkFCTEVEOi10cnVlfScKICAgICAgLSAnU0lHTk9aX0VNQUlMSU5HX0VOQUJMRUQ9JHtTSUdOT1pfRU1BSUxJTkdfRU5BQkxFRDotZmFsc2V9JwogICAgICAtICdTSUdOT1pfRU1BSUxJTkdfU01UUF9BRERSRVNTPSR7U0lHTk9aX0VNQUlMSU5HX1NNVFBfQUREUkVTU30nCiAgICAgIC0gJ1NJR05PWl9FTUFJTElOR19TTVRQX0ZST009JHtTSUdOT1pfRU1BSUxJTkdfU01UUF9GUk9NfScKICAgICAgLSAnU0lHTk9aX0VNQUlMSU5HX1NNVFBfQVVUSF9VU0VSTkFNRT0ke1NJR05PWl9FTUFJTElOR19TTVRQX0FVVEhfVVNFUk5BTUV9JwogICAgICAtICdTSUdOT1pfRU1BSUxJTkdfU01UUF9BVVRIX1BBU1NXT1JEPSR7U0lHTk9aX0VNQUlMSU5HX1NNVFBfQVVUSF9QQVNTV09SRH0nCiAgICAgIC0gU0lHTk9aX0FMRVJUTUFOQUdFUl9QUk9WSURFUj1zaWdub3oKICAgICAgLSAnU0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0FVVEhfX1BBU1NXT1JEPSR7U0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0FVVEhfX1BBU1NXT1JEfScKICAgICAgLSAnU0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0FVVEhfX1VTRVJOQU1FPSR7U0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0FVVEhfX1VTRVJOQU1FfScKICAgICAgLSAnU0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0ZST009JHtTSUdOT1pfQUxFUlRNQU5BR0VSX1NJR05PWl9HTE9CQUxfU01UUF9fRlJPTX0nCiAgICAgIC0gJ1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19TTUFSVEhPU1Q9JHtTSUdOT1pfQUxFUlRNQU5BR0VSX1NJR05PWl9HTE9CQUxfU01UUF9fU01BUlRIT1NUfScKICAgICAgLSBET1RfTUVUUklDU19FTkFCTEVEPXRydWUKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnLXEnCiAgICAgICAgLSAnbG9jYWxob3N0OjgwODAvYXBpL3YxL2hlYWx0aCcKICAgICAgaW50ZXJ2YWw6IDMwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAzCiAgb3RlbC1jb2xsZWN0b3I6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3otb3RlbC1jb2xsZWN0b3I6djAuMTI5LjcnCiAgICBkZXBlbmRzX29uOgogICAgICBjbGlja2hvdXNlOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICAgIHNjaGVtYS1taWdyYXRvci1zeW5jOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5CiAgICAgIHNpZ25vejoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgbG9nZ2luZzoKICAgICAgb3B0aW9uczoKICAgICAgICBtYXgtc2l6ZTogNTBtCiAgICAgICAgbWF4LWZpbGU6ICczJwogICAgY29tbWFuZDoKICAgICAgLSAnLS1jb25maWc9L2V0Yy9vdGVsLWNvbGxlY3Rvci1jb25maWcueWFtbCcKICAgICAgLSAnLS1tYW5hZ2VyLWNvbmZpZz0vZXRjL21hbmFnZXItY29uZmlnLnlhbWwnCiAgICAgIC0gJy0tY29weS1wYXRoPS92YXIvdG1wL2NvbGxlY3Rvci1jb25maWcueWFtbCcKICAgICAgLSAnLS1mZWF0dXJlLWdhdGVzPS1wa2cudHJhbnNsYXRvci5wcm9tZXRoZXVzLk5vcm1hbGl6ZU5hbWUnCiAgICB2b2x1bWVzOgogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9vdGVsLWNvbGxlY3Rvci1jb25maWcueWFtbAogICAgICAgIHRhcmdldDogL2V0Yy9vdGVsLWNvbGxlY3Rvci1jb25maWcueWFtbAogICAgICAgIGNvbnRlbnQ6ICJyZWNlaXZlcnM6XG4gIG90bHA6XG4gICAgcHJvdG9jb2xzOlxuICAgICAgZ3JwYzpcbiAgICAgICAgZW5kcG9pbnQ6IDAuMC4wLjA6NDMxN1xuICAgICAgaHR0cDpcbiAgICAgICAgZW5kcG9pbnQ6IDAuMC4wLjA6NDMxOFxuICBwcm9tZXRoZXVzOlxuICAgIGNvbmZpZzpcbiAgICAgIGdsb2JhbDpcbiAgICAgICAgc2NyYXBlX2ludGVydmFsOiA2MHNcbiAgICAgIHNjcmFwZV9jb25maWdzOlxuICAgICAgICAtIGpvYl9uYW1lOiBvdGVsLWNvbGxlY3RvclxuICAgICAgICAgIHN0YXRpY19jb25maWdzOlxuICAgICAgICAgIC0gdGFyZ2V0czpcbiAgICAgICAgICAgICAgLSBsb2NhbGhvc3Q6ODg4OFxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBqb2JfbmFtZTogb3RlbC1jb2xsZWN0b3JcbnByb2Nlc3NvcnM6XG4gIGJhdGNoOlxuICAgIHNlbmRfYmF0Y2hfc2l6ZTogMTAwMDBcbiAgICBzZW5kX2JhdGNoX21heF9zaXplOiAxMTAwMFxuICAgIHRpbWVvdXQ6IDEwc1xuICByZXNvdXJjZWRldGVjdGlvbjpcbiAgICAjIFVzaW5nIE9URUxfUkVTT1VSQ0VfQVRUUklCVVRFUyBlbnZ2YXIsIGVudiBkZXRlY3RvciBhZGRzIGN1c3RvbSBsYWJlbHMuXG4gICAgZGV0ZWN0b3JzOiBbZW52LCBzeXN0ZW1dXG4gICAgdGltZW91dDogMnNcbiAgc2lnbm96c3Bhbm1ldHJpY3MvZGVsdGE6XG4gICAgbWV0cmljc19leHBvcnRlcjogc2lnbm96Y2xpY2tob3VzZW1ldHJpY3NcbiAgICBtZXRyaWNzX2ZsdXNoX2ludGVydmFsOiA2MHNcbiAgICBsYXRlbmN5X2hpc3RvZ3JhbV9idWNrZXRzOiBbMTAwdXMsIDFtcywgMm1zLCA2bXMsIDEwbXMsIDUwbXMsIDEwMG1zLCAyNTBtcywgNTAwbXMsIDEwMDBtcywgMTQwMG1zLCAyMDAwbXMsIDVzLCAxMHMsIDIwcywgNDBzLCA2MHMgXVxuICAgIGRpbWVuc2lvbnNfY2FjaGVfc2l6ZTogMTAwMDAwXG4gICAgYWdncmVnYXRpb25fdGVtcG9yYWxpdHk6IEFHR1JFR0FUSU9OX1RFTVBPUkFMSVRZX0RFTFRBXG4gICAgZW5hYmxlX2V4cF9oaXN0b2dyYW06IHRydWVcbiAgICBkaW1lbnNpb25zOlxuICAgICAgLSBuYW1lOiBzZXJ2aWNlLm5hbWVzcGFjZVxuICAgICAgICBkZWZhdWx0OiBkZWZhdWx0XG4gICAgICAtIG5hbWU6IGRlcGxveW1lbnQuZW52aXJvbm1lbnRcbiAgICAgICAgZGVmYXVsdDogZGVmYXVsdFxuICAgICAgIyBUaGlzIGlzIGFkZGVkIHRvIGVuc3VyZSB0aGUgdW5pcXVlbmVzcyBvZiB0aGUgdGltZXNlcmllc1xuICAgICAgIyBPdGhlcndpc2UsIGlkZW50aWNhbCB0aW1lc2VyaWVzIHByb2R1Y2VkIGJ5IG11bHRpcGxlIHJlcGxpY2FzIG9mXG4gICAgICAjIGNvbGxlY3RvcnMgcmVzdWx0IGluIGluY29ycmVjdCBBUE0gbWV0cmljc1xuICAgICAgLSBuYW1lOiBzaWdub3ouY29sbGVjdG9yLmlkXG4gICAgICAtIG5hbWU6IHNlcnZpY2UudmVyc2lvblxuICAgICAgLSBuYW1lOiBicm93c2VyLnBsYXRmb3JtXG4gICAgICAtIG5hbWU6IGJyb3dzZXIubW9iaWxlXG4gICAgICAtIG5hbWU6IGs4cy5jbHVzdGVyLm5hbWVcbiAgICAgIC0gbmFtZTogazhzLm5vZGUubmFtZVxuICAgICAgLSBuYW1lOiBrOHMubmFtZXNwYWNlLm5hbWVcbiAgICAgIC0gbmFtZTogaG9zdC5uYW1lXG4gICAgICAtIG5hbWU6IGhvc3QudHlwZVxuICAgICAgLSBuYW1lOiBjb250YWluZXIubmFtZVxuZXh0ZW5zaW9uczpcbiAgaGVhbHRoX2NoZWNrOlxuICAgIGVuZHBvaW50OiAwLjAuMC4wOjEzMTMzXG4gIHBwcm9mOlxuICAgIGVuZHBvaW50OiAwLjAuMC4wOjE3NzdcbmV4cG9ydGVyczpcbiAgY2xpY2tob3VzZXRyYWNlczpcbiAgICBkYXRhc291cmNlOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X3RyYWNlc1xuICAgIGxvd19jYXJkaW5hbF9leGNlcHRpb25fZ3JvdXBpbmc6ICR7ZW52OkxPV19DQVJESU5BTF9FWENFUFRJT05fR1JPVVBJTkd9XG4gICAgdXNlX25ld19zY2hlbWE6IHRydWVcbiAgc2lnbm96Y2xpY2tob3VzZW1ldHJpY3M6XG4gICAgZHNuOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X21ldHJpY3NcbiAgY2xpY2tob3VzZWxvZ3NleHBvcnRlcjpcbiAgICBkc246IHRjcDovL2NsaWNraG91c2U6OTAwMC9zaWdub3pfbG9nc1xuICAgIHRpbWVvdXQ6IDEwc1xuICAgIHVzZV9uZXdfc2NoZW1hOiB0cnVlXG5zZXJ2aWNlOlxuICB0ZWxlbWV0cnk6XG4gICAgbG9nczpcbiAgICAgIGVuY29kaW5nOiBqc29uXG4gIGV4dGVuc2lvbnM6XG4gICAgLSBoZWFsdGhfY2hlY2tcbiAgICAtIHBwcm9mXG4gIHBpcGVsaW5lczpcbiAgICB0cmFjZXM6XG4gICAgICByZWNlaXZlcnM6IFtvdGxwXVxuICAgICAgcHJvY2Vzc29yczogW3NpZ25venNwYW5tZXRyaWNzL2RlbHRhLCBiYXRjaF1cbiAgICAgIGV4cG9ydGVyczogW2NsaWNraG91c2V0cmFjZXNdXG4gICAgbWV0cmljczpcbiAgICAgIHJlY2VpdmVyczogW290bHBdXG4gICAgICBwcm9jZXNzb3JzOiBbYmF0Y2hdXG4gICAgICBleHBvcnRlcnM6IFtzaWdub3pjbGlja2hvdXNlbWV0cmljc11cbiAgICBtZXRyaWNzL3Byb21ldGhldXM6XG4gICAgICByZWNlaXZlcnM6IFtwcm9tZXRoZXVzXVxuICAgICAgcHJvY2Vzc29yczogW2JhdGNoXVxuICAgICAgZXhwb3J0ZXJzOiBbc2lnbm96Y2xpY2tob3VzZW1ldHJpY3NdXG4gICAgbG9nczpcbiAgICAgIHJlY2VpdmVyczogW290bHBdXG4gICAgICBwcm9jZXNzb3JzOiBbYmF0Y2hdXG4gICAgICBleHBvcnRlcnM6IFtjbGlja2hvdXNlbG9nc2V4cG9ydGVyXSIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vb3RlbC1jb2xsZWN0b3Itb3BhbXAtY29uZmlnLnlhbWwKICAgICAgICB0YXJnZXQ6IC9ldGMvbWFuYWdlci1jb25maWcueWFtbAogICAgICAgIGNvbnRlbnQ6ICJzZXJ2ZXJfZW5kcG9pbnQ6IHdzOi8vc2lnbm96OjQzMjAvdjEvb3BhbXBcbiIKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX09URUxDT0xMRUNUT1JIVFRQXzQzMTgKICAgICAgLSAnT1RFTF9SRVNPVVJDRV9BVFRSSUJVVEVTPWhvc3QubmFtZT1zaWdub3otaG9zdCxvcy50eXBlPWxpbnV4JwogICAgICAtIExPV19DQVJESU5BTF9FWENFUFRJT05fR1JPVVBJTkc9ZmFsc2UKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OiAnYmFzaCAtYyAiZXhlYyA2PD4gL2Rldi90Y3AvbG9jYWxob3N0LzEzMTMzIicKICAgICAgaW50ZXJ2YWw6IDMwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAzCiAgc2NoZW1hLW1pZ3JhdG9yLXN5bmM6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3otc2NoZW1hLW1pZ3JhdG9yOnYwLjEyOS43JwogICAgY29tbWFuZDoKICAgICAgLSBzeW5jCiAgICAgIC0gJy0tZHNuPXRjcDovL2NsaWNraG91c2U6OTAwMCcKICAgICAgLSAnLS11cD0nCiAgICBkZXBlbmRzX29uOgogICAgICBjbGlja2hvdXNlOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICBzY2hlbWEtbWlncmF0b3ItYXN5bmM6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3otc2NoZW1hLW1pZ3JhdG9yOnYwLjEyOS43JwogICAgZGVwZW5kc19vbjoKICAgICAgY2xpY2tob3VzZToKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgICBzY2hlbWEtbWlncmF0b3Itc3luYzoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseQogICAgcmVzdGFydDogb24tZmFpbHVyZQogICAgZXhjbHVkZV9mcm9tX2hjOiB0cnVlCiAgICBsb2dnaW5nOgogICAgICBvcHRpb25zOgogICAgICAgIG1heC1zaXplOiA1MG0KICAgICAgICBtYXgtZmlsZTogJzMnCiAgICBjb21tYW5kOgogICAgICAtIGFzeW5jCiAgICAgIC0gJy0tZHNuPXRjcDovL2NsaWNraG91c2U6OTAwMCcKICAgICAgLSAnLS11cD0nCg==", "tags": [ "telemetry", "server", diff --git a/templates/service-templates.json b/templates/service-templates.json index 09a538c7a..9ad5d9be8 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -192,7 +192,7 @@ "autobase": { "documentation": "https://autobase.tech/docs/?utm_source=coolify.io", "slogan": "Autobase for PostgreSQL\u00ae is an open-source alternative to cloud-managed databases (self-hosted DBaaS).", - "compose": "c2VydmljZXM6CiAgYXV0b2Jhc2U6CiAgICBpbWFnZTogJ2F1dG9iYXNlL2NvbnNvbGVfdWk6Mi40LjEnCiAgICBwbGF0Zm9ybTogbGludXgvYW1kNjQKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9BVVRPQkFTRV84MAogICAgICAtICdQR19DT05TT0xFX0FVVEhPUklaQVRJT05fVE9LRU49JHtTRVJWSUNFX1BBU1NXT1JEX1VJfScKICAgICAgLSBQR19DT05TT0xFX0FQSV9IT1NUPWF1dG9iYXNlLWFwaQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjgwLycKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICBkZXBlbmRzX29uOgogICAgICBhdXRvYmFzZS1hcGk6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICBhdXRvYmFzZS1kYjoKICAgIGltYWdlOiAnYXV0b2Jhc2UvY29uc29sZV9kYjoyLjQuMScKICAgIHBsYXRmb3JtOiBsaW51eC9hbWQ2NAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU30nCiAgICB2b2x1bWVzOgogICAgICAtICdhdXRvYmFzZS1kYi1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAncGdfaXNyZWFkeSAtVSBwb3N0Z3JlcycKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCiAgYXV0b2Jhc2UtYXBpOgogICAgaW1hZ2U6ICdhdXRvYmFzZS9jb25zb2xlX2FwaToyLjQuMScKICAgIHBsYXRmb3JtOiBsaW51eC9hbWQ2NAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUEdfQ09OU09MRV9EQl9IT1NUPWF1dG9iYXNlLWRiCiAgICAgIC0gJ1BHX0NPTlNPTEVfREJfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTfScKICAgICAgLSAnUEdfQ09OU09MRV9BVVRIT1JJWkFUSU9OX1RPS0VOPSR7U0VSVklDRV9QQVNTV09SRF9VSX0nCiAgICAgIC0gJ1BHX0NPTlNPTEVfRU5DUllQVElPTktFWT0ke1NFUlZJQ0VfQkFTRTY0X0VOQ1JZUFRJT05LRVl9JwogICAgICAtICdQR19DT05TT0xFX0xPR0dFUl9MRVZFTD0ke1BHX0NPTlNPTEVfTE9HR0VSX0xFVkVMOi1pbmZvfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJy92YXIvcnVuL2RvY2tlci5zb2NrOi92YXIvcnVuL2RvY2tlci5zb2NrJwogICAgICAtICcvdG1wL2Fuc2libGU6L3RtcC9hbnNpYmxlJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZnNTJwogICAgICAgIC0gJy1IJwogICAgICAgIC0gJ2FjY2VwdDogYXBwbGljYXRpb24vanNvbicKICAgICAgICAtICctSCcKICAgICAgICAtICdBdXRob3JpemF0aW9uOiBCZWFyZXIgJHtTRVJWSUNFX1BBU1NXT1JEX1VJfScKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL3YxL3ZlcnNpb24nCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgZGVwZW5kc19vbjoKICAgICAgYXV0b2Jhc2UtZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkK", + "compose": "c2VydmljZXM6CiAgYXV0b2Jhc2U6CiAgICBpbWFnZTogJ2F1dG9iYXNlL2NvbnNvbGVfdWk6Mi41LjInCiAgICBwbGF0Zm9ybTogbGludXgvYW1kNjQKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9BVVRPQkFTRV84MAogICAgICAtICdQR19DT05TT0xFX0FVVEhPUklaQVRJT05fVE9LRU49JHtTRVJWSUNFX1BBU1NXT1JEX1VJfScKICAgICAgLSBQR19DT05TT0xFX0FQSV9IT1NUPWF1dG9iYXNlLWFwaQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjgwLycKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICBkZXBlbmRzX29uOgogICAgICBhdXRvYmFzZS1hcGk6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICBhdXRvYmFzZS1kYjoKICAgIGltYWdlOiAnYXV0b2Jhc2UvY29uc29sZV9kYjoyLjUuMicKICAgIHBsYXRmb3JtOiBsaW51eC9hbWQ2NAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU30nCiAgICB2b2x1bWVzOgogICAgICAtICdhdXRvYmFzZS1kYi1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAncGdfaXNyZWFkeSAtVSBwb3N0Z3JlcycKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCiAgYXV0b2Jhc2UtYXBpOgogICAgaW1hZ2U6ICdhdXRvYmFzZS9jb25zb2xlX2FwaToyLjUuMicKICAgIHBsYXRmb3JtOiBsaW51eC9hbWQ2NAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUEdfQ09OU09MRV9EQl9IT1NUPWF1dG9iYXNlLWRiCiAgICAgIC0gJ1BHX0NPTlNPTEVfREJfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTfScKICAgICAgLSAnUEdfQ09OU09MRV9BVVRIT1JJWkFUSU9OX1RPS0VOPSR7U0VSVklDRV9QQVNTV09SRF9VSX0nCiAgICAgIC0gJ1BHX0NPTlNPTEVfRU5DUllQVElPTktFWT0ke1NFUlZJQ0VfQkFTRTY0X0VOQ1JZUFRJT05LRVl9JwogICAgICAtICdQR19DT05TT0xFX0xPR0dFUl9MRVZFTD0ke1BHX0NPTlNPTEVfTE9HR0VSX0xFVkVMOi1pbmZvfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJy92YXIvcnVuL2RvY2tlci5zb2NrOi92YXIvcnVuL2RvY2tlci5zb2NrJwogICAgICAtICcvdG1wL2Fuc2libGU6L3RtcC9hbnNpYmxlJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZnNTJwogICAgICAgIC0gJy1IJwogICAgICAgIC0gJ2FjY2VwdDogYXBwbGljYXRpb24vanNvbicKICAgICAgICAtICctSCcKICAgICAgICAtICdBdXRob3JpemF0aW9uOiBCZWFyZXIgJHtTRVJWSUNFX1BBU1NXT1JEX1VJfScKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL3YxL3ZlcnNpb24nCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgZGVwZW5kc19vbjoKICAgICAgYXV0b2Jhc2UtZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkK", "tags": [ "database", "postgres", @@ -546,6 +546,21 @@ "minversion": "0.0.0", "port": "80" }, + "chibisafe": { + "documentation": "https://chibisafe.app/docs/intro?utm_source=coolify.io", + "slogan": "A beautiful and performant vault to save all your files in the cloud.", + "compose": "c2VydmljZXM6CiAgY2hpYmlzYWZlOgogICAgaW1hZ2U6ICdjaGliaXNhZmUvY2hpYmlzYWZlOnY2LjUuNScKICAgIGVudmlyb25tZW50OgogICAgICAtICdCQVNFX0FQSV9VUkw9aHR0cDovL2NoaWJpc2FmZS1zZXJ2ZXI6ODAwMCcKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnLS1xdWlldCcKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwMDEnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDMKICAgICAgc3RhcnRfcGVyaW9kOiAxMHMKICBjaGliaXNhZmUtc2VydmVyOgogICAgaW1hZ2U6ICdjaGliaXNhZmUvY2hpYmlzYWZlLXNlcnZlcjp2Ni41LjUnCiAgICB2b2x1bWVzOgogICAgICAtICdjaGliaXNhZmUtZGF0YWJhc2U6L2FwcC9kYXRhYmFzZTpydycKICAgICAgLSAnY2hpYmlzYWZlLXVwbG9hZHM6L2FwcC91cGxvYWRzOnJ3JwogICAgICAtICdjaGliaXNhZmUtbG9nczovYXBwL2xvZ3M6cncnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gd2dldAogICAgICAgIC0gJy0tc3BpZGVyJwogICAgICAgIC0gJy0tcXVpZXQnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwaS9oZWFsdGgnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDMKICAgICAgc3RhcnRfcGVyaW9kOiAxMHMKICBjYWRkeToKICAgIGltYWdlOiAnY2FkZHk6Mi1hbHBpbmUnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fQ0hJQklTQUZFXzgwCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gd2dldAogICAgICAgIC0gJy0tc3BpZGVyJwogICAgICAgIC0gJy0tcXVpZXQnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MCcKICAgICAgaW50ZXJ2YWw6IDMwcwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMwogICAgICBzdGFydF9wZXJpb2Q6IDEwcwogICAgdm9sdW1lczoKICAgICAgLSAndXBsb2FkczovYXBwL3VwbG9hZHM6cm8nCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL0NhZGR5ZmlsZQogICAgICAgIHRhcmdldDogL2V0Yy9jYWRkeS9DYWRkeWZpbGUKICAgICAgICBjb250ZW50OiAiIyBjaGliaXNhZmUvQ2FkZHlmaWxlXG4jIGh0dHBzOi8vY2hpYmlzYWZlLm1vZS9ndWlkZXMvcnVubmluZy13aXRoLWRvY2tlclxuOjgwIHtcbiAgcm91dGUge1xuICAgIGZpbGVfc2VydmVyICoge1xuICAgICAgICByb290IC9hcHAvdXBsb2Fkc1xuICAgICAgICBwYXNzX3RocnVcbiAgICB9XG4gICAgQGFwaSBwYXRoIC9hcGkvKlxuICAgIHJldmVyc2VfcHJveHkgQGFwaSBodHRwOi8vY2hpYmlzYWZlLXNlcnZlcjo4MDAwIHtcbiAgICAgICAgaGVhZGVyX3VwIEhvc3Qge2h0dHAucmV2ZXJzZV9wcm94eS51cHN0cmVhbS5ob3N0cG9ydH1cbiAgICAgICAgaGVhZGVyX3VwIFgtUmVhbC1JUCB7aHR0cC5yZXF1ZXN0LmhlYWRlci5YLVJlYWwtSVB9XG4gICAgfVxuICAgIEBkb2NzIHBhdGggL2RvY3MqXG4gICAgcmV2ZXJzZV9wcm94eSBAZG9jcyBodHRwOi8vY2hpYmlzYWZlLXNlcnZlcjo4MDAwIHtcbiAgICAgICAgaGVhZGVyX3VwIEhvc3Qge2h0dHAucmV2ZXJzZV9wcm94eS51cHN0cmVhbS5ob3N0cG9ydH1cbiAgICAgICAgaGVhZGVyX3VwIFgtUmVhbC1JUCB7aHR0cC5yZXF1ZXN0LmhlYWRlci5YLVJlYWwtSVB9XG4gICAgfVxuICAgIHJldmVyc2VfcHJveHkgaHR0cDovL2NoaWJpc2FmZTo4MDAxIHtcbiAgICAgICAgaGVhZGVyX3VwIEhvc3Qge2h0dHAucmV2ZXJzZV9wcm94eS51cHN0cmVhbS5ob3N0cG9ydH1cbiAgICAgICAgaGVhZGVyX3VwIFgtUmVhbC1JUCB7aHR0cC5yZXF1ZXN0LmhlYWRlci5YLVJlYWwtSVB9XG4gICAgfVxuICB9XG59XG4iCg==", + "tags": [ + "storage", + "file-sharing", + "upload", + "sharing" + ], + "category": null, + "logo": "svgs/chibisafe.svg", + "minversion": "0.0.0", + "port": "80" + }, "chroma": { "documentation": "https://cookbook.chromadb.dev/?utm_source=coolify.io", "slogan": "Chroma is the open-source search and retrieval database for AI applications.", @@ -1731,6 +1746,21 @@ "minversion": "0.0.0", "port": "8080" }, + "glpi": { + "documentation": "https://help.glpi-project.org/documentation?utm_source=coolify.io", + "slogan": "GLPI (Gestionnaire Libre de Parc Informatique) is a free, open-source IT Service Management (ITSM) platform used for IT asset management, helpdesk, and service desk operations.", + "compose": "c2VydmljZXM6CiAgZ2xwaToKICAgIGltYWdlOiAnZ2xwaS9nbHBpOjExJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gU0VSVklDRV9GUUROX0dMUElfODAKICAgICAgLSBHTFBJX0RCX0hPU1Q9Z2xwaS1kYgogICAgICAtIEdMUElfREJfUE9SVD0zMzA2CiAgICAgIC0gJ0dMUElfREJfTkFNRT0ke01ZU1FMX0RBVEFCQVNFOi1nbHBpLWRifScKICAgICAgLSAnR0xQSV9EQl9VU0VSPSR7U0VSVklDRV9VU0VSX01ZU1FMfScKICAgICAgLSAnR0xQSV9EQl9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgdm9sdW1lczoKICAgICAgLSAnZ2xwaS1kYXRhOi92YXIvZ2xwaTpydycKICAgIGRlcGVuZHNfb246CiAgICAgIGdscGktZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovL2xvY2FsaG9zdC8nCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDMKICBnbHBpLWRiOgogICAgaW1hZ2U6ICdteXNxbDo4JwogICAgdm9sdW1lczoKICAgICAgLSAnbXlzcWwtZGF0YTovdmFyL2xpYi9teXNxbCcKICAgIGVudmlyb25tZW50OgogICAgICAtICdNWVNRTF9ST09UX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9ST09UfScKICAgICAgLSAnTVlTUUxfREFUQUJBU0U9JHtNWVNRTF9EQVRBQkFTRTotZ2xwaS1kYn0nCiAgICAgIC0gJ01ZU1FMX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdNWVNRTF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIG15c3FsYWRtaW4KICAgICAgICAtIHBpbmcKICAgICAgICAtICctaCcKICAgICAgICAtIDEyNy4wLjAuMQogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==", + "tags": [ + "helpdesk", + "ticketing", + "support", + "open-source" + ], + "category": "helpdesk", + "logo": "svgs/glpi.svg", + "minversion": "0.0.0", + "port": "80" + }, "gotenberg": { "documentation": "https://gotenberg.dev/docs/getting-started/introduction?utm_source=coolify.io", "slogan": "Gotenberg is a Docker-powered stateless API for PDF files.", @@ -3296,6 +3326,21 @@ "minversion": "0.0.0", "port": "3000" }, + "open-archiver": { + "documentation": "https://docs.openarchiver.com/?utm_source=coolify.io", + "slogan": "A self-hosted, open-source email archiving solution with full-text search capability.", + "compose": "c2VydmljZXM6CiAgb3Blbi1hcmNoaXZlcjoKICAgIGltYWdlOiAnbG9naWNsYWJzaHEvb3Blbi1hcmNoaXZlcjpsYXRlc3QnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fT1BFTkFSQ0hJVkVSXzMwMDAKICAgICAgLSAnRU5DUllQVElPTl9LRVk9JHtTRVJWSUNFX0hFWF8zMl9FTkNSWVBUSU9OS0VZfScKICAgICAgLSAnU1RPUkFHRV9FTkNSWVBUSU9OX0tFWT0ke1NFUlZJQ0VfSEVYXzMyX1NUT1JBR0VFTkNSWVBUSU9OS0VZfScKICAgICAgLSAnUE9SVF9CQUNLRU5EPSR7UE9SVF9CQUNLRU5EOi00MDAwfScKICAgICAgLSAnUE9SVF9GUk9OVEVORD0ke1BPUlRfRlJPTlRFTkQ6LTMwMDB9JwogICAgICAtICdOT0RFX0VOVj0ke05PREVfRU5WOi1wcm9kdWN0aW9ufScKICAgICAgLSAnU1lOQ19GUkVRVUVOQ1k9JHtTWU5DX0ZSRVFVRU5DWTotKiAqICogKiAqfScKICAgICAgLSAnUE9TVEdSRVNfREI9JHtQT1NUR1JFU19EQjotb3Blbl9hcmNoaXZlfScKICAgICAgLSAnUE9TVEdSRVNfVVNFUj0ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU30nCiAgICAgIC0gJ0RBVEFCQVNFX1VSTD1wb3N0Z3Jlc3FsOi8vJHtTRVJWSUNFX1VTRVJfUE9TVEdSRVN9OiR7U0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU31AcG9zdGdyZXM6NTQzMi8ke1BPU1RHUkVTX0RCOi1vcGVuLWFyY2hpdmVyLWRifScKICAgICAgLSAnTUVJTElfTUFTVEVSX0tFWT0ke1NFUlZJQ0VfUEFTU1dPUkRfTUVJTElTRUFSQ0h9JwogICAgICAtICdNRUlMSV9IT1NUPWh0dHA6Ly9tZWlsaXNlYXJjaDo3NzAwJwogICAgICAtIFJFRElTX0hPU1Q9dmFsa2V5CiAgICAgIC0gUkVESVNfUE9SVD02Mzc5CiAgICAgIC0gJ1JFRElTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9WQUxLRVl9JwogICAgICAtIFJFRElTX1RMU19FTkFCTEVEPWZhbHNlCiAgICAgIC0gJ1NUT1JBR0VfVFlQRT0ke1NUT1JBR0VfVFlQRTotbG9jYWx9JwogICAgICAtICdTVE9SQUdFX0xPQ0FMX1JPT1RfUEFUSD0ke1NUT1JBR0VfTE9DQUxfUk9PVF9QQVRIOi0vdmFyL2RhdGEvb3Blbi1hcmNoaXZlcn0nCiAgICAgIC0gJ0JPRFlfU0laRV9MSU1JVD0ke0JPRFlfU0laRV9MSU1JVDotMTAwTX0nCiAgICAgIC0gJ1NUT1JBR0VfUzNfRU5EUE9JTlQ9JHtTVE9SQUdFX1MzX0VORFBPSU5UfScKICAgICAgLSAnU1RPUkFHRV9TM19CVUNLRVQ9JHtTVE9SQUdFX1MzX0JVQ0tFVH0nCiAgICAgIC0gJ1NUT1JBR0VfUzNfQUNDRVNTX0tFWV9JRD0ke1NUT1JBR0VfUzNfQUNDRVNTX0tFWV9JRH0nCiAgICAgIC0gJ1NUT1JBR0VfUzNfU0VDUkVUX0FDQ0VTU19LRVk9JHtTVE9SQUdFX1MzX1NFQ1JFVF9BQ0NFU1NfS0VZfScKICAgICAgLSAnU1RPUkFHRV9TM19SRUdJT049JHtTVE9SQUdFX1MzX1JFR0lPTn0nCiAgICAgIC0gJ1NUT1JBR0VfUzNfRk9SQ0VfUEFUSF9TVFlMRT0ke1NUT1JBR0VfUzNfRk9SQ0VfUEFUSF9TVFlMRTotZmFsc2V9JwogICAgICAtICdKV1RfU0VDUkVUPSR7U0VSVklDRV9CQVNFNjRfMTI4X0pXVH0nCiAgICAgIC0gJ0pXVF9FWFBJUkVTX0lOPSR7SldUX0VYUElSRVNfSU46LTdkfScKICAgICAgLSAnUkFURV9MSU1JVF9XSU5ET1dfTVM9JHtSQVRFX0xJTUlUX1dJTkRPV19NUzotNjAwMDB9JwogICAgICAtICdSQVRFX0xJTUlUX01BWF9SRVFVRVNUUz0ke1JBVEVfTElNSVRfTUFYX1JFUVVFU1RTOi0xMDB9JwogICAgdm9sdW1lczoKICAgICAgLSAnYXJjaGl2ZXItZGF0YTovdmFyL2RhdGEvb3Blbi1hcmNoaXZlcicKICAgIGRlcGVuZHNfb246CiAgICAgIHBvc3RncmVzOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICAgIHZhbGtleToKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgICBtZWlsaXNlYXJjaDoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogIHBvc3RncmVzOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNy1hbHBpbmUnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUE9TVEdSRVNfREI9JHtQT1NUR1JFU19EQjotb3Blbi1hcmNoaXZlci1kYn0nCiAgICAgIC0gJ1BPU1RHUkVTX1VTRVI9JHtTRVJWSUNFX1VTRVJfUE9TVEdSRVN9JwogICAgICAtICdQT1NUR1JFU19QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVN9JwogICAgICAtIExDX0FMTD1DCiAgICB2b2x1bWVzOgogICAgICAtICdwb3N0Z3Jlcy1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAncGdfaXNyZWFkeSAtVSAkJHtQT1NUR1JFU19VU0VSfSAtZCAkJHtQT1NUR1JFU19EQn0nCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCiAgdmFsa2V5OgogICAgaW1hZ2U6ICd2YWxrZXkvdmFsa2V5OjgtYWxwaW5lJwogICAgY29tbWFuZDogJ3ZhbGtleS1zZXJ2ZXIgLS1yZXF1aXJlcGFzcyAke1NFUlZJQ0VfUEFTU1dPUkRfVkFMS0VZfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3ZhbGtleS1kYXRhOi9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIHJlZGlzLWNsaQogICAgICAgIC0gcGluZwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDMKICBtZWlsaXNlYXJjaDoKICAgIGltYWdlOiAnZ2V0bWVpbGkvbWVpbGlzZWFyY2g6djEuMTUnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnTUVJTElfTUFTVEVSX0tFWT0ke1NFUlZJQ0VfUEFTU1dPUkRfTUVJTElTRUFSQ0h9JwogICAgdm9sdW1lczoKICAgICAgLSAnbWVpbGlzZWFyY2gtZGF0YTovbWVpbGlfZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo3NzAwL2hlYWx0aCcKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQo=", + "tags": [ + "email archiving", + "email", + "compliance", + "search" + ], + "category": null, + "logo": "svgs/openarchiver.svg", + "minversion": "0.0.0", + "port": "3000" + }, "open-webui": { "documentation": "https://docs.openwebui.com?utm_source=coolify.io", "slogan": "User-friendly AI Interface (Supports Ollama, OpenAI API, ...)", @@ -4066,6 +4111,22 @@ "minversion": "0.0.0", "port": "8080" }, + "seaweedfs": { + "documentation": "https://github.com/seaweedfs/seaweedfs?utm_source=coolify.io", + "slogan": "SeaweedFS is a simple and highly scalable distributed file system. Compatible with S3, with an admin web interface.", + "compose": "c2VydmljZXM6CiAgc2Vhd2VlZGZzLW1hc3RlcjoKICAgIGltYWdlOiAnY2hyaXNsdXNmL3NlYXdlZWRmczo0LjA1JwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gU0VSVklDRV9GUUROX1MzXzgzMzMKICAgICAgLSAnQVdTX0FDQ0VTU19LRVlfSUQ9JHtTRVJWSUNFX1VTRVJfUzN9JwogICAgICAtICdBV1NfU0VDUkVUX0FDQ0VTU19LRVk9JHtTRVJWSUNFX1BBU1NXT1JEX1MzfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3NlYXdlZWRmcy1zMy1kYXRhOi9kYXRhJwogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9iYXNlLWNvbmZpZy5qc29uCiAgICAgICAgdGFyZ2V0OiAvYmFzZS1jb25maWcuanNvbgogICAgICAgIGNvbnRlbnQ6ICJ7XG4gIFwiaWRlbnRpdGllc1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiYW5vbnltb3VzXCIsXG4gICAgICBcImFjdGlvbnNcIjogW1xuICAgICAgICBcIlJlYWRcIlxuICAgICAgXVxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiYWRtaW5cIixcbiAgICAgIFwiY3JlZGVudGlhbHNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJhY2Nlc3NLZXlcIjogXCJlbnY6QVdTX0FDQ0VTU19LRVlfSURcIixcbiAgICAgICAgICBcInNlY3JldEtleVwiOiBcImVudjpBV1NfU0VDUkVUX0FDQ0VTU19LRVlcIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJhY3Rpb25zXCI6IFtcbiAgICAgICAgXCJBZG1pblwiLFxuICAgICAgICBcIlJlYWRcIixcbiAgICAgICAgXCJSZWFkQWNwXCIsXG4gICAgICAgIFwiTGlzdFwiLFxuICAgICAgICBcIlRhZ2dpbmdcIixcbiAgICAgICAgXCJXcml0ZVwiLFxuICAgICAgICBcIldyaXRlQWNwXCJcbiAgICAgIF1cbiAgICB9XG4gIF1cbn1cbiIKICAgIGVudHJ5cG9pbnQ6ICJzaCAtYyAnXFxcbnNlZCBcInMvZW52OkFXU19BQ0NFU1NfS0VZX0lELyRBV1NfQUNDRVNTX0tFWV9JRC9nXCIgL2Jhc2UtY29uZmlnLmpzb24gPiAvYmFzZTEtY29uZmlnLmpzb247IFxcXG5zZWQgXCJzL2VudjpBV1NfU0VDUkVUX0FDQ0VTU19LRVkvJEFXU19TRUNSRVRfQUNDRVNTX0tFWS9nXCIgL2Jhc2UxLWNvbmZpZy5qc29uID4gL2NvbmZpZy5qc29uOyBcXFxud2VlZCBzZXJ2ZXIgLWRpcj0vZGF0YSAtbWFzdGVyLnBvcnQ9OTMzMyAtczMgLXMzLnBvcnQ9ODMzMyAtczMuY29uZmlnPS9jb25maWcuanNvblxcXG4nXG4iCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ3dnZXQgLS1zcGlkZXIgLXEgaHR0cDovLzAuMC4wLjA6ODMzMzsgWyAkJD8gLWxlIDggXScKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAxMAogIHNlYXdlZWRmcy1hZG1pbjoKICAgIGltYWdlOiAnY2hyaXNsdXNmL3NlYXdlZWRmczo0LjA1JwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gU0VSVklDRV9GUUROX0FETUlOXzIzNjQ2CiAgICAgIC0gJ1NFQVdFRURfVVNFUl9BRE1JTj0ke1NFUlZJQ0VfVVNFUl9BRE1JTn0nCiAgICAgIC0gJ1NFQVdFRURfUEFTU1dPUkRfQURNSU49JHtTRVJWSUNFX1BBU1NXT1JEX0FETUlOfScKICAgIGNvbW1hbmQ6CiAgICAgIC0gYWRtaW4KICAgICAgLSAnLW1hc3Rlcj1zZWF3ZWVkZnMtbWFzdGVyOjkzMzMnCiAgICAgIC0gJy1hZG1pblVzZXI9JHtTRUFXRUVEX1VTRVJfQURNSU59JwogICAgICAtICctYWRtaW5QYXNzd29yZD0ke1NFQVdFRURfUEFTU1dPUkRfQURNSU59JwogICAgICAtICctcG9ydD0yMzY0NicKICAgICAgLSAnLWRhdGFEaXI9L2RhdGEnCiAgICB2b2x1bWVzOgogICAgICAtICdzZWF3ZWVkZnMtYWRtaW4tZGF0YTovZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnd2dldCAtLXNwaWRlciAtcSBodHRwOi8vMC4wLjAuMDoyMzY0NjsgWyAkJD8gLWxlIDggXScKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAxMAogICAgZGVwZW5kc19vbjoKICAgICAgc2Vhd2VlZGZzLW1hc3RlcjoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQo=", + "tags": [ + "object", + "storage", + "server", + "s3", + "api" + ], + "category": "storage", + "logo": "svgs/garage.svg", + "minversion": "0.0.0", + "port": "8333" + }, "sequin": { "documentation": "https://sequinstream.com/docs/?utm_source=coolify.io", "slogan": "The fastest Postgres change data capture", @@ -4080,10 +4141,25 @@ "minversion": "0.0.0", "port": "7376" }, + "sessy": { + "documentation": "https://github.com/marckohlbrugge/sessy/blob/main/docs/docker-deployment.md?utm_source=coolify.io", + "slogan": "Email observability platform for monitoring and analyzing email systems.", + "compose": "c2VydmljZXM6CiAgc2Vzc3k6CiAgICBpbWFnZTogJ2doY3IuaW8vbWFyY2tvaGxicnVnZ2Uvc2Vzc3k6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9TRVNTWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9IRVhfNjRfU0VTU1lTRUNSRVQKICAgICAgLSBIVFRQX0FVVEhfVVNFUk5BTUU9JFNFUlZJQ0VfVVNFUl9TRVNTWQogICAgICAtIEhUVFBfQVVUSF9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9TRVNTWQogICAgdm9sdW1lczoKICAgICAgLSAnc2Vzc3ktZGF0YTovcmFpbHMvc3RvcmFnZScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnY3VybCAtc2YgaHR0cDovLzEyNy4wLjAuMTo4MCB8fCBbICQ/IC1lcSAyMiBdJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDEwCg==", + "tags": [ + "email", + "observability", + "monitoring", + "analytics" + ], + "category": "monitoring", + "logo": "svgs/sessy.svg", + "minversion": "0.0.0", + "port": "80" + }, "sftpgo": { "documentation": "https://docs.sftpgo.com/2.7/?utm_source=coolify.io", "slogan": "SFTPGo is an event-driven SFTP, FTP/S, HTTP/S and WebDAV server.", - "compose": "c2VydmljZXM6CiAgc2Z0cGdvOgogICAgaW1hZ2U6ICdnaGNyLmlvL2RyYWtrYW4vc2Z0cGdvOnYyLjctYWxwaW5lJwogICAgcG9ydHM6CiAgICAgIC0gJzIyMjI6MjIyMicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9TRlRQR09fODA4MAogICAgICAtIFNGVFBHT19EQVRBX1BST1ZJREVSX19EUklWRVI9cG9zdGdyZXNxbAogICAgICAtICdTRlRQR09fREFUQV9QUk9WSURFUl9fQ09OTkVDVElPTl9TVFJJTkc9cG9zdGdyZXNxbDovLyR7U0VSVklDRV9VU0VSX1BPU1RHUkVTfToke1NFUlZJQ0VfUEFTU1dPUkRfNjRfUE9TVEdSRVN9QHBvc3RncmVzcWw6NTQzMi8ke1BPU1RHUkVTX0RBVEFCQVNFOi1zZnRwZ28tZGJ9JwogICAgICAtIFNGVFBHT19TRlRQRF9fQklORElOR1NfXzBfX1BPUlQ9MjAyMgogICAgICAtICdTRlRQR09fTE9HX0xFVkVMPSR7TE9HX0xFVkVMOi1pbmZvfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnd2dldCAtcU8tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC8nCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAKICAgIGRlcGVuZHNfb246CiAgICAgIHBvc3RncmVzcWw6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3NmdHBnby1kYXRhOi9zcnYvc2Z0cGdvL2RhdGEnCiAgICAgIC0gJ3NmdHBnby1rZXlzOi92YXIvbGliL3NmdHBnbycKICBwb3N0Z3Jlc3FsOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNy1hbHBpbmUnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUE9TVEdSRVNfVVNFUj0ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF82NF9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNfREFUQUJBU0U6LXNmdHBnby1kYn0nCiAgICB2b2x1bWVzOgogICAgICAtICdwb3N0Z3Jlc3FsLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAyMAo=", + "compose": "c2VydmljZXM6CiAgc2Z0cGdvOgogICAgaW1hZ2U6ICdnaGNyLmlvL2RyYWtrYW4vc2Z0cGdvOnYyLjctYWxwaW5lJwogICAgcG9ydHM6CiAgICAgIC0gJzIyMjI6MjIyMicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9TRlRQR09fODA4MAogICAgICAtIFNGVFBHT19EQVRBX1BST1ZJREVSX19EUklWRVI9cG9zdGdyZXNxbAogICAgICAtICdTRlRQR09fREFUQV9QUk9WSURFUl9fQ09OTkVDVElPTl9TVFJJTkc9cG9zdGdyZXNxbDovLyR7U0VSVklDRV9VU0VSX1BPU1RHUkVTfToke1NFUlZJQ0VfUEFTU1dPUkRfNjRfUE9TVEdSRVN9QHBvc3RncmVzcWw6NTQzMi8ke1BPU1RHUkVTX0RBVEFCQVNFOi1zZnRwZ28tZGJ9JwogICAgICAtICdTRlRQR09fU0ZUUERfX0JJTkRJTkdTX18wX19QT1JUPSR7UE9SVF9TRlRQR086LTIyMjJ9JwogICAgICAtICdTRlRQR09fTE9HX0xFVkVMPSR7TE9HX0xFVkVMOi1pbmZvfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnd2dldCAtcU8tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC8nCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAKICAgIGRlcGVuZHNfb246CiAgICAgIHBvc3RncmVzcWw6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3NmdHBnby1kYXRhOi9zcnYvc2Z0cGdvL2RhdGEnCiAgICAgIC0gJ3NmdHBnby1rZXlzOi92YXIvbGliL3NmdHBnbycKICBwb3N0Z3Jlc3FsOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNy1hbHBpbmUnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUE9TVEdSRVNfVVNFUj0ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF82NF9QT1NUR1JFU30nCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNfREFUQUJBU0U6LXNmdHBnby1kYn0nCiAgICB2b2x1bWVzOgogICAgICAtICdwb3N0Z3Jlc3FsLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAyMAo=", "tags": [ "sftpgo", "sftp", @@ -4117,7 +4193,7 @@ "signoz": { "documentation": "https://signoz.io/docs/introduction/?utm_source=coolify.io", "slogan": "An observability platform native to OpenTelemetry with logs, traces and metrics.", - "compose": "c2VydmljZXM6CiAgaW5pdC1jbGlja2hvdXNlOgogICAgaW1hZ2U6ICdjbGlja2hvdXNlL2NsaWNraG91c2Utc2VydmVyOjI1LjUuNi1hbHBpbmUnCiAgICBjb21tYW5kOgogICAgICAtIGJhc2gKICAgICAgLSAnLWMnCiAgICAgIC0gInZlcnNpb249XCJ2MC4wLjFcIlxubm9kZV9vcz0kJCh1bmFtZSAtcyB8IHRyICdbOnVwcGVyOl0nICdbOmxvd2VyOl0nKVxubm9kZV9hcmNoPSQkKHVuYW1lIC1tIHwgc2VkIHMvYWFyY2g2NC9hcm02NC8gfCBzZWQgcy94ODZfNjQvYW1kNjQvKVxuZWNobyBcIkZldGNoaW5nIGhpc3RvZ3JhbS1iaW5hcnkgZm9yICQke25vZGVfb3N9LyQke25vZGVfYXJjaH1cIlxuY2QgL3RtcFxud2dldCAtTyBoaXN0b2dyYW0tcXVhbnRpbGUudGFyLmd6IFwiaHR0cHM6Ly9naXRodWIuY29tL1NpZ05vei9zaWdub3ovcmVsZWFzZXMvZG93bmxvYWQvaGlzdG9ncmFtLXF1YW50aWxlJTJGJCR7dmVyc2lvbn0vaGlzdG9ncmFtLXF1YW50aWxlXyQke25vZGVfb3N9XyQke25vZGVfYXJjaH0udGFyLmd6XCJcbnRhciAteHZ6ZiBoaXN0b2dyYW0tcXVhbnRpbGUudGFyLmd6XG5ta2RpciAtcCAvdmFyL2xpYi9jbGlja2hvdXNlL3VzZXJfc2NyaXB0cy9oaXN0b2dyYW1RdWFudGlsZVxubXYgaGlzdG9ncmFtLXF1YW50aWxlIC92YXIvbGliL2NsaWNraG91c2UvdXNlcl9zY3JpcHRzL2hpc3RvZ3JhbVF1YW50aWxlXG4iCiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICB6b29rZWVwZXI6CiAgICBpbWFnZTogJ3NpZ25vei96b29rZWVwZXI6My45LjMnCiAgICB1c2VyOiByb290CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ2N1cmwgLXMgLW0gMiBodHRwOi8vbG9jYWxob3N0OjgwODAvY29tbWFuZHMvcnVvayB8IGdyZXAgZXJyb3IgfCBncmVwIG51bGwnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogICAgbG9nZ2luZzoKICAgICAgb3B0aW9uczoKICAgICAgICBtYXgtc2l6ZTogNTBtCiAgICAgICAgbWF4LWZpbGU6ICczJwogICAgdm9sdW1lczoKICAgICAgLSAnem9va2VlcGVyOi9iaXRuYW1pL3pvb2tlZXBlcicKICAgIGVudmlyb25tZW50OgogICAgICAtICdBTExPV19BTk9OWU1PVVNfTE9HSU49JHtaT09fQUxMT1dfQU5PTllNT1VTX0xPR0lOOi15ZXN9JwogICAgICAtICdaT09fQVVUT1BVUkdFX0lOVEVSVkFMPSR7Wk9PX0FVVE9QVVJHRV9JTlRFUlZBTDotMX0nCiAgICAgIC0gJ1pPT19FTkFCTEVfUFJPTUVUSEVVU19NRVRSSUNTPSR7Wk9PX0VOQUJMRV9QUk9NRVRIRVVTX01FVFJJQ1M6LXllc30nCiAgICAgIC0gJ1pPT19QUk9NRVRIRVVTX01FVFJJQ1NfUE9SVF9OVU1CRVI9JHtaT09fUFJPTUVUSEVVU19NRVRSSUNTX1BPUlRfTlVNQkVSOi05MTQxfScKICBjbGlja2hvdXNlOgogICAgaW1hZ2U6ICdjbGlja2hvdXNlL2NsaWNraG91c2Utc2VydmVyOjI1LjUuNi1hbHBpbmUnCiAgICB0dHk6IHRydWUKICAgIGRlcGVuZHNfb246CiAgICAgIGluaXQtY2xpY2tob3VzZToKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseQogICAgICB6b29rZWVwZXI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnLXEnCiAgICAgICAgLSAnMC4wLjAuMDo4MTIzL3BpbmcnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogICAgdWxpbWl0czoKICAgICAgbnByb2M6IDY1NTM1CiAgICAgIG5vZmlsZToKICAgICAgICBzb2Z0OiAyNjIxNDQKICAgICAgICBoYXJkOiAyNjIxNDQKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGVudmlyb25tZW50OgogICAgICAtIENMSUNLSE9VU0VfU0tJUF9VU0VSX1NFVFVQPTEKICAgIHZvbHVtZXM6CiAgICAgIC0KICAgICAgICB0eXBlOiB2b2x1bWUKICAgICAgICBzb3VyY2U6IGNsaWNraG91c2UKICAgICAgICB0YXJnZXQ6IC92YXIvbGliL2NsaWNraG91c2UvCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL2NsaWNraG91c2UvY3VzdG9tLWZ1bmN0aW9uLnhtbAogICAgICAgIHRhcmdldDogL2V0Yy9jbGlja2hvdXNlLXNlcnZlci9jdXN0b20tZnVuY3Rpb24ueG1sCiAgICAgICAgY29udGVudDogIjxmdW5jdGlvbnM+XG4gICAgPGZ1bmN0aW9uPlxuICAgICAgICA8dHlwZT5leGVjdXRhYmxlPC90eXBlPlxuICAgICAgICA8bmFtZT5oaXN0b2dyYW1RdWFudGlsZTwvbmFtZT5cbiAgICAgICAgPHJldHVybl90eXBlPkZsb2F0NjQ8L3JldHVybl90eXBlPlxuICAgICAgICA8YXJndW1lbnQ+XG4gICAgICAgICAgICA8dHlwZT5BcnJheShGbG9hdDY0KTwvdHlwZT5cbiAgICAgICAgICAgIDxuYW1lPmJ1Y2tldHM8L25hbWU+XG4gICAgICAgIDwvYXJndW1lbnQ+XG4gICAgICAgIDxhcmd1bWVudD5cbiAgICAgICAgICAgIDx0eXBlPkFycmF5KEZsb2F0NjQpPC90eXBlPlxuICAgICAgICAgICAgPG5hbWU+Y291bnRzPC9uYW1lPlxuICAgICAgICA8L2FyZ3VtZW50PlxuICAgICAgICA8YXJndW1lbnQ+XG4gICAgICAgICAgICA8dHlwZT5GbG9hdDY0PC90eXBlPlxuICAgICAgICAgICAgPG5hbWU+cXVhbnRpbGU8L25hbWU+XG4gICAgICAgIDwvYXJndW1lbnQ+XG4gICAgICAgIDxmb3JtYXQ+Q1NWPC9mb3JtYXQ+XG4gICAgICAgIDxjb21tYW5kPi4vaGlzdG9ncmFtUXVhbnRpbGU8L2NvbW1hbmQ+XG4gICAgPC9mdW5jdGlvbj5cbjwvZnVuY3Rpb25zPlxuIgogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9jbGlja2hvdXNlL2NsdXN0ZXIueG1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL2NsaWNraG91c2Utc2VydmVyL2NvbmZpZy5kL2NsdXN0ZXIueG1sCiAgICAgICAgY29udGVudDogIjw/eG1sIHZlcnNpb249XCIxLjBcIj8+XG48Y2xpY2tob3VzZT5cbiAgICA8IS0tIFpvb0tlZXBlciBpcyB1c2VkIHRvIHN0b3JlIG1ldGFkYXRhIGFib3V0IHJlcGxpY2FzLCB3aGVuIHVzaW5nIFJlcGxpY2F0ZWQgdGFibGVzLlxuICAgICAgICBPcHRpb25hbC4gSWYgeW91IGRvbid0IHVzZSByZXBsaWNhdGVkIHRhYmxlcywgeW91IGNvdWxkIG9taXQgdGhhdC5cblxuICAgICAgICBTZWUgaHR0cHM6Ly9jbGlja2hvdXNlLmNvbS9kb2NzL2VuL2VuZ2luZXMvdGFibGUtZW5naW5lcy9tZXJnZXRyZWUtZmFtaWx5L3JlcGxpY2F0aW9uL1xuICAgICAgLS0+XG4gICAgPHpvb2tlZXBlcj5cbiAgICAgICAgPG5vZGUgaW5kZXg9XCIxXCI+XG4gICAgICAgICAgICA8aG9zdD56b29rZWVwZXI8L2hvc3Q+XG4gICAgICAgICAgICA8cG9ydD4yMTgxPC9wb3J0PlxuICAgICAgICA8L25vZGU+XG4gICAgPC96b29rZWVwZXI+XG5cbiAgICA8IS0tIENvbmZpZ3VyYXRpb24gb2YgY2x1c3RlcnMgdGhhdCBjb3VsZCBiZSB1c2VkIGluIERpc3RyaWJ1dGVkIHRhYmxlcy5cbiAgICAgICAgaHR0cHM6Ly9jbGlja2hvdXNlLmNvbS9kb2NzL2VuL29wZXJhdGlvbnMvdGFibGVfZW5naW5lcy9kaXN0cmlidXRlZC9cbiAgICAgIC0tPlxuICAgIDxyZW1vdGVfc2VydmVycz5cbiAgICAgICAgPGNsdXN0ZXI+XG4gICAgICAgICAgICA8IS0tIEludGVyLXNlcnZlciBwZXItY2x1c3RlciBzZWNyZXQgZm9yIERpc3RyaWJ1dGVkIHF1ZXJpZXNcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBubyBzZWNyZXQgKG5vIGF1dGhlbnRpY2F0aW9uIHdpbGwgYmUgcGVyZm9ybWVkKVxuXG4gICAgICAgICAgICAgICAgSWYgc2V0LCB0aGVuIERpc3RyaWJ1dGVkIHF1ZXJpZXMgd2lsbCBiZSB2YWxpZGF0ZWQgb24gc2hhcmRzLCBzbyBhdCBsZWFzdDpcbiAgICAgICAgICAgICAgICAtIHN1Y2ggY2x1c3RlciBzaG91bGQgZXhpc3Qgb24gdGhlIHNoYXJkLFxuICAgICAgICAgICAgICAgIC0gc3VjaCBjbHVzdGVyIHNob3VsZCBoYXZlIHRoZSBzYW1lIHNlY3JldC5cblxuICAgICAgICAgICAgICAgIEFuZCBhbHNvIChhbmQgd2hpY2ggaXMgbW9yZSBpbXBvcnRhbnQpLCB0aGUgaW5pdGlhbF91c2VyIHdpbGxcbiAgICAgICAgICAgICAgICBiZSB1c2VkIGFzIGN1cnJlbnQgdXNlciBmb3IgdGhlIHF1ZXJ5LlxuXG4gICAgICAgICAgICAgICAgUmlnaHQgbm93IHRoZSBwcm90b2NvbCBpcyBwcmV0dHkgc2ltcGxlIGFuZCBpdCBvbmx5IHRha2VzIGludG8gYWNjb3VudDpcbiAgICAgICAgICAgICAgICAtIGNsdXN0ZXIgbmFtZVxuICAgICAgICAgICAgICAgIC0gcXVlcnlcblxuICAgICAgICAgICAgICAgIEFsc28gaXQgd2lsbCBiZSBuaWNlIGlmIHRoZSBmb2xsb3dpbmcgd2lsbCBiZSBpbXBsZW1lbnRlZDpcbiAgICAgICAgICAgICAgICAtIHNvdXJjZSBob3N0bmFtZSAoc2VlIGludGVyc2VydmVyX2h0dHBfaG9zdCksIGJ1dCB0aGVuIGl0IHdpbGwgZGVwZW5kcyBmcm9tIEROUyxcbiAgICAgICAgICAgICAgICAgIGl0IGNhbiB1c2UgSVAgYWRkcmVzcyBpbnN0ZWFkLCBidXQgdGhlbiB0aGUgeW91IG5lZWQgdG8gZ2V0IGNvcnJlY3Qgb24gdGhlIGluaXRpYXRvciBub2RlLlxuICAgICAgICAgICAgICAgIC0gdGFyZ2V0IGhvc3RuYW1lIC8gaXAgYWRkcmVzcyAoc2FtZSBub3RlcyBhcyBmb3Igc291cmNlIGhvc3RuYW1lKVxuICAgICAgICAgICAgICAgIC0gdGltZS1iYXNlZCBzZWN1cml0eSB0b2tlbnNcbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPCEtLSA8c2VjcmV0Pjwvc2VjcmV0PiAtLT5cbiAgICAgICAgICAgIDxzaGFyZD5cbiAgICAgICAgICAgICAgICA8IS0tIE9wdGlvbmFsLiBXaGV0aGVyIHRvIHdyaXRlIGRhdGEgdG8ganVzdCBvbmUgb2YgdGhlIHJlcGxpY2FzLiBEZWZhdWx0OiBmYWxzZSAod3JpdGUgZGF0YSB0byBhbGwgcmVwbGljYXMpLiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxpbnRlcm5hbF9yZXBsaWNhdGlvbj5mYWxzZTwvaW50ZXJuYWxfcmVwbGljYXRpb24+IC0tPlxuICAgICAgICAgICAgICAgIDwhLS0gT3B0aW9uYWwuIFNoYXJkIHdlaWdodCB3aGVuIHdyaXRpbmcgZGF0YS4gRGVmYXVsdDogMS4gLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8d2VpZ2h0PjE8L3dlaWdodD4gLS0+XG4gICAgICAgICAgICAgICAgPHJlcGxpY2E+XG4gICAgICAgICAgICAgICAgICAgIDxob3N0PmNsaWNraG91c2U8L2hvc3Q+XG4gICAgICAgICAgICAgICAgICAgIDxwb3J0PjkwMDA8L3BvcnQ+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gT3B0aW9uYWwuIFByaW9yaXR5IG9mIHRoZSByZXBsaWNhIGZvciBsb2FkX2JhbGFuY2luZy4gRGVmYXVsdDogMSAobGVzcyB2YWx1ZSBoYXMgbW9yZSBwcmlvcml0eSkuIC0tPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwcmlvcml0eT4xPC9wcmlvcml0eT4gLS0+XG4gICAgICAgICAgICAgICAgPC9yZXBsaWNhPlxuICAgICAgICAgICAgPC9zaGFyZD5cbiAgICAgICAgICAgIDwhLS0gPHNoYXJkPlxuICAgICAgICAgICAgICAgIDxyZXBsaWNhPlxuICAgICAgICAgICAgICAgICAgICA8aG9zdD5jbGlja2hvdXNlLTI8L2hvc3Q+XG4gICAgICAgICAgICAgICAgICAgIDxwb3J0PjkwMDA8L3BvcnQ+XG4gICAgICAgICAgICAgICAgPC9yZXBsaWNhPlxuICAgICAgICAgICAgPC9zaGFyZD5cbiAgICAgICAgICAgIDxzaGFyZD5cbiAgICAgICAgICAgICAgICA8cmVwbGljYT5cbiAgICAgICAgICAgICAgICAgICAgPGhvc3Q+Y2xpY2tob3VzZS0zPC9ob3N0PlxuICAgICAgICAgICAgICAgICAgICA8cG9ydD45MDAwPC9wb3J0PlxuICAgICAgICAgICAgICAgIDwvcmVwbGljYT5cbiAgICAgICAgICAgIDwvc2hhcmQ+IC0tPlxuICAgICAgICA8L2NsdXN0ZXI+XG4gICAgPC9yZW1vdGVfc2VydmVycz5cbjwvY2xpY2tob3VzZT5cbiIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vY2xpY2tob3VzZS91c2Vycy54bWwKICAgICAgICB0YXJnZXQ6IC9ldGMvY2xpY2tob3VzZS1zZXJ2ZXIvdXNlcnMueG1sCiAgICAgICAgY29udGVudDogIjw/eG1sIHZlcnNpb249XCIxLjBcIj8+XG48Y2xpY2tob3VzZT5cbiAgICA8IS0tIFNlZSBhbHNvIHRoZSBmaWxlcyBpbiB1c2Vycy5kIGRpcmVjdG9yeSB3aGVyZSB0aGUgc2V0dGluZ3MgY2FuIGJlIG92ZXJyaWRkZW4uIC0tPlxuXG4gICAgPCEtLSBQcm9maWxlcyBvZiBzZXR0aW5ncy4gLS0+XG4gICAgPHByb2ZpbGVzPlxuICAgICAgICA8IS0tIERlZmF1bHQgc2V0dGluZ3MuIC0tPlxuICAgICAgICA8ZGVmYXVsdD5cbiAgICAgICAgICAgIDwhLS0gTWF4aW11bSBtZW1vcnkgdXNhZ2UgZm9yIHByb2Nlc3Npbmcgc2luZ2xlIHF1ZXJ5LCBpbiBieXRlcy4gLS0+XG4gICAgICAgICAgICA8bWF4X21lbW9yeV91c2FnZT4xMDAwMDAwMDAwMDwvbWF4X21lbW9yeV91c2FnZT5cblxuICAgICAgICAgICAgPCEtLSBIb3cgdG8gY2hvb3NlIGJldHdlZW4gcmVwbGljYXMgZHVyaW5nIGRpc3RyaWJ1dGVkIHF1ZXJ5IHByb2Nlc3NpbmcuXG4gICAgICAgICAgICAgICAgcmFuZG9tIC0gY2hvb3NlIHJhbmRvbSByZXBsaWNhIGZyb20gc2V0IG9mIHJlcGxpY2FzIHdpdGggbWluaW11bSBudW1iZXIgb2YgZXJyb3JzXG4gICAgICAgICAgICAgICAgbmVhcmVzdF9ob3N0bmFtZSAtIGZyb20gc2V0IG9mIHJlcGxpY2FzIHdpdGggbWluaW11bSBudW1iZXIgb2YgZXJyb3JzLCBjaG9vc2UgcmVwbGljYVxuICAgICAgICAgICAgICAgICAgd2l0aCBtaW5pbXVtIG51bWJlciBvZiBkaWZmZXJlbnQgc3ltYm9scyBiZXR3ZWVuIHJlcGxpY2EncyBob3N0bmFtZSBhbmQgbG9jYWwgaG9zdG5hbWVcbiAgICAgICAgICAgICAgICAgIChIYW1taW5nIGRpc3RhbmNlKS5cbiAgICAgICAgICAgICAgICBpbl9vcmRlciAtIGZpcnN0IGxpdmUgcmVwbGljYSBpcyBjaG9zZW4gaW4gc3BlY2lmaWVkIG9yZGVyLlxuICAgICAgICAgICAgICAgIGZpcnN0X29yX3JhbmRvbSAtIGlmIGZpcnN0IHJlcGxpY2Egb25lIGhhcyBoaWdoZXIgbnVtYmVyIG9mIGVycm9ycywgcGljayBhIHJhbmRvbSBvbmUgZnJvbSByZXBsaWNhcyB3aXRoIG1pbmltdW0gbnVtYmVyIG9mIGVycm9ycy5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPGxvYWRfYmFsYW5jaW5nPnJhbmRvbTwvbG9hZF9iYWxhbmNpbmc+XG4gICAgICAgIDwvZGVmYXVsdD5cblxuICAgICAgICA8IS0tIFByb2ZpbGUgdGhhdCBhbGxvd3Mgb25seSByZWFkIHF1ZXJpZXMuIC0tPlxuICAgICAgICA8cmVhZG9ubHk+XG4gICAgICAgICAgICA8cmVhZG9ubHk+MTwvcmVhZG9ubHk+XG4gICAgICAgIDwvcmVhZG9ubHk+XG4gICAgPC9wcm9maWxlcz5cblxuICAgIDwhLS0gVXNlcnMgYW5kIEFDTC4gLS0+XG4gICAgPHVzZXJzPlxuICAgICAgICA8IS0tIElmIHVzZXIgbmFtZSB3YXMgbm90IHNwZWNpZmllZCwgJ2RlZmF1bHQnIHVzZXIgaXMgdXNlZC4gLS0+XG4gICAgICAgIDxkZWZhdWx0PlxuICAgICAgICAgICAgPCEtLSBTZWUgYWxzbyB0aGUgZmlsZXMgaW4gdXNlcnMuZCBkaXJlY3Rvcnkgd2hlcmUgdGhlIHBhc3N3b3JkIGNhbiBiZSBvdmVycmlkZGVuLlxuXG4gICAgICAgICAgICAgICAgUGFzc3dvcmQgY291bGQgYmUgc3BlY2lmaWVkIGluIHBsYWludGV4dCBvciBpbiBTSEEyNTYgKGluIGhleCBmb3JtYXQpLlxuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBwYXNzd29yZCBpbiBwbGFpbnRleHQgKG5vdCByZWNvbW1lbmRlZCksIHBsYWNlIGl0IGluICdwYXNzd29yZCcgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBFeGFtcGxlOiA8cGFzc3dvcmQ+cXdlcnR5PC9wYXNzd29yZD4uXG4gICAgICAgICAgICAgICAgUGFzc3dvcmQgY291bGQgYmUgZW1wdHkuXG5cbiAgICAgICAgICAgICAgICBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IFNIQTI1NiwgcGxhY2UgaXQgaW4gJ3Bhc3N3b3JkX3NoYTI1Nl9oZXgnIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPHBhc3N3b3JkX3NoYTI1Nl9oZXg+NjVlODRiZTMzNTMyZmI3ODRjNDgxMjk2NzVmOWVmZjNhNjgyYjI3MTY4YzBlYTc0NGIyY2Y1OGVlMDIzMzdjNTwvcGFzc3dvcmRfc2hhMjU2X2hleD5cbiAgICAgICAgICAgICAgICBSZXN0cmljdGlvbnMgb2YgU0hBMjU2OiBpbXBvc3NpYmlsaXR5IHRvIGNvbm5lY3QgdG8gQ2xpY2tIb3VzZSB1c2luZyBNeVNRTCBKUyBjbGllbnQgKGFzIG9mIEp1bHkgMjAxOSkuXG5cbiAgICAgICAgICAgICAgICBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGRvdWJsZSBTSEExLCBwbGFjZSBpdCBpbiAncGFzc3dvcmRfZG91YmxlX3NoYTFfaGV4JyBlbGVtZW50LlxuICAgICAgICAgICAgICAgIEV4YW1wbGU6IDxwYXNzd29yZF9kb3VibGVfc2hhMV9oZXg+ZTM5NTc5NmQ2NTQ2YjFiNjVkYjlkNjY1Y2Q0M2YwZTg1OGRkNDMwMzwvcGFzc3dvcmRfZG91YmxlX3NoYTFfaGV4PlxuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIHByZXZpb3VzbHkgZGVmaW5lZCBMREFQIHNlcnZlciAoc2VlICdsZGFwX3NlcnZlcnMnIGluIHRoZSBtYWluIGNvbmZpZykgZm9yIGF1dGhlbnRpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgcGxhY2UgaXRzIG5hbWUgaW4gJ3NlcnZlcicgZWxlbWVudCBpbnNpZGUgJ2xkYXAnIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGxkYXA+PHNlcnZlcj5teV9sZGFwX3NlcnZlcjwvc2VydmVyPjwvbGRhcD5cblxuICAgICAgICAgICAgICAgIElmIHlvdSB3YW50IHRvIGF1dGhlbnRpY2F0ZSB0aGUgdXNlciB2aWEgS2VyYmVyb3MgKGFzc3VtaW5nIEtlcmJlcm9zIGlzIGVuYWJsZWQsIHNlZSAna2VyYmVyb3MnIGluIHRoZSBtYWluIGNvbmZpZyksXG4gICAgICAgICAgICAgICAgICBwbGFjZSAna2VyYmVyb3MnIGVsZW1lbnQgaW5zdGVhZCBvZiAncGFzc3dvcmQnIChhbmQgc2ltaWxhcikgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgVGhlIG5hbWUgcGFydCBvZiB0aGUgY2Fub25pY2FsIHByaW5jaXBhbCBuYW1lIG9mIHRoZSBpbml0aWF0b3IgbXVzdCBtYXRjaCB0aGUgdXNlciBuYW1lIGZvciBhdXRoZW50aWNhdGlvbiB0byBzdWNjZWVkLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gYWxzbyBwbGFjZSAncmVhbG0nIGVsZW1lbnQgaW5zaWRlICdrZXJiZXJvcycgZWxlbWVudCB0byBmdXJ0aGVyIHJlc3RyaWN0IGF1dGhlbnRpY2F0aW9uIHRvIG9ubHkgdGhvc2UgcmVxdWVzdHNcbiAgICAgICAgICAgICAgICAgIHdob3NlIGluaXRpYXRvcidzIHJlYWxtIG1hdGNoZXMgaXQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGtlcmJlcm9zIC8+XG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGtlcmJlcm9zPjxyZWFsbT5FWEFNUExFLkNPTTwvcmVhbG0+PC9rZXJiZXJvcz5cblxuICAgICAgICAgICAgICAgIEhvdyB0byBnZW5lcmF0ZSBkZWNlbnQgcGFzc3dvcmQ6XG4gICAgICAgICAgICAgICAgRXhlY3V0ZTogUEFTU1dPUkQ9JChiYXNlNjQgPCAvZGV2L3VyYW5kb20gfCBoZWFkIC1jOCk7IGVjaG8gXCIkUEFTU1dPUkRcIjsgZWNobyAtbiBcIiRQQVNTV09SRFwiIHwgc2hhMjU2c3VtIHwgdHIgLWQgJy0nXG4gICAgICAgICAgICAgICAgSW4gZmlyc3QgbGluZSB3aWxsIGJlIHBhc3N3b3JkIGFuZCBpbiBzZWNvbmQgLSBjb3JyZXNwb25kaW5nIFNIQTI1Ni5cblxuICAgICAgICAgICAgICAgIEhvdyB0byBnZW5lcmF0ZSBkb3VibGUgU0hBMTpcbiAgICAgICAgICAgICAgICBFeGVjdXRlOiBQQVNTV09SRD0kKGJhc2U2NCA8IC9kZXYvdXJhbmRvbSB8IGhlYWQgLWM4KTsgZWNobyBcIiRQQVNTV09SRFwiOyBlY2hvIC1uIFwiJFBBU1NXT1JEXCIgfCBzaGExc3VtIHwgdHIgLWQgJy0nIHwgeHhkIC1yIC1wIHwgc2hhMXN1bSB8IHRyIC1kICctJ1xuICAgICAgICAgICAgICAgIEluIGZpcnN0IGxpbmUgd2lsbCBiZSBwYXNzd29yZCBhbmQgaW4gc2Vjb25kIC0gY29ycmVzcG9uZGluZyBkb3VibGUgU0hBMS5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPHBhc3N3b3JkPjwvcGFzc3dvcmQ+XG5cbiAgICAgICAgICAgIDwhLS0gTGlzdCBvZiBuZXR3b3JrcyB3aXRoIG9wZW4gYWNjZXNzLlxuXG4gICAgICAgICAgICAgICAgVG8gb3BlbiBhY2Nlc3MgZnJvbSBldmVyeXdoZXJlLCBzcGVjaWZ5OlxuICAgICAgICAgICAgICAgICAgICA8aXA+OjovMDwvaXA+XG5cbiAgICAgICAgICAgICAgICBUbyBvcGVuIGFjY2VzcyBvbmx5IGZyb20gbG9jYWxob3N0LCBzcGVjaWZ5OlxuICAgICAgICAgICAgICAgICAgICA8aXA+OjoxPC9pcD5cbiAgICAgICAgICAgICAgICAgICAgPGlwPjEyNy4wLjAuMTwvaXA+XG5cbiAgICAgICAgICAgICAgICBFYWNoIGVsZW1lbnQgb2YgbGlzdCBoYXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybXM6XG4gICAgICAgICAgICAgICAgPGlwPiBJUC1hZGRyZXNzIG9yIG5ldHdvcmsgbWFzay4gRXhhbXBsZXM6IDIxMy4xODAuMjA0LjMgb3IgMTAuMC4wLjEvOCBvciAxMC4wLjAuMS8yNTUuMjU1LjI1NS4wXG4gICAgICAgICAgICAgICAgICAgIDJhMDI6NmI4OjozIG9yIDJhMDI6NmI4OjozLzY0IG9yIDJhMDI6NmI4OjozL2ZmZmY6ZmZmZjpmZmZmOmZmZmY6Oi5cbiAgICAgICAgICAgICAgICA8aG9zdD4gSG9zdG5hbWUuIEV4YW1wbGU6IHNlcnZlcjAxLmNsaWNraG91c2UuY29tLlxuICAgICAgICAgICAgICAgICAgICBUbyBjaGVjayBhY2Nlc3MsIEROUyBxdWVyeSBpcyBwZXJmb3JtZWQsIGFuZCBhbGwgcmVjZWl2ZWQgYWRkcmVzc2VzIGNvbXBhcmVkIHRvIHBlZXIgYWRkcmVzcy5cbiAgICAgICAgICAgICAgICA8aG9zdF9yZWdleHA+IFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgaG9zdCBuYW1lcy4gRXhhbXBsZSwgXnNlcnZlclxcZFxcZC1cXGRcXGQtXFxkXFwuY2xpY2tob3VzZVxcLmNvbSRcbiAgICAgICAgICAgICAgICAgICAgVG8gY2hlY2sgYWNjZXNzLCBETlMgUFRSIHF1ZXJ5IGlzIHBlcmZvcm1lZCBmb3IgcGVlciBhZGRyZXNzIGFuZCB0aGVuIHJlZ2V4cCBpcyBhcHBsaWVkLlxuICAgICAgICAgICAgICAgICAgICBUaGVuLCBmb3IgcmVzdWx0IG9mIFBUUiBxdWVyeSwgYW5vdGhlciBETlMgcXVlcnkgaXMgcGVyZm9ybWVkIGFuZCBhbGwgcmVjZWl2ZWQgYWRkcmVzc2VzIGNvbXBhcmVkIHRvIHBlZXIgYWRkcmVzcy5cbiAgICAgICAgICAgICAgICAgICAgU3Ryb25nbHkgcmVjb21tZW5kZWQgdGhhdCByZWdleHAgaXMgZW5kcyB3aXRoICRcbiAgICAgICAgICAgICAgICBBbGwgcmVzdWx0cyBvZiBETlMgcmVxdWVzdHMgYXJlIGNhY2hlZCB0aWxsIHNlcnZlciByZXN0YXJ0LlxuICAgICAgICAgICAgLS0+XG4gICAgICAgICAgICA8bmV0d29ya3M+XG4gICAgICAgICAgICAgICAgPGlwPjo6LzA8L2lwPlxuICAgICAgICAgICAgPC9uZXR3b3Jrcz5cblxuICAgICAgICAgICAgPCEtLSBTZXR0aW5ncyBwcm9maWxlIGZvciB1c2VyLiAtLT5cbiAgICAgICAgICAgIDxwcm9maWxlPmRlZmF1bHQ8L3Byb2ZpbGU+XG5cbiAgICAgICAgICAgIDwhLS0gUXVvdGEgZm9yIHVzZXIuIC0tPlxuICAgICAgICAgICAgPHF1b3RhPmRlZmF1bHQ8L3F1b3RhPlxuXG4gICAgICAgICAgICA8IS0tIFVzZXIgY2FuIGNyZWF0ZSBvdGhlciB1c2VycyBhbmQgZ3JhbnQgcmlnaHRzIHRvIHRoZW0uIC0tPlxuICAgICAgICAgICAgPCEtLSA8YWNjZXNzX21hbmFnZW1lbnQ+MTwvYWNjZXNzX21hbmFnZW1lbnQ+IC0tPlxuICAgICAgICA8L2RlZmF1bHQ+XG4gICAgPC91c2Vycz5cblxuICAgIDwhLS0gUXVvdGFzLiAtLT5cbiAgICA8cXVvdGFzPlxuICAgICAgICA8IS0tIE5hbWUgb2YgcXVvdGEuIC0tPlxuICAgICAgICA8ZGVmYXVsdD5cbiAgICAgICAgICAgIDwhLS0gTGltaXRzIGZvciB0aW1lIGludGVydmFsLiBZb3UgY291bGQgc3BlY2lmeSBtYW55IGludGVydmFscyB3aXRoIGRpZmZlcmVudCBsaW1pdHMuIC0tPlxuICAgICAgICAgICAgPGludGVydmFsPlxuICAgICAgICAgICAgICAgIDwhLS0gTGVuZ3RoIG9mIGludGVydmFsLiAtLT5cbiAgICAgICAgICAgICAgICA8ZHVyYXRpb24+MzYwMDwvZHVyYXRpb24+XG5cbiAgICAgICAgICAgICAgICA8IS0tIE5vIGxpbWl0cy4gSnVzdCBjYWxjdWxhdGUgcmVzb3VyY2UgdXNhZ2UgZm9yIHRpbWUgaW50ZXJ2YWwuIC0tPlxuICAgICAgICAgICAgICAgIDxxdWVyaWVzPjA8L3F1ZXJpZXM+XG4gICAgICAgICAgICAgICAgPGVycm9ycz4wPC9lcnJvcnM+XG4gICAgICAgICAgICAgICAgPHJlc3VsdF9yb3dzPjA8L3Jlc3VsdF9yb3dzPlxuICAgICAgICAgICAgICAgIDxyZWFkX3Jvd3M+MDwvcmVhZF9yb3dzPlxuICAgICAgICAgICAgICAgIDxleGVjdXRpb25fdGltZT4wPC9leGVjdXRpb25fdGltZT5cbiAgICAgICAgICAgIDwvaW50ZXJ2YWw+XG4gICAgICAgIDwvZGVmYXVsdD5cbiAgICA8L3F1b3Rhcz5cbjwvY2xpY2tob3VzZT5cbiIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vY2xpY2tob3VzZS9jb25maWcueG1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL2NsaWNraG91c2Utc2VydmVyL2NvbmZpZy54bWwKICAgICAgICBjb250ZW50OiAiPD94bWwgdmVyc2lvbj1cIjEuMFwiPz5cbjxjbGlja2hvdXNlPlxuICA8bWF4X2Nvbm5lY3Rpb25zPjQwOTY8L21heF9jb25uZWN0aW9ucz5cbiAgPGtlZXBfYWxpdmVfdGltZW91dD4zPC9rZWVwX2FsaXZlX3RpbWVvdXQ+XG4gIDxtYXhfY29uY3VycmVudF9xdWVyaWVzPjEwMDwvbWF4X2NvbmN1cnJlbnRfcXVlcmllcz5cbiAgPG1hcmtfY2FjaGVfc2l6ZT41MzY4NzA5MTIwPC9tYXJrX2NhY2hlX3NpemU+XG4gIDxtbWFwX2NhY2hlX3NpemU+MTAwMDwvbW1hcF9jYWNoZV9zaXplPlxuICA8Y29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9zaXplPjEzNDIxNzcyODwvY29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9zaXplPlxuICA8Y29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9lbGVtZW50c19zaXplPjEwMDAwPC9jb21waWxlZF9leHByZXNzaW9uX2NhY2hlX2VsZW1lbnRzX3NpemU+XG4gIDxjdXN0b21fc2V0dGluZ3NfcHJlZml4ZXM+PC9jdXN0b21fc2V0dGluZ3NfcHJlZml4ZXM+XG4gIDxkaWN0aW9uYXJpZXNfY29uZmlnPipfZGljdGlvbmFyeS54bWw8L2RpY3Rpb25hcmllc19jb25maWc+XG4gIDx1c2VyX2RlZmluZWRfZXhlY3V0YWJsZV9mdW5jdGlvbnNfY29uZmlnPipmdW5jdGlvbi54bWw8L3VzZXJfZGVmaW5lZF9leGVjdXRhYmxlX2Z1bmN0aW9uc19jb25maWc+XG4gIDx1c2VyX3NjcmlwdHNfcGF0aD4vdmFyL2xpYi9jbGlja2hvdXNlL3VzZXJfc2NyaXB0cy88L3VzZXJfc2NyaXB0c19wYXRoPlxuICA8aHR0cF9wb3J0PjgxMjM8L2h0dHBfcG9ydD5cbiAgPHRjcF9wb3J0PjkwMDA8L3RjcF9wb3J0PlxuICA8bXlzcWxfcG9ydD45MDA0PC9teXNxbF9wb3J0PlxuICA8cG9zdGdyZXNxbF9wb3J0PjkwMDU8L3Bvc3RncmVzcWxfcG9ydD5cbiAgPGludGVyc2VydmVyX2h0dHBfcG9ydD45MDA5PC9pbnRlcnNlcnZlcl9odHRwX3BvcnQ+XG4gIDxsb2dnZXI+XG4gICAgPGxldmVsPmluZm9ybWF0aW9uPC9sZXZlbD5cbiAgICA8Zm9ybWF0dGluZz5cbiAgICAgIDx0eXBlPmpzb248L3R5cGU+XG4gICAgPC9mb3JtYXR0aW5nPlxuICA8L2xvZ2dlcj5cbiAgPG1hY3Jvcz5cbiAgICA8c2hhcmQ+MDE8L3NoYXJkPlxuICAgIDxyZXBsaWNhPmV4YW1wbGUwMS0wMS0xPC9yZXBsaWNhPlxuICA8L21hY3Jvcz5cbiAgPHByb21ldGhldXM+XG4gICAgPGVuZHBvaW50Pi9tZXRyaWNzPC9lbmRwb2ludD5cbiAgICA8cG9ydD45MzYzPC9wb3J0PlxuICAgIDxtZXRyaWNzPnRydWU8L21ldHJpY3M+XG4gICAgPGV2ZW50cz50cnVlPC9ldmVudHM+XG4gICAgPGFzeW5jaHJvbm91c19tZXRyaWNzPnRydWU8L2FzeW5jaHJvbm91c19tZXRyaWNzPlxuICAgIDxzdGF0dXNfaW5mbz50cnVlPC9zdGF0dXNfaW5mbz5cbiAgPC9wcm9tZXRoZXVzPlxuICA8b3BlbnRlbGVtZXRyeV9zcGFuX2xvZz5cbiAgICA8ZW5naW5lPmVuZ2luZSBNZXJnZVRyZWVcbiAgICAgICAgICAgIHBhcnRpdGlvbiBieSB0b1lZWVlNTShmaW5pc2hfZGF0ZSlcbiAgICAgICAgICAgIG9yZGVyIGJ5IChmaW5pc2hfZGF0ZSwgZmluaXNoX3RpbWVfdXMsIHRyYWNlX2lkKTwvZW5naW5lPlxuICA8L29wZW50ZWxlbWV0cnlfc3Bhbl9sb2c+XG4gIDxxdWVyeV9tYXNraW5nX3J1bGVzPlxuICAgIDxydWxlPlxuICAgICAgPG5hbWU+aGlkZSBlbmNyeXB0L2RlY3J5cHQgYXJndW1lbnRzPC9uYW1lPlxuICAgICAgPHJlZ2V4cD4oKD86YWVzXyk/KD86ZW5jcnlwdHxkZWNyeXB0KSg/Ol9teXNxbCk/KVxccypcXChcXHMqKD86Jyg/OlxcXFwnfC4pKyd8Lio/KVxccypcXCk8L3JlZ2V4cD5cbiAgICAgIDxyZXBsYWNlPlxcMSg/Pz8pPC9yZXBsYWNlPlxuICAgIDwvcnVsZT5cbiAgPC9xdWVyeV9tYXNraW5nX3J1bGVzPlxuICA8c2VuZF9jcmFzaF9yZXBvcnRzPlxuICAgIDxlbmFibGVkPmZhbHNlPC9lbmFibGVkPlxuICAgIDxhbm9ueW1pemU+ZmFsc2U8L2Fub255bWl6ZT5cbiAgICA8ZW5kcG9pbnQ+aHR0cHM6Ly82ZjMzMDM0Y2ZlNjg0ZGQ3YTNhYjk4NzVlNTdiMWM4ZEBvMzg4ODcwLmluZ2VzdC5zZW50cnkuaW8vNTIyNjI3NzwvZW5kcG9pbnQ+XG4gIDwvc2VuZF9jcmFzaF9yZXBvcnRzPlxuICA8bWVyZ2VfdHJlZV9tZXRhZGF0YV9jYWNoZT5cbiAgICA8bHJ1X2NhY2hlX3NpemU+MjY4NDM1NDU2PC9scnVfY2FjaGVfc2l6ZT5cbiAgICA8Y29udGludWVfaWZfY29ycnVwdGVkPnRydWU8L2NvbnRpbnVlX2lmX2NvcnJ1cHRlZD5cbiAgPC9tZXJnZV90cmVlX21ldGFkYXRhX2NhY2hlPlxuICA8dXNlcl9kaXJlY3Rvcmllcz5cbiAgICA8dXNlcnNfeG1sPlxuICAgICAgICA8IS0tIFBhdGggdG8gY29uZmlndXJhdGlvbiBmaWxlIHdpdGggcHJlZGVmaW5lZCB1c2Vycy4gLS0+XG4gICAgICAgIDxwYXRoPnVzZXJzLnhtbDwvcGF0aD5cbiAgICA8L3VzZXJzX3htbD5cbiAgICA8bG9jYWxfZGlyZWN0b3J5PlxuICAgICAgICA8IS0tIFBhdGggdG8gZm9sZGVyIHdoZXJlIHVzZXJzIGNyZWF0ZWQgYnkgU1FMIGNvbW1hbmRzIGFyZSBzdG9yZWQuIC0tPlxuICAgICAgICA8cGF0aD4vdmFyL2xpYi9jbGlja2hvdXNlL2FjY2Vzcy88L3BhdGg+XG4gICAgPC9sb2NhbF9kaXJlY3Rvcnk+XG4gIDwvdXNlcl9kaXJlY3Rvcmllcz5cbiAgPGRlZmF1bHRfcHJvZmlsZT5kZWZhdWx0PC9kZWZhdWx0X3Byb2ZpbGU+XG4gICAgPGRpc3RyaWJ1dGVkX2RkbD5cbiAgICAgICAgPCEtLSBQYXRoIGluIFpvb0tlZXBlciB0byBxdWV1ZSB3aXRoIERETCBxdWVyaWVzIC0tPlxuICAgICAgICA8cGF0aD4vY2xpY2tob3VzZS90YXNrX3F1ZXVlL2RkbDwvcGF0aD5cbiAgICA8L2Rpc3RyaWJ1dGVkX2RkbD5cbjwvY2xpY2tob3VzZT5cbiIKICBzaWdub3o6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3o6djAuOTcuMScKICAgIGRlcGVuZHNfb246CiAgICAgIGNsaWNraG91c2U6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgICAgc2NoZW1hLW1pZ3JhdG9yLXN5bmM6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHkKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGNvbW1hbmQ6CiAgICAgIC0gJy0tY29uZmlnPS9yb290L2NvbmZpZy9wcm9tZXRoZXVzLnltbCcKICAgIHZvbHVtZXM6CiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL3Byb21ldGhldXMueW1sCiAgICAgICAgdGFyZ2V0OiAvcm9vdC9jb25maWcvcHJvbWV0aGV1cy55bWwKICAgICAgICBjb250ZW50OiAiIyBteSBnbG9iYWwgY29uZmlnXG5nbG9iYWw6XG4gIHNjcmFwZV9pbnRlcnZhbDogICAgIDVzICMgU2V0IHRoZSBzY3JhcGUgaW50ZXJ2YWwgdG8gZXZlcnkgMTUgc2Vjb25kcy4gRGVmYXVsdCBpcyBldmVyeSAxIG1pbnV0ZS5cbiAgZXZhbHVhdGlvbl9pbnRlcnZhbDogMTVzICMgRXZhbHVhdGUgcnVsZXMgZXZlcnkgMTUgc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgZXZlcnkgMSBtaW51dGUuXG4gICMgc2NyYXBlX3RpbWVvdXQgaXMgc2V0IHRvIHRoZSBnbG9iYWwgZGVmYXVsdCAoMTBzKS5cblxuIyBBbGVydG1hbmFnZXIgY29uZmlndXJhdGlvblxuYWxlcnRpbmc6XG4gIGFsZXJ0bWFuYWdlcnM6XG4gIC0gc3RhdGljX2NvbmZpZ3M6XG4gICAgLSB0YXJnZXRzOlxuICAgICAgLSBhbGVydG1hbmFnZXI6OTA5M1xuXG4jIExvYWQgcnVsZXMgb25jZSBhbmQgcGVyaW9kaWNhbGx5IGV2YWx1YXRlIHRoZW0gYWNjb3JkaW5nIHRvIHRoZSBnbG9iYWwgJ2V2YWx1YXRpb25faW50ZXJ2YWwnLlxucnVsZV9maWxlczogW11cbiAgIyAtIFwiZmlyc3RfcnVsZXMueW1sXCJcbiAgIyAtIFwic2Vjb25kX3J1bGVzLnltbFwiXG4gICMgLSAnYWxlcnRzLnltbCdcblxuIyBBIHNjcmFwZSBjb25maWd1cmF0aW9uIGNvbnRhaW5pbmcgZXhhY3RseSBvbmUgZW5kcG9pbnQgdG8gc2NyYXBlOlxuIyBIZXJlIGl0J3MgUHJvbWV0aGV1cyBpdHNlbGYuXG5zY3JhcGVfY29uZmlnczogW11cblxucmVtb3RlX3JlYWQ6XG4gIC0gdXJsOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X21ldHJpY3NcbiIKICAgICAgLQogICAgICAgIHR5cGU6IHZvbHVtZQogICAgICAgIHNvdXJjZTogc3FsaXRlCiAgICAgICAgdGFyZ2V0OiAvdmFyL2xpYi9zaWdub3ovCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fU0lHTk9aXzgwODAKICAgICAgLSAnU0lHTk9aX0pXVF9TRUNSRVQ9JHtTRVJWSUNFX1JFQUxCQVNFNjRfSldUU0VDUkVUfScKICAgICAgLSAnU0lHTk9aX1RFTEVNRVRSWVNUT1JFX0NMSUNLSE9VU0VfRFNOPXRjcDovL2NsaWNraG91c2U6OTAwMCcKICAgICAgLSBTSUdOT1pfU1FMU1RPUkVfU1FMSVRFX1BBVEg9L3Zhci9saWIvc2lnbm96L3NpZ25vei5kYgogICAgICAtIERBU0hCT0FSRFNfUEFUSD0vcm9vdC9jb25maWcvZGFzaGJvYXJkcwogICAgICAtIFNUT1JBR0U9Y2xpY2tob3VzZQogICAgICAtIEdPREVCVUc9bmV0ZG5zPWdvCiAgICAgIC0gREVQTE9ZTUVOVF9UWVBFPWRvY2tlci1zdGFuZGFsb25lLWFtZAogICAgICAtICdTSUdOT1pfU1RBVFNSRVBPUlRFUl9FTkFCTEVEPSR7U0lHTk9aX1NUQVRTUkVQT1JURVJfRU5BQkxFRDotdHJ1ZX0nCiAgICAgIC0gJ1NJR05PWl9FTUFJTElOR19FTkFCTEVEPSR7U0lHTk9aX0VNQUlMSU5HX0VOQUJMRUQ6LWZhbHNlfScKICAgICAgLSAnU0lHTk9aX0VNQUlMSU5HX1NNVFBfQUREUkVTUz0ke1NJR05PWl9FTUFJTElOR19TTVRQX0FERFJFU1N9JwogICAgICAtICdTSUdOT1pfRU1BSUxJTkdfU01UUF9GUk9NPSR7U0lHTk9aX0VNQUlMSU5HX1NNVFBfRlJPTX0nCiAgICAgIC0gJ1NJR05PWl9FTUFJTElOR19TTVRQX0FVVEhfVVNFUk5BTUU9JHtTSUdOT1pfRU1BSUxJTkdfU01UUF9BVVRIX1VTRVJOQU1FfScKICAgICAgLSAnU0lHTk9aX0VNQUlMSU5HX1NNVFBfQVVUSF9QQVNTV09SRD0ke1NJR05PWl9FTUFJTElOR19TTVRQX0FVVEhfUEFTU1dPUkR9JwogICAgICAtIFNJR05PWl9BTEVSVE1BTkFHRVJfUFJPVklERVI9c2lnbm96CiAgICAgIC0gJ1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19BVVRIX19QQVNTV09SRD0ke1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19BVVRIX19QQVNTV09SRH0nCiAgICAgIC0gJ1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19BVVRIX19VU0VSTkFNRT0ke1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19BVVRIX19VU0VSTkFNRX0nCiAgICAgIC0gJ1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19GUk9NPSR7U0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0ZST019JwogICAgICAtICdTSUdOT1pfQUxFUlRNQU5BR0VSX1NJR05PWl9HTE9CQUxfU01UUF9fU01BUlRIT1NUPSR7U0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX1NNQVJUSE9TVH0nCiAgICAgIC0gRE9UX01FVFJJQ1NfRU5BQkVMRD10cnVlCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gd2dldAogICAgICAgIC0gJy0tc3BpZGVyJwogICAgICAgIC0gJy1xJwogICAgICAgIC0gJ2xvY2FsaG9zdDo4MDgwL2FwaS92MS9oZWFsdGgnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogIG90ZWwtY29sbGVjdG9yOgogICAgaW1hZ2U6ICdzaWdub3ovc2lnbm96LW90ZWwtY29sbGVjdG9yOnYwLjEyOS43JwogICAgZGVwZW5kc19vbjoKICAgICAgY2xpY2tob3VzZToKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgICBzY2hlbWEtbWlncmF0b3Itc3luYzoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseQogICAgICBzaWdub3o6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGNvbW1hbmQ6CiAgICAgIC0gJy0tY29uZmlnPS9ldGMvb3RlbC1jb2xsZWN0b3ItY29uZmlnLnlhbWwnCiAgICAgIC0gJy0tbWFuYWdlci1jb25maWc9L2V0Yy9tYW5hZ2VyLWNvbmZpZy55YW1sJwogICAgICAtICctLWNvcHktcGF0aD0vdmFyL3RtcC9jb2xsZWN0b3ItY29uZmlnLnlhbWwnCiAgICAgIC0gJy0tZmVhdHVyZS1nYXRlcz0tcGtnLnRyYW5zbGF0b3IucHJvbWV0aGV1cy5Ob3JtYWxpemVOYW1lJwogICAgdm9sdW1lczoKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vb3RlbC1jb2xsZWN0b3ItY29uZmlnLnlhbWwKICAgICAgICB0YXJnZXQ6IC9ldGMvb3RlbC1jb2xsZWN0b3ItY29uZmlnLnlhbWwKICAgICAgICBjb250ZW50OiAicmVjZWl2ZXJzOlxuICBvdGxwOlxuICAgIHByb3RvY29sczpcbiAgICAgIGdycGM6XG4gICAgICAgIGVuZHBvaW50OiAwLjAuMC4wOjQzMTdcbiAgICAgIGh0dHA6XG4gICAgICAgIGVuZHBvaW50OiAwLjAuMC4wOjQzMThcbiAgcHJvbWV0aGV1czpcbiAgICBjb25maWc6XG4gICAgICBnbG9iYWw6XG4gICAgICAgIHNjcmFwZV9pbnRlcnZhbDogNjBzXG4gICAgICBzY3JhcGVfY29uZmlnczpcbiAgICAgICAgLSBqb2JfbmFtZTogb3RlbC1jb2xsZWN0b3JcbiAgICAgICAgICBzdGF0aWNfY29uZmlnczpcbiAgICAgICAgICAtIHRhcmdldHM6XG4gICAgICAgICAgICAgIC0gbG9jYWxob3N0Ojg4ODhcbiAgICAgICAgICAgIGxhYmVsczpcbiAgICAgICAgICAgICAgam9iX25hbWU6IG90ZWwtY29sbGVjdG9yXG5wcm9jZXNzb3JzOlxuICBiYXRjaDpcbiAgICBzZW5kX2JhdGNoX3NpemU6IDEwMDAwXG4gICAgc2VuZF9iYXRjaF9tYXhfc2l6ZTogMTEwMDBcbiAgICB0aW1lb3V0OiAxMHNcbiAgcmVzb3VyY2VkZXRlY3Rpb246XG4gICAgIyBVc2luZyBPVEVMX1JFU09VUkNFX0FUVFJJQlVURVMgZW52dmFyLCBlbnYgZGV0ZWN0b3IgYWRkcyBjdXN0b20gbGFiZWxzLlxuICAgIGRldGVjdG9yczogW2Vudiwgc3lzdGVtXVxuICAgIHRpbWVvdXQ6IDJzXG4gIHNpZ25venNwYW5tZXRyaWNzL2RlbHRhOlxuICAgIG1ldHJpY3NfZXhwb3J0ZXI6IHNpZ25vemNsaWNraG91c2VtZXRyaWNzXG4gICAgbWV0cmljc19mbHVzaF9pbnRlcnZhbDogNjBzXG4gICAgbGF0ZW5jeV9oaXN0b2dyYW1fYnVja2V0czogWzEwMHVzLCAxbXMsIDJtcywgNm1zLCAxMG1zLCA1MG1zLCAxMDBtcywgMjUwbXMsIDUwMG1zLCAxMDAwbXMsIDE0MDBtcywgMjAwMG1zLCA1cywgMTBzLCAyMHMsIDQwcywgNjBzIF1cbiAgICBkaW1lbnNpb25zX2NhY2hlX3NpemU6IDEwMDAwMFxuICAgIGFnZ3JlZ2F0aW9uX3RlbXBvcmFsaXR5OiBBR0dSRUdBVElPTl9URU1QT1JBTElUWV9ERUxUQVxuICAgIGVuYWJsZV9leHBfaGlzdG9ncmFtOiB0cnVlXG4gICAgZGltZW5zaW9uczpcbiAgICAgIC0gbmFtZTogc2VydmljZS5uYW1lc3BhY2VcbiAgICAgICAgZGVmYXVsdDogZGVmYXVsdFxuICAgICAgLSBuYW1lOiBkZXBsb3ltZW50LmVudmlyb25tZW50XG4gICAgICAgIGRlZmF1bHQ6IGRlZmF1bHRcbiAgICAgICMgVGhpcyBpcyBhZGRlZCB0byBlbnN1cmUgdGhlIHVuaXF1ZW5lc3Mgb2YgdGhlIHRpbWVzZXJpZXNcbiAgICAgICMgT3RoZXJ3aXNlLCBpZGVudGljYWwgdGltZXNlcmllcyBwcm9kdWNlZCBieSBtdWx0aXBsZSByZXBsaWNhcyBvZlxuICAgICAgIyBjb2xsZWN0b3JzIHJlc3VsdCBpbiBpbmNvcnJlY3QgQVBNIG1ldHJpY3NcbiAgICAgIC0gbmFtZTogc2lnbm96LmNvbGxlY3Rvci5pZFxuICAgICAgLSBuYW1lOiBzZXJ2aWNlLnZlcnNpb25cbiAgICAgIC0gbmFtZTogYnJvd3Nlci5wbGF0Zm9ybVxuICAgICAgLSBuYW1lOiBicm93c2VyLm1vYmlsZVxuICAgICAgLSBuYW1lOiBrOHMuY2x1c3Rlci5uYW1lXG4gICAgICAtIG5hbWU6IGs4cy5ub2RlLm5hbWVcbiAgICAgIC0gbmFtZTogazhzLm5hbWVzcGFjZS5uYW1lXG4gICAgICAtIG5hbWU6IGhvc3QubmFtZVxuICAgICAgLSBuYW1lOiBob3N0LnR5cGVcbiAgICAgIC0gbmFtZTogY29udGFpbmVyLm5hbWVcbmV4dGVuc2lvbnM6XG4gIGhlYWx0aF9jaGVjazpcbiAgICBlbmRwb2ludDogMC4wLjAuMDoxMzEzM1xuICBwcHJvZjpcbiAgICBlbmRwb2ludDogMC4wLjAuMDoxNzc3XG5leHBvcnRlcnM6XG4gIGNsaWNraG91c2V0cmFjZXM6XG4gICAgZGF0YXNvdXJjZTogdGNwOi8vY2xpY2tob3VzZTo5MDAwL3NpZ25vel90cmFjZXNcbiAgICBsb3dfY2FyZGluYWxfZXhjZXB0aW9uX2dyb3VwaW5nOiAke2VudjpMT1dfQ0FSRElOQUxfRVhDRVBUSU9OX0dST1VQSU5HfVxuICAgIHVzZV9uZXdfc2NoZW1hOiB0cnVlXG4gIHNpZ25vemNsaWNraG91c2VtZXRyaWNzOlxuICAgIGRzbjogdGNwOi8vY2xpY2tob3VzZTo5MDAwL3NpZ25vel9tZXRyaWNzXG4gIGNsaWNraG91c2Vsb2dzZXhwb3J0ZXI6XG4gICAgZHNuOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X2xvZ3NcbiAgICB0aW1lb3V0OiAxMHNcbiAgICB1c2VfbmV3X3NjaGVtYTogdHJ1ZVxuc2VydmljZTpcbiAgdGVsZW1ldHJ5OlxuICAgIGxvZ3M6XG4gICAgICBlbmNvZGluZzoganNvblxuICBleHRlbnNpb25zOlxuICAgIC0gaGVhbHRoX2NoZWNrXG4gICAgLSBwcHJvZlxuICBwaXBlbGluZXM6XG4gICAgdHJhY2VzOlxuICAgICAgcmVjZWl2ZXJzOiBbb3RscF1cbiAgICAgIHByb2Nlc3NvcnM6IFtzaWdub3pzcGFubWV0cmljcy9kZWx0YSwgYmF0Y2hdXG4gICAgICBleHBvcnRlcnM6IFtjbGlja2hvdXNldHJhY2VzXVxuICAgIG1ldHJpY3M6XG4gICAgICByZWNlaXZlcnM6IFtvdGxwXVxuICAgICAgcHJvY2Vzc29yczogW2JhdGNoXVxuICAgICAgZXhwb3J0ZXJzOiBbc2lnbm96Y2xpY2tob3VzZW1ldHJpY3NdXG4gICAgbWV0cmljcy9wcm9tZXRoZXVzOlxuICAgICAgcmVjZWl2ZXJzOiBbcHJvbWV0aGV1c11cbiAgICAgIHByb2Nlc3NvcnM6IFtiYXRjaF1cbiAgICAgIGV4cG9ydGVyczogW3NpZ25vemNsaWNraG91c2VtZXRyaWNzXVxuICAgIGxvZ3M6XG4gICAgICByZWNlaXZlcnM6IFtvdGxwXVxuICAgICAgcHJvY2Vzc29yczogW2JhdGNoXVxuICAgICAgZXhwb3J0ZXJzOiBbY2xpY2tob3VzZWxvZ3NleHBvcnRlcl0iCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL290ZWwtY29sbGVjdG9yLW9wYW1wLWNvbmZpZy55YW1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL21hbmFnZXItY29uZmlnLnlhbWwKICAgICAgICBjb250ZW50OiAic2VydmVyX2VuZHBvaW50OiB3czovL3NpZ25vejo0MzIwL3YxL29wYW1wXG4iCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fT1RFTENPTExFQ1RPUkhUVFBfNDMxOAogICAgICAtICdPVEVMX1JFU09VUkNFX0FUVFJJQlVURVM9aG9zdC5uYW1lPXNpZ25vei1ob3N0LG9zLnR5cGU9bGludXgnCiAgICAgIC0gTE9XX0NBUkRJTkFMX0VYQ0VQVElPTl9HUk9VUElORz1mYWxzZQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6ICdiYXNoIC1jICJleGVjIDY8PiAvZGV2L3RjcC9sb2NhbGhvc3QvMTMxMzMiJwogICAgICBpbnRlcnZhbDogMzBzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDMKICBzY2hlbWEtbWlncmF0b3Itc3luYzoKICAgIGltYWdlOiAnc2lnbm96L3NpZ25vei1zY2hlbWEtbWlncmF0b3I6djAuMTI5LjcnCiAgICBjb21tYW5kOgogICAgICAtIHN5bmMKICAgICAgLSAnLS1kc249dGNwOi8vY2xpY2tob3VzZTo5MDAwJwogICAgICAtICctLXVwPScKICAgIGRlcGVuZHNfb246CiAgICAgIGNsaWNraG91c2U6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHJlc3RhcnQ6IG9uLWZhaWx1cmUKICAgIGV4Y2x1ZGVfZnJvbV9oYzogdHJ1ZQogICAgbG9nZ2luZzoKICAgICAgb3B0aW9uczoKICAgICAgICBtYXgtc2l6ZTogNTBtCiAgICAgICAgbWF4LWZpbGU6ICczJwogIHNjaGVtYS1taWdyYXRvci1hc3luYzoKICAgIGltYWdlOiAnc2lnbm96L3NpZ25vei1zY2hlbWEtbWlncmF0b3I6djAuMTI5LjcnCiAgICBkZXBlbmRzX29uOgogICAgICBjbGlja2hvdXNlOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICAgIHNjaGVtYS1taWdyYXRvci1zeW5jOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5CiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGNvbW1hbmQ6CiAgICAgIC0gYXN5bmMKICAgICAgLSAnLS1kc249dGNwOi8vY2xpY2tob3VzZTo5MDAwJwogICAgICAtICctLXVwPScK", + "compose": "c2VydmljZXM6CiAgaW5pdC1jbGlja2hvdXNlOgogICAgaW1hZ2U6ICdjbGlja2hvdXNlL2NsaWNraG91c2Utc2VydmVyOjI1LjUuNi1hbHBpbmUnCiAgICBjb21tYW5kOgogICAgICAtIGJhc2gKICAgICAgLSAnLWMnCiAgICAgIC0gInZlcnNpb249XCJ2MC4wLjFcIlxubm9kZV9vcz0kJCh1bmFtZSAtcyB8IHRyICdbOnVwcGVyOl0nICdbOmxvd2VyOl0nKVxubm9kZV9hcmNoPSQkKHVuYW1lIC1tIHwgc2VkIHMvYWFyY2g2NC9hcm02NC8gfCBzZWQgcy94ODZfNjQvYW1kNjQvKVxuZWNobyBcIkZldGNoaW5nIGhpc3RvZ3JhbS1iaW5hcnkgZm9yICQke25vZGVfb3N9LyQke25vZGVfYXJjaH1cIlxuY2QgL3RtcFxud2dldCAtTyBoaXN0b2dyYW0tcXVhbnRpbGUudGFyLmd6IFwiaHR0cHM6Ly9naXRodWIuY29tL1NpZ05vei9zaWdub3ovcmVsZWFzZXMvZG93bmxvYWQvaGlzdG9ncmFtLXF1YW50aWxlJTJGJCR7dmVyc2lvbn0vaGlzdG9ncmFtLXF1YW50aWxlXyQke25vZGVfb3N9XyQke25vZGVfYXJjaH0udGFyLmd6XCJcbnRhciAteHZ6ZiBoaXN0b2dyYW0tcXVhbnRpbGUudGFyLmd6XG5ta2RpciAtcCAvdmFyL2xpYi9jbGlja2hvdXNlL3VzZXJfc2NyaXB0cy9oaXN0b2dyYW1RdWFudGlsZVxubXYgaGlzdG9ncmFtLXF1YW50aWxlIC92YXIvbGliL2NsaWNraG91c2UvdXNlcl9zY3JpcHRzL2hpc3RvZ3JhbVF1YW50aWxlXG4iCiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICB6b29rZWVwZXI6CiAgICBpbWFnZTogJ3NpZ25vei96b29rZWVwZXI6My45LjMnCiAgICB1c2VyOiByb290CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ2N1cmwgLXMgLW0gMiBodHRwOi8vbG9jYWxob3N0OjgwODAvY29tbWFuZHMvcnVvayB8IGdyZXAgZXJyb3IgfCBncmVwIG51bGwnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogICAgbG9nZ2luZzoKICAgICAgb3B0aW9uczoKICAgICAgICBtYXgtc2l6ZTogNTBtCiAgICAgICAgbWF4LWZpbGU6ICczJwogICAgdm9sdW1lczoKICAgICAgLSAnem9va2VlcGVyOi9iaXRuYW1pL3pvb2tlZXBlcicKICAgIGVudmlyb25tZW50OgogICAgICAtICdBTExPV19BTk9OWU1PVVNfTE9HSU49JHtaT09fQUxMT1dfQU5PTllNT1VTX0xPR0lOOi15ZXN9JwogICAgICAtICdaT09fQVVUT1BVUkdFX0lOVEVSVkFMPSR7Wk9PX0FVVE9QVVJHRV9JTlRFUlZBTDotMX0nCiAgICAgIC0gJ1pPT19FTkFCTEVfUFJPTUVUSEVVU19NRVRSSUNTPSR7Wk9PX0VOQUJMRV9QUk9NRVRIRVVTX01FVFJJQ1M6LXllc30nCiAgICAgIC0gJ1pPT19QUk9NRVRIRVVTX01FVFJJQ1NfUE9SVF9OVU1CRVI9JHtaT09fUFJPTUVUSEVVU19NRVRSSUNTX1BPUlRfTlVNQkVSOi05MTQxfScKICBjbGlja2hvdXNlOgogICAgaW1hZ2U6ICdjbGlja2hvdXNlL2NsaWNraG91c2Utc2VydmVyOjI1LjUuNi1hbHBpbmUnCiAgICB0dHk6IHRydWUKICAgIGRlcGVuZHNfb246CiAgICAgIGluaXQtY2xpY2tob3VzZToKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseQogICAgICB6b29rZWVwZXI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnLXEnCiAgICAgICAgLSAnMC4wLjAuMDo4MTIzL3BpbmcnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogICAgdWxpbWl0czoKICAgICAgbnByb2M6IDY1NTM1CiAgICAgIG5vZmlsZToKICAgICAgICBzb2Z0OiAyNjIxNDQKICAgICAgICBoYXJkOiAyNjIxNDQKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGVudmlyb25tZW50OgogICAgICAtIENMSUNLSE9VU0VfU0tJUF9VU0VSX1NFVFVQPTEKICAgIHZvbHVtZXM6CiAgICAgIC0KICAgICAgICB0eXBlOiB2b2x1bWUKICAgICAgICBzb3VyY2U6IGNsaWNraG91c2UKICAgICAgICB0YXJnZXQ6IC92YXIvbGliL2NsaWNraG91c2UvCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL2NsaWNraG91c2UvY3VzdG9tLWZ1bmN0aW9uLnhtbAogICAgICAgIHRhcmdldDogL2V0Yy9jbGlja2hvdXNlLXNlcnZlci9jdXN0b20tZnVuY3Rpb24ueG1sCiAgICAgICAgY29udGVudDogIjxmdW5jdGlvbnM+XG4gICAgPGZ1bmN0aW9uPlxuICAgICAgICA8dHlwZT5leGVjdXRhYmxlPC90eXBlPlxuICAgICAgICA8bmFtZT5oaXN0b2dyYW1RdWFudGlsZTwvbmFtZT5cbiAgICAgICAgPHJldHVybl90eXBlPkZsb2F0NjQ8L3JldHVybl90eXBlPlxuICAgICAgICA8YXJndW1lbnQ+XG4gICAgICAgICAgICA8dHlwZT5BcnJheShGbG9hdDY0KTwvdHlwZT5cbiAgICAgICAgICAgIDxuYW1lPmJ1Y2tldHM8L25hbWU+XG4gICAgICAgIDwvYXJndW1lbnQ+XG4gICAgICAgIDxhcmd1bWVudD5cbiAgICAgICAgICAgIDx0eXBlPkFycmF5KEZsb2F0NjQpPC90eXBlPlxuICAgICAgICAgICAgPG5hbWU+Y291bnRzPC9uYW1lPlxuICAgICAgICA8L2FyZ3VtZW50PlxuICAgICAgICA8YXJndW1lbnQ+XG4gICAgICAgICAgICA8dHlwZT5GbG9hdDY0PC90eXBlPlxuICAgICAgICAgICAgPG5hbWU+cXVhbnRpbGU8L25hbWU+XG4gICAgICAgIDwvYXJndW1lbnQ+XG4gICAgICAgIDxmb3JtYXQ+Q1NWPC9mb3JtYXQ+XG4gICAgICAgIDxjb21tYW5kPi4vaGlzdG9ncmFtUXVhbnRpbGU8L2NvbW1hbmQ+XG4gICAgPC9mdW5jdGlvbj5cbjwvZnVuY3Rpb25zPlxuIgogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9jbGlja2hvdXNlL2NsdXN0ZXIueG1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL2NsaWNraG91c2Utc2VydmVyL2NvbmZpZy5kL2NsdXN0ZXIueG1sCiAgICAgICAgY29udGVudDogIjw/eG1sIHZlcnNpb249XCIxLjBcIj8+XG48Y2xpY2tob3VzZT5cbiAgICA8IS0tIFpvb0tlZXBlciBpcyB1c2VkIHRvIHN0b3JlIG1ldGFkYXRhIGFib3V0IHJlcGxpY2FzLCB3aGVuIHVzaW5nIFJlcGxpY2F0ZWQgdGFibGVzLlxuICAgICAgICBPcHRpb25hbC4gSWYgeW91IGRvbid0IHVzZSByZXBsaWNhdGVkIHRhYmxlcywgeW91IGNvdWxkIG9taXQgdGhhdC5cblxuICAgICAgICBTZWUgaHR0cHM6Ly9jbGlja2hvdXNlLmNvbS9kb2NzL2VuL2VuZ2luZXMvdGFibGUtZW5naW5lcy9tZXJnZXRyZWUtZmFtaWx5L3JlcGxpY2F0aW9uL1xuICAgICAgLS0+XG4gICAgPHpvb2tlZXBlcj5cbiAgICAgICAgPG5vZGUgaW5kZXg9XCIxXCI+XG4gICAgICAgICAgICA8aG9zdD56b29rZWVwZXI8L2hvc3Q+XG4gICAgICAgICAgICA8cG9ydD4yMTgxPC9wb3J0PlxuICAgICAgICA8L25vZGU+XG4gICAgPC96b29rZWVwZXI+XG5cbiAgICA8IS0tIENvbmZpZ3VyYXRpb24gb2YgY2x1c3RlcnMgdGhhdCBjb3VsZCBiZSB1c2VkIGluIERpc3RyaWJ1dGVkIHRhYmxlcy5cbiAgICAgICAgaHR0cHM6Ly9jbGlja2hvdXNlLmNvbS9kb2NzL2VuL29wZXJhdGlvbnMvdGFibGVfZW5naW5lcy9kaXN0cmlidXRlZC9cbiAgICAgIC0tPlxuICAgIDxyZW1vdGVfc2VydmVycz5cbiAgICAgICAgPGNsdXN0ZXI+XG4gICAgICAgICAgICA8IS0tIEludGVyLXNlcnZlciBwZXItY2x1c3RlciBzZWNyZXQgZm9yIERpc3RyaWJ1dGVkIHF1ZXJpZXNcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBubyBzZWNyZXQgKG5vIGF1dGhlbnRpY2F0aW9uIHdpbGwgYmUgcGVyZm9ybWVkKVxuXG4gICAgICAgICAgICAgICAgSWYgc2V0LCB0aGVuIERpc3RyaWJ1dGVkIHF1ZXJpZXMgd2lsbCBiZSB2YWxpZGF0ZWQgb24gc2hhcmRzLCBzbyBhdCBsZWFzdDpcbiAgICAgICAgICAgICAgICAtIHN1Y2ggY2x1c3RlciBzaG91bGQgZXhpc3Qgb24gdGhlIHNoYXJkLFxuICAgICAgICAgICAgICAgIC0gc3VjaCBjbHVzdGVyIHNob3VsZCBoYXZlIHRoZSBzYW1lIHNlY3JldC5cblxuICAgICAgICAgICAgICAgIEFuZCBhbHNvIChhbmQgd2hpY2ggaXMgbW9yZSBpbXBvcnRhbnQpLCB0aGUgaW5pdGlhbF91c2VyIHdpbGxcbiAgICAgICAgICAgICAgICBiZSB1c2VkIGFzIGN1cnJlbnQgdXNlciBmb3IgdGhlIHF1ZXJ5LlxuXG4gICAgICAgICAgICAgICAgUmlnaHQgbm93IHRoZSBwcm90b2NvbCBpcyBwcmV0dHkgc2ltcGxlIGFuZCBpdCBvbmx5IHRha2VzIGludG8gYWNjb3VudDpcbiAgICAgICAgICAgICAgICAtIGNsdXN0ZXIgbmFtZVxuICAgICAgICAgICAgICAgIC0gcXVlcnlcblxuICAgICAgICAgICAgICAgIEFsc28gaXQgd2lsbCBiZSBuaWNlIGlmIHRoZSBmb2xsb3dpbmcgd2lsbCBiZSBpbXBsZW1lbnRlZDpcbiAgICAgICAgICAgICAgICAtIHNvdXJjZSBob3N0bmFtZSAoc2VlIGludGVyc2VydmVyX2h0dHBfaG9zdCksIGJ1dCB0aGVuIGl0IHdpbGwgZGVwZW5kcyBmcm9tIEROUyxcbiAgICAgICAgICAgICAgICAgIGl0IGNhbiB1c2UgSVAgYWRkcmVzcyBpbnN0ZWFkLCBidXQgdGhlbiB0aGUgeW91IG5lZWQgdG8gZ2V0IGNvcnJlY3Qgb24gdGhlIGluaXRpYXRvciBub2RlLlxuICAgICAgICAgICAgICAgIC0gdGFyZ2V0IGhvc3RuYW1lIC8gaXAgYWRkcmVzcyAoc2FtZSBub3RlcyBhcyBmb3Igc291cmNlIGhvc3RuYW1lKVxuICAgICAgICAgICAgICAgIC0gdGltZS1iYXNlZCBzZWN1cml0eSB0b2tlbnNcbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPCEtLSA8c2VjcmV0Pjwvc2VjcmV0PiAtLT5cbiAgICAgICAgICAgIDxzaGFyZD5cbiAgICAgICAgICAgICAgICA8IS0tIE9wdGlvbmFsLiBXaGV0aGVyIHRvIHdyaXRlIGRhdGEgdG8ganVzdCBvbmUgb2YgdGhlIHJlcGxpY2FzLiBEZWZhdWx0OiBmYWxzZSAod3JpdGUgZGF0YSB0byBhbGwgcmVwbGljYXMpLiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxpbnRlcm5hbF9yZXBsaWNhdGlvbj5mYWxzZTwvaW50ZXJuYWxfcmVwbGljYXRpb24+IC0tPlxuICAgICAgICAgICAgICAgIDwhLS0gT3B0aW9uYWwuIFNoYXJkIHdlaWdodCB3aGVuIHdyaXRpbmcgZGF0YS4gRGVmYXVsdDogMS4gLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8d2VpZ2h0PjE8L3dlaWdodD4gLS0+XG4gICAgICAgICAgICAgICAgPHJlcGxpY2E+XG4gICAgICAgICAgICAgICAgICAgIDxob3N0PmNsaWNraG91c2U8L2hvc3Q+XG4gICAgICAgICAgICAgICAgICAgIDxwb3J0PjkwMDA8L3BvcnQ+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gT3B0aW9uYWwuIFByaW9yaXR5IG9mIHRoZSByZXBsaWNhIGZvciBsb2FkX2JhbGFuY2luZy4gRGVmYXVsdDogMSAobGVzcyB2YWx1ZSBoYXMgbW9yZSBwcmlvcml0eSkuIC0tPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwcmlvcml0eT4xPC9wcmlvcml0eT4gLS0+XG4gICAgICAgICAgICAgICAgPC9yZXBsaWNhPlxuICAgICAgICAgICAgPC9zaGFyZD5cbiAgICAgICAgICAgIDwhLS0gPHNoYXJkPlxuICAgICAgICAgICAgICAgIDxyZXBsaWNhPlxuICAgICAgICAgICAgICAgICAgICA8aG9zdD5jbGlja2hvdXNlLTI8L2hvc3Q+XG4gICAgICAgICAgICAgICAgICAgIDxwb3J0PjkwMDA8L3BvcnQ+XG4gICAgICAgICAgICAgICAgPC9yZXBsaWNhPlxuICAgICAgICAgICAgPC9zaGFyZD5cbiAgICAgICAgICAgIDxzaGFyZD5cbiAgICAgICAgICAgICAgICA8cmVwbGljYT5cbiAgICAgICAgICAgICAgICAgICAgPGhvc3Q+Y2xpY2tob3VzZS0zPC9ob3N0PlxuICAgICAgICAgICAgICAgICAgICA8cG9ydD45MDAwPC9wb3J0PlxuICAgICAgICAgICAgICAgIDwvcmVwbGljYT5cbiAgICAgICAgICAgIDwvc2hhcmQ+IC0tPlxuICAgICAgICA8L2NsdXN0ZXI+XG4gICAgPC9yZW1vdGVfc2VydmVycz5cbjwvY2xpY2tob3VzZT5cbiIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vY2xpY2tob3VzZS91c2Vycy54bWwKICAgICAgICB0YXJnZXQ6IC9ldGMvY2xpY2tob3VzZS1zZXJ2ZXIvdXNlcnMueG1sCiAgICAgICAgY29udGVudDogIjw/eG1sIHZlcnNpb249XCIxLjBcIj8+XG48Y2xpY2tob3VzZT5cbiAgICA8IS0tIFNlZSBhbHNvIHRoZSBmaWxlcyBpbiB1c2Vycy5kIGRpcmVjdG9yeSB3aGVyZSB0aGUgc2V0dGluZ3MgY2FuIGJlIG92ZXJyaWRkZW4uIC0tPlxuXG4gICAgPCEtLSBQcm9maWxlcyBvZiBzZXR0aW5ncy4gLS0+XG4gICAgPHByb2ZpbGVzPlxuICAgICAgICA8IS0tIERlZmF1bHQgc2V0dGluZ3MuIC0tPlxuICAgICAgICA8ZGVmYXVsdD5cbiAgICAgICAgICAgIDwhLS0gTWF4aW11bSBtZW1vcnkgdXNhZ2UgZm9yIHByb2Nlc3Npbmcgc2luZ2xlIHF1ZXJ5LCBpbiBieXRlcy4gLS0+XG4gICAgICAgICAgICA8bWF4X21lbW9yeV91c2FnZT4xMDAwMDAwMDAwMDwvbWF4X21lbW9yeV91c2FnZT5cblxuICAgICAgICAgICAgPCEtLSBIb3cgdG8gY2hvb3NlIGJldHdlZW4gcmVwbGljYXMgZHVyaW5nIGRpc3RyaWJ1dGVkIHF1ZXJ5IHByb2Nlc3NpbmcuXG4gICAgICAgICAgICAgICAgcmFuZG9tIC0gY2hvb3NlIHJhbmRvbSByZXBsaWNhIGZyb20gc2V0IG9mIHJlcGxpY2FzIHdpdGggbWluaW11bSBudW1iZXIgb2YgZXJyb3JzXG4gICAgICAgICAgICAgICAgbmVhcmVzdF9ob3N0bmFtZSAtIGZyb20gc2V0IG9mIHJlcGxpY2FzIHdpdGggbWluaW11bSBudW1iZXIgb2YgZXJyb3JzLCBjaG9vc2UgcmVwbGljYVxuICAgICAgICAgICAgICAgICAgd2l0aCBtaW5pbXVtIG51bWJlciBvZiBkaWZmZXJlbnQgc3ltYm9scyBiZXR3ZWVuIHJlcGxpY2EncyBob3N0bmFtZSBhbmQgbG9jYWwgaG9zdG5hbWVcbiAgICAgICAgICAgICAgICAgIChIYW1taW5nIGRpc3RhbmNlKS5cbiAgICAgICAgICAgICAgICBpbl9vcmRlciAtIGZpcnN0IGxpdmUgcmVwbGljYSBpcyBjaG9zZW4gaW4gc3BlY2lmaWVkIG9yZGVyLlxuICAgICAgICAgICAgICAgIGZpcnN0X29yX3JhbmRvbSAtIGlmIGZpcnN0IHJlcGxpY2Egb25lIGhhcyBoaWdoZXIgbnVtYmVyIG9mIGVycm9ycywgcGljayBhIHJhbmRvbSBvbmUgZnJvbSByZXBsaWNhcyB3aXRoIG1pbmltdW0gbnVtYmVyIG9mIGVycm9ycy5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPGxvYWRfYmFsYW5jaW5nPnJhbmRvbTwvbG9hZF9iYWxhbmNpbmc+XG4gICAgICAgIDwvZGVmYXVsdD5cblxuICAgICAgICA8IS0tIFByb2ZpbGUgdGhhdCBhbGxvd3Mgb25seSByZWFkIHF1ZXJpZXMuIC0tPlxuICAgICAgICA8cmVhZG9ubHk+XG4gICAgICAgICAgICA8cmVhZG9ubHk+MTwvcmVhZG9ubHk+XG4gICAgICAgIDwvcmVhZG9ubHk+XG4gICAgPC9wcm9maWxlcz5cblxuICAgIDwhLS0gVXNlcnMgYW5kIEFDTC4gLS0+XG4gICAgPHVzZXJzPlxuICAgICAgICA8IS0tIElmIHVzZXIgbmFtZSB3YXMgbm90IHNwZWNpZmllZCwgJ2RlZmF1bHQnIHVzZXIgaXMgdXNlZC4gLS0+XG4gICAgICAgIDxkZWZhdWx0PlxuICAgICAgICAgICAgPCEtLSBTZWUgYWxzbyB0aGUgZmlsZXMgaW4gdXNlcnMuZCBkaXJlY3Rvcnkgd2hlcmUgdGhlIHBhc3N3b3JkIGNhbiBiZSBvdmVycmlkZGVuLlxuXG4gICAgICAgICAgICAgICAgUGFzc3dvcmQgY291bGQgYmUgc3BlY2lmaWVkIGluIHBsYWludGV4dCBvciBpbiBTSEEyNTYgKGluIGhleCBmb3JtYXQpLlxuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBwYXNzd29yZCBpbiBwbGFpbnRleHQgKG5vdCByZWNvbW1lbmRlZCksIHBsYWNlIGl0IGluICdwYXNzd29yZCcgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBFeGFtcGxlOiA8cGFzc3dvcmQ+cXdlcnR5PC9wYXNzd29yZD4uXG4gICAgICAgICAgICAgICAgUGFzc3dvcmQgY291bGQgYmUgZW1wdHkuXG5cbiAgICAgICAgICAgICAgICBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IFNIQTI1NiwgcGxhY2UgaXQgaW4gJ3Bhc3N3b3JkX3NoYTI1Nl9oZXgnIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPHBhc3N3b3JkX3NoYTI1Nl9oZXg+NjVlODRiZTMzNTMyZmI3ODRjNDgxMjk2NzVmOWVmZjNhNjgyYjI3MTY4YzBlYTc0NGIyY2Y1OGVlMDIzMzdjNTwvcGFzc3dvcmRfc2hhMjU2X2hleD5cbiAgICAgICAgICAgICAgICBSZXN0cmljdGlvbnMgb2YgU0hBMjU2OiBpbXBvc3NpYmlsaXR5IHRvIGNvbm5lY3QgdG8gQ2xpY2tIb3VzZSB1c2luZyBNeVNRTCBKUyBjbGllbnQgKGFzIG9mIEp1bHkgMjAxOSkuXG5cbiAgICAgICAgICAgICAgICBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGRvdWJsZSBTSEExLCBwbGFjZSBpdCBpbiAncGFzc3dvcmRfZG91YmxlX3NoYTFfaGV4JyBlbGVtZW50LlxuICAgICAgICAgICAgICAgIEV4YW1wbGU6IDxwYXNzd29yZF9kb3VibGVfc2hhMV9oZXg+ZTM5NTc5NmQ2NTQ2YjFiNjVkYjlkNjY1Y2Q0M2YwZTg1OGRkNDMwMzwvcGFzc3dvcmRfZG91YmxlX3NoYTFfaGV4PlxuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIHByZXZpb3VzbHkgZGVmaW5lZCBMREFQIHNlcnZlciAoc2VlICdsZGFwX3NlcnZlcnMnIGluIHRoZSBtYWluIGNvbmZpZykgZm9yIGF1dGhlbnRpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgcGxhY2UgaXRzIG5hbWUgaW4gJ3NlcnZlcicgZWxlbWVudCBpbnNpZGUgJ2xkYXAnIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGxkYXA+PHNlcnZlcj5teV9sZGFwX3NlcnZlcjwvc2VydmVyPjwvbGRhcD5cblxuICAgICAgICAgICAgICAgIElmIHlvdSB3YW50IHRvIGF1dGhlbnRpY2F0ZSB0aGUgdXNlciB2aWEgS2VyYmVyb3MgKGFzc3VtaW5nIEtlcmJlcm9zIGlzIGVuYWJsZWQsIHNlZSAna2VyYmVyb3MnIGluIHRoZSBtYWluIGNvbmZpZyksXG4gICAgICAgICAgICAgICAgICBwbGFjZSAna2VyYmVyb3MnIGVsZW1lbnQgaW5zdGVhZCBvZiAncGFzc3dvcmQnIChhbmQgc2ltaWxhcikgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgVGhlIG5hbWUgcGFydCBvZiB0aGUgY2Fub25pY2FsIHByaW5jaXBhbCBuYW1lIG9mIHRoZSBpbml0aWF0b3IgbXVzdCBtYXRjaCB0aGUgdXNlciBuYW1lIGZvciBhdXRoZW50aWNhdGlvbiB0byBzdWNjZWVkLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gYWxzbyBwbGFjZSAncmVhbG0nIGVsZW1lbnQgaW5zaWRlICdrZXJiZXJvcycgZWxlbWVudCB0byBmdXJ0aGVyIHJlc3RyaWN0IGF1dGhlbnRpY2F0aW9uIHRvIG9ubHkgdGhvc2UgcmVxdWVzdHNcbiAgICAgICAgICAgICAgICAgIHdob3NlIGluaXRpYXRvcidzIHJlYWxtIG1hdGNoZXMgaXQuXG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGtlcmJlcm9zIC8+XG4gICAgICAgICAgICAgICAgRXhhbXBsZTogPGtlcmJlcm9zPjxyZWFsbT5FWEFNUExFLkNPTTwvcmVhbG0+PC9rZXJiZXJvcz5cblxuICAgICAgICAgICAgICAgIEhvdyB0byBnZW5lcmF0ZSBkZWNlbnQgcGFzc3dvcmQ6XG4gICAgICAgICAgICAgICAgRXhlY3V0ZTogUEFTU1dPUkQ9JChiYXNlNjQgPCAvZGV2L3VyYW5kb20gfCBoZWFkIC1jOCk7IGVjaG8gXCIkUEFTU1dPUkRcIjsgZWNobyAtbiBcIiRQQVNTV09SRFwiIHwgc2hhMjU2c3VtIHwgdHIgLWQgJy0nXG4gICAgICAgICAgICAgICAgSW4gZmlyc3QgbGluZSB3aWxsIGJlIHBhc3N3b3JkIGFuZCBpbiBzZWNvbmQgLSBjb3JyZXNwb25kaW5nIFNIQTI1Ni5cblxuICAgICAgICAgICAgICAgIEhvdyB0byBnZW5lcmF0ZSBkb3VibGUgU0hBMTpcbiAgICAgICAgICAgICAgICBFeGVjdXRlOiBQQVNTV09SRD0kKGJhc2U2NCA8IC9kZXYvdXJhbmRvbSB8IGhlYWQgLWM4KTsgZWNobyBcIiRQQVNTV09SRFwiOyBlY2hvIC1uIFwiJFBBU1NXT1JEXCIgfCBzaGExc3VtIHwgdHIgLWQgJy0nIHwgeHhkIC1yIC1wIHwgc2hhMXN1bSB8IHRyIC1kICctJ1xuICAgICAgICAgICAgICAgIEluIGZpcnN0IGxpbmUgd2lsbCBiZSBwYXNzd29yZCBhbmQgaW4gc2Vjb25kIC0gY29ycmVzcG9uZGluZyBkb3VibGUgU0hBMS5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPHBhc3N3b3JkPjwvcGFzc3dvcmQ+XG5cbiAgICAgICAgICAgIDwhLS0gTGlzdCBvZiBuZXR3b3JrcyB3aXRoIG9wZW4gYWNjZXNzLlxuXG4gICAgICAgICAgICAgICAgVG8gb3BlbiBhY2Nlc3MgZnJvbSBldmVyeXdoZXJlLCBzcGVjaWZ5OlxuICAgICAgICAgICAgICAgICAgICA8aXA+OjovMDwvaXA+XG5cbiAgICAgICAgICAgICAgICBUbyBvcGVuIGFjY2VzcyBvbmx5IGZyb20gbG9jYWxob3N0LCBzcGVjaWZ5OlxuICAgICAgICAgICAgICAgICAgICA8aXA+OjoxPC9pcD5cbiAgICAgICAgICAgICAgICAgICAgPGlwPjEyNy4wLjAuMTwvaXA+XG5cbiAgICAgICAgICAgICAgICBFYWNoIGVsZW1lbnQgb2YgbGlzdCBoYXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybXM6XG4gICAgICAgICAgICAgICAgPGlwPiBJUC1hZGRyZXNzIG9yIG5ldHdvcmsgbWFzay4gRXhhbXBsZXM6IDIxMy4xODAuMjA0LjMgb3IgMTAuMC4wLjEvOCBvciAxMC4wLjAuMS8yNTUuMjU1LjI1NS4wXG4gICAgICAgICAgICAgICAgICAgIDJhMDI6NmI4OjozIG9yIDJhMDI6NmI4OjozLzY0IG9yIDJhMDI6NmI4OjozL2ZmZmY6ZmZmZjpmZmZmOmZmZmY6Oi5cbiAgICAgICAgICAgICAgICA8aG9zdD4gSG9zdG5hbWUuIEV4YW1wbGU6IHNlcnZlcjAxLmNsaWNraG91c2UuY29tLlxuICAgICAgICAgICAgICAgICAgICBUbyBjaGVjayBhY2Nlc3MsIEROUyBxdWVyeSBpcyBwZXJmb3JtZWQsIGFuZCBhbGwgcmVjZWl2ZWQgYWRkcmVzc2VzIGNvbXBhcmVkIHRvIHBlZXIgYWRkcmVzcy5cbiAgICAgICAgICAgICAgICA8aG9zdF9yZWdleHA+IFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgaG9zdCBuYW1lcy4gRXhhbXBsZSwgXnNlcnZlclxcZFxcZC1cXGRcXGQtXFxkXFwuY2xpY2tob3VzZVxcLmNvbSRcbiAgICAgICAgICAgICAgICAgICAgVG8gY2hlY2sgYWNjZXNzLCBETlMgUFRSIHF1ZXJ5IGlzIHBlcmZvcm1lZCBmb3IgcGVlciBhZGRyZXNzIGFuZCB0aGVuIHJlZ2V4cCBpcyBhcHBsaWVkLlxuICAgICAgICAgICAgICAgICAgICBUaGVuLCBmb3IgcmVzdWx0IG9mIFBUUiBxdWVyeSwgYW5vdGhlciBETlMgcXVlcnkgaXMgcGVyZm9ybWVkIGFuZCBhbGwgcmVjZWl2ZWQgYWRkcmVzc2VzIGNvbXBhcmVkIHRvIHBlZXIgYWRkcmVzcy5cbiAgICAgICAgICAgICAgICAgICAgU3Ryb25nbHkgcmVjb21tZW5kZWQgdGhhdCByZWdleHAgaXMgZW5kcyB3aXRoICRcbiAgICAgICAgICAgICAgICBBbGwgcmVzdWx0cyBvZiBETlMgcmVxdWVzdHMgYXJlIGNhY2hlZCB0aWxsIHNlcnZlciByZXN0YXJ0LlxuICAgICAgICAgICAgLS0+XG4gICAgICAgICAgICA8bmV0d29ya3M+XG4gICAgICAgICAgICAgICAgPGlwPjo6LzA8L2lwPlxuICAgICAgICAgICAgPC9uZXR3b3Jrcz5cblxuICAgICAgICAgICAgPCEtLSBTZXR0aW5ncyBwcm9maWxlIGZvciB1c2VyLiAtLT5cbiAgICAgICAgICAgIDxwcm9maWxlPmRlZmF1bHQ8L3Byb2ZpbGU+XG5cbiAgICAgICAgICAgIDwhLS0gUXVvdGEgZm9yIHVzZXIuIC0tPlxuICAgICAgICAgICAgPHF1b3RhPmRlZmF1bHQ8L3F1b3RhPlxuXG4gICAgICAgICAgICA8IS0tIFVzZXIgY2FuIGNyZWF0ZSBvdGhlciB1c2VycyBhbmQgZ3JhbnQgcmlnaHRzIHRvIHRoZW0uIC0tPlxuICAgICAgICAgICAgPCEtLSA8YWNjZXNzX21hbmFnZW1lbnQ+MTwvYWNjZXNzX21hbmFnZW1lbnQ+IC0tPlxuICAgICAgICA8L2RlZmF1bHQ+XG4gICAgPC91c2Vycz5cblxuICAgIDwhLS0gUXVvdGFzLiAtLT5cbiAgICA8cXVvdGFzPlxuICAgICAgICA8IS0tIE5hbWUgb2YgcXVvdGEuIC0tPlxuICAgICAgICA8ZGVmYXVsdD5cbiAgICAgICAgICAgIDwhLS0gTGltaXRzIGZvciB0aW1lIGludGVydmFsLiBZb3UgY291bGQgc3BlY2lmeSBtYW55IGludGVydmFscyB3aXRoIGRpZmZlcmVudCBsaW1pdHMuIC0tPlxuICAgICAgICAgICAgPGludGVydmFsPlxuICAgICAgICAgICAgICAgIDwhLS0gTGVuZ3RoIG9mIGludGVydmFsLiAtLT5cbiAgICAgICAgICAgICAgICA8ZHVyYXRpb24+MzYwMDwvZHVyYXRpb24+XG5cbiAgICAgICAgICAgICAgICA8IS0tIE5vIGxpbWl0cy4gSnVzdCBjYWxjdWxhdGUgcmVzb3VyY2UgdXNhZ2UgZm9yIHRpbWUgaW50ZXJ2YWwuIC0tPlxuICAgICAgICAgICAgICAgIDxxdWVyaWVzPjA8L3F1ZXJpZXM+XG4gICAgICAgICAgICAgICAgPGVycm9ycz4wPC9lcnJvcnM+XG4gICAgICAgICAgICAgICAgPHJlc3VsdF9yb3dzPjA8L3Jlc3VsdF9yb3dzPlxuICAgICAgICAgICAgICAgIDxyZWFkX3Jvd3M+MDwvcmVhZF9yb3dzPlxuICAgICAgICAgICAgICAgIDxleGVjdXRpb25fdGltZT4wPC9leGVjdXRpb25fdGltZT5cbiAgICAgICAgICAgIDwvaW50ZXJ2YWw+XG4gICAgICAgIDwvZGVmYXVsdD5cbiAgICA8L3F1b3Rhcz5cbjwvY2xpY2tob3VzZT5cbiIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vY2xpY2tob3VzZS9jb25maWcueG1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL2NsaWNraG91c2Utc2VydmVyL2NvbmZpZy54bWwKICAgICAgICBjb250ZW50OiAiPD94bWwgdmVyc2lvbj1cIjEuMFwiPz5cbjxjbGlja2hvdXNlPlxuICA8bWF4X2Nvbm5lY3Rpb25zPjQwOTY8L21heF9jb25uZWN0aW9ucz5cbiAgPGtlZXBfYWxpdmVfdGltZW91dD4zPC9rZWVwX2FsaXZlX3RpbWVvdXQ+XG4gIDxtYXhfY29uY3VycmVudF9xdWVyaWVzPjEwMDwvbWF4X2NvbmN1cnJlbnRfcXVlcmllcz5cbiAgPG1hcmtfY2FjaGVfc2l6ZT41MzY4NzA5MTIwPC9tYXJrX2NhY2hlX3NpemU+XG4gIDxtbWFwX2NhY2hlX3NpemU+MTAwMDwvbW1hcF9jYWNoZV9zaXplPlxuICA8Y29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9zaXplPjEzNDIxNzcyODwvY29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9zaXplPlxuICA8Y29tcGlsZWRfZXhwcmVzc2lvbl9jYWNoZV9lbGVtZW50c19zaXplPjEwMDAwPC9jb21waWxlZF9leHByZXNzaW9uX2NhY2hlX2VsZW1lbnRzX3NpemU+XG4gIDxjdXN0b21fc2V0dGluZ3NfcHJlZml4ZXM+PC9jdXN0b21fc2V0dGluZ3NfcHJlZml4ZXM+XG4gIDxkaWN0aW9uYXJpZXNfY29uZmlnPipfZGljdGlvbmFyeS54bWw8L2RpY3Rpb25hcmllc19jb25maWc+XG4gIDx1c2VyX2RlZmluZWRfZXhlY3V0YWJsZV9mdW5jdGlvbnNfY29uZmlnPipmdW5jdGlvbi54bWw8L3VzZXJfZGVmaW5lZF9leGVjdXRhYmxlX2Z1bmN0aW9uc19jb25maWc+XG4gIDx1c2VyX3NjcmlwdHNfcGF0aD4vdmFyL2xpYi9jbGlja2hvdXNlL3VzZXJfc2NyaXB0cy88L3VzZXJfc2NyaXB0c19wYXRoPlxuICA8aHR0cF9wb3J0PjgxMjM8L2h0dHBfcG9ydD5cbiAgPHRjcF9wb3J0PjkwMDA8L3RjcF9wb3J0PlxuICA8bXlzcWxfcG9ydD45MDA0PC9teXNxbF9wb3J0PlxuICA8cG9zdGdyZXNxbF9wb3J0PjkwMDU8L3Bvc3RncmVzcWxfcG9ydD5cbiAgPGludGVyc2VydmVyX2h0dHBfcG9ydD45MDA5PC9pbnRlcnNlcnZlcl9odHRwX3BvcnQ+XG4gIDxsb2dnZXI+XG4gICAgPGxldmVsPmluZm9ybWF0aW9uPC9sZXZlbD5cbiAgICA8Zm9ybWF0dGluZz5cbiAgICAgIDx0eXBlPmpzb248L3R5cGU+XG4gICAgPC9mb3JtYXR0aW5nPlxuICA8L2xvZ2dlcj5cbiAgPG1hY3Jvcz5cbiAgICA8c2hhcmQ+MDE8L3NoYXJkPlxuICAgIDxyZXBsaWNhPmV4YW1wbGUwMS0wMS0xPC9yZXBsaWNhPlxuICA8L21hY3Jvcz5cbiAgPHByb21ldGhldXM+XG4gICAgPGVuZHBvaW50Pi9tZXRyaWNzPC9lbmRwb2ludD5cbiAgICA8cG9ydD45MzYzPC9wb3J0PlxuICAgIDxtZXRyaWNzPnRydWU8L21ldHJpY3M+XG4gICAgPGV2ZW50cz50cnVlPC9ldmVudHM+XG4gICAgPGFzeW5jaHJvbm91c19tZXRyaWNzPnRydWU8L2FzeW5jaHJvbm91c19tZXRyaWNzPlxuICAgIDxzdGF0dXNfaW5mbz50cnVlPC9zdGF0dXNfaW5mbz5cbiAgPC9wcm9tZXRoZXVzPlxuICA8b3BlbnRlbGVtZXRyeV9zcGFuX2xvZz5cbiAgICA8ZW5naW5lPmVuZ2luZSBNZXJnZVRyZWVcbiAgICAgICAgICAgIHBhcnRpdGlvbiBieSB0b1lZWVlNTShmaW5pc2hfZGF0ZSlcbiAgICAgICAgICAgIG9yZGVyIGJ5IChmaW5pc2hfZGF0ZSwgZmluaXNoX3RpbWVfdXMsIHRyYWNlX2lkKTwvZW5naW5lPlxuICA8L29wZW50ZWxlbWV0cnlfc3Bhbl9sb2c+XG4gIDxxdWVyeV9tYXNraW5nX3J1bGVzPlxuICAgIDxydWxlPlxuICAgICAgPG5hbWU+aGlkZSBlbmNyeXB0L2RlY3J5cHQgYXJndW1lbnRzPC9uYW1lPlxuICAgICAgPHJlZ2V4cD4oKD86YWVzXyk/KD86ZW5jcnlwdHxkZWNyeXB0KSg/Ol9teXNxbCk/KVxccypcXChcXHMqKD86Jyg/OlxcXFwnfC4pKyd8Lio/KVxccypcXCk8L3JlZ2V4cD5cbiAgICAgIDxyZXBsYWNlPlxcMSg/Pz8pPC9yZXBsYWNlPlxuICAgIDwvcnVsZT5cbiAgPC9xdWVyeV9tYXNraW5nX3J1bGVzPlxuICA8c2VuZF9jcmFzaF9yZXBvcnRzPlxuICAgIDxlbmFibGVkPmZhbHNlPC9lbmFibGVkPlxuICAgIDxhbm9ueW1pemU+ZmFsc2U8L2Fub255bWl6ZT5cbiAgICA8ZW5kcG9pbnQ+aHR0cHM6Ly82ZjMzMDM0Y2ZlNjg0ZGQ3YTNhYjk4NzVlNTdiMWM4ZEBvMzg4ODcwLmluZ2VzdC5zZW50cnkuaW8vNTIyNjI3NzwvZW5kcG9pbnQ+XG4gIDwvc2VuZF9jcmFzaF9yZXBvcnRzPlxuICA8bWVyZ2VfdHJlZV9tZXRhZGF0YV9jYWNoZT5cbiAgICA8bHJ1X2NhY2hlX3NpemU+MjY4NDM1NDU2PC9scnVfY2FjaGVfc2l6ZT5cbiAgICA8Y29udGludWVfaWZfY29ycnVwdGVkPnRydWU8L2NvbnRpbnVlX2lmX2NvcnJ1cHRlZD5cbiAgPC9tZXJnZV90cmVlX21ldGFkYXRhX2NhY2hlPlxuICA8dXNlcl9kaXJlY3Rvcmllcz5cbiAgICA8dXNlcnNfeG1sPlxuICAgICAgICA8IS0tIFBhdGggdG8gY29uZmlndXJhdGlvbiBmaWxlIHdpdGggcHJlZGVmaW5lZCB1c2Vycy4gLS0+XG4gICAgICAgIDxwYXRoPnVzZXJzLnhtbDwvcGF0aD5cbiAgICA8L3VzZXJzX3htbD5cbiAgICA8bG9jYWxfZGlyZWN0b3J5PlxuICAgICAgICA8IS0tIFBhdGggdG8gZm9sZGVyIHdoZXJlIHVzZXJzIGNyZWF0ZWQgYnkgU1FMIGNvbW1hbmRzIGFyZSBzdG9yZWQuIC0tPlxuICAgICAgICA8cGF0aD4vdmFyL2xpYi9jbGlja2hvdXNlL2FjY2Vzcy88L3BhdGg+XG4gICAgPC9sb2NhbF9kaXJlY3Rvcnk+XG4gIDwvdXNlcl9kaXJlY3Rvcmllcz5cbiAgPGRlZmF1bHRfcHJvZmlsZT5kZWZhdWx0PC9kZWZhdWx0X3Byb2ZpbGU+XG4gICAgPGRpc3RyaWJ1dGVkX2RkbD5cbiAgICAgICAgPCEtLSBQYXRoIGluIFpvb0tlZXBlciB0byBxdWV1ZSB3aXRoIERETCBxdWVyaWVzIC0tPlxuICAgICAgICA8cGF0aD4vY2xpY2tob3VzZS90YXNrX3F1ZXVlL2RkbDwvcGF0aD5cbiAgICA8L2Rpc3RyaWJ1dGVkX2RkbD5cbjwvY2xpY2tob3VzZT5cbiIKICBzaWdub3o6CiAgICBpbWFnZTogJ3NpZ25vei9zaWdub3o6djAuOTcuMScKICAgIGRlcGVuZHNfb246CiAgICAgIGNsaWNraG91c2U6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgICAgc2NoZW1hLW1pZ3JhdG9yLXN5bmM6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHkKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGNvbW1hbmQ6CiAgICAgIC0gJy0tY29uZmlnPS9yb290L2NvbmZpZy9wcm9tZXRoZXVzLnltbCcKICAgIHZvbHVtZXM6CiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL3Byb21ldGhldXMueW1sCiAgICAgICAgdGFyZ2V0OiAvcm9vdC9jb25maWcvcHJvbWV0aGV1cy55bWwKICAgICAgICBjb250ZW50OiAiIyBteSBnbG9iYWwgY29uZmlnXG5nbG9iYWw6XG4gIHNjcmFwZV9pbnRlcnZhbDogICAgIDVzICMgU2V0IHRoZSBzY3JhcGUgaW50ZXJ2YWwgdG8gZXZlcnkgMTUgc2Vjb25kcy4gRGVmYXVsdCBpcyBldmVyeSAxIG1pbnV0ZS5cbiAgZXZhbHVhdGlvbl9pbnRlcnZhbDogMTVzICMgRXZhbHVhdGUgcnVsZXMgZXZlcnkgMTUgc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgZXZlcnkgMSBtaW51dGUuXG4gICMgc2NyYXBlX3RpbWVvdXQgaXMgc2V0IHRvIHRoZSBnbG9iYWwgZGVmYXVsdCAoMTBzKS5cblxuIyBBbGVydG1hbmFnZXIgY29uZmlndXJhdGlvblxuYWxlcnRpbmc6XG4gIGFsZXJ0bWFuYWdlcnM6XG4gIC0gc3RhdGljX2NvbmZpZ3M6XG4gICAgLSB0YXJnZXRzOlxuICAgICAgLSBhbGVydG1hbmFnZXI6OTA5M1xuXG4jIExvYWQgcnVsZXMgb25jZSBhbmQgcGVyaW9kaWNhbGx5IGV2YWx1YXRlIHRoZW0gYWNjb3JkaW5nIHRvIHRoZSBnbG9iYWwgJ2V2YWx1YXRpb25faW50ZXJ2YWwnLlxucnVsZV9maWxlczogW11cbiAgIyAtIFwiZmlyc3RfcnVsZXMueW1sXCJcbiAgIyAtIFwic2Vjb25kX3J1bGVzLnltbFwiXG4gICMgLSAnYWxlcnRzLnltbCdcblxuIyBBIHNjcmFwZSBjb25maWd1cmF0aW9uIGNvbnRhaW5pbmcgZXhhY3RseSBvbmUgZW5kcG9pbnQgdG8gc2NyYXBlOlxuIyBIZXJlIGl0J3MgUHJvbWV0aGV1cyBpdHNlbGYuXG5zY3JhcGVfY29uZmlnczogW11cblxucmVtb3RlX3JlYWQ6XG4gIC0gdXJsOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X21ldHJpY3NcbiIKICAgICAgLQogICAgICAgIHR5cGU6IHZvbHVtZQogICAgICAgIHNvdXJjZTogc3FsaXRlCiAgICAgICAgdGFyZ2V0OiAvdmFyL2xpYi9zaWdub3ovCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fU0lHTk9aXzgwODAKICAgICAgLSAnU0lHTk9aX0pXVF9TRUNSRVQ9JHtTRVJWSUNFX1JFQUxCQVNFNjRfSldUU0VDUkVUfScKICAgICAgLSAnU0lHTk9aX1RFTEVNRVRSWVNUT1JFX0NMSUNLSE9VU0VfRFNOPXRjcDovL2NsaWNraG91c2U6OTAwMCcKICAgICAgLSBTSUdOT1pfU1FMU1RPUkVfU1FMSVRFX1BBVEg9L3Zhci9saWIvc2lnbm96L3NpZ25vei5kYgogICAgICAtIERBU0hCT0FSRFNfUEFUSD0vcm9vdC9jb25maWcvZGFzaGJvYXJkcwogICAgICAtIFNUT1JBR0U9Y2xpY2tob3VzZQogICAgICAtIEdPREVCVUc9bmV0ZG5zPWdvCiAgICAgIC0gREVQTE9ZTUVOVF9UWVBFPWRvY2tlci1zdGFuZGFsb25lLWFtZAogICAgICAtICdTSUdOT1pfU1RBVFNSRVBPUlRFUl9FTkFCTEVEPSR7U0lHTk9aX1NUQVRTUkVQT1JURVJfRU5BQkxFRDotdHJ1ZX0nCiAgICAgIC0gJ1NJR05PWl9FTUFJTElOR19FTkFCTEVEPSR7U0lHTk9aX0VNQUlMSU5HX0VOQUJMRUQ6LWZhbHNlfScKICAgICAgLSAnU0lHTk9aX0VNQUlMSU5HX1NNVFBfQUREUkVTUz0ke1NJR05PWl9FTUFJTElOR19TTVRQX0FERFJFU1N9JwogICAgICAtICdTSUdOT1pfRU1BSUxJTkdfU01UUF9GUk9NPSR7U0lHTk9aX0VNQUlMSU5HX1NNVFBfRlJPTX0nCiAgICAgIC0gJ1NJR05PWl9FTUFJTElOR19TTVRQX0FVVEhfVVNFUk5BTUU9JHtTSUdOT1pfRU1BSUxJTkdfU01UUF9BVVRIX1VTRVJOQU1FfScKICAgICAgLSAnU0lHTk9aX0VNQUlMSU5HX1NNVFBfQVVUSF9QQVNTV09SRD0ke1NJR05PWl9FTUFJTElOR19TTVRQX0FVVEhfUEFTU1dPUkR9JwogICAgICAtIFNJR05PWl9BTEVSVE1BTkFHRVJfUFJPVklERVI9c2lnbm96CiAgICAgIC0gJ1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19BVVRIX19QQVNTV09SRD0ke1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19BVVRIX19QQVNTV09SRH0nCiAgICAgIC0gJ1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19BVVRIX19VU0VSTkFNRT0ke1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19BVVRIX19VU0VSTkFNRX0nCiAgICAgIC0gJ1NJR05PWl9BTEVSVE1BTkFHRVJfU0lHTk9aX0dMT0JBTF9TTVRQX19GUk9NPSR7U0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX0ZST019JwogICAgICAtICdTSUdOT1pfQUxFUlRNQU5BR0VSX1NJR05PWl9HTE9CQUxfU01UUF9fU01BUlRIT1NUPSR7U0lHTk9aX0FMRVJUTUFOQUdFUl9TSUdOT1pfR0xPQkFMX1NNVFBfX1NNQVJUSE9TVH0nCiAgICAgIC0gRE9UX01FVFJJQ1NfRU5BQkxFRD10cnVlCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gd2dldAogICAgICAgIC0gJy0tc3BpZGVyJwogICAgICAgIC0gJy1xJwogICAgICAgIC0gJ2xvY2FsaG9zdDo4MDgwL2FwaS92MS9oZWFsdGgnCiAgICAgIGludGVydmFsOiAzMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMwogIG90ZWwtY29sbGVjdG9yOgogICAgaW1hZ2U6ICdzaWdub3ovc2lnbm96LW90ZWwtY29sbGVjdG9yOnYwLjEyOS43JwogICAgZGVwZW5kc19vbjoKICAgICAgY2xpY2tob3VzZToKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgICBzY2hlbWEtbWlncmF0b3Itc3luYzoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseQogICAgICBzaWdub3o6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGNvbW1hbmQ6CiAgICAgIC0gJy0tY29uZmlnPS9ldGMvb3RlbC1jb2xsZWN0b3ItY29uZmlnLnlhbWwnCiAgICAgIC0gJy0tbWFuYWdlci1jb25maWc9L2V0Yy9tYW5hZ2VyLWNvbmZpZy55YW1sJwogICAgICAtICctLWNvcHktcGF0aD0vdmFyL3RtcC9jb2xsZWN0b3ItY29uZmlnLnlhbWwnCiAgICAgIC0gJy0tZmVhdHVyZS1nYXRlcz0tcGtnLnRyYW5zbGF0b3IucHJvbWV0aGV1cy5Ob3JtYWxpemVOYW1lJwogICAgdm9sdW1lczoKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vb3RlbC1jb2xsZWN0b3ItY29uZmlnLnlhbWwKICAgICAgICB0YXJnZXQ6IC9ldGMvb3RlbC1jb2xsZWN0b3ItY29uZmlnLnlhbWwKICAgICAgICBjb250ZW50OiAicmVjZWl2ZXJzOlxuICBvdGxwOlxuICAgIHByb3RvY29sczpcbiAgICAgIGdycGM6XG4gICAgICAgIGVuZHBvaW50OiAwLjAuMC4wOjQzMTdcbiAgICAgIGh0dHA6XG4gICAgICAgIGVuZHBvaW50OiAwLjAuMC4wOjQzMThcbiAgcHJvbWV0aGV1czpcbiAgICBjb25maWc6XG4gICAgICBnbG9iYWw6XG4gICAgICAgIHNjcmFwZV9pbnRlcnZhbDogNjBzXG4gICAgICBzY3JhcGVfY29uZmlnczpcbiAgICAgICAgLSBqb2JfbmFtZTogb3RlbC1jb2xsZWN0b3JcbiAgICAgICAgICBzdGF0aWNfY29uZmlnczpcbiAgICAgICAgICAtIHRhcmdldHM6XG4gICAgICAgICAgICAgIC0gbG9jYWxob3N0Ojg4ODhcbiAgICAgICAgICAgIGxhYmVsczpcbiAgICAgICAgICAgICAgam9iX25hbWU6IG90ZWwtY29sbGVjdG9yXG5wcm9jZXNzb3JzOlxuICBiYXRjaDpcbiAgICBzZW5kX2JhdGNoX3NpemU6IDEwMDAwXG4gICAgc2VuZF9iYXRjaF9tYXhfc2l6ZTogMTEwMDBcbiAgICB0aW1lb3V0OiAxMHNcbiAgcmVzb3VyY2VkZXRlY3Rpb246XG4gICAgIyBVc2luZyBPVEVMX1JFU09VUkNFX0FUVFJJQlVURVMgZW52dmFyLCBlbnYgZGV0ZWN0b3IgYWRkcyBjdXN0b20gbGFiZWxzLlxuICAgIGRldGVjdG9yczogW2Vudiwgc3lzdGVtXVxuICAgIHRpbWVvdXQ6IDJzXG4gIHNpZ25venNwYW5tZXRyaWNzL2RlbHRhOlxuICAgIG1ldHJpY3NfZXhwb3J0ZXI6IHNpZ25vemNsaWNraG91c2VtZXRyaWNzXG4gICAgbWV0cmljc19mbHVzaF9pbnRlcnZhbDogNjBzXG4gICAgbGF0ZW5jeV9oaXN0b2dyYW1fYnVja2V0czogWzEwMHVzLCAxbXMsIDJtcywgNm1zLCAxMG1zLCA1MG1zLCAxMDBtcywgMjUwbXMsIDUwMG1zLCAxMDAwbXMsIDE0MDBtcywgMjAwMG1zLCA1cywgMTBzLCAyMHMsIDQwcywgNjBzIF1cbiAgICBkaW1lbnNpb25zX2NhY2hlX3NpemU6IDEwMDAwMFxuICAgIGFnZ3JlZ2F0aW9uX3RlbXBvcmFsaXR5OiBBR0dSRUdBVElPTl9URU1QT1JBTElUWV9ERUxUQVxuICAgIGVuYWJsZV9leHBfaGlzdG9ncmFtOiB0cnVlXG4gICAgZGltZW5zaW9uczpcbiAgICAgIC0gbmFtZTogc2VydmljZS5uYW1lc3BhY2VcbiAgICAgICAgZGVmYXVsdDogZGVmYXVsdFxuICAgICAgLSBuYW1lOiBkZXBsb3ltZW50LmVudmlyb25tZW50XG4gICAgICAgIGRlZmF1bHQ6IGRlZmF1bHRcbiAgICAgICMgVGhpcyBpcyBhZGRlZCB0byBlbnN1cmUgdGhlIHVuaXF1ZW5lc3Mgb2YgdGhlIHRpbWVzZXJpZXNcbiAgICAgICMgT3RoZXJ3aXNlLCBpZGVudGljYWwgdGltZXNlcmllcyBwcm9kdWNlZCBieSBtdWx0aXBsZSByZXBsaWNhcyBvZlxuICAgICAgIyBjb2xsZWN0b3JzIHJlc3VsdCBpbiBpbmNvcnJlY3QgQVBNIG1ldHJpY3NcbiAgICAgIC0gbmFtZTogc2lnbm96LmNvbGxlY3Rvci5pZFxuICAgICAgLSBuYW1lOiBzZXJ2aWNlLnZlcnNpb25cbiAgICAgIC0gbmFtZTogYnJvd3Nlci5wbGF0Zm9ybVxuICAgICAgLSBuYW1lOiBicm93c2VyLm1vYmlsZVxuICAgICAgLSBuYW1lOiBrOHMuY2x1c3Rlci5uYW1lXG4gICAgICAtIG5hbWU6IGs4cy5ub2RlLm5hbWVcbiAgICAgIC0gbmFtZTogazhzLm5hbWVzcGFjZS5uYW1lXG4gICAgICAtIG5hbWU6IGhvc3QubmFtZVxuICAgICAgLSBuYW1lOiBob3N0LnR5cGVcbiAgICAgIC0gbmFtZTogY29udGFpbmVyLm5hbWVcbmV4dGVuc2lvbnM6XG4gIGhlYWx0aF9jaGVjazpcbiAgICBlbmRwb2ludDogMC4wLjAuMDoxMzEzM1xuICBwcHJvZjpcbiAgICBlbmRwb2ludDogMC4wLjAuMDoxNzc3XG5leHBvcnRlcnM6XG4gIGNsaWNraG91c2V0cmFjZXM6XG4gICAgZGF0YXNvdXJjZTogdGNwOi8vY2xpY2tob3VzZTo5MDAwL3NpZ25vel90cmFjZXNcbiAgICBsb3dfY2FyZGluYWxfZXhjZXB0aW9uX2dyb3VwaW5nOiAke2VudjpMT1dfQ0FSRElOQUxfRVhDRVBUSU9OX0dST1VQSU5HfVxuICAgIHVzZV9uZXdfc2NoZW1hOiB0cnVlXG4gIHNpZ25vemNsaWNraG91c2VtZXRyaWNzOlxuICAgIGRzbjogdGNwOi8vY2xpY2tob3VzZTo5MDAwL3NpZ25vel9tZXRyaWNzXG4gIGNsaWNraG91c2Vsb2dzZXhwb3J0ZXI6XG4gICAgZHNuOiB0Y3A6Ly9jbGlja2hvdXNlOjkwMDAvc2lnbm96X2xvZ3NcbiAgICB0aW1lb3V0OiAxMHNcbiAgICB1c2VfbmV3X3NjaGVtYTogdHJ1ZVxuc2VydmljZTpcbiAgdGVsZW1ldHJ5OlxuICAgIGxvZ3M6XG4gICAgICBlbmNvZGluZzoganNvblxuICBleHRlbnNpb25zOlxuICAgIC0gaGVhbHRoX2NoZWNrXG4gICAgLSBwcHJvZlxuICBwaXBlbGluZXM6XG4gICAgdHJhY2VzOlxuICAgICAgcmVjZWl2ZXJzOiBbb3RscF1cbiAgICAgIHByb2Nlc3NvcnM6IFtzaWdub3pzcGFubWV0cmljcy9kZWx0YSwgYmF0Y2hdXG4gICAgICBleHBvcnRlcnM6IFtjbGlja2hvdXNldHJhY2VzXVxuICAgIG1ldHJpY3M6XG4gICAgICByZWNlaXZlcnM6IFtvdGxwXVxuICAgICAgcHJvY2Vzc29yczogW2JhdGNoXVxuICAgICAgZXhwb3J0ZXJzOiBbc2lnbm96Y2xpY2tob3VzZW1ldHJpY3NdXG4gICAgbWV0cmljcy9wcm9tZXRoZXVzOlxuICAgICAgcmVjZWl2ZXJzOiBbcHJvbWV0aGV1c11cbiAgICAgIHByb2Nlc3NvcnM6IFtiYXRjaF1cbiAgICAgIGV4cG9ydGVyczogW3NpZ25vemNsaWNraG91c2VtZXRyaWNzXVxuICAgIGxvZ3M6XG4gICAgICByZWNlaXZlcnM6IFtvdGxwXVxuICAgICAgcHJvY2Vzc29yczogW2JhdGNoXVxuICAgICAgZXhwb3J0ZXJzOiBbY2xpY2tob3VzZWxvZ3NleHBvcnRlcl0iCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL290ZWwtY29sbGVjdG9yLW9wYW1wLWNvbmZpZy55YW1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL21hbmFnZXItY29uZmlnLnlhbWwKICAgICAgICBjb250ZW50OiAic2VydmVyX2VuZHBvaW50OiB3czovL3NpZ25vejo0MzIwL3YxL29wYW1wXG4iCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fT1RFTENPTExFQ1RPUkhUVFBfNDMxOAogICAgICAtICdPVEVMX1JFU09VUkNFX0FUVFJJQlVURVM9aG9zdC5uYW1lPXNpZ25vei1ob3N0LG9zLnR5cGU9bGludXgnCiAgICAgIC0gTE9XX0NBUkRJTkFMX0VYQ0VQVElPTl9HUk9VUElORz1mYWxzZQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6ICdiYXNoIC1jICJleGVjIDY8PiAvZGV2L3RjcC9sb2NhbGhvc3QvMTMxMzMiJwogICAgICBpbnRlcnZhbDogMzBzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDMKICBzY2hlbWEtbWlncmF0b3Itc3luYzoKICAgIGltYWdlOiAnc2lnbm96L3NpZ25vei1zY2hlbWEtbWlncmF0b3I6djAuMTI5LjcnCiAgICBjb21tYW5kOgogICAgICAtIHN5bmMKICAgICAgLSAnLS1kc249dGNwOi8vY2xpY2tob3VzZTo5MDAwJwogICAgICAtICctLXVwPScKICAgIGRlcGVuZHNfb246CiAgICAgIGNsaWNraG91c2U6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHJlc3RhcnQ6IG9uLWZhaWx1cmUKICAgIGV4Y2x1ZGVfZnJvbV9oYzogdHJ1ZQogICAgbG9nZ2luZzoKICAgICAgb3B0aW9uczoKICAgICAgICBtYXgtc2l6ZTogNTBtCiAgICAgICAgbWF4LWZpbGU6ICczJwogIHNjaGVtYS1taWdyYXRvci1hc3luYzoKICAgIGltYWdlOiAnc2lnbm96L3NpZ25vei1zY2hlbWEtbWlncmF0b3I6djAuMTI5LjcnCiAgICBkZXBlbmRzX29uOgogICAgICBjbGlja2hvdXNlOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICAgIHNjaGVtYS1taWdyYXRvci1zeW5jOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5CiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGxvZ2dpbmc6CiAgICAgIG9wdGlvbnM6CiAgICAgICAgbWF4LXNpemU6IDUwbQogICAgICAgIG1heC1maWxlOiAnMycKICAgIGNvbW1hbmQ6CiAgICAgIC0gYXN5bmMKICAgICAgLSAnLS1kc249dGNwOi8vY2xpY2tob3VzZTo5MDAwJwogICAgICAtICctLXVwPScK", "tags": [ "telemetry", "server",