@beiguancyc/parse-server 9.10.5-ruixiang.1 → 9.10.6-ruixiang.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +9 -2
- package/lib/Adapters/Storage/StorageAdapter.js +1 -1
- package/lib/Auth.js +10 -5
- package/lib/Controllers/SchemaController.js +8 -2
- package/lib/Options/Definitions.js +2 -2
- package/lib/Options/docs.js +2 -2
- package/lib/Options/index.js +1 -1
- package/lib/RestWrite.js +248 -32
- package/lib/Routers/SessionsRouter.js +5 -1
- package/lib/Utils.js +17 -1
- package/lib/cloud-code/Parse.Cloud.js +3 -1
- package/lib/triggers.js +4 -4
- package/package.json +1 -1
|
@@ -519,7 +519,7 @@ module.exports.ParseServerOptions = {
|
|
|
519
519
|
},
|
|
520
520
|
protectedFieldsSaveResponseExempt: {
|
|
521
521
|
env: 'PARSE_SERVER_PROTECTED_FIELDS_SAVE_RESPONSE_EXEMPT',
|
|
522
|
-
help:
|
|
522
|
+
help: "Whether save operation responses (create, update) are exempt from `protectedFields`. If `true` (default), protected fields modified during a save are included in the response to the client. If `false`, protected fields are stripped from save responses, consistent with how they are stripped from query results. Independently of this option, for a request without the master key or maintenance key, an update response contains stored field values only if the class-level permissions and the ACL allow the client to read the object, unless an `afterSave` trigger of the object's class returns a plain object as the response. Defaults to `true`.",
|
|
523
523
|
action: parsers.booleanParser,
|
|
524
524
|
default: true
|
|
525
525
|
},
|
|
@@ -1606,4 +1606,4 @@ module.exports.LogLevels = {
|
|
|
1606
1606
|
default: 'info'
|
|
1607
1607
|
}
|
|
1608
1608
|
};
|
|
1609
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZXJzIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJTY2hlbWFPcHRpb25zIiwiYWZ0ZXJNaWdyYXRpb24iLCJlbnYiLCJoZWxwIiwiYmVmb3JlTWlncmF0aW9uIiwiZGVmaW5pdGlvbnMiLCJyZXF1aXJlZCIsImFjdGlvbiIsIm9iamVjdFBhcnNlciIsImRlZmF1bHQiLCJkZWxldGVFeHRyYUZpZWxkcyIsImJvb2xlYW5QYXJzZXIiLCJrZWVwVW5rbm93bkluZGV4ZXMiLCJsb2NrU2NoZW1hcyIsInJlY3JlYXRlTW9kaWZpZWRGaWVsZHMiLCJzdHJpY3QiLCJQYXJzZVNlcnZlck9wdGlvbnMiLCJhY2NvdW50TG9ja291dCIsInR5cGUiLCJhbGxvd0FnZ3JlZ2F0aW9uRm9yUmVhZE9ubHlNYXN0ZXJLZXkiLCJhbGxvd0NsaWVudENsYXNzQ3JlYXRpb24iLCJhbGxvd0N1c3RvbU9iamVjdElkIiwiYWxsb3dFeHBpcmVkQXV0aERhdGFUb2tlbiIsImFsbG93SGVhZGVycyIsImFycmF5UGFyc2VyIiwiYWxsb3dPcmlnaW4iLCJhbmFseXRpY3NBZGFwdGVyIiwibW9kdWxlT3JPYmplY3RQYXJzZXIiLCJhcHBJZCIsImFwcE5hbWUiLCJhdXRoIiwiY2FjaGVBZGFwdGVyIiwiY2FjaGVNYXhTaXplIiwibnVtYmVyUGFyc2VyIiwiY2FjaGVUVEwiLCJjbGllbnRLZXkiLCJjbG91ZCIsImNsdXN0ZXIiLCJudW1iZXJPckJvb2xQYXJzZXIiLCJjb2xsZWN0aW9uUHJlZml4IiwiY29udmVydEVtYWlsVG9Mb3dlcmNhc2UiLCJjb252ZXJ0VXNlcm5hbWVUb0xvd2VyY2FzZSIsImN1c3RvbVBhZ2VzIiwiZGF0YWJhc2VBZGFwdGVyIiwiZGF0YWJhc2VPcHRpb25zIiwiZGF0YWJhc2VVUkkiLCJkZWZhdWx0TGltaXQiLCJkaXJlY3RBY2Nlc3MiLCJkb3ROZXRLZXkiLCJlbWFpbEFkYXB0ZXIiLCJlbWFpbFZlcmlmeVN1Y2Nlc3NPbkludmFsaWRFbWFpbCIsImVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQiLCJlbWFpbFZlcmlmeVRva2VuVmFsaWRpdHlEdXJhdGlvbiIsImVuYWJsZUFub255bW91c1VzZXJzIiwiZW5hYmxlQ29sbGF0aW9uQ2FzZUNvbXBhcmlzb24iLCJlbmFibGVFeHByZXNzRXJyb3JIYW5kbGVyIiwiZW5hYmxlSW5zZWN1cmVBdXRoQWRhcHRlcnMiLCJlbmFibGVMaXZlUXVlcnlDbGFzc0xldmVsUGVybWlzc2lvblJvbGVzIiwiZW5hYmxlUHJvZHVjdFB1cmNoYXNlTGVnYWN5QXBpIiwiZW5hYmxlU2FuaXRpemVkRXJyb3JSZXNwb25zZSIsImVuY3J5cHRpb25LZXkiLCJlbmZvcmNlUHJpdmF0ZVVzZXJzIiwiZXhwaXJlSW5hY3RpdmVTZXNzaW9ucyIsImV4dGVuZFNlc3Npb25PblVzZSIsImZpbGVEb3dubG9hZCIsImZpbGVLZXkiLCJmaWxlc0FkYXB0ZXIiLCJmaWxlVXBsb2FkIiwiZ3JhcGhRTFBhdGgiLCJncmFwaFFMUHVibGljSW50cm9zcGVjdGlvbiIsImdyYXBoUUxTY2hlbWEiLCJob3N0IiwiaWRlbXBvdGVuY3lPcHRpb25zIiwiaW5zdGFsbGF0aW9uIiwiamF2YXNjcmlwdEtleSIsImpzb25Mb2dzIiwibGl2ZVF1ZXJ5IiwibGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucyIsImxvZ2dlckFkYXB0ZXIiLCJsb2dMZXZlbCIsImxvZ0xldmVscyIsImxvZ3NGb2xkZXIiLCJsb2dTdHJpbmdUcnVuY2F0ZUxlbmd0aCIsIm1haW50ZW5hbmNlS2V5IiwibWFpbnRlbmFuY2VLZXlJcHMiLCJtYXN0ZXJLZXkiLCJtYXN0ZXJLZXlJcHMiLCJtYXN0ZXJLZXlUdGwiLCJtYXhMaW1pdCIsIm1heExvZ0ZpbGVzIiwibnVtYmVyT3JTdHJpbmdQYXJzZXIiLCJtYXhVcGxvYWRTaXplIiwibWlkZGxld2FyZSIsIm1vdW50R3JhcGhRTCIsIm1vdW50UGF0aCIsIm1vdW50UGxheWdyb3VuZCIsIm9iamVjdElkU2l6ZSIsInBhZ2VzIiwicGFzc3dvcmRQb2xpY3kiLCJwbGF5Z3JvdW5kUGF0aCIsInBvcnQiLCJwcmVzZXJ2ZUZpbGVOYW1lIiwicHJldmVudExvZ2luV2l0aFVudmVyaWZpZWRFbWFpbCIsImJvb2xlYW5PckZ1bmN0aW9uUGFyc2VyIiwicHJldmVudFNpZ251cFdpdGhVbnZlcmlmaWVkRW1haWwiLCJwcm90ZWN0ZWRGaWVsZHMiLCJfVXNlciIsInByb3RlY3RlZEZpZWxkc093bmVyRXhlbXB0IiwicHJvdGVjdGVkRmllbGRzU2F2ZVJlc3BvbnNlRXhlbXB0IiwicHJvdGVjdGVkRmllbGRzVHJpZ2dlckV4ZW1wdCIsInB1YmxpY1NlcnZlclVSTCIsInB1c2giLCJxdWVyeSIsInJhdGVMaW1pdCIsInJlYWRPbmx5TWFzdGVyS2V5IiwicmVhZE9ubHlNYXN0ZXJLZXlJcHMiLCJyZXF1ZXN0Q29tcGxleGl0eSIsInJlcXVlc3RDb250ZXh0TWlkZGxld2FyZSIsInJlcXVlc3RLZXl3b3JkRGVueWxpc3QiLCJrZXkiLCJ2YWx1ZSIsInJlc3RBUElLZXkiLCJyZXZva2VTZXNzaW9uT25QYXNzd29yZFJlc2V0Iiwicm91dGVBbGxvd0xpc3QiLCJzY2hlZHVsZWRQdXNoIiwic2NoZW1hIiwic2VjdXJpdHkiLCJzZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uIiwic2VydmVyQ2xvc2VDb21wbGV0ZSIsInNlcnZlclVSTCIsInNlc3Npb25MZW5ndGgiLCJzaWxlbnQiLCJzdGFydExpdmVRdWVyeVNlcnZlciIsInRydXN0UHJveHkiLCJ1c2VyU2Vuc2l0aXZlRmllbGRzIiwidmVyYm9zZSIsInZlcmlmeVNlcnZlclVybCIsInZlcmlmeVVzZXJFbWFpbHMiLCJ3ZWJob29rS2V5IiwiUmF0ZUxpbWl0T3B0aW9ucyIsImVycm9yUmVzcG9uc2VNZXNzYWdlIiwiaW5jbHVkZUludGVybmFsUmVxdWVzdHMiLCJpbmNsdWRlTWFzdGVyS2V5IiwicmVkaXNVcmwiLCJyZXF1ZXN0Q291bnQiLCJyZXF1ZXN0TWV0aG9kcyIsInJlcXVlc3RQYXRoIiwicmVxdWVzdFRpbWVXaW5kb3ciLCJ6b25lIiwiUmVxdWVzdENvbXBsZXhpdHlPcHRpb25zIiwiYWxsb3dSZWdleCIsImJhdGNoUmVxdWVzdExpbWl0IiwiZ3JhcGhRTERlcHRoIiwiZ3JhcGhRTEZpZWxkcyIsImluY2x1ZGVDb3VudCIsImluY2x1ZGVEZXB0aCIsInF1ZXJ5RGVwdGgiLCJzdWJxdWVyeURlcHRoIiwic3VicXVlcnlMaW1pdCIsIkluc3RhbGxhdGlvbk9wdGlvbnMiLCJkdXBsaWNhdGVEZXZpY2VUb2tlbkFjdGlvbiIsImR1cGxpY2F0ZURldmljZVRva2VuQWN0aW9uRW5mb3JjZUF1dGgiLCJkdXBsaWNhdGVEZXZpY2VUb2tlbk1lcmdlUHJpb3JpdHkiLCJTZWN1cml0eU9wdGlvbnMiLCJjaGVja0dyb3VwcyIsImVuYWJsZUNoZWNrIiwiZW5hYmxlQ2hlY2tMb2ciLCJRdWVyeVNlcnZlck9wdGlvbnMiLCJhZ2dyZWdhdGlvblJhd0ZpZWxkTmFtZXMiLCJhZ2dyZWdhdGlvblJhd1ZhbHVlcyIsIlBhZ2VzT3B0aW9ucyIsImN1c3RvbVJvdXRlcyIsImN1c3RvbVVybHMiLCJlbmFibGVMb2NhbGl6YXRpb24iLCJlbmNvZGVQYWdlUGFyYW1IZWFkZXJzIiwiZm9yY2VSZWRpcmVjdCIsImxvY2FsaXphdGlvbkZhbGxiYWNrTG9jYWxlIiwibG9jYWxpemF0aW9uSnNvblBhdGgiLCJwYWdlc0VuZHBvaW50IiwicGFnZXNQYXRoIiwicGxhY2Vob2xkZXJzIiwiUGFnZXNSb3V0ZSIsImhhbmRsZXIiLCJtZXRob2QiLCJwYXRoIiwiUGFnZXNDdXN0b21VcmxzT3B0aW9ucyIsImVtYWlsVmVyaWZpY2F0aW9uTGlua0V4cGlyZWQiLCJlbWFpbFZlcmlmaWNhdGlvbkxpbmtJbnZhbGlkIiwiZW1haWxWZXJpZmljYXRpb25TZW5kRmFpbCIsImVtYWlsVmVyaWZpY2F0aW9uU2VuZFN1Y2Nlc3MiLCJlbWFpbFZlcmlmaWNhdGlvblN1Y2Nlc3MiLCJwYXNzd29yZFJlc2V0IiwicGFzc3dvcmRSZXNldExpbmtJbnZhbGlkIiwicGFzc3dvcmRSZXNldFN1Y2Nlc3MiLCJDdXN0b21QYWdlc09wdGlvbnMiLCJjaG9vc2VQYXNzd29yZCIsImV4cGlyZWRWZXJpZmljYXRpb25MaW5rIiwiaW52YWxpZExpbmsiLCJpbnZhbGlkUGFzc3dvcmRSZXNldExpbmsiLCJpbnZhbGlkVmVyaWZpY2F0aW9uTGluayIsImxpbmtTZW5kRmFpbCIsImxpbmtTZW5kU3VjY2VzcyIsInBhcnNlRnJhbWVVUkwiLCJ2ZXJpZnlFbWFpbFN1Y2Nlc3MiLCJMaXZlUXVlcnlPcHRpb25zIiwiY2xhc3NOYW1lcyIsInB1YlN1YkFkYXB0ZXIiLCJyZWRpc09wdGlvbnMiLCJyZWRpc1VSTCIsInJlZ2V4VGltZW91dCIsIndzc0FkYXB0ZXIiLCJMaXZlUXVlcnlTZXJ2ZXJPcHRpb25zIiwiY2FjaGVUaW1lb3V0Iiwia2V5UGFpcnMiLCJ3ZWJzb2NrZXRUaW1lb3V0IiwiSWRlbXBvdGVuY3lPcHRpb25zIiwicGF0aHMiLCJ0dGwiLCJBY2NvdW50TG9ja291dE9wdGlvbnMiLCJkdXJhdGlvbiIsInRocmVzaG9sZCIsInVubG9ja09uUGFzc3dvcmRSZXNldCIsIlBhc3N3b3JkUG9saWN5T3B0aW9ucyIsImRvTm90QWxsb3dVc2VybmFtZSIsIm1heFBhc3N3b3JkQWdlIiwibWF4UGFzc3dvcmRIaXN0b3J5IiwicmVzZXRQYXNzd29yZFN1Y2Nlc3NPbkludmFsaWRFbWFpbCIsInJlc2V0VG9rZW5SZXVzZUlmVmFsaWQiLCJyZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbiIsInZhbGlkYXRpb25FcnJvciIsInZhbGlkYXRvckNhbGxiYWNrIiwidmFsaWRhdG9yUGF0dGVybiIsIkZpbGVVcGxvYWRPcHRpb25zIiwiYWxsb3dlZEZpbGVVcmxEb21haW5zIiwiZW5hYmxlRm9yQW5vbnltb3VzVXNlciIsImVuYWJsZUZvckF1dGhlbnRpY2F0ZWRVc2VyIiwiZW5hYmxlRm9yUHVibGljIiwiZmlsZUV4dGVuc2lvbnMiLCJGaWxlRG93bmxvYWRPcHRpb25zIiwiTG9nTGV2ZWwiLCJkZWJ1ZyIsImVycm9yIiwiaW5mbyIsInNpbGx5Iiwid2FybiIsIkxvZ0NsaWVudEV2ZW50Iiwia2V5cyIsIm5hbWUiLCJEYXRhYmFzZU9wdGlvbnMiLCJhbGxvd1B1YmxpY0V4cGxhaW4iLCJhdXRoTWVjaGFuaXNtIiwiYXV0aE1lY2hhbmlzbVByb3BlcnRpZXMiLCJhdXRoU291cmNlIiwiYXV0b1NlbGVjdEZhbWlseSIsImF1dG9TZWxlY3RGYW1pbHlBdHRlbXB0VGltZW91dCIsImJhdGNoU2l6ZSIsImNsaWVudE1ldGFkYXRhIiwiY29tcHJlc3NvcnMiLCJjb25uZWN0VGltZW91dE1TIiwiY3JlYXRlSW5kZXhBdXRoRGF0YVVuaXF1ZW5lc3MiLCJjcmVhdGVJbmRleFJvbGVOYW1lIiwiY3JlYXRlSW5kZXhVc2VyRW1haWwiLCJjcmVhdGVJbmRleFVzZXJFbWFpbENhc2VJbnNlbnNpdGl2ZSIsImNyZWF0ZUluZGV4VXNlckVtYWlsVmVyaWZ5VG9rZW4iLCJjcmVhdGVJbmRleFVzZXJQYXNzd29yZFJlc2V0VG9rZW4iLCJjcmVhdGVJbmRleFVzZXJVc2VybmFtZSIsImNyZWF0ZUluZGV4VXNlclVzZXJuYW1lQ2FzZUluc2Vuc2l0aXZlIiwiZGlyZWN0Q29ubmVjdGlvbiIsImRpc2FibGVJbmRleEZpZWxkVmFsaWRhdGlvbiIsImVuYWJsZVNjaGVtYUhvb2tzIiwiZm9yY2VTZXJ2ZXJPYmplY3RJZCIsImhlYXJ0YmVhdEZyZXF1ZW5jeU1TIiwibG9hZEJhbGFuY2VkIiwibG9jYWxUaHJlc2hvbGRNUyIsImxvZ0NsaWVudEV2ZW50cyIsIm1heENvbm5lY3RpbmciLCJtYXhJZGxlVGltZU1TIiwibWF4UG9vbFNpemUiLCJtYXhTdGFsZW5lc3NTZWNvbmRzIiwibWF4VGltZU1TIiwibWluUG9vbFNpemUiLCJwcm94eUhvc3QiLCJwcm94eVBhc3N3b3JkIiwicHJveHlQb3J0IiwicHJveHlVc2VybmFtZSIsInJlYWRDb25jZXJuTGV2ZWwiLCJyZWFkUHJlZmVyZW5jZSIsInJlYWRQcmVmZXJlbmNlVGFncyIsInJlcGxpY2FTZXQiLCJyZXRyeVJlYWRzIiwicmV0cnlXcml0ZXMiLCJzY2hlbWFDYWNoZVR0bCIsInNlcnZlck1vbml0b3JpbmdNb2RlIiwic2VydmVyU2VsZWN0aW9uVGltZW91dE1TIiwic29ja2V0VGltZW91dE1TIiwic3J2TWF4SG9zdHMiLCJzcnZTZXJ2aWNlTmFtZSIsInNzbCIsInRscyIsInRsc0FsbG93SW52YWxpZENlcnRpZmljYXRlcyIsInRsc0FsbG93SW52YWxpZEhvc3RuYW1lcyIsInRsc0NBRmlsZSIsInRsc0NlcnRpZmljYXRlS2V5RmlsZSIsInRsc0NlcnRpZmljYXRlS2V5RmlsZVBhc3N3b3JkIiwidGxzSW5zZWN1cmUiLCJ3YWl0UXVldWVUaW1lb3V0TVMiLCJ6bGliQ29tcHJlc3Npb25MZXZlbCIsIkRhdGFiYXNlT3B0aW9uc0NsaWVudE1ldGFkYXRhIiwidmVyc2lvbiIsIkF1dGhBZGFwdGVyIiwiZW5hYmxlZCIsIkxvZ0xldmVscyIsImNsb3VkRnVuY3Rpb25FcnJvciIsImNsb3VkRnVuY3Rpb25TdWNjZXNzIiwic2lnbnVwVXNlcm5hbWVUYWtlbiIsInRyaWdnZXJBZnRlciIsInRyaWdnZXJCZWZvcmVFcnJvciIsInRyaWdnZXJCZWZvcmVTdWNjZXNzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL09wdGlvbnMvRGVmaW5pdGlvbnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbioqKiogR0VORVJBVEVEIENPREUgKioqKlxuVGhpcyBjb2RlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSByZXNvdXJjZXMvYnVpbGRDb25maWdEZWZpbml0aW9ucy5qc1xuRG8gbm90IGVkaXQgbWFudWFsbHksIGJ1dCB1cGRhdGUgT3B0aW9ucy9pbmRleC5qc1xuKi9cbnZhciBwYXJzZXJzID0gcmVxdWlyZSgnLi9wYXJzZXJzJyk7XG5tb2R1bGUuZXhwb3J0cy5TY2hlbWFPcHRpb25zID0ge1xuICBhZnRlck1pZ3JhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfQUZURVJfTUlHUkFUSU9OJyxcbiAgICBoZWxwOiAnRXhlY3V0ZSBhIGNhbGxiYWNrIGFmdGVyIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbnMuJyxcbiAgfSxcbiAgYmVmb3JlTWlncmF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9CRUZPUkVfTUlHUkFUSU9OJyxcbiAgICBoZWxwOiAnRXhlY3V0ZSBhIGNhbGxiYWNrIGJlZm9yZSBydW5uaW5nIHNjaGVtYSBtaWdyYXRpb25zLicsXG4gIH0sXG4gIGRlZmluaXRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9ERUZJTklUSU9OUycsXG4gICAgaGVscDogJ1Jlc3QgcmVwcmVzZW50YXRpb24gb24gUGFyc2UuU2NoZW1hIGh0dHBzOi8vZG9jcy5wYXJzZXBsYXRmb3JtLm9yZy9yZXN0L2d1aWRlLyNhZGRpbmctYS1zY2hlbWEnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDogW10sXG4gIH0sXG4gIGRlbGV0ZUV4dHJhRmllbGRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9ERUxFVEVfRVhUUkFfRklFTERTJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGRlbGV0ZSBhbnkgZmllbGRzIG5vdCBkZWZpbmVkIGluIGEgc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAga2VlcFVua25vd25JbmRleGVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9LRUVQX1VOS05PV05fSU5ERVhFUycsXG4gICAgaGVscDogXCIoT3B0aW9uYWwpIEtlZXAgaW5kZXhlcyB0aGF0IGFyZSBwcmVzZW50IGluIHRoZSBkYXRhYmFzZSBidXQgbm90IGRlZmluZWQgaW4gdGhlIHNjaGVtYS4gU2V0IHRoaXMgdG8gYHRydWVgIGlmIHlvdSBhcmUgYWRkaW5nIGluZGV4ZXMgbWFudWFsbHksIHNvIHRoYXQgdGhleSB3b24ndCBiZSByZW1vdmVkIHdoZW4gcnVubmluZyBzY2hlbWEgbWlncmF0aW9uLiBEZWZhdWx0IGlzIGBmYWxzZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGxvY2tTY2hlbWFzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9MT0NLX1NDSEVNQVMnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciB3aWxsIHJlamVjdCBhbnkgYXR0ZW1wdHMgdG8gbW9kaWZ5IHRoZSBzY2hlbWEgd2hpbGUgdGhlIHNlcnZlciBpcyBydW5uaW5nLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHJlY3JlYXRlTW9kaWZpZWRGaWVsZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRU1BX1JFQ1JFQVRFX01PRElGSUVEX0ZJRUxEUycsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgUGFyc2UgU2VydmVyIHNob3VsZCByZWNyZWF0ZSBhbnkgZmllbGRzIHRoYXQgYXJlIGRpZmZlcmVudCBiZXR3ZWVuIHRoZSBjdXJyZW50IGRhdGFiYXNlIHNjaGVtYSBhbmQgdGhlc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgc3RyaWN0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9TVFJJQ1QnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciBzaG91bGQgZXhpdCBpZiBzY2hlbWEgdXBkYXRlIGZhaWwuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYXJzZVNlcnZlck9wdGlvbnMgPSB7XG4gIGFjY291bnRMb2Nrb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVCcsXG4gICAgaGVscDogXCJUaGUgYWNjb3VudCBsb2Nrb3V0IHBvbGljeSBmb3IgZmFpbGVkIGxvZ2luIGF0dGVtcHRzLjxicj48YnI+Tm90ZTogU2V0dGluZyBhIHVzZXIncyBBQ0wgdG8gYW4gZW1wdHkgb2JqZWN0IGB7fWAgdmlhIG1hc3RlciBrZXkgaXMgYSBzZXBhcmF0ZSBtZWNoYW5pc20gdGhhdCBvbmx5IHByZXZlbnRzIG5ldyBsb2dpbnM7IGl0IGRvZXMgbm90IGludmFsaWRhdGUgZXhpc3Rpbmcgc2Vzc2lvbiB0b2tlbnMuIFRvIGltbWVkaWF0ZWx5IHJldm9rZSBhIHVzZXIncyBhY2Nlc3MsIGRlc3Ryb3kgdGhlaXIgc2Vzc2lvbnMgdmlhIG1hc3RlciBrZXkgaW4gYWRkaXRpb24gdG8gc2V0dGluZyB0aGUgQUNMLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0FjY291bnRMb2Nrb3V0T3B0aW9ucycsXG4gIH0sXG4gIGFsbG93QWdncmVnYXRpb25Gb3JSZWFkT25seU1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19BR0dSRUdBVElPTl9GT1JfUkVBRF9PTkxZX01BU1RFUl9LRVknLFxuICAgIGhlbHA6ICdXaGV0aGVyIHRoZSBgcmVhZE9ubHlNYXN0ZXJLZXlgIGlzIGFsbG93ZWQgdG8gcnVuIGFnZ3JlZ2F0aW9uIHBpcGVsaW5lcyB2aWEgdGhlIGFnZ3JlZ2F0ZSBlbmRwb2ludC4gQW4gYWdncmVnYXRpb24gcGlwZWxpbmUgY2FuIGNvbnRhaW4gd3JpdGUtY2FwYWJsZSBzdGFnZXMgKGZvciBleGFtcGxlIE1vbmdvREIgYCRvdXRgIGFuZCBgJG1lcmdlYCksIHNvIGFsbG93aW5nIGFnZ3JlZ2F0aW9uIGVmZmVjdGl2ZWx5IGdpdmVzIHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleSBhIHdheSB0byBwZXJmb3JtIHdyaXRlcywgY29udHJhcnkgdG8gaXRzIHJlYWQtb25seSBpbnRlbnQuIElmIGB0cnVlYCAoZGVmYXVsdCksIHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleSBjYW4gcnVuIGFnZ3JlZ2F0aW9uIHBpcGVsaW5lcy4gSWYgYGZhbHNlYCwgdGhlIHJlYWQtb25seSBtYXN0ZXIga2V5IGNhbm5vdCBydW4gYWdncmVnYXRpb24gcGlwZWxpbmVzIGF0IGFsbC4gTm90ZSB0aGF0IHRoZSBgcmVhZE9ubHlNYXN0ZXJLZXlgIGlzIGEgc2VjcmV0IGtleSBmb3IgaW50ZXJuYWwgc2VydmVyLXNpZGUgdXNlIG9ubHkgYW5kIG11c3QgbmV2ZXIgYmUgZGlzdHJpYnV0ZWQ7IHRoaXMgb3B0aW9uIGlzIGFuIGFkZGl0aW9uYWwgc2FmZWd1YXJkLCBub3QgYSBzdWJzdGl0dXRlIGZvciBrZWVwaW5nIHRoZSBrZXkgY29uZmlkZW50aWFsLiBEZWZhdWx0cyB0byBgdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBhbGxvd0NsaWVudENsYXNzQ3JlYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUxMT1dfQ0xJRU5UX0NMQVNTX0NSRUFUSU9OJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSBjbGllbnQgY2xhc3MgY3JlYXRpb24sIGRlZmF1bHRzIHRvIGZhbHNlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYWxsb3dDdXN0b21PYmplY3RJZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19DVVNUT01fT0JKRUNUX0lEJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSBjdXN0b20gb2JqZWN0SWQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBhbGxvd0V4cGlyZWRBdXRoRGF0YVRva2VuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0VYUElSRURfQVVUSF9EQVRBX1RPS0VOJyxcbiAgICBoZWxwOiAnRGVwcmVjYXRlZC4gVGhpcyBvcHRpb24gd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uIEF1dGggcHJvdmlkZXJzIGFyZSBhbHdheXMgdmFsaWRhdGVkIG9uIGxvZ2luLiBPbiB1cGRhdGUsIGlmIHRoaXMgaXMgc2V0IHRvIGB0cnVlYCwgYXV0aCBwcm92aWRlcnMgYXJlIG9ubHkgcmUtdmFsaWRhdGVkIHdoZW4gdGhlIGF1dGggZGF0YSBoYXMgY2hhbmdlZC4gSWYgdGhpcyBpcyBzZXQgdG8gYGZhbHNlYCwgYXV0aCBwcm92aWRlcnMgYXJlIHJlLXZhbGlkYXRlZCBvbiBldmVyeSB1cGRhdGUuIERlZmF1bHRzIHRvIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYWxsb3dIZWFkZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0hFQURFUlMnLFxuICAgIGhlbHA6ICdBZGQgaGVhZGVycyB0byBBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIGFsbG93T3JpZ2luOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX09SSUdJTicsXG4gICAgaGVscDogJ1NldHMgb3JpZ2lucyBmb3IgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLiBUaGlzIGNhbiBiZSBhIHN0cmluZyBmb3IgYSBzaW5nbGUgb3JpZ2luIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MgZm9yIG11bHRpcGxlIG9yaWdpbnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIGFuYWx5dGljc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQU5BTFlUSUNTX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGFuYWx5dGljcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBhcHBJZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BUFBMSUNBVElPTl9JRCcsXG4gICAgaGVscDogJ1lvdXIgUGFyc2UgQXBwbGljYXRpb24gSUQnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBhcHBOYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FQUF9OQU1FJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgYXBwIG5hbWUnLFxuICB9LFxuICBhdXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FVVEhfUFJPVklERVJTJyxcbiAgICBoZWxwOiBcIkNvbmZpZ3VyYXRpb24gZm9yIHlvdXIgYXV0aGVudGljYXRpb24gcHJvdmlkZXJzLCBhcyBzdHJpbmdpZmllZCBKU09OLiBTZWUgaHR0cDovL2RvY3MucGFyc2VwbGF0Zm9ybS5vcmcvcGFyc2Utc2VydmVyL2d1aWRlLyNvYXV0aC1hbmQtM3JkLXBhcnR5LWF1dGhlbnRpY2F0aW9uPGJyPjxicj5Qcm92aWRlciBuYW1lcyBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgYW5kIGNvbnRhaW4gb25seSBsZXR0ZXJzLCBkaWdpdHMsIGFuZCB1bmRlcnNjb3JlcyAoYC9eW0EtWmEtel1bQS1aYS16MC05X10qJC9gKS4gVGhpcyBpcyBiZWNhdXNlIGVhY2ggcHJvdmlkZXIgbmFtZSBpcyB1c2VkIHRvIGNvbnN0cnVjdCBhIGRhdGFiYXNlIGZpZWxkIChgX2F1dGhfZGF0YV88cHJvdmlkZXI+YCksIHdoaWNoIG11c3QgY29tcGx5IHdpdGggUGFyc2UgU2VydmVyJ3MgZmllbGQgbmFtaW5nIHJ1bGVzLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIGNhY2hlQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DQUNIRV9BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBjYWNoZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBjYWNoZU1heFNpemU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfTUFYX1NJWkUnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBtYXhpbXVtIHNpemUgZm9yIHRoZSBpbiBtZW1vcnkgY2FjaGUsIGRlZmF1bHRzIHRvIDEwMDAwJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjYWNoZU1heFNpemUnKSxcbiAgICBkZWZhdWx0OiAxMDAwMCxcbiAgfSxcbiAgY2FjaGVUVEw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfVFRMJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgVFRMIGZvciB0aGUgaW4gbWVtb3J5IGNhY2hlIChpbiBtcyksIGRlZmF1bHRzIHRvIDUwMDAgKDUgc2Vjb25kcyknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2NhY2hlVFRMJyksXG4gICAgZGVmYXVsdDogNTAwMCxcbiAgfSxcbiAgY2xpZW50S2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMSUVOVF9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIGlPUywgTWFjT1MsIHR2T1MgY2xpZW50cycsXG4gIH0sXG4gIGNsb3VkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMT1VEJyxcbiAgICBoZWxwOiAnRnVsbCBwYXRoIHRvIHlvdXIgY2xvdWQgY29kZSBtYWluLmpzJyxcbiAgfSxcbiAgY2x1c3Rlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DTFVTVEVSJyxcbiAgICBoZWxwOiAnUnVuIHdpdGggY2x1c3Rlciwgb3B0aW9uYWxseSBzZXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMgZGVmYXVsdCB0byBvcy5jcHVzKCkubGVuZ3RoJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyT3JCb29sUGFyc2VyKCdjbHVzdGVyJyksXG4gIH0sXG4gIGNvbGxlY3Rpb25QcmVmaXg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ09MTEVDVElPTl9QUkVGSVgnLFxuICAgIGhlbHA6ICdBIGNvbGxlY3Rpb24gcHJlZml4IGZvciB0aGUgY2xhc3NlcycsXG4gICAgZGVmYXVsdDogJycsXG4gIH0sXG4gIGNvbnZlcnRFbWFpbFRvTG93ZXJjYXNlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NPTlZFUlRfRU1BSUxfVE9fTE9XRVJDQVNFJyxcbiAgICBoZWxwOiAnT3B0aW9uYWwuIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBgZW1haWxgIHByb3BlcnR5IG9mIGEgdXNlciBpcyBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBsb3dlcmNhc2UgYmVmb3JlIGJlaW5nIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuIENvbnNlcXVlbnRseSwgcXVlcmllcyBtdXN0IG1hdGNoIHRoZSBjYXNlIGFzIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIHdoaWNoIHdvdWxkIGJlIGxvd2VyY2FzZSBpbiB0aGlzIHNjZW5hcmlvLiBJZiBgZmFsc2VgLCB0aGUgYGVtYWlsYCBwcm9wZXJ0eSBpcyBzdG9yZWQgYXMgc2V0LCB3aXRob3V0IGFueSBjYXNlIG1vZGlmaWNhdGlvbnMuIERlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBjb252ZXJ0VXNlcm5hbWVUb0xvd2VyY2FzZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DT05WRVJUX1VTRVJOQU1FX1RPX0xPV0VSQ0FTRScsXG4gICAgaGVscDogJ09wdGlvbmFsLiBJZiBzZXQgdG8gYHRydWVgLCB0aGUgYHVzZXJuYW1lYCBwcm9wZXJ0eSBvZiBhIHVzZXIgaXMgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlIGJlZm9yZSBiZWluZyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLiBDb25zZXF1ZW50bHksIHF1ZXJpZXMgbXVzdCBtYXRjaCB0aGUgY2FzZSBhcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCB3aGljaCB3b3VsZCBiZSBsb3dlcmNhc2UgaW4gdGhpcyBzY2VuYXJpby4gSWYgYGZhbHNlYCwgdGhlIGB1c2VybmFtZWAgcHJvcGVydHkgaXMgc3RvcmVkIGFzIHNldCwgd2l0aG91dCBhbnkgY2FzZSBtb2RpZmljYXRpb25zLiBEZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgY3VzdG9tUGFnZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTJyxcbiAgICBoZWxwOiAnY3VzdG9tIHBhZ2VzIGZvciBwYXNzd29yZCB2YWxpZGF0aW9uIGFuZCByZXNldCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnQ3VzdG9tUGFnZXNPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgZGF0YWJhc2VBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGRhdGFiYXNlOyBhbnkgb3B0aW9ucyB0aGF0IGFyZSBub3QgZXhwbGljaXRseSBkZXNjcmliZWQgaGVyZSBhcmUgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBkYXRhYmFzZSBjbGllbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG4gIGRhdGFiYXNlT3B0aW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9PUFRJT05TJyxcbiAgICBoZWxwOiAnT3B0aW9ucyB0byBwYXNzIHRvIHRoZSBkYXRhYmFzZSBjbGllbnQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0RhdGFiYXNlT3B0aW9ucycsXG4gIH0sXG4gIGRhdGFiYXNlVVJJOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1VSSScsXG4gICAgaGVscDogJ1RoZSBmdWxsIFVSSSB0byB5b3VyIGRhdGFiYXNlLiBTdXBwb3J0ZWQgZGF0YWJhc2VzIGFyZSBtb25nb2RiIG9yIHBvc3RncmVzLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVmYXVsdDogJ21vbmdvZGI6Ly9sb2NhbGhvc3Q6MjcwMTcvcGFyc2UnLFxuICB9LFxuICBkZWZhdWx0TGltaXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREVGQVVMVF9MSU1JVCcsXG4gICAgaGVscDogJ0RlZmF1bHQgdmFsdWUgZm9yIGxpbWl0IG9wdGlvbiBvbiBxdWVyaWVzLCBkZWZhdWx0cyB0byBgMTAwYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2RlZmF1bHRMaW1pdCcpLFxuICAgIGRlZmF1bHQ6IDEwMCxcbiAgfSxcbiAgZGlyZWN0QWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RJUkVDVF9BQ0NFU1MnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIGlmIFBhcnNlIHJlcXVlc3RzIHdpdGhpbiB0aGUgc2FtZSBOb2RlLmpzIGVudmlyb25tZW50IGFzIFBhcnNlIFNlcnZlciBzaG91bGQgYmUgcm91dGVkIHRvIFBhcnNlIFNlcnZlciBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSB0aGUgSFRUUCBpbnRlcmZhY2UuIERlZmF1bHQgaXMgYGZhbHNlYC48YnI+PGJyPklmIHNldCB0byBgZmFsc2VgIHRoZW4gUGFyc2UgcmVxdWVzdHMgd2l0aGluIHRoZSBzYW1lIE5vZGUuanMgZW52aXJvbm1lbnQgYXMgUGFyc2UgU2VydmVyIGFyZSBleGVjdXRlZCBhcyBIVFRQIHJlcXVlc3RzIHNlbnQgdG8gUGFyc2UgU2VydmVyIHZpYSB0aGUgYHNlcnZlclVSTGAuIEZvciBleGFtcGxlLCBhIGBQYXJzZS5RdWVyeWAgaW4gQ2xvdWQgQ29kZSBpcyBjYWxsaW5nIFBhcnNlIFNlcnZlciB2aWEgYSBIVFRQIHJlcXVlc3QuIFRoZSBzZXJ2ZXIgaXMgZXNzZW50aWFsbHkgbWFraW5nIGEgSFRUUCByZXF1ZXN0IHRvIGl0c2VsZiwgdW5uZWNlc3NhcmlseSB1c2luZyBuZXR3b3JrIHJlc291cmNlcyBzdWNoIGFzIG5ldHdvcmsgcG9ydHMuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBJbiBlbnZpcm9ubWVudHMgd2hlcmUgbXVsdGlwbGUgUGFyc2UgU2VydmVyIGluc3RhbmNlcyBydW4gYmVoaW5kIGEgbG9hZCBiYWxhbmNlciBhbmQgUGFyc2UgcmVxdWVzdHMgd2l0aGluIHRoZSBjdXJyZW50IE5vZGUuanMgZW52aXJvbm1lbnQgc2hvdWxkIGJlIHJvdXRlZCB2aWEgdGhlIGxvYWQgYmFsYW5jZXIgYW5kIGRpc3RyaWJ1dGVkIGFzIEhUVFAgcmVxdWVzdHMgYW1vbmcgYWxsIGluc3RhbmNlcyB2aWEgdGhlIGBzZXJ2ZXJVUkxgLCB0aGlzIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGRvdE5ldEtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9ET1RfTkVUX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgVW5pdHkgYW5kIC5OZXQgU0RLJyxcbiAgfSxcbiAgZW1haWxBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VNQUlMX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgZW1haWwgc2VuZGluZycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBlbWFpbFZlcmlmeVN1Y2Nlc3NPbkludmFsaWRFbWFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9WRVJJRllfU1VDQ0VTU19PTl9JTlZBTElEX0VNQUlMJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCBpZiBhIHJlcXVlc3QgdG8gdmVyaWZ5IHRoZSBlbWFpbCBzaG91bGQgcmV0dXJuIGEgc3VjY2VzcyByZXNwb25zZSBldmVuIGlmIHRoZSBwcm92aWRlZCBlbWFpbCBhZGRyZXNzIGRvZXMgbm90IGJlbG9uZyB0byBhIHZlcmlmaWFibGUgYWNjb3VudCwgZm9yIGV4YW1wbGUgYmVjYXVzZSBpdCBpcyB1bmtub3duIG9yIGFscmVhZHkgdmVyaWZpZWQsIG9yIGBmYWxzZWAgaWYgdGhlIHJlcXVlc3Qgc2hvdWxkIHJldHVybiBhbiBlcnJvciByZXNwb25zZSBpbiB0aG9zZSBjYXNlcy48YnI+PGJyPkRlZmF1bHQgaXMgYHRydWVgLjxicj5SZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW1haWxWZXJpZnlUb2tlblJldXNlSWZWYWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9WRVJJRllfVE9LRU5fUkVVU0VfSUZfVkFMSUQnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIGlmIGEgZW1haWwgdmVyaWZpY2F0aW9uIHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9uIGB2ZXJpZnlVc2VyRW1haWxzOiB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbWFpbFZlcmlmeVRva2VuVmFsaWRpdHlEdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9WRVJJRllfVE9LRU5fVkFMSURJVFlfRFVSQVRJT04nLFxuICAgIGhlbHA6ICdTZXQgdGhlIHZhbGlkaXR5IGR1cmF0aW9uIG9mIHRoZSBlbWFpbCB2ZXJpZmljYXRpb24gdG9rZW4gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgdG9rZW4gZXhwaXJlcy4gVGhlIHRva2VuIGlzIHVzZWQgaW4gdGhlIGxpbmsgdGhhdCBpcyBzZXQgaW4gdGhlIGVtYWlsLiBBZnRlciB0aGUgdG9rZW4gZXhwaXJlcywgdGhlIGxpbmsgYmVjb21lcyBpbnZhbGlkIGFuZCBhIG5ldyBsaW5rIGhhcyB0byBiZSBzZW50LiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGB1bmRlZmluZWRgLCB0aGVuIHRoZSB0b2tlbiBuZXZlciBleHBpcmVzLjxicj48YnI+Rm9yIGV4YW1wbGUsIHRvIGV4cGlyZSB0aGUgdG9rZW4gYWZ0ZXIgMiBob3Vycywgc2V0IGEgdmFsdWUgb2YgNzIwMCBzZWNvbmRzICg9IDYwIHNlY29uZHMgKiA2MCBtaW51dGVzICogMiBob3VycykuPGJyPjxicj5EZWZhdWx0IGlzIGB1bmRlZmluZWRgLjxicj5SZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24nKSxcbiAgfSxcbiAgZW5hYmxlQW5vbnltb3VzVXNlcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0FOT05fVVNFUlMnLFxuICAgIGhlbHA6ICdFbmFibGUgKG9yIGRpc2FibGUpIGFub255bW91cyB1c2VycywgZGVmYXVsdHMgdG8gdHJ1ZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5hYmxlQ29sbGF0aW9uQ2FzZUNvbXBhcmlzb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0NPTExBVElPTl9DQVNFX0NPTVBBUklTT04nLFxuICAgIGhlbHA6ICdPcHRpb25hbC4gSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGNvbGxhdGlvbiBydWxlIG9mIGNhc2UgY29tcGFyaXNvbiBmb3IgcXVlcmllcyBhbmQgaW5kZXhlcyBpcyBlbmFibGVkLiBFbmFibGUgdGhpcyBvcHRpb24gdG8gcnVuIFBhcnNlIFNlcnZlciB3aXRoIE1vbmdvREIgQXRsYXMgU2VydmVybGVzcyBvciBBV1MgQW1hem9uIERvY3VtZW50REIuIElmIGBmYWxzZWAsIHRoZSBjb2xsYXRpb24gcnVsZSBvZiBjYXNlIGNvbXBhcmlzb24gaXMgZGlzYWJsZWQuIERlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVFeHByZXNzRXJyb3JIYW5kbGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9FWFBSRVNTX0VSUk9SX0hBTkRMRVInLFxuICAgIGhlbHA6ICdFbmFibGVzIHRoZSBkZWZhdWx0IGV4cHJlc3MgZXJyb3IgaGFuZGxlciBmb3IgYWxsIGVycm9ycycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZUluc2VjdXJlQXV0aEFkYXB0ZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9JTlNFQ1VSRV9BVVRIX0FEQVBURVJTJyxcbiAgICBoZWxwOiAnT3B0aW9uYWwuIEVuYWJsZXMgaW5zZWN1cmUgYXV0aGVudGljYXRpb24gYWRhcHRlcnMuIEluc2VjdXJlIGF1dGggYWRhcHRlcnMgYXJlIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBEZWZhdWx0cyB0byBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZUxpdmVRdWVyeUNsYXNzTGV2ZWxQZXJtaXNzaW9uUm9sZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0xJVkVfUVVFUllfQ0xBU1NfTEVWRUxfUEVSTUlTU0lPTl9ST0xFUycsXG4gICAgaGVscDogXCJXaGV0aGVyIExpdmVRdWVyeSBpbmNsdWRlcyB0aGUgc3Vic2NyaWJlcidzIHJvbGVzIHdoZW4gZXZhbHVhdGluZyBDbGFzcyBMZXZlbCBQZXJtaXNzaW9ucyAoQ0xQKS4gSWYgYHRydWVgLCBhIENMUCB0aGF0IGdyYW50cyBgZmluZGAgb3IgYGdldGAgdG8gYHJvbGU6PFJvbGVOYW1lPmAgYXBwbGllcyB0byBMaXZlUXVlcnkgc3Vic2NyaXB0aW9ucyBmb3IgbWVtYmVycyBvZiB0aGF0IHJvbGUsIHRoZSBzYW1lIHdheSBpdCBhbHJlYWR5IGFwcGxpZXMgdG8gdGhlIGVxdWl2YWxlbnQgUkVTVCBxdWVyeS4gSWYgYGZhbHNlYCAoZGVmYXVsdCksIHJvbGVzIGFyZSBub3QgcmVzb2x2ZWQgZm9yIENMUCBhbmQgc3VjaCBhIHN1YnNjcmlwdGlvbiBpcyByZWplY3RlZCBldmVuIGZvciBsZWdpdGltYXRlIHJvbGUgbWVtYmVycywgc28gTGl2ZVF1ZXJ5IGlzIG1vcmUgcmVzdHJpY3RpdmUgdGhhbiBSRVNUIGZvciB0aGUgc2FtZSBDTFAuIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCBvYmplY3QgQUNMcywgd2hvc2UgYHJvbGU6YCBlbnRyaWVzIExpdmVRdWVyeSBhbHJlYWR5IGhvbm9ycyByZWdhcmRsZXNzIG9mIHRoaXMgc2V0dGluZy4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5hYmxlUHJvZHVjdFB1cmNoYXNlTGVnYWN5QXBpOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9QUk9EVUNUX1BVUkNIQVNFX0xFR0FDWV9BUEknLFxuICAgIGhlbHA6ICdEZXByZWNhdGVkLiBFbmFibGVzIHRoZSBsZWdhY3kgcHJvZHVjdCBwdXJjaGFzZSBBUEkgaW5jbHVkaW5nIHRoZSBgX1Byb2R1Y3RgIGNsYXNzIGFuZCB0aGUgYC92YWxpZGF0ZV9wdXJjaGFzZWAgZW5kcG9pbnQuIFRoaXMgaXMgYW4gdW5kb2N1bWVudGVkLCB1bm1haW50YWluZWQgbGVnYWN5IGZlYXR1cmUgaW5oZXJpdGVkIGZyb20gdGhlIG9yaWdpbmFsIFBhcnNlIHBsYXRmb3JtIHRoYXQgbWF5IG5vdCBmdW5jdGlvbiBhcyBleHBlY3RlZC4gV2Ugc3Ryb25nbHkgYWR2aXNlIGFnYWluc3QgdXNpbmcgaXQuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciB2ZXJzaW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5hYmxlU2FuaXRpemVkRXJyb3JSZXNwb25zZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkFCTEVfU0FOSVRJWkVEX0VSUk9SX1JFU1BPTlNFJyxcbiAgICBoZWxwOiAnSWYgc2V0IHRvIGB0cnVlYCwgZXJyb3IgZGV0YWlscyBhcmUgcmVtb3ZlZCBmcm9tIGVycm9yIG1lc3NhZ2VzIGluIHJlc3BvbnNlcyB0byBjbGllbnQgcmVxdWVzdHMsIGFuZCBpbnN0ZWFkIGEgZ2VuZXJpYyBlcnJvciBtZXNzYWdlIGlzIHNlbnQuIERlZmF1bHQgaXMgYHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5jcnlwdGlvbktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkNSWVBUSU9OX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgZW5jcnlwdGluZyB5b3VyIGZpbGVzJyxcbiAgfSxcbiAgZW5mb3JjZVByaXZhdGVVc2Vyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkZPUkNFX1BSSVZBVEVfVVNFUlMnLFxuICAgIGhlbHA6ICdTZXQgdG8gdHJ1ZSBpZiBuZXcgdXNlcnMgc2hvdWxkIGJlIGNyZWF0ZWQgd2l0aG91dCBwdWJsaWMgcmVhZCBhbmQgd3JpdGUgYWNjZXNzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZXhwaXJlSW5hY3RpdmVTZXNzaW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FWFBJUkVfSU5BQ1RJVkVfU0VTU0lPTlMnLFxuICAgIGhlbHA6ICdTZXRzIHdoZXRoZXIgd2Ugc2hvdWxkIGV4cGlyZSB0aGUgaW5hY3RpdmUgc2Vzc2lvbnMsIGRlZmF1bHRzIHRvIHRydWUuIElmIGZhbHNlLCBhbGwgbmV3IHNlc3Npb25zIGFyZSBjcmVhdGVkIHdpdGggbm8gZXhwaXJhdGlvbiBkYXRlLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZXh0ZW5kU2Vzc2lvbk9uVXNlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYVEVORF9TRVNTSU9OX09OX1VTRScsXG4gICAgaGVscDogXCJXaGV0aGVyIFBhcnNlIFNlcnZlciBzaG91bGQgYXV0b21hdGljYWxseSBleHRlbmQgYSB2YWxpZCBzZXNzaW9uIGJ5IHRoZSBzZXNzaW9uTGVuZ3RoLiBJbiBvcmRlciB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBzZXNzaW9uIHVwZGF0ZXMgaW4gdGhlIGRhdGFiYXNlLCBhIHNlc3Npb24gd2lsbCBvbmx5IGJlIGV4dGVuZGVkIHdoZW4gYSByZXF1ZXN0IGlzIHJlY2VpdmVkIGFmdGVyIGF0IGxlYXN0IGhhbGYgb2YgdGhlIGN1cnJlbnQgc2Vzc2lvbidzIGxpZmV0aW1lIGhhcyBwYXNzZWQuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGZpbGVEb3dubG9hZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX0RPV05MT0FEX09QVElPTlMnLFxuICAgIGhlbHA6ICdPcHRpb25zIGZvciBmaWxlIGRvd25sb2FkcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnRmlsZURvd25sb2FkT3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGZpbGVLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIHlvdXIgZmlsZXMnLFxuICB9LFxuICBmaWxlc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRVNfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgZmlsZXMgc3ViLXN5c3RlbScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBmaWxlVXBsb2FkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX09QVElPTlMnLFxuICAgIGhlbHA6ICdPcHRpb25zIGZvciBmaWxlIHVwbG9hZHMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0ZpbGVVcGxvYWRPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgZ3JhcGhRTFBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfR1JBUEhRTF9QQVRIJyxcbiAgICBoZWxwOiAnVGhlIG1vdW50IHBhdGggZm9yIHRoZSBHcmFwaFFMIGVuZHBvaW50PGJyPjxicj5cXHUyNkEwXFx1RkUwRiBGaWxlIHVwbG9hZCBpbnNpZGUgdGhlIEdyYXBoUUwgbXV0YXRpb24gc3lzdGVtIHJlcXVpcmVzIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC48YnI+PGJyPkRlZmF1bHRzIGlzIGAvZ3JhcGhxbGAuJyxcbiAgICBkZWZhdWx0OiAnL2dyYXBocWwnLFxuICB9LFxuICBncmFwaFFMUHVibGljSW50cm9zcGVjdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9HUkFQSFFMX1BVQkxJQ19JTlRST1NQRUNUSU9OJyxcbiAgICBoZWxwOiAnRW5hYmxlIHB1YmxpYyBpbnRyb3NwZWN0aW9uIGZvciB0aGUgR3JhcGhRTCBlbmRwb2ludCwgZGVmYXVsdHMgdG8gZmFsc2UuPGJyPjxicj5cXHUyMTM5XFx1RkUwRiBEaXNhYmxpbmcgcHVibGljIGludHJvc3BlY3Rpb24gZG9lcyBub3QgaGlkZSB3aGV0aGVyIGEgY2xhc3Mgb3IgZmllbGQgZXhpc3RzLiBBIEdyYXBoUUwgb3BlcmF0aW9uIGlzIHZhbGlkYXRlZCBhZ2FpbnN0IHRoZSBjb21wbGV0ZSBzY2hlbWEgYmVmb3JlIGFueSBjbGFzcy1sZXZlbCBwZXJtaXNzaW9uIGlzIGNoZWNrZWQsIHNvIGEgY2xpZW50IGNhbiBjb25maXJtIGEgZ3Vlc3NlZCBjbGFzcyBvciBmaWVsZCBuYW1lIGJ5IHNlbmRpbmcgYW4gb3BlcmF0aW9uIHRoYXQgcmVmZXJlbmNlcyBpdC4gVG8gaGlkZSBhIGNsYXNzIGZyb20gdGhlIEdyYXBoUUwgQVBJLCBleGNsdWRlIGl0IHdpdGggdGhlIGBlbmFibGVkRm9yQ2xhc3Nlc2Agb3IgYGRpc2FibGVkRm9yQ2xhc3Nlc2Agc2V0dGluZyBvZiB0aGUgR3JhcGhRTCBjb25maWcuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZ3JhcGhRTFNjaGVtYToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9HUkFQSF9RTFNDSEVNQScsXG4gICAgaGVscDogJ0Z1bGwgcGF0aCB0byB5b3VyIEdyYXBoUUwgY3VzdG9tIHNjaGVtYS5ncmFwaHFsIGZpbGUnLFxuICB9LFxuICBob3N0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0hPU1QnLFxuICAgIGhlbHA6ICdUaGUgaG9zdCB0byBzZXJ2ZSBQYXJzZVNlcnZlciBvbiwgZGVmYXVsdHMgdG8gMC4wLjAuMCcsXG4gICAgZGVmYXVsdDogJzAuMC4wLjAnLFxuICB9LFxuICBpZGVtcG90ZW5jeU9wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRVhQRVJJTUVOVEFMX0lERU1QT1RFTkNZX09QVElPTlMnLFxuICAgIGhlbHA6ICdPcHRpb25zIGZvciByZXF1ZXN0IGlkZW1wb3RlbmN5IHRvIGRlZHVwbGljYXRlIGlkZW50aWNhbCByZXF1ZXN0cyB0aGF0IG1heSBiZSBjYXVzZWQgYnkgbmV0d29yayBpc3N1ZXMuIENhdXRpb24sIHRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUgdGhhdCBtYXkgbm90IGJlIGFwcHJvcHJpYXRlIGZvciBwcm9kdWN0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnSWRlbXBvdGVuY3lPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgaW5zdGFsbGF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0lOU1RBTExBVElPTicsXG4gICAgaGVscDogJ09wdGlvbnMgY29udHJvbGxpbmcgaG93IFBhcnNlIFNlcnZlciBkZWR1cGxpY2F0ZXMgYF9JbnN0YWxsYXRpb25gIHJlY29yZHMgdGhhdCBzaGFyZSB0aGUgc2FtZSBgZGV2aWNlVG9rZW5gLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnSW5zdGFsbGF0aW9uT3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGphdmFzY3JpcHRLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfSkFWQVNDUklQVF9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIHRoZSBKYXZhc2NyaXB0IFNESycsXG4gIH0sXG4gIGpzb25Mb2dzOiB7XG4gICAgZW52OiAnSlNPTl9MT0dTJyxcbiAgICBoZWxwOiAnTG9nIGFzIHN0cnVjdHVyZWQgSlNPTiBvYmplY3RzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgbGl2ZVF1ZXJ5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVfUVVFUlknLFxuICAgIGhlbHA6IFwiQ29uZmlndXJhdGlvbiBmb3IgTGl2ZVF1ZXJ5IG9uIHRoaXMgUGFyc2UgU2VydmVyLCBmb3IgZXhhbXBsZSBgeyBjbGFzc05hbWVzOiBbJ015Q2xhc3MnXSB9YC4gYGNsYXNzTmFtZXNgIGxpc3RzIHRoZSBjbGFzc2VzIHRoYXQgcHVibGlzaCBjcmVhdGUvdXBkYXRlL2RlbGV0ZSBldmVudHMgdG8gc3Vic2NyaWJlcnM7IHdpdGhvdXQgaXQgbm8gZXZlbnRzIGFyZSBwdXNoZWQsIGV2ZW4gd2hpbGUgYSBMaXZlUXVlcnkgc2VydmVyIGlzIHJ1bm5pbmcuIENvbWJpbmUgd2l0aCBgc3RhcnRMaXZlUXVlcnlTZXJ2ZXJgIHRvIHJ1biBhIExpdmVRdWVyeSBzZXJ2ZXIuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnTGl2ZVF1ZXJ5T3B0aW9ucycsXG4gIH0sXG4gIGxpdmVRdWVyeVNlcnZlck9wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRV9RVUVSWV9TRVJWRVJfT1BUSU9OUycsXG4gICAgaGVscDogJ0NvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIExpdmVRdWVyeSBzZXJ2ZXIuIFByb3ZpZGluZyB0aGlzIGFsc28gc3RhcnRzIHRoZSBMaXZlUXVlcnkgc2VydmVyIChsaWtlIGBzdGFydExpdmVRdWVyeVNlcnZlcmApOyBldmVudHMgYXJlIHN0aWxsIG9ubHkgcHVibGlzaGVkIGZvciB0aGUgY2xhc3NlcyBzZXQgaW4gYGxpdmVRdWVyeS5jbGFzc05hbWVzYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0xpdmVRdWVyeVNlcnZlck9wdGlvbnMnLFxuICB9LFxuICBsb2dnZXJBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR0dFUl9BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBsb2dnaW5nIHN1Yi1zeXN0ZW0nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgbGV2ZWwgZm9yIGxvZ3MnLFxuICB9LFxuICBsb2dMZXZlbHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMUycsXG4gICAgaGVscDogJyhPcHRpb25hbCkgT3ZlcnJpZGVzIHRoZSBsb2cgbGV2ZWxzIHVzZWQgaW50ZXJuYWxseSBieSBQYXJzZSBTZXJ2ZXIgdG8gbG9nIGV2ZW50cy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0xvZ0xldmVscycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGxvZ3NGb2xkZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HU19GT0xERVInLFxuICAgIGhlbHA6IFwiRm9sZGVyIGZvciB0aGUgbG9ncyAoZGVmYXVsdHMgdG8gJy4vbG9ncycpOyBzZXQgdG8gbnVsbCB0byBkaXNhYmxlIGZpbGUgYmFzZWQgbG9nZ2luZ1wiLFxuICAgIGRlZmF1bHQ6ICcuL2xvZ3MnLFxuICB9LFxuICBsb2dTdHJpbmdUcnVuY2F0ZUxlbmd0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfU1RSSU5HX1RSVU5DQVRFX0xFTkdUSCcsXG4gICAgaGVscDogJ01heGltdW0gbGVuZ3RoIG9mIGxvZyBtZXNzYWdlIHN0cmluZ3MgYmVmb3JlIHRydW5jYXRpb24gaW4gQ2xvdWQgQ29kZSBsb2dzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbG9nU3RyaW5nVHJ1bmNhdGVMZW5ndGgnKSxcbiAgICBkZWZhdWx0OiAxMDAwLFxuICB9LFxuICBtYWludGVuYW5jZUtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQUlOVEVOQU5DRV9LRVknLFxuICAgIGhlbHA6ICcoT3B0aW9uYWwpIFRoZSBtYWludGVuYW5jZSBrZXkgaXMgdXNlZCBmb3IgbW9kaWZ5aW5nIGludGVybmFsIGFuZCByZWFkLW9ubHkgZmllbGRzIG9mIFBhcnNlIFNlcnZlci48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFRoaXMga2V5IGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIHBhcnQgb2YgYSByZWd1bGFyIG9wZXJhdGlvbiBvZiBQYXJzZSBTZXJ2ZXIuIFRoaXMga2V5IGlzIGludGVuZGVkIHRvIGNvbmR1Y3Qgb3V0LW9mLWJhbmQgY2hhbmdlcyBzdWNoIGFzIG9uZS10aW1lIG1pZ3JhdGlvbnMgb3IgZGF0YSBjb3JyZWN0aW9uIHRhc2tzLiBJbnRlcm5hbCBmaWVsZHMgYXJlIG5vdCBvZmZpY2lhbGx5IGRvY3VtZW50ZWQgYW5kIG1heSBjaGFuZ2UgYXQgYW55IHRpbWUgd2l0aG91dCBwdWJsaWNhdGlvbiBpbiByZWxlYXNlIGNoYW5nZWxvZ3MuIFdlIHN0cm9uZ2x5IGFkdmljZSBub3QgdG8gcmVseSBvbiBpbnRlcm5hbCBmaWVsZHMgYXMgcGFydCBvZiB5b3VyIHJlZ3VsYXIgb3BlcmF0aW9uIGFuZCB0byBpbnZlc3RpZ2F0ZSB0aGUgaW1wbGljYXRpb25zIG9mIGFueSBwbGFubmVkIGNoYW5nZXMgKmRpcmVjdGx5IGluIHRoZSBzb3VyY2UgY29kZSogb2YgeW91ciBjdXJyZW50IHZlcnNpb24gb2YgUGFyc2UgU2VydmVyLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIG1haW50ZW5hbmNlS2V5SXBzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BSU5URU5BTkNFX0tFWV9JUFMnLFxuICAgIGhlbHA6IFwiKE9wdGlvbmFsKSBSZXN0cmljdHMgdGhlIHVzZSBvZiBtYWludGVuYW5jZSBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIG1haW50ZW5hbmNlIGtleSBjYW5ub3QgYmUgdXNlZCBldmVuIGluIFBhcnNlIFNlcnZlciBDbG91ZCBDb2RlLiBUaGlzIHZhbHVlIGNhbm5vdCBiZSBzZXQgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIGFzIHRoZXJlIGlzIG5vIHdheSB0byBwYXNzIGFuIGVtcHR5IGFycmF5IHRvIFBhcnNlIFNlcnZlciB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuPGJyPi0gU2V0dGluZyBgWycwLjAuMC4wLzAnLCAnOjowJ11gIG1lYW5zIHRvIGFsbG93IGFueSBJUHY0IGFuZCBJUHY2IGFkZHJlc3MgdG8gdXNlIHRoZSBtYWludGVuYW5jZSBrZXkgYW5kIGVmZmVjdGl2ZWx5IGRpc2FibGVzIHRoZSBJUCBmaWx0ZXIuPGJyPjxicj48Yj5Db25zaWRlcmF0aW9uczo8L2I+PGJyPi0gSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMgYXJlIG5vdCBjb21wYXJlZCBhZ2FpbnN0IGVhY2ggb3RoZXIuIEVhY2ggSVAgdmVyc2lvbiAoSVB2NCBhbmQgSVB2NikgbmVlZHMgdG8gYmUgY29uc2lkZXJlZCBzZXBhcmF0ZWx5LiBGb3IgZXhhbXBsZSwgYFsnMC4wLjAuMC8wJ11gIGFsbG93cyBhbnkgSVB2NCBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NiBhZGRyZXNzLiBDb252ZXJzZWx5LCBgWyc6OjAnXWAgYWxsb3dzIGFueSBJUHY2IGFkZHJlc3MgYW5kIGJsb2NrcyBldmVyeSBJUHY0IGFkZHJlc3MuPGJyPi0gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIElQIHZlcnNpb24gaW4gdXNlIGRlcGVuZHMgb24gdGhlIG5ldHdvcmsgc3RhY2sgb2YgdGhlIGVudmlyb25tZW50IGluIHdoaWNoIFBhcnNlIFNlcnZlciBydW5zLiBBIGxvY2FsIGVudmlyb25tZW50IG1heSB1c2UgYSBkaWZmZXJlbnQgSVAgdmVyc2lvbiB0aGFuIGEgcmVtb3RlIGVudmlyb25tZW50LiBGb3IgZXhhbXBsZSwgaXQncyBwb3NzaWJsZSB0aGF0IGxvY2FsbHkgdGhlIHZhbHVlIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgdGhlIHJlcXVlc3QgSVAgYmVjYXVzZSB0aGUgZW52aXJvbm1lbnQgaXMgdXNpbmcgSVB2NCwgYnV0IHdoZW4gUGFyc2UgU2VydmVyIGlzIGRlcGxveWVkIHJlbW90ZWx5IHRoZSByZXF1ZXN0IElQIGlzIGJsb2NrZWQgYmVjYXVzZSB0aGUgcmVtb3RlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjYuPGJyPi0gV2hlbiBzZXR0aW5nIHRoZSBvcHRpb24gdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRoZSBub3RhdGlvbiBpcyBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcsIGZvciBleGFtcGxlIGBcXFwiMC4wLjAuMC8wLDo6MFxcXCJgLjxicj4tIElQdjYgem9uZSBpbmRpY2VzIChgJWAgc3VmZml4KSBhcmUgbm90IHN1cHBvcnRlZCwgZm9yIGV4YW1wbGUgYGZlODA6OjElZXRoMGAsIGBmZTgwOjoxJTFgIG9yIGA6OjElbG9gLjxicj48YnI+RGVmYXVsdHMgdG8gYFsnMTI3LjAuMC4xJywgJzo6MSddYCB3aGljaCBtZWFucyB0aGF0IG9ubHkgYGxvY2FsaG9zdGAsIHRoZSBzZXJ2ZXIgaW5zdGFuY2Ugb24gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMsIGlzIGFsbG93ZWQgdG8gdXNlIHRoZSBtYWludGVuYW5jZSBrZXkuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFsnMTI3LjAuMC4xJywgJzo6MSddLFxuICB9LFxuICBtYXN0ZXJLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFTVEVSX0tFWScsXG4gICAgaGVscDogJ1lvdXIgUGFyc2UgTWFzdGVyIEtleScsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIG1hc3RlcktleUlwczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVNURVJfS0VZX0lQUycsXG4gICAgaGVscDogXCIoT3B0aW9uYWwpIFJlc3RyaWN0cyB0aGUgdXNlIG9mIG1hc3RlciBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIG1hc3RlciBrZXkgY2Fubm90IGJlIHVzZWQgZXZlbiBpbiBQYXJzZSBTZXJ2ZXIgQ2xvdWQgQ29kZS4gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgc2V0IHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBhbiBlbXB0eSBhcnJheSB0byBQYXJzZSBTZXJ2ZXIgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLjxicj4tIFNldHRpbmcgYFsnMC4wLjAuMC8wJywgJzo6MCddYCBtZWFucyB0byBhbGxvdyBhbnkgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHRvIHVzZSB0aGUgbWFzdGVyIGtleSBhbmQgZWZmZWN0aXZlbHkgZGlzYWJsZXMgdGhlIElQIGZpbHRlci48YnI+PGJyPjxiPkNvbnNpZGVyYXRpb25zOjwvYj48YnI+LSBJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcyBhcmUgbm90IGNvbXBhcmVkIGFnYWluc3QgZWFjaCBvdGhlci4gRWFjaCBJUCB2ZXJzaW9uIChJUHY0IGFuZCBJUHY2KSBuZWVkcyB0byBiZSBjb25zaWRlcmVkIHNlcGFyYXRlbHkuIEZvciBleGFtcGxlLCBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIGFueSBJUHY0IGFkZHJlc3MgYW5kIGJsb2NrcyBldmVyeSBJUHY2IGFkZHJlc3MuIENvbnZlcnNlbHksIGBbJzo6MCddYCBhbGxvd3MgYW55IElQdjYgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjQgYWRkcmVzcy48YnI+LSBLZWVwIGluIG1pbmQgdGhhdCB0aGUgSVAgdmVyc2lvbiBpbiB1c2UgZGVwZW5kcyBvbiB0aGUgbmV0d29yayBzdGFjayBvZiB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMuIEEgbG9jYWwgZW52aXJvbm1lbnQgbWF5IHVzZSBhIGRpZmZlcmVudCBJUCB2ZXJzaW9uIHRoYW4gYSByZW1vdGUgZW52aXJvbm1lbnQuIEZvciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRoYXQgbG9jYWxseSB0aGUgdmFsdWUgYFsnMC4wLjAuMC8wJ11gIGFsbG93cyB0aGUgcmVxdWVzdCBJUCBiZWNhdXNlIHRoZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY0LCBidXQgd2hlbiBQYXJzZSBTZXJ2ZXIgaXMgZGVwbG95ZWQgcmVtb3RlbHkgdGhlIHJlcXVlc3QgSVAgaXMgYmxvY2tlZCBiZWNhdXNlIHRoZSByZW1vdGUgZW52aXJvbm1lbnQgaXMgdXNpbmcgSVB2Ni48YnI+LSBXaGVuIHNldHRpbmcgdGhlIG9wdGlvbiB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdGhlIG5vdGF0aW9uIGlzIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZywgZm9yIGV4YW1wbGUgYFxcXCIwLjAuMC4wLzAsOjowXFxcImAuPGJyPi0gSVB2NiB6b25lIGluZGljZXMgKGAlYCBzdWZmaXgpIGFyZSBub3Qgc3VwcG9ydGVkLCBmb3IgZXhhbXBsZSBgZmU4MDo6MSVldGgwYCwgYGZlODA6OjElMWAgb3IgYDo6MSVsb2AuPGJyPjxicj5EZWZhdWx0cyB0byBgWycxMjcuMC4wLjEnLCAnOjoxJ11gIHdoaWNoIG1lYW5zIHRoYXQgb25seSBgbG9jYWxob3N0YCwgdGhlIHNlcnZlciBpbnN0YW5jZSBvbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucywgaXMgYWxsb3dlZCB0byB1c2UgdGhlIG1hc3RlciBrZXkuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFsnMTI3LjAuMC4xJywgJzo6MSddLFxuICB9LFxuICBtYXN0ZXJLZXlUdGw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFTVEVSX0tFWV9UVEwnLFxuICAgIGhlbHA6ICcoT3B0aW9uYWwpIFRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGZvciB3aGljaCB0aGUgY3VycmVudCBgbWFzdGVyS2V5YCBpcyBiZWluZyB1c2VkIGJlZm9yZSBpdCBpcyByZXF1ZXN0ZWQgYWdhaW4gaWYgYG1hc3RlcktleWAgaXMgc2V0IHRvIGEgZnVuY3Rpb24uIElmIGBtYXN0ZXJLZXlgIGlzIG5vdCBzZXQgdG8gYSBmdW5jdGlvbiwgdGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdC4gRGVmYXVsdCBpcyBgMGAsIHdoaWNoIG1lYW5zIHRoZSBtYXN0ZXIga2V5IGlzIHJlcXVlc3RlZCBieSBpbnZva2luZyB0aGUgIGBtYXN0ZXJLZXlgIGZ1bmN0aW9uIGV2ZXJ5IHRpbWUgdGhlIG1hc3RlciBrZXkgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21hc3RlcktleVR0bCcpLFxuICB9LFxuICBtYXhMaW1pdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVhfTElNSVQnLFxuICAgIGhlbHA6ICdNYXggdmFsdWUgZm9yIGxpbWl0IG9wdGlvbiBvbiBxdWVyaWVzLCBkZWZhdWx0cyB0byB1bmxpbWl0ZWQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heExpbWl0JyksXG4gIH0sXG4gIG1heExvZ0ZpbGVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BWF9MT0dfRklMRVMnLFxuICAgIGhlbHA6IFwiTWF4aW11bSBudW1iZXIgb2YgbG9ncyB0byBrZWVwLiBJZiBub3Qgc2V0LCBubyBsb2dzIHdpbGwgYmUgcmVtb3ZlZC4gVGhpcyBjYW4gYmUgYSBudW1iZXIgb2YgZmlsZXMgb3IgbnVtYmVyIG9mIGRheXMuIElmIHVzaW5nIGRheXMsIGFkZCAnZCcgYXMgdGhlIHN1ZmZpeC4gKGRlZmF1bHQ6IG51bGwpXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlck9yU3RyaW5nUGFyc2VyKCdtYXhMb2dGaWxlcycpLFxuICB9LFxuICBtYXhVcGxvYWRTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BWF9VUExPQURfU0laRScsXG4gICAgaGVscDogJ01heCBmaWxlIHNpemUgZm9yIHVwbG9hZHMsIGRlZmF1bHRzIHRvIDIwbWInLFxuICAgIGRlZmF1bHQ6ICcyMG1iJyxcbiAgfSxcbiAgbWlkZGxld2FyZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NSURETEVXQVJFJyxcbiAgICBoZWxwOiAnbWlkZGxld2FyZSBmb3IgZXhwcmVzcyBzZXJ2ZXIsIGNhbiBiZSBzdHJpbmcgb3IgZnVuY3Rpb24nLFxuICB9LFxuICBtb3VudEdyYXBoUUw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTU9VTlRfR1JBUEhRTCcsXG4gICAgaGVscDogJ01vdW50cyB0aGUgR3JhcGhRTCBlbmRwb2ludCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIG1vdW50UGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NT1VOVF9QQVRIJyxcbiAgICBoZWxwOiAnTW91bnQgcGF0aCBmb3IgdGhlIHNlcnZlciwgZGVmYXVsdHMgdG8gL3BhcnNlJyxcbiAgICBkZWZhdWx0OiAnL3BhcnNlJyxcbiAgfSxcbiAgbW91bnRQbGF5Z3JvdW5kOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01PVU5UX1BMQVlHUk9VTkQnLFxuICAgIGhlbHA6ICdEZXByZWNhdGVkLiBNb3VudHMgdGhlIEdyYXBoUUwgUGxheWdyb3VuZCB3aGljaCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gVGhlIHBsYXlncm91bmQgZXhwb3NlcyB0aGUgbWFzdGVyIGtleSBpbiB0aGUgYnJvd3Nlci4gVXNlIFBhcnNlIERhc2hib2FyZCBhcyBHcmFwaFFMIElERSBvciBjb25maWd1cmUgYSB0aGlyZC1wYXJ0eSBHcmFwaFFMIGNsaWVudCB3aXRoIGN1c3RvbSByZXF1ZXN0IGhlYWRlcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgb2JqZWN0SWRTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX09CSkVDVF9JRF9TSVpFJyxcbiAgICBoZWxwOiBcIlNldHMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGdlbmVyYXRlZCBvYmplY3QgaWQncywgZGVmYXVsdCAxMFwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ29iamVjdElkU2l6ZScpLFxuICAgIGRlZmF1bHQ6IDEwLFxuICB9LFxuICBwYWdlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFUycsXG4gICAgaGVscDogJ1RoZSBvcHRpb25zIGZvciBwYWdlcyBzdWNoIGFzIHBhc3N3b3JkIHJlc2V0IGFuZCBlbWFpbCB2ZXJpZmljYXRpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdQYWdlc09wdGlvbnMnLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBwYXNzd29yZFBvbGljeToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1knLFxuICAgIGhlbHA6ICdUaGUgcGFzc3dvcmQgcG9saWN5IGZvciBlbmZvcmNpbmcgcGFzc3dvcmQgcmVsYXRlZCBydWxlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ1Bhc3N3b3JkUG9saWN5T3B0aW9ucycsXG4gIH0sXG4gIHBsYXlncm91bmRQYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BMQVlHUk9VTkRfUEFUSCcsXG4gICAgaGVscDogJ0RlcHJlY2F0ZWQuIE1vdW50IHBhdGggZm9yIHRoZSBHcmFwaFFMIFBsYXlncm91bmQuIFRoZSBwbGF5Z3JvdW5kIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBJZiB1bnNldCwgUGxheWdyb3VuZCBtb3VudHMgYXQgYC9wbGF5Z3JvdW5kYCB3aGVuIGBtb3VudFBsYXlncm91bmRgIGlzIGVuYWJsZWQuJyxcbiAgfSxcbiAgcG9ydDoge1xuICAgIGVudjogJ1BPUlQnLFxuICAgIGhlbHA6ICdUaGUgcG9ydCB0byBydW4gdGhlIFBhcnNlU2VydmVyLCBkZWZhdWx0cyB0byAxMzM3LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncG9ydCcpLFxuICAgIGRlZmF1bHQ6IDEzMzcsXG4gIH0sXG4gIHByZXNlcnZlRmlsZU5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJFU0VSVkVfRklMRV9OQU1FJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSB0aGUgYWRkaXRpb24gb2YgYSB1bmlxdWUgaGFzaCB0byB0aGUgZmlsZSBuYW1lcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHByZXZlbnRMb2dpbldpdGhVbnZlcmlmaWVkRW1haWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJFVkVOVF9MT0dJTl9XSVRIX1VOVkVSSUZJRURfRU1BSUwnLFxuICAgIGhlbHA6IFwiU2V0IHRvIGB0cnVlYCB0byBwcmV2ZW50IGEgdXNlciBmcm9tIGxvZ2dpbmcgaW4gaWYgdGhlIGVtYWlsIGhhcyBub3QgeWV0IGJlZW4gdmVyaWZpZWQgYW5kIGVtYWlsIHZlcmlmaWNhdGlvbiBpcyByZXF1aXJlZC4gU3VwcG9ydHMgYSBmdW5jdGlvbiB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIGB0cnVlYCBvciBgZmFsc2VgIGZvciBjb25kaXRpb25hbCBwcmV2ZW50aW9uLiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgYSByZXF1ZXN0IG9iamVjdCB0aGF0IGluY2x1ZGVzIGBjcmVhdGVkV2l0aGAgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgaW52b2NhdGlvbiBpcyBmb3IgYHNpZ251cGAgb3IgYGxvZ2luYCBhbmQgdGhlIHVzZWQgYXV0aCBwcm92aWRlci48YnI+PGJyPlRoZSBgY3JlYXRlZFdpdGhgIHZhbHVlcyBwZXIgc2NlbmFyaW86PHVsPjxsaT5QYXNzd29yZCBzaWdudXA6IGB7IGFjdGlvbjogJ3NpZ251cCcsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgc2lnbnVwOiBgeyBhY3Rpb246ICdzaWdudXAnLCBhdXRoUHJvdmlkZXI6ICc8cHJvdmlkZXI+JyB9YDwvbGk+PGxpPlBhc3N3b3JkIGxvZ2luOiBgeyBhY3Rpb246ICdsb2dpbicsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgbG9naW46IGZ1bmN0aW9uIG5vdCBpbnZva2VkOyBhdXRoIHByb3ZpZGVyIGxvZ2luIGJ5cGFzc2VzIGVtYWlsIHZlcmlmaWNhdGlvbjwvbGk+PC91bD5EZWZhdWx0IGlzIGBmYWxzZWAuPGJyPlJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5PckZ1bmN0aW9uUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBwcmV2ZW50U2lnbnVwV2l0aFVudmVyaWZpZWRFbWFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QUkVWRU5UX1NJR05VUF9XSVRIX1VOVkVSSUZJRURfRU1BSUwnLFxuICAgIGhlbHA6IFwiSWYgc2V0IHRvIGB0cnVlYCBpdCBwcmV2ZW50cyBhIHVzZXIgZnJvbSBzaWduaW5nIHVwIGlmIHRoZSBlbWFpbCBoYXMgbm90IHlldCBiZWVuIHZlcmlmaWVkIGFuZCBlbWFpbCB2ZXJpZmljYXRpb24gaXMgcmVxdWlyZWQuIEluIHRoYXQgY2FzZSB0aGUgc2VydmVyIHJlc3BvbmRzIHRvIHRoZSBzaWduLXVwIHdpdGggSFRUUCBzdGF0dXMgNDAwIGFuZCBhIFBhcnNlIEVycm9yIDIwNSBgRU1BSUxfTk9UX0ZPVU5EYC4gSWYgc2V0IHRvIGBmYWxzZWAgdGhlIHNlcnZlciByZXNwb25kcyB3aXRoIEhUVFAgc3RhdHVzIDIwMCwgYW5kIGNsaWVudCBTREtzIHJldHVybiBhbiB1bmF1dGhlbnRpY2F0ZWQgUGFyc2UgVXNlciB3aXRob3V0IHNlc3Npb24gdG9rZW4uIEluIHRoYXQgY2FzZSBzdWJzZXF1ZW50IHJlcXVlc3RzIGZhaWwgdW50aWwgdGhlIHVzZXIncyBlbWFpbCBhZGRyZXNzIGlzIHZlcmlmaWVkLjxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLjxicj5SZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBwcm90ZWN0ZWRGaWVsZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJPVEVDVEVEX0ZJRUxEUycsXG4gICAgaGVscDogXCJGaWVsZHMgcGVyIGNsYXNzIHRoYXQgYXJlIGhpZGRlbiBmcm9tIHF1ZXJ5IHJlc3VsdHMgZm9yIHNwZWNpZmljIHVzZXIgZ3JvdXBzLiBQcm90ZWN0ZWQgZmllbGRzIGFyZSBzdHJpcHBlZCBmcm9tIHRoZSBzZXJ2ZXIgcmVzcG9uc2UsIGJ1dCBjYW4gc3RpbGwgYmUgdXNlZCBpbnRlcm5hbGx5IChlLmcuIGluIENsb3VkIENvZGUgdHJpZ2dlcnMpLiBDb25maWd1cmUgYXMgYHsgJ0NsYXNzTmFtZSc6IHsgJ1VzZXJHcm91cCc6IFsnZmllbGQxJywgJ2ZpZWxkMiddIH0gfWAgd2hlcmUgYFVzZXJHcm91cGAgaXMgb25lIG9mOiBgJyonYCAoYWxsIHVzZXJzKSwgYCdhdXRoZW50aWNhdGVkJ2AgKGF1dGhlbnRpY2F0ZWQgdXNlcnMpLCBgJ3JvbGU6Um9sZU5hbWUnYCAodXNlcnMgd2l0aCBhIHNwZWNpZmljIHJvbGUpLCBgJ3VzZXJGaWVsZDpGaWVsZE5hbWUnYCAodXNlcnMgcmVmZXJlbmNlZCBieSBhIHBvaW50ZXIgZmllbGQpLCBvciBhIHVzZXIgYG9iamVjdElkYCB0byB0YXJnZXQgYSBzcGVjaWZpYyB1c2VyLiBXaGVuIG11bHRpcGxlIGdyb3VwcyBhcHBseSwgdGhlIGludGVyc2VjdGlvbiBvZiB0aGVpciBwcm90ZWN0ZWQgZmllbGRzIGlzIHVzZWQuIEFueSBmaWVsZCBjYW4gYmUgcHJvdGVjdGVkLCBpbmNsdWRpbmcgc3lzdGVtIGZpZWxkcyBsaWtlIGBjcmVhdGVkQXRgIGFuZCBgdXBkYXRlZEF0YC4gQnkgZGVmYXVsdCwgYGVtYWlsYCBpcyBwcm90ZWN0ZWQgb24gdGhlIGBfVXNlcmAgY2xhc3MgZm9yIGFsbCB1c2Vycy4gT24gdGhlIGBfVXNlcmAgY2xhc3MsIHRoZSBvYmplY3Qgb3duZXIgaXMgZXhlbXB0IGZyb20gcHJvdGVjdGVkIGZpZWxkcyBieSBkZWZhdWx0OyBzZWUgYHByb3RlY3RlZEZpZWxkc093bmVyRXhlbXB0YCB0byBjaGFuZ2UgdGhpcy5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIF9Vc2VyOiB7XG4gICAgICAgICcqJzogWydlbWFpbCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBwcm90ZWN0ZWRGaWVsZHNPd25lckV4ZW1wdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QUk9URUNURURfRklFTERTX09XTkVSX0VYRU1QVCcsXG4gICAgaGVscDogXCJXaGV0aGVyIHRoZSBgX1VzZXJgIGNsYXNzIGlzIGV4ZW1wdCBmcm9tIGBwcm90ZWN0ZWRGaWVsZHNgIHdoZW4gdGhlIGxvZ2dlZC1pbiB1c2VyIHF1ZXJpZXMgdGhlaXIgb3duIHVzZXIgb2JqZWN0LiBJZiBgdHJ1ZWAgKGRlZmF1bHQpLCBhIHVzZXIgY2FuIHNlZSBhbGwgdGhlaXIgb3duIGZpZWxkcyByZWdhcmRsZXNzIG9mIGBwcm90ZWN0ZWRGaWVsZHNgIGNvbmZpZ3VyYXRpb247IGRlZmF1bHQgcHJvdGVjdGVkIGZpZWxkcyAoZS5nLiBgZW1haWxgKSBhcmUgbWVyZ2VkIGludG8gYW55IGN1c3RvbSBgcHJvdGVjdGVkRmllbGRzYCBjb25maWd1cmF0aW9uLiBJZiBgZmFsc2VgLCBgcHJvdGVjdGVkRmllbGRzYCBhcHBsaWVzIGVxdWFsbHkgdG8gdGhlIHVzZXIncyBvd24gb2JqZWN0LCBjb25zaXN0ZW50IHdpdGggYWxsIG90aGVyIGNsYXNzZXM7IG9ubHkgZXhwbGljaXRseSBjb25maWd1cmVkIHByb3RlY3RlZCBmaWVsZHMgYXBwbHksIGRlZmF1bHRzIGFyZSBub3QgbWVyZ2VkLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgcHJvdGVjdGVkRmllbGRzU2F2ZVJlc3BvbnNlRXhlbXB0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BST1RFQ1RFRF9GSUVMRFNfU0FWRV9SRVNQT05TRV9FWEVNUFQnLFxuICAgIGhlbHA6ICdXaGV0aGVyIHNhdmUgb3BlcmF0aW9uIHJlc3BvbnNlcyAoY3JlYXRlLCB1cGRhdGUpIGFyZSBleGVtcHQgZnJvbSBgcHJvdGVjdGVkRmllbGRzYC4gSWYgYHRydWVgIChkZWZhdWx0KSwgcHJvdGVjdGVkIGZpZWxkcyBtb2RpZmllZCBkdXJpbmcgYSBzYXZlIGFyZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UgdG8gdGhlIGNsaWVudC4gSWYgYGZhbHNlYCwgcHJvdGVjdGVkIGZpZWxkcyBhcmUgc3RyaXBwZWQgZnJvbSBzYXZlIHJlc3BvbnNlcywgY29uc2lzdGVudCB3aXRoIGhvdyB0aGV5IGFyZSBzdHJpcHBlZCBmcm9tIHF1ZXJ5IHJlc3VsdHMuIERlZmF1bHRzIHRvIGB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHByb3RlY3RlZEZpZWxkc1RyaWdnZXJFeGVtcHQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJPVEVDVEVEX0ZJRUxEU19UUklHR0VSX0VYRU1QVCcsXG4gICAgaGVscDogXCJXaGV0aGVyIENsb3VkIENvZGUgdHJpZ2dlcnMgKGUuZy4gYGJlZm9yZVNhdmVgLCBgYWZ0ZXJTYXZlYCkgYXJlIGV4ZW1wdCBmcm9tIGBwcm90ZWN0ZWRGaWVsZHNgLiBJZiBgdHJ1ZWAsIHRyaWdnZXJzIHJlY2VpdmUgdGhlIGZ1bGwgb2JqZWN0IGluY2x1ZGluZyBwcm90ZWN0ZWQgZmllbGRzIGluIGByZXF1ZXN0Lm9iamVjdGAgYW5kIGByZXF1ZXN0Lm9yaWdpbmFsYCwgcmVnYXJkbGVzcyBvZiB0aGUgY2FsbGVyJ3MgYXV0aCBjb250ZXh0LiBJZiBgZmFsc2VgLCBwcm90ZWN0ZWQgZmllbGRzIGFyZSBzdHJpcHBlZCBmcm9tIHRoZSBvcmlnaW5hbCBvYmplY3QgZmV0Y2ggdXNlZCB0byBidWlsZCB0cmlnZ2VyIG9iamVjdHMuIERlZmF1bHRzIHRvIGBmYWxzZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHB1YmxpY1NlcnZlclVSTDoge1xuICAgIGVudjogJ1BBUlNFX1BVQkxJQ19TRVJWRVJfVVJMJyxcbiAgICBoZWxwOiAnT3B0aW9uYWwuIFRoZSBwdWJsaWMgVVJMIHRvIFBhcnNlIFNlcnZlci4gVGhpcyBVUkwgd2lsbCBiZSB1c2VkIHRvIHJlYWNoIFBhcnNlIFNlcnZlciBwdWJsaWNseSBmb3IgZmVhdHVyZXMgbGlrZSBwYXNzd29yZCByZXNldCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uIGxpbmtzLiBUaGUgb3B0aW9uIGNhbiBiZSBzZXQgdG8gYSBzdHJpbmcgb3IgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBhc3luY2hyb25vdXNseSByZXNvbHZlZC4gVGhlIHJldHVybmVkIFVSTCBzdHJpbmcgbXVzdCBzdGFydCB3aXRoIGBodHRwOi8vYCBvciBgaHR0cHM6Ly9gLicsXG4gIH0sXG4gIHB1c2g6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFVTSCcsXG4gICAgaGVscDogJ0NvbmZpZ3VyYXRpb24gZm9yIHB1c2gsIGFzIHN0cmluZ2lmaWVkIEpTT04uIFNlZSBodHRwOi8vZG9jcy5wYXJzZXBsYXRmb3JtLm9yZy9wYXJzZS1zZXJ2ZXIvZ3VpZGUvI3B1c2gtbm90aWZpY2F0aW9ucycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgcXVlcnk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUVVFUlknLFxuICAgIGhlbHA6ICdRdWVyeS1yZWxhdGVkIHNlcnZlciBkZWZhdWx0cy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ1F1ZXJ5U2VydmVyT3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIHJhdGVMaW1pdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUJyxcbiAgICBoZWxwOiBcIk9wdGlvbnMgdG8gbGltaXQgcmVwZWF0ZWQgcmVxdWVzdHMgdG8gUGFyc2UgU2VydmVyIEFQSXMuIFRoaXMgY2FuIGJlIHVzZWQgdG8gcHJvdGVjdCBzZW5zaXRpdmUgZW5kcG9pbnRzIHN1Y2ggYXMgYC9yZXF1ZXN0UGFzc3dvcmRSZXNldGAgZnJvbSBicnV0ZS1mb3JjZSBhdHRhY2tzIG9yIFBhcnNlIFNlcnZlciBhcyBhIHdob2xlIGZyb20gZGVuaWFsLW9mLXNlcnZpY2UgKERvUykgYXR0YWNrcy48YnI+PGJyPlxcdTIxMzlcXHVGRTBGIE1pbmQgdGhlIGZvbGxvd2luZyBsaW1pdGF0aW9uczo8YnI+LSByYXRlIGxpbWl0cyBhcHBsaWVkIHBlciBJUCBhZGRyZXNzOyB0aGlzIGxpbWl0cyBwcm90ZWN0aW9uIGFnYWluc3QgZGlzdHJpYnV0ZWQgZGVuaWFsLW9mLXNlcnZpY2UgKEREb1MpIGF0dGFja3Mgd2hlcmUgbWFueSByZXF1ZXN0cyBhcmUgY29taW5nIGZyb20gdmFyaW91cyBJUCBhZGRyZXNzZXM8YnI+LSBpZiBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXIgaW5zdGFuY2VzIGFyZSBiZWhpbmQgYSBsb2FkIGJhbGFuY2VyIG9yIHJhbiBpbiBhIGNsdXN0ZXIsIGVhY2ggaW5zdGFuY2Ugd2lsbCBjYWxjdWxhdGUgaXQncyBvd24gcmVxdWVzdCByYXRlcywgaW5kZXBlbmRlbnQgZnJvbSBvdGhlciBpbnN0YW5jZXM7IHRoaXMgbGltaXRzIHRoZSBhcHBsaWNhYmlsaXR5IG9mIHRoaXMgZmVhdHVyZSB3aGVuIHVzaW5nIGEgbG9hZCBiYWxhbmNlciBhbmQgYW5vdGhlciByYXRlIGxpbWl0aW5nIHNvbHV0aW9uIHRoYXQgdGFrZXMgcmVxdWVzdHMgYWNyb3NzIGFsbCBpbnN0YW5jZXMgaW50byBhY2NvdW50IG1heSBiZSBtb3JlIHN1aXRhYmxlPGJyPi0gdGhpcyBmZWF0dXJlIHByb3ZpZGVzIGJhc2ljIHByb3RlY3Rpb24gYWdhaW5zdCBkZW5pYWwtb2Ytc2VydmljZSBhdHRhY2tzLCBidXQgYSBtb3JlIHNvcGhpc3RpY2F0ZWQgc29sdXRpb24gd29ya3MgZWFybGllciBpbiB0aGUgcmVxdWVzdCBmbG93IGFuZCBwcmV2ZW50cyBhIG1hbGljaW91cyByZXF1ZXN0cyB0byBldmVuIHJlYWNoIGEgc2VydmVyIGluc3RhbmNlOyBpdCdzIHRoZXJlZm9yZSByZWNvbW1lbmRlZCB0byBpbXBsZW1lbnQgYSBzb2x1dGlvbiBhY2NvcmRpbmcgdG8gYXJjaGl0ZWN0dXJlIGFuZCB1c2UgY2FzZS48YnI+LSByYXRlIGxpbWl0cyBhcmUgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBSRVNUIEFQSSBVUkwgcGF0aCAoYHJlcXVlc3RQYXRoYCkgYW5kIHRoZXJlZm9yZSBhcHBseSB0byBSRVNUIEFQSSByb3V0ZXMgb25seTsgdGhleSBkbyBub3QgYXBwbHkgdG8gR3JhcGhRTCBvcGVyYXRpb25zLCB3aGljaCBhcmUgYWxsIHNlcnZlZCB1bmRlciB0aGUgc2luZ2xlIEdyYXBoUUwgZW5kcG9pbnQgcGF0aCAoYGdyYXBoUUxQYXRoYCwgZGVmYXVsdCBgL2dyYXBocWxgKSBhbmQgYXJlIGlkZW50aWZpZWQgYnkgdGhlIHJlcXVlc3QgcGF5bG9hZCByYXRoZXIgdGhhbiB0aGUgVVJMLiBUbyByYXRlIGxpbWl0IEdyYXBoUUwsIGVpdGhlciBzZXQgYSBgcmVxdWVzdFBhdGhgIGZvciB0aGUgR3JhcGhRTCBlbmRwb2ludCBwYXRoIHRvIHRocm90dGxlIHRoZSBlbnRpcmUgR3JhcGhRTCBBUEksIG9yIHVzZSBhIEdyYXBoUUwtYXdhcmUgcmF0ZSBsaW1pdGluZyBzb2x1dGlvbiAoZm9yIGV4YW1wbGUgYSBzY2hlbWEtZGlyZWN0aXZlLWJhc2VkIHJhdGUgbGltaXRlcikgZm9yIHBlci1vcGVyYXRpb24gbGltaXRzLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICB0eXBlOiAnUmF0ZUxpbWl0T3B0aW9uc1tdJyxcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgcmVhZE9ubHlNYXN0ZXJLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVBRF9PTkxZX01BU1RFUl9LRVknLFxuICAgIGhlbHA6ICdUaGUgcmVhZC1vbmx5IG1hc3RlciBrZXkgaXMgYSBzZWNyZXQga2V5IHdpdGggdGhlIHNhbWUgcmVhZCBjYXBhYmlsaXRpZXMgYXMgdGhlIGBtYXN0ZXJLZXlgLCBidXQgd2l0aG91dCB0aGUgYWJpbGl0eSB0byBwZXJmb3JtIHdyaXRlcy4gTGlrZSB0aGUgYG1hc3RlcktleWAsIGl0IGJ5cGFzc2VzIGFsbCBzZWN1cml0eSBtZWNoYW5pc21zIChDbGFzcyBMZXZlbCBQZXJtaXNzaW9ucywgb2JqZWN0IEFDTHMsIGBwcm90ZWN0ZWRGaWVsZHNgKSwgc28gaXQgZ3JhbnRzIGZ1bGwgcmVhZCBhY2Nlc3MgdG8gYWxsIGRhdGEuPGJyPjxicj5JdCBpcyBpbnRlbmRlZCBzdHJpY3RseSBmb3IgaW50ZXJuYWwsIHNlcnZlci1zaWRlIHVzZSBcXHUyMDE0IGZvciBleGFtcGxlIHRvIGdpdmUgYSB0cnVzdGVkIGludGVybmFsIHByb2Nlc3MgcmVhZCBhY2Nlc3Mgd2hpbGUgZ3VhcmRpbmcgYWdhaW5zdCBhY2NpZGVudGFsIHdyaXRlcyBkdXJpbmcgZGV2ZWxvcG1lbnQgb3Igb3BlcmF0aW9ucy4gSXQgaXMgbm90IGEgY3JlZGVudGlhbCBmb3IgdW50cnVzdGVkIGNvbnRleHRzOiBpdCBtdXN0IG5ldmVyIGJlIHNoaXBwZWQsIGRpc3RyaWJ1dGVkLCBwdWJsaXNoZWQsIGVtYmVkZGVkIGluIGEgY2xpZW50IGFwcGxpY2F0aW9uLCBvciBvdGhlcndpc2UgZXhwb3NlZCB0byB1bnRydXN0ZWQgcGFydGllcywgYmVjYXVzZSBhbnlvbmUgd2hvIG9idGFpbnMgaXQgY2FuIHJlYWQgYWxsIGRhdGEgaW4gdGhlIGRhdGFiYXNlLiBVc2UgYHJlYWRPbmx5TWFzdGVyS2V5SXBzYCB0byByZXN0cmljdCB0aGUgSVAgYWRkcmVzc2VzIGZyb20gd2hpY2ggaXQgbWF5IGJlIHVzZWQuJyxcbiAgfSxcbiAgcmVhZE9ubHlNYXN0ZXJLZXlJcHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVBRF9PTkxZX01BU1RFUl9LRVlfSVBTJyxcbiAgICBoZWxwOiBcIihPcHRpb25hbCkgUmVzdHJpY3RzIHRoZSB1c2Ugb2YgcmVhZC1vbmx5IG1hc3RlciBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIHJlYWQtb25seSBtYXN0ZXIga2V5IGNhbm5vdCBiZSB1c2VkIGV2ZW4gaW4gUGFyc2UgU2VydmVyIENsb3VkIENvZGUuIFRoaXMgdmFsdWUgY2Fubm90IGJlIHNldCB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIHBhc3MgYW4gZW1wdHkgYXJyYXkgdG8gUGFyc2UgU2VydmVyIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS48YnI+LSBTZXR0aW5nIGBbJzAuMC4wLjAvMCcsICc6OjAnXWAgbWVhbnMgdG8gYWxsb3cgYW55IElQdjQgYW5kIElQdjYgYWRkcmVzcyB0byB1c2UgdGhlIHJlYWQtb25seSBtYXN0ZXIga2V5IGFuZCBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgSVAgZmlsdGVyLjxicj48YnI+PGI+Q29uc2lkZXJhdGlvbnM6PC9iPjxicj4tIElQdjQgYW5kIElQdjYgYWRkcmVzc2VzIGFyZSBub3QgY29tcGFyZWQgYWdhaW5zdCBlYWNoIG90aGVyLiBFYWNoIElQIHZlcnNpb24gKElQdjQgYW5kIElQdjYpIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgYW55IElQdjQgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjYgYWRkcmVzcy4gQ29udmVyc2VseSwgYFsnOjowJ11gIGFsbG93cyBhbnkgSVB2NiBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NCBhZGRyZXNzLjxicj4tIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBJUCB2ZXJzaW9uIGluIHVzZSBkZXBlbmRzIG9uIHRoZSBuZXR3b3JrIHN0YWNrIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucy4gQSBsb2NhbCBlbnZpcm9ubWVudCBtYXkgdXNlIGEgZGlmZmVyZW50IElQIHZlcnNpb24gdGhhbiBhIHJlbW90ZSBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdGhhdCBsb2NhbGx5IHRoZSB2YWx1ZSBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIHRoZSByZXF1ZXN0IElQIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjQsIGJ1dCB3aGVuIFBhcnNlIFNlcnZlciBpcyBkZXBsb3llZCByZW1vdGVseSB0aGUgcmVxdWVzdCBJUCBpcyBibG9ja2VkIGJlY2F1c2UgdGhlIHJlbW90ZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY2Ljxicj4tIFdoZW4gc2V0dGluZyB0aGUgb3B0aW9uIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGUgbm90YXRpb24gaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLCBmb3IgZXhhbXBsZSBgXFxcIjAuMC4wLjAvMCw6OjBcXFwiYC48YnI+LSBJUHY2IHpvbmUgaW5kaWNlcyAoYCVgIHN1ZmZpeCkgYXJlIG5vdCBzdXBwb3J0ZWQsIGZvciBleGFtcGxlIGBmZTgwOjoxJWV0aDBgLCBgZmU4MDo6MSUxYCBvciBgOjoxJWxvYC48YnI+PGJyPkRlZmF1bHRzIHRvIGBbJzAuMC4wLjAvMCcsICc6OjAnXWAgd2hpY2ggbWVhbnMgdGhhdCBhbnkgSVAgYWRkcmVzcyBpcyBhbGxvd2VkIHRvIHVzZSB0aGUgcmVhZC1vbmx5IG1hc3RlciBrZXkuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHNldCB0aGlzIG9wdGlvbiB0byBgWycxMjcuMC4wLjEnLCAnOjoxJ11gIHRvIHJlc3RyaWN0IGFjY2VzcyB0byBgbG9jYWxob3N0YC5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgZGVmYXVsdDogWycwLjAuMC4wLzAnLCAnOjowJ10sXG4gIH0sXG4gIHJlcXVlc3RDb21wbGV4aXR5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFUVVFU1RfQ09NUExFWElUWScsXG4gICAgaGVscDogJ09wdGlvbnMgdG8gbGltaXQgdGhlIGNvbXBsZXhpdHkgb2YgcmVxdWVzdHMgdG8gcHJldmVudCBkZW5pYWwtb2Ytc2VydmljZSBhdHRhY2tzLiBMaW1pdHMgYXJlIGVuZm9yY2VkIGZvciBhbGwgcmVxdWVzdHMgZXhjZXB0IHRob3NlIHVzaW5nIHRoZSBtYXN0ZXIgb3IgbWFpbnRlbmFuY2Uga2V5LiBFYWNoIHByb3BlcnR5IGNhbiBiZSBzZXQgdG8gYC0xYCB0byBkaXNhYmxlIHRoYXQgc3BlY2lmaWMgbGltaXQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdSZXF1ZXN0Q29tcGxleGl0eU9wdGlvbnMnLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICByZXF1ZXN0Q29udGV4dE1pZGRsZXdhcmU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9DT05URVhUX01JRERMRVdBUkUnLFxuICAgIGhlbHA6ICdPcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdCBjb250ZXh0IHVzaW5nIGludmVyc2lvbiBvZiBjb250cm9sL2RlcGVuZGVuY3kgaW5qZWN0aW9uLicsXG4gIH0sXG4gIHJlcXVlc3RLZXl3b3JkRGVueWxpc3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9LRVlXT1JEX0RFTllMSVNUJyxcbiAgICBoZWxwOiAnQW4gYXJyYXkgb2Yga2V5cyBhbmQgdmFsdWVzIHRoYXQgYXJlIHByb2hpYml0ZWQgaW4gZGF0YWJhc2UgcmVhZCBhbmQgd3JpdGUgcmVxdWVzdHMgdG8gcHJldmVudCBwb3RlbnRpYWwgc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLiBJdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IG9ubHkgYSBrZXkgKGB7XCJrZXlcIjpcIi4uLlwifWApLCBvbmx5IGEgdmFsdWUgKGB7XCJ2YWx1ZVwiOlwiLi4uXCJ9YCkgb3IgYSBrZXktdmFsdWUgcGFpciAoYHtcImtleVwiOlwiLi4uXCIsXCJ2YWx1ZVwiOlwiLi4uXCJ9YCkuIFRoZSBzcGVjaWZpY2F0aW9uIGNhbiB1c2UgdGhlIGZvbGxvd2luZyB0eXBlczogYGJvb2xlYW5gLCBgbnVtZXJpY2Agb3IgYHN0cmluZ2AsIHdoZXJlIGBzdHJpbmdgIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSByZWdleCBub3RhdGlvbi4gUmVxdWVzdCBkYXRhIGlzIGRlZXAtc2Nhbm5lZCBmb3IgbWF0Y2hpbmcgZGVmaW5pdGlvbnMgdG8gZGV0ZWN0IGFsc28gYW55IG5lc3RlZCBvY2N1cnJlbmNlcy4gRGVmYXVsdHMgYXJlIHBhdHRlcm5zIHRoYXQgYXJlIGxpa2VseSB0byBiZSB1c2VkIGluIG1hbGljaW91cyByZXF1ZXN0cy4gU2V0dGluZyB0aGlzIG9wdGlvbiB3aWxsIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHBhdHRlcm5zLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnX2Jzb250eXBlJyxcbiAgICAgICAgdmFsdWU6ICdDb2RlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2NvbnN0cnVjdG9yJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ19fcHJvdG9fXycsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHJlc3RBUElLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVTVF9BUElfS0VZJyxcbiAgICBoZWxwOiAnS2V5IGZvciBSRVNUIGNhbGxzJyxcbiAgfSxcbiAgcmV2b2tlU2Vzc2lvbk9uUGFzc3dvcmRSZXNldDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVZPS0VfU0VTU0lPTl9PTl9QQVNTV09SRF9SRVNFVCcsXG4gICAgaGVscDogXCJXaGVuIGEgdXNlciBjaGFuZ2VzIHRoZWlyIHBhc3N3b3JkLCBlaXRoZXIgdGhyb3VnaCB0aGUgcmVzZXQgcGFzc3dvcmQgZW1haWwgb3Igd2hpbGUgbG9nZ2VkIGluLCBhbGwgc2Vzc2lvbnMgYXJlIHJldm9rZWQgaWYgdGhpcyBpcyB0cnVlLiBTZXQgdG8gZmFsc2UgaWYgeW91IGRvbid0IHdhbnQgdG8gcmV2b2tlIHNlc3Npb25zLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHJvdXRlQWxsb3dMaXN0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JPVVRFX0FMTE9XX0xJU1QnLFxuICAgIGhlbHA6ICcoT3B0aW9uYWwpIFJlc3RyaWN0cyBleHRlcm5hbCBjbGllbnQgYWNjZXNzIHRvIGEgbGlzdCBvZiBhbGxvd2VkIFJFU1QgQVBJIHJvdXRlcy48YnI+PGJyPldoZW4gdGhpcyBvcHRpb24gaXMgc2V0LCBhbGwgZXh0ZXJuYWwgbm9uLW1hc3Rlci1rZXkgUkVTVCBBUEkgcmVxdWVzdHMgYXJlIGRlbmllZCBieSBkZWZhdWx0LiBPbmx5IHJvdXRlcyBtYXRjaGluZyBhdCBsZWFzdCBvbmUgb2YgdGhlIGNvbmZpZ3VyZWQgcmVnZXggcGF0dGVybnMgYXJlIGFsbG93ZWQgdGhyb3VnaC4gSW50ZXJuYWwgY2FsbHMgZnJvbSBDbG91ZCBDb2RlLCBDbG91ZCBKb2JzLCBhbmQgdHJpZ2dlcnMgYXJlIG5vdCBhZmZlY3RlZC48YnI+PGJyPkVhY2ggZW50cnkgaXMgYSByZWdleCBwYXR0ZXJuIHN0cmluZyBtYXRjaGVkIGFnYWluc3QgdGhlIG5vcm1hbGl6ZWQgcm91dGUgaWRlbnRpZmllciAocmVxdWVzdCBwYXRoIHdpdGggbW91bnQgcHJlZml4IGFuZCBsZWFkaW5nIHNsYXNoIHN0cmlwcGVkKS4gUGF0dGVybnMgYXJlIGF1dG8tYW5jaG9yZWQgd2l0aCBgXmAgYW5kIGAkYCBmb3IgZnVsbC1tYXRjaCBzZW1hbnRpY3MuPGJyPjxicj48Yj5FeGFtcGxlcyBvZiBub3JtYWxpemVkIHJvdXRlIGlkZW50aWZpZXJzOjwvYj48dWw+PGxpPmBjbGFzc2VzL0dhbWVTY29yZWAgKGNsYXNzIENSVUQpPC9saT48bGk+YGNsYXNzZXMvR2FtZVNjb3JlL2FiYzEyM2AgKG9iamVjdCBieSBJRCk8L2xpPjxsaT5gdXNlcnNgICh1c2VyIG9wZXJhdGlvbnMpPC9saT48bGk+YGxvZ2luYCAobG9naW4gZW5kcG9pbnQpPC9saT48bGk+YGZ1bmN0aW9ucy9zZW5kRW1haWxgIChDbG91ZCBGdW5jdGlvbik8L2xpPjxsaT5gam9icy9jbGVhbnVwYCAoQ2xvdWQgSm9iKTwvbGk+PGxpPmBwdXNoYCAocHVzaCBub3RpZmljYXRpb25zKTwvbGk+PGxpPmBjb25maWdgIChjbGllbnQgY29uZmlnKTwvbGk+PGxpPmBpbnN0YWxsYXRpb25zYCAoaW5zdGFsbGF0aW9ucyk8L2xpPjwvdWw+PGI+RXhhbXBsZSBwYXR0ZXJuczo8L2I+PHVsPjxsaT5gY2xhc3Nlcy9DaGF0TWVzc2FnZWAgbWF0Y2hlcyBvbmx5IGBjbGFzc2VzL0NoYXRNZXNzYWdlYDwvbGk+PGxpPmBjbGFzc2VzL0NoYXQuKmAgbWF0Y2hlcyBgY2xhc3Nlcy9DaGF0TWVzc2FnZWAsIGBjbGFzc2VzL0NoYXRSb29tYCwgZXRjLjwvbGk+PGxpPmBmdW5jdGlvbnMvLipgIG1hdGNoZXMgYWxsIENsb3VkIEZ1bmN0aW9uczwvbGk+PC91bD5TZXR0aW5nIGFuIGVtcHR5IGFycmF5IGBbXWAgYmxvY2tzIGFsbCBleHRlcm5hbCBub24tbWFzdGVyLWtleSBSRVNUIEFQSSByZXF1ZXN0cyAoZnVsbCBsb2NrZG93biBvZiBSRVNUIEFQSSByb3V0ZXMpLjxicj48YnI+V2hlbiBzZXR0aW5nIHRoZSBvcHRpb24gdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgbm90YXRpb24gaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLCBmb3IgZXhhbXBsZSBgXCJjbGFzc2VzL0NoYXRNZXNzYWdlLHVzZXJzLGZ1bmN0aW9ucy8uKlwiYC48YnI+PGJyPkRlZmF1bHRzIHRvIGB1bmRlZmluZWRgIHdoaWNoIG1lYW5zIHRoZSBmZWF0dXJlIGlzIGluYWN0aXZlIGFuZCBhbGwgcm91dGVzIGFyZSBhY2Nlc3NpYmxlLjxicj48YnI+PGI+Tm90ZTo8L2I+IEZpbGUgcm91dGVzLCB0aGUgUGFnZXMgQVBJIGFuZCB0aGUgR3JhcGhRTCBBUEkgYXJlIG5vdCBjb3ZlcmVkIGJ5IHRoaXMgb3B0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBzY2hlZHVsZWRQdXNoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVEVUxFRF9QVVNIJyxcbiAgICBoZWxwOiAnQ29uZmlndXJhdGlvbiBmb3IgcHVzaCBzY2hlZHVsaW5nLCBkZWZhdWx0cyB0byBmYWxzZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBzY2hlbWE6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRU1BJyxcbiAgICBoZWxwOiAnRGVmaW5lZCBzY2hlbWEnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ1NjaGVtYU9wdGlvbnMnLFxuICB9LFxuICBzZWN1cml0eToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TRUNVUklUWScsXG4gICAgaGVscDogJ1RoZSBzZWN1cml0eSBvcHRpb25zIHRvIGlkZW50aWZ5IGFuZCByZXBvcnQgd2VhayBzZWN1cml0eSBzZXR0aW5ncy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ1NlY3VyaXR5T3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIHNlbmRVc2VyRW1haWxWZXJpZmljYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VORF9VU0VSX0VNQUlMX1ZFUklGSUNBVElPTicsXG4gICAgaGVscDogJ1NldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgc2VuZGluZyBvZiB2ZXJpZmljYXRpb24gZW1haWwuIFN1cHBvcnRzIGEgZnVuY3Rpb24gd2l0aCBhIHJldHVybiB2YWx1ZSBvZiBgdHJ1ZWAgb3IgYGZhbHNlYCBmb3IgY29uZGl0aW9uYWwgZW1haWwgc2VuZGluZy48YnI+PGJyPkRlZmF1bHQgaXMgYHRydWVgLjxicj4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuT3JGdW5jdGlvblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBzZXJ2ZXJDbG9zZUNvbXBsZXRlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFUlZFUl9DTE9TRV9DT01QTEVURScsXG4gICAgaGVscDogJ0NhbGxiYWNrIHdoZW4gc2VydmVyIGhhcyBjbG9zZWQnLFxuICB9LFxuICBzZXJ2ZXJVUkw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVVJMJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byBQYXJzZSBTZXJ2ZXIuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBDZXJ0YWluIHNlcnZlciBmZWF0dXJlcyBvciBhZGFwdGVycyBtYXkgcmVxdWlyZSBQYXJzZSBTZXJ2ZXIgdG8gYmUgYWJsZSB0byBjYWxsIGl0c2VsZiBieSBtYWtpbmcgcmVxdWVzdHMgdG8gdGhlIFVSTCBzZXQgaW4gYHNlcnZlclVSTGAuIElmIGEgZmVhdHVyZSByZXF1aXJlcyB0aGlzLCBpdCBpcyBtZW50aW9uZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uIEluIHRoYXQgY2FzZSBlbnN1cmUgdGhhdCB0aGUgVVJMIGlzIGFjY2Vzc2libGUgZnJvbSB0aGUgc2VydmVyIGl0c2VsZi4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBzZXNzaW9uTGVuZ3RoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFU1NJT05fTEVOR1RIJyxcbiAgICBoZWxwOiAnU2Vzc2lvbiBkdXJhdGlvbiwgaW4gc2Vjb25kcywgZGVmYXVsdHMgdG8gMSB5ZWFyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdzZXNzaW9uTGVuZ3RoJyksXG4gICAgZGVmYXVsdDogMzE1MzYwMDAsXG4gIH0sXG4gIHNpbGVudDoge1xuICAgIGVudjogJ1NJTEVOVCcsXG4gICAgaGVscDogJ0Rpc2FibGVzIGNvbnNvbGUgb3V0cHV0JyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgc3RhcnRMaXZlUXVlcnlTZXJ2ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU1RBUlRfTElWRV9RVUVSWV9TRVJWRVInLFxuICAgIGhlbHA6ICdTdGFydHMgYSBMaXZlUXVlcnkgc2VydmVyIGFsb25nc2lkZSB0aGlzIFBhcnNlIFNlcnZlci4gRXZlbnRzIGFyZSBvbmx5IGRlbGl2ZXJlZCBmb3IgdGhlIGNsYXNzZXMgc2V0IGluIGBsaXZlUXVlcnkuY2xhc3NOYW1lc2AsIHNvIGEgbWluaW1hbCB3b3JraW5nIHNldHVwIGlzIGBsaXZlUXVlcnk6IHsgY2xhc3NOYW1lczogWy4uLl0gfWAgdG9nZXRoZXIgd2l0aCBgc3RhcnRMaXZlUXVlcnlTZXJ2ZXI6IHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHRydXN0UHJveHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVFJVU1RfUFJPWFknLFxuICAgIGhlbHA6ICdUaGUgdHJ1c3QgcHJveHkgc2V0dGluZ3MuIEl0IGlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBleGFjdCBzZXR1cCBvZiB0aGUgcmV2ZXJzZSBwcm94eSwgc2luY2UgdGhpcyBzZXR0aW5nIHdpbGwgdHJ1c3QgdmFsdWVzIHByb3ZpZGVkIGluIHRoZSBQYXJzZSBTZXJ2ZXIgQVBJIHJlcXVlc3QuIFNlZSB0aGUgPGEgaHJlZj1cImh0dHBzOi8vZXhwcmVzc2pzLmNvbS9lbi9ndWlkZS9iZWhpbmQtcHJveGllcy5odG1sXCI+ZXhwcmVzcyB0cnVzdCBwcm94eSBzZXR0aW5nczwvYT4gZG9jdW1lbnRhdGlvbi4gRGVmYXVsdHMgdG8gYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDogW10sXG4gIH0sXG4gIHVzZXJTZW5zaXRpdmVGaWVsZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVVNFUl9TRU5TSVRJVkVfRklFTERTJyxcbiAgICBoZWxwOiAnUGVyc29uYWxseSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24gZmllbGRzIGluIHRoZSB1c2VyIHRhYmxlIHRoZSBzaG91bGQgYmUgcmVtb3ZlZCBmb3Igbm9uLWF1dGhvcml6ZWQgdXNlcnMuIERlcHJlY2F0ZWQgQHNlZSBwcm90ZWN0ZWRGaWVsZHMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgdmVyYm9zZToge1xuICAgIGVudjogJ1ZFUkJPU0UnLFxuICAgIGhlbHA6ICdTZXQgdGhlIGxvZ2dpbmcgdG8gdmVyYm9zZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHZlcmlmeVNlcnZlclVybDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9WRVJJRllfU0VSVkVSX1VSTCcsXG4gICAgaGVscDogJ1BhcnNlIFNlcnZlciBtYWtlcyBhIEhUVFAgcmVxdWVzdCB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYCBhdCB0aGUgZW5kIG9mIGl0cyBsYXVuY2ggcm91dGluZSB0byB2ZXJpZnkgdGhhdCB0aGUgbGF1bmNoIHN1Y2NlZWRlZC4gSWYgdGhpcyBvcHRpb24gaXMgc2V0IHRvIGBmYWxzZWAsIHRoZSB2ZXJpZmljYXRpb24gd2lsbCBiZSBza2lwcGVkLiBUaGlzIGNhbiBiZSB1c2VmdWwgaW4gZW52aXJvbm1lbnRzIHdoZXJlIHRoZSBzZXJ2ZXIgVVJMIGlzIG5vdCBhY2Nlc3NpYmxlIGZyb20gdGhlIHNlcnZlciBpdHNlbGYsIHN1Y2ggYXMgd2hlbiBydW5uaW5nIGJlaGluZCBhIGZpcmV3YWxsIG9yIGluIGNlcnRhaW4gY29udGFpbmVyaXplZCBlbnZpcm9ubWVudHMuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBTZXJ2ZXIgVVJMIHZlcmlmaWNhdGlvbiByZXF1aXJlcyBQYXJzZSBTZXJ2ZXIgdG8gYmUgYWJsZSB0byBjYWxsIGl0c2VsZiBieSBtYWtpbmcgcmVxdWVzdHMgdG8gdGhlIFVSTCBzZXQgaW4gYHNlcnZlclVSTGAuPGJyPjxicj5EZWZhdWx0IGlzIGB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHZlcmlmeVVzZXJFbWFpbHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVkVSSUZZX1VTRVJfRU1BSUxTJyxcbiAgICBoZWxwOiBcIlNldCB0byBgdHJ1ZWAgdG8gcmVxdWlyZSB1c2VycyB0byB2ZXJpZnkgdGhlaXIgZW1haWwgYWRkcmVzcyB0byBjb21wbGV0ZSB0aGUgc2lnbi11cCBwcm9jZXNzLiBTdXBwb3J0cyBhIGZ1bmN0aW9uIHdpdGggYSByZXR1cm4gdmFsdWUgb2YgYHRydWVgIG9yIGBmYWxzZWAgZm9yIGNvbmRpdGlvbmFsIHZlcmlmaWNhdGlvbi4gVGhlIGZ1bmN0aW9uIHJlY2VpdmVzIGEgcmVxdWVzdCBvYmplY3QgdGhhdCBpbmNsdWRlcyBgY3JlYXRlZFdpdGhgIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGludm9jYXRpb24gaXMgZm9yIGBzaWdudXBgIG9yIGBsb2dpbmAgYW5kIHRoZSB1c2VkIGF1dGggcHJvdmlkZXIuPGJyPjxicj5UaGUgYGNyZWF0ZWRXaXRoYCB2YWx1ZXMgcGVyIHNjZW5hcmlvOjx1bD48bGk+UGFzc3dvcmQgc2lnbnVwOiBgeyBhY3Rpb246ICdzaWdudXAnLCBhdXRoUHJvdmlkZXI6ICdwYXNzd29yZCcgfWA8L2xpPjxsaT5BdXRoIHByb3ZpZGVyIHNpZ251cDogYHsgYWN0aW9uOiAnc2lnbnVwJywgYXV0aFByb3ZpZGVyOiAnPHByb3ZpZGVyPicgfWA8L2xpPjxsaT5QYXNzd29yZCBsb2dpbjogYHsgYWN0aW9uOiAnbG9naW4nLCBhdXRoUHJvdmlkZXI6ICdwYXNzd29yZCcgfWA8L2xpPjxsaT5BdXRoIHByb3ZpZGVyIGxvZ2luOiBmdW5jdGlvbiBub3QgaW52b2tlZDsgYXV0aCBwcm92aWRlciBsb2dpbiBieXBhc3NlcyBlbWFpbCB2ZXJpZmljYXRpb248L2xpPjxsaT5SZXNlbmQgdmVyaWZpY2F0aW9uIGVtYWlsOiBgY3JlYXRlZFdpdGhgIGlzIGB1bmRlZmluZWRgOyB1c2UgdGhlIGByZXNlbmRSZXF1ZXN0YCBwcm9wZXJ0eSB0byBpZGVudGlmeSB0aG9zZTwvbGk+PC91bD5EZWZhdWx0IGlzIGBmYWxzZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5PckZ1bmN0aW9uUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICB3ZWJob29rS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1dFQkhPT0tfS0VZJyxcbiAgICBoZWxwOiAnS2V5IHNlbnQgd2l0aCBvdXRnb2luZyB3ZWJob29rIGNhbGxzJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5SYXRlTGltaXRPcHRpb25zID0ge1xuICBlcnJvclJlc3BvbnNlTWVzc2FnZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX0VSUk9SX1JFU1BPTlNFX01FU1NBR0UnLFxuICAgIGhlbHA6ICdUaGUgZXJyb3IgbWVzc2FnZSB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCBpbiB0aGUgYm9keSBvZiB0aGUgSFRUUCA0MjkgcmVzcG9uc2Ugd2hlbiB0aGUgcmF0ZSBsaW1pdCBpcyBoaXQuIERlZmF1bHQgaXMgYFRvbyBtYW55IHJlcXVlc3RzLmAuJyxcbiAgICBkZWZhdWx0OiAnVG9vIG1hbnkgcmVxdWVzdHMuJyxcbiAgfSxcbiAgaW5jbHVkZUludGVybmFsUmVxdWVzdHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkFURV9MSU1JVF9JTkNMVURFX0lOVEVSTkFMX1JFUVVFU1RTJyxcbiAgICBoZWxwOiAnT3B0aW9uYWwsIGlmIGB0cnVlYCB0aGUgcmF0ZSBsaW1pdCB3aWxsIGFsc28gYXBwbHkgdG8gcmVxdWVzdHMgdGhhdCBhcmUgbWFkZSBpbiBieSBDbG91ZCBDb2RlLCBkZWZhdWx0IGlzIGBmYWxzZWAuIE5vdGUgdGhhdCBhIHB1YmxpYyBDbG91ZCBDb2RlIGZ1bmN0aW9uIHRoYXQgdHJpZ2dlcnMgaW50ZXJuYWwgcmVxdWVzdHMgbWF5IGNpcmN1bXZlbnQgcmF0ZSBsaW1pdGluZyBhbmQgYmUgdnVsbmVyYWJsZSB0byBhdHRhY2tzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGluY2x1ZGVNYXN0ZXJLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkFURV9MSU1JVF9JTkNMVURFX01BU1RFUl9LRVknLFxuICAgIGhlbHA6ICdPcHRpb25hbCwgaWYgYHRydWVgIHRoZSByYXRlIGxpbWl0IHdpbGwgYWxzbyBhcHBseSB0byByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAsIGRlZmF1bHQgaXMgYGZhbHNlYC4gTm90ZSB0aGF0IGEgcHVibGljIENsb3VkIENvZGUgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBpbnRlcm5hbCByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAgbWF5IGNpcmN1bXZlbnQgcmF0ZSBsaW1pdGluZyBhbmQgYmUgdnVsbmVyYWJsZSB0byBhdHRhY2tzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHJlZGlzVXJsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfUkVESVNfVVJMJyxcbiAgICBoZWxwOiAnT3B0aW9uYWwsIHRoZSBVUkwgb2YgdGhlIFJlZGlzIHNlcnZlciB0byBzdG9yZSByYXRlIGxpbWl0IGRhdGEuIFRoaXMgYWxsb3dzIHRvIHJhdGUgbGltaXQgcmVxdWVzdHMgZm9yIG11bHRpcGxlIHNlcnZlcnMgYnkgY2FsY3VsYXRpbmcgdGhlIHN1bSBvZiBhbGwgcmVxdWVzdHMgYWNyb3NzIGFsbCBzZXJ2ZXJzLiBUaGlzIGlzIHVzZWZ1bCBpZiBtdWx0aXBsZSBzZXJ2ZXJzIGFyZSBwcm9jZXNzaW5nIHJlcXVlc3RzIGJlaGluZCBhIGxvYWQgYmFsYW5jZXIuIEZvciBleGFtcGxlLCB0aGUgbGltaXQgb2YgMTAgcmVxdWVzdHMgaXMgcmVhY2hlZCBpZiBlYWNoIG9mIDIgc2VydmVycyBwcm9jZXNzZWQgNSByZXF1ZXN0cy4nLFxuICB9LFxuICByZXF1ZXN0Q291bnQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkFURV9MSU1JVF9SRVFVRVNUX0NPVU5UJyxcbiAgICBoZWxwOiAnVGhlIG51bWJlciBvZiByZXF1ZXN0cyB0aGF0IGNhbiBiZSBtYWRlIHBlciBJUCBhZGRyZXNzIHdpdGhpbiB0aGUgdGltZSB3aW5kb3cgc2V0IGluIGByZXF1ZXN0VGltZVdpbmRvd2AgYmVmb3JlIHRoZSByYXRlIGxpbWl0IGlzIGFwcGxpZWQuIEZvciBiYXRjaCByZXF1ZXN0cywgdGhpcyBhbHNvIGxpbWl0cyB0aGUgbnVtYmVyIG9mIHN1Yi1yZXF1ZXN0cyBpbiBhIHNpbmdsZSBiYXRjaCB0aGF0IHRhcmdldCB0aGlzIHBhdGg7IGhvd2V2ZXIsIHJlcXVlc3RzIGFscmVhZHkgY29uc3VtZWQgaW4gdGhlIGN1cnJlbnQgdGltZSB3aW5kb3cgYXJlIG5vdCBjb3VudGVkIGFnYWluc3QgdGhlIGJhdGNoLCBzbyB0aGUgZWZmZWN0aXZlIGxpbWl0IG1heSBiZSBoaWdoZXIgd2hlbiBjb21iaW5pbmcgaW5kaXZpZHVhbCBhbmQgYmF0Y2ggcmVxdWVzdHMuIE5vdGUgdGhhdCB0aGlzIGlzIGEgYmFzaWMgc2VydmVyLWxldmVsIHJhdGUgbGltaXQ7IGZvciBjb21wcmVoZW5zaXZlIHByb3RlY3Rpb24sIHVzZSBhIHJldmVyc2UgcHJveHkgb3IgV0FGIGZvciByYXRlIGxpbWl0aW5nLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncmVxdWVzdENvdW50JyksXG4gIH0sXG4gIHJlcXVlc3RNZXRob2RzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfUkVRVUVTVF9NRVRIT0RTJyxcbiAgICBoZWxwOiBcIk9wdGlvbmFsLCB0aGUgSFRUUCByZXF1ZXN0IG1ldGhvZHMgdG8gd2hpY2ggdGhlIHJhdGUgbGltaXQgc2hvdWxkIGJlIGFwcGxpZWQsIGRlZmF1bHQgaXMgYWxsIG1ldGhvZHMuIFRoZSBtZXRob2QgaXMgbWF0Y2hlZCBhZnRlciBhbnkgYF9tZXRob2RgIGJvZHkgb3ZlcnJpZGUgaGFzIGJlZW4gcmVzb2x2ZWQsIGkuZS4gaXQgaXMgdGhlIG1ldGhvZCB1c2VkIHRvIHJvdXRlIHRoZSByZXF1ZXN0LiBOb3RlIHRoYXQgc29tZSBlbmRwb2ludHMgYXJlIHJlYWNoYWJsZSB2aWEgbW9yZSB0aGFuIG9uZSBIVFRQIG1ldGhvZCAoZm9yIGV4YW1wbGUgYC9sb2dpbmAgYW5kIGAvdmVyaWZ5UGFzc3dvcmRgIGFyZSBhdmFpbGFibGUgdmlhIGJvdGggYEdFVGAgYW5kIGBQT1NUYCk7IHRvIHJhdGUgbGltaXQgc3VjaCBhbiBlbmRwb2ludCByZWxpYWJseSwgaW5jbHVkZSBhbGwgcmVsZXZhbnQgbWV0aG9kcyAoZS5nLiBgWydHRVQnLCAnUE9TVCddYCkgb3Igb21pdCB0aGlzIG9wdGlvbiB0byBhcHBseSB0aGUgbGltaXQgdG8gYWxsIG1ldGhvZHMuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICByZXF1ZXN0UGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1JFUVVFU1RfUEFUSCcsXG4gICAgaGVscDogJ1RoZSBwYXRoIG9mIHRoZSBBUEkgcm91dGUgdG8gYmUgcmF0ZSBsaW1pdGVkLiBSb3V0ZSBwYXRocywgaW4gY29tYmluYXRpb24gd2l0aCBhIHJlcXVlc3QgbWV0aG9kLCBkZWZpbmUgdGhlIGVuZHBvaW50cyBhdCB3aGljaCByZXF1ZXN0cyBjYW4gYmUgbWFkZS4gUm91dGUgcGF0aHMgY2FuIGJlIHN0cmluZ3Mgb3Igc3RyaW5nIHBhdHRlcm5zIGZvbGxvd2luZyA8YSBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL3BpbGxhcmpzL3BhdGgtdG8tcmVnZXhwXCI+cGF0aC10by1yZWdleHAgdjg8L2E+IHN5bnRheC4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICByZXF1ZXN0VGltZVdpbmRvdzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1JFUVVFU1RfVElNRV9XSU5ET1cnLFxuICAgIGhlbHA6ICdUaGUgd2luZG93IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHdpdGhpbiB3aGljaCB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIHNldCBpbiBgcmVxdWVzdENvdW50YCBjYW4gYmUgbWFkZSBiZWZvcmUgdGhlIHJhdGUgbGltaXQgaXMgYXBwbGllZC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3JlcXVlc3RUaW1lV2luZG93JyksXG4gIH0sXG4gIHpvbmU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkFURV9MSU1JVF9aT05FJyxcbiAgICBoZWxwOiAnVGhlIHR5cGUgb2YgcmF0ZSBsaW1pdCB0byBhcHBseS4gVGhlIGZvbGxvd2luZyB0eXBlcyBhcmUgc3VwcG9ydGVkOjx1bD48bGk+YGdsb2JhbGA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIG51bWJlciBvZiByZXF1ZXN0cyBtYWRlIGJ5IGFsbCB1c2VyczwvbGk+PGxpPmBpcGA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIElQIGFkZHJlc3Mgb2YgdGhlIHJlcXVlc3Q8L2xpPjxsaT5gdXNlcmA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIHVzZXIgSUQgb2YgdGhlIHJlcXVlc3Q8L2xpPjxsaT5gc2Vzc2lvbmA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIHNlc3Npb24gdG9rZW4gb2YgdGhlIHJlcXVlc3Q8L2xpPjwvdWw+RGVmYXVsdCBpcyBgaXBgLicsXG4gICAgZGVmYXVsdDogJ2lwJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5SZXF1ZXN0Q29tcGxleGl0eU9wdGlvbnMgPSB7XG4gIGFsbG93UmVnZXg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9DT01QTEVYSVRZX0FMTE9XX1JFR0VYJyxcbiAgICBoZWxwOiAnV2hldGhlciB0byBhbGxvdyB0aGUgYCRyZWdleGAgcXVlcnkgb3BlcmF0b3IuIFNldCB0byBgZmFsc2VgIHRvIHJlamVjdCBgJHJlZ2V4YCBpbiBxdWVyaWVzIGZvciBub24tbWFzdGVyLWtleSB1c2Vycy4gRGVmYXVsdCBpcyBgdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBiYXRjaFJlcXVlc3RMaW1pdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTVBMRVhJVFlfQkFUQ0hfUkVRVUVTVF9MSU1JVCcsXG4gICAgaGVscDogJ01heGltdW0gbnVtYmVyIG9mIHN1Yi1yZXF1ZXN0cyBpbiBhIHNpbmdsZSBiYXRjaCByZXF1ZXN0LiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGAtMWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdiYXRjaFJlcXVlc3RMaW1pdCcpLFxuICAgIGRlZmF1bHQ6IC0xLFxuICB9LFxuICBncmFwaFFMRGVwdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9DT01QTEVYSVRZX0dSQVBIUUxfREVQVEgnLFxuICAgIGhlbHA6ICdNYXhpbXVtIGRlcHRoIG9mIEdyYXBoUUwgZmllbGQgc2VsZWN0aW9ucy4gU2V0IHRvIGAtMWAgdG8gZGlzYWJsZS4gRGVmYXVsdCBpcyBgLTFgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignZ3JhcGhRTERlcHRoJyksXG4gICAgZGVmYXVsdDogLTEsXG4gIH0sXG4gIGdyYXBoUUxGaWVsZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9DT01QTEVYSVRZX0dSQVBIUUxfRklFTERTJyxcbiAgICBoZWxwOiAnTWF4aW11bSBudW1iZXIgb2YgZmllbGQgc2VsZWN0aW9ucyBpbiBhIEdyYXBoUUwgcXVlcnkuIFNldCB0byBgLTFgIHRvIGRpc2FibGUuIERlZmF1bHQgaXMgYC0xYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2dyYXBoUUxGaWVsZHMnKSxcbiAgICBkZWZhdWx0OiAtMSxcbiAgfSxcbiAgaW5jbHVkZUNvdW50OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFUVVFU1RfQ09NUExFWElUWV9JTkNMVURFX0NPVU5UJyxcbiAgICBoZWxwOiAnTWF4aW11bSBudW1iZXIgb2YgaW5jbHVkZSBwYXRocyBpbiBhIHNpbmdsZSBxdWVyeS4gU2V0IHRvIGAtMWAgdG8gZGlzYWJsZS4gRGVmYXVsdCBpcyBgLTFgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignaW5jbHVkZUNvdW50JyksXG4gICAgZGVmYXVsdDogLTEsXG4gIH0sXG4gIGluY2x1ZGVEZXB0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTVBMRVhJVFlfSU5DTFVERV9ERVBUSCcsXG4gICAgaGVscDogJ01heGltdW0gZGVwdGggb2YgaW5jbHVkZSBwb2ludGVyIGNoYWlucyAoZS5nLiBgYS5iLmNgID0gZGVwdGggMykuIFNldCB0byBgLTFgIHRvIGRpc2FibGUuIERlZmF1bHQgaXMgYC0xYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2luY2x1ZGVEZXB0aCcpLFxuICAgIGRlZmF1bHQ6IC0xLFxuICB9LFxuICBxdWVyeURlcHRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFUVVFU1RfQ09NUExFWElUWV9RVUVSWV9ERVBUSCcsXG4gICAgaGVscDogJ01heGltdW0gbmVzdGluZyBkZXB0aCBvZiBgJG9yYCwgYCRhbmRgLCBgJG5vcmAgcXVlcnkgb3BlcmF0b3JzLiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGAtMWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdxdWVyeURlcHRoJyksXG4gICAgZGVmYXVsdDogLTEsXG4gIH0sXG4gIHN1YnF1ZXJ5RGVwdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9DT01QTEVYSVRZX1NVQlFVRVJZX0RFUFRIJyxcbiAgICBoZWxwOiAnTWF4aW11bSBuZXN0aW5nIGRlcHRoIG9mIGAkaW5RdWVyeWAsIGAkbm90SW5RdWVyeWAsIGAkc2VsZWN0YCwgYCRkb250U2VsZWN0YCBzdWJxdWVyaWVzLiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGAtMWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdzdWJxdWVyeURlcHRoJyksXG4gICAgZGVmYXVsdDogLTEsXG4gIH0sXG4gIHN1YnF1ZXJ5TGltaXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9DT01QTEVYSVRZX1NVQlFVRVJZX0xJTUlUJyxcbiAgICBoZWxwOiAnTWF4aW11bSBudW1iZXIgb2YgcmVzdWx0cyByZXR1cm5lZCBieSBhIGAkaW5RdWVyeWAsIGAkbm90SW5RdWVyeWAsIGAkc2VsZWN0YCwgYCRkb250U2VsZWN0YCBzdWJxdWVyeS4gU2V0IHRvIGAtMWAgdG8gZGlzYWJsZS4gRGVmYXVsdCBpcyBgLTFgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignc3VicXVlcnlMaW1pdCcpLFxuICAgIGRlZmF1bHQ6IC0xLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkluc3RhbGxhdGlvbk9wdGlvbnMgPSB7XG4gIGR1cGxpY2F0ZURldmljZVRva2VuQWN0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0lOU1RBTExBVElPTl9EVVBMSUNBVEVfREVWSUNFX1RPS0VOX0FDVElPTicsXG4gICAgaGVscDogXCJXaGF0IFBhcnNlIFNlcnZlciBkb2VzIHRvIHRoZSBjb25mbGljdGluZyBgX0luc3RhbGxhdGlvbmAgcm93KHMpIHdoZW4gYSBuZXcgaW5zdGFsbCdzIGBkZXZpY2VUb2tlbmAgY29sbGlkZXMgd2l0aCBhbiBleGlzdGluZyByb3cuIGAnZGVsZXRlJ2AgZGVzdHJveXMgdGhlIGNvbmZsaWN0aW5nIHJvdy4gYCd1cGRhdGUnYCBjbGVhcnMgdGhlIG5vdy1jb25mbGljdGluZyBJRCBmaWVsZCBvbiB0aGUgY29uZmxpY3Rpbmcgcm93LCBwcmVzZXJ2aW5nIGN1c3RvbSBmaWVsZHMsIGNoYW5uZWxzLCBhbmQgaGlzdG9yeS4gRGVmYXVsdCBpcyBgJ2RlbGV0ZSdgLlwiLFxuICAgIGRlZmF1bHQ6ICdkZWxldGUnLFxuICB9LFxuICBkdXBsaWNhdGVEZXZpY2VUb2tlbkFjdGlvbkVuZm9yY2VBdXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0lOU1RBTExBVElPTl9EVVBMSUNBVEVfREVWSUNFX1RPS0VOX0FDVElPTl9FTkZPUkNFX0FVVEgnLFxuICAgIGhlbHA6IFwiV2hldGhlciB0aGUgYF9JbnN0YWxsYXRpb25gIGRlZHVwbGljYXRpb24gb3BlcmF0aW9uIGVuZm9yY2VzIHRoZSBjYWxsZXIncyBhdXRoIGNvbnRleHQgKGFuZCB0aGUgcmVzdWx0aW5nIEFDTCBhbmQgQ0xQKS4gV2hlbiBgdHJ1ZWAsIHRoZSBkZWR1cCBgZGVzdHJveWAvYHVwZGF0ZWAgcnVucyB3aXRoIHRoZSBjYWxsZXIncyBgcnVuT3B0aW9uc2AsIHNvIEFDTCBhbmQgQ0xQIGFyZSBob25vcmVkLiBXaGVuIGBmYWxzZWAsIHRoZSBkZWR1cCBydW5zIGFzIG1hc3RlciBhbmQgYnlwYXNzZXMgYm90aC4gTWFzdGVyIGFuZCBtYWludGVuYW5jZSBrZXlzIGFsd2F5cyBieXBhc3MgcmVnYXJkbGVzcyBvZiB0aGlzIGZsYWcuIEJlY2F1c2Ugd2hhdCB0aGlzIG9wdGlvbiBlbmZvcmNlcyBpcyB0aGUgQUNMIGFuZCB0aGUgY2xhc3MtbGV2ZWwgcGVybWlzc2lvbnMsIGl0IGhhcyBubyBlZmZlY3Qgb24gaXRzIG93biBmb3IgYSByZWNvcmQgdGhhdCBjYXJyaWVzIG5vIEFDTCB1bmRlciBwZXJtaXNzaXZlIGNsYXNzLWxldmVsIHBlcm1pc3Npb25zOyB0byBzY29wZSB0aGUgZGVkdXBsaWNhdGlvbiwgY29tYmluZSB0aGlzIG9wdGlvbiB3aXRoIGFuIEFDTCBvbiBgX0luc3RhbGxhdGlvbmAgcmVjb3JkcyBvciB3aXRoIGNsYXNzLWxldmVsIHBlcm1pc3Npb25zIHRoYXQgd2l0aGhvbGQgdGhlIGBkZWxldGVgIG9wZXJhdGlvbiBmcm9tIHRoZSBjYWxsZXIuIERlZmF1bHQgaXMgYGZhbHNlYC5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZHVwbGljYXRlRGV2aWNlVG9rZW5NZXJnZVByaW9yaXR5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0lOU1RBTExBVElPTl9EVVBMSUNBVEVfREVWSUNFX1RPS0VOX01FUkdFX1BSSU9SSVRZJyxcbiAgICBoZWxwOiBcIkF0IHRoZSBtZXJnZSBjYXNlICh3aGVuIGFuIGV4aXN0aW5nIHJvdyBob2xkcyB0aGUgbmV3IGBkZXZpY2VUb2tlbmAgYnV0IGhhcyBubyBgaW5zdGFsbGF0aW9uSWRgIG9mIGl0cyBvd24pLCB3aGljaCBzaWRlIHdpbnMuIGAnZGV2aWNlVG9rZW4nYCBcXHUyMDE0IHRoZSBkZXZpY2VUb2tlbi1vbmx5IHJvdyBzdXJ2aXZlcywgdGhlIHJlcXVlc3QncyBgaWRNYXRjaGAgcm93IGlzIHRoZSBsb3Nlci4gYCdpbnN0YWxsYXRpb25JZCdgIFxcdTIwMTQgdGhlIHJlcXVlc3QncyBgaWRNYXRjaGAgKGFjdGl2ZSBpbnN0YWxsKSBzdXJ2aXZlcywgdGhlIGRldmljZVRva2VuLW9ubHkgb3JwaGFuIGlzIHRoZSBsb3Nlci4gRGVmYXVsdCBpcyBgJ2RldmljZVRva2VuJ2AuXCIsXG4gICAgZGVmYXVsdDogJ2RldmljZVRva2VuJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5TZWN1cml0eU9wdGlvbnMgPSB7XG4gIGNoZWNrR3JvdXBzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFQ1VSSVRZX0NIRUNLX0dST1VQUycsXG4gICAgaGVscDogJ1RoZSBzZWN1cml0eSBjaGVjayBncm91cHMgdG8gcnVuLiBUaGlzIGFsbG93cyB0byBhZGQgY3VzdG9tIHNlY3VyaXR5IGNoZWNrcyBvciBvdmVycmlkZSBleGlzdGluZyBvbmVzLiBEZWZhdWx0IGFyZSB0aGUgZ3JvdXBzIGRlZmluZWQgaW4gYENoZWNrR3JvdXBzLmpzYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgZW5hYmxlQ2hlY2s6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFlfRU5BQkxFX0NIRUNLJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGNoZWNrIGZvciB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZUNoZWNrTG9nOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFQ1VSSVRZX0VOQUJMRV9DSEVDS19MT0cnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIHRoZSBzZWN1cml0eSBjaGVjayByZXBvcnQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9ncy4gVGhpcyBzaG91bGQgb25seSBiZSBlbmFibGVkIHRlbXBvcmFyaWx5IHRvIG5vdCBleHBvc2Ugd2VhayBzZWN1cml0eSBzZXR0aW5ncyBpbiBsb2dzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuUXVlcnlTZXJ2ZXJPcHRpb25zID0ge1xuICBhZ2dyZWdhdGlvblJhd0ZpZWxkTmFtZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUVVFUllfQUdHUkVHQVRJT05fUkFXX0ZJRUxEX05BTUVTJyxcbiAgICBoZWxwOiAnV2hlbiBgdHJ1ZWAsIGFsbCBhZ2dyZWdhdGlvbiBxdWVyaWVzIGRlZmF1bHQgdG8gdXNpbmcgbmF0aXZlIE1vbmdvREIgZmllbGQgbmFtZXMgKG5vIGF1dG9tYXRpYyBgY3JlYXRlZEF0YCBcXHUyMTkyIGBfY3JlYXRlZF9hdGAgcmV3cml0aW5nKS4gSW5kaXZpZHVhbCBxdWVyaWVzIGNhbiBzdGlsbCBvdmVycmlkZSB0aGlzIHZpYSB0aGUgYHJhd0ZpZWxkTmFtZXNgIG9wdGlvbi4gRGVmYXVsdCBpcyBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGFnZ3JlZ2F0aW9uUmF3VmFsdWVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1FVRVJZX0FHR1JFR0FUSU9OX1JBV19WQUxVRVMnLFxuICAgIGhlbHA6ICdXaGVuIGB0cnVlYCwgYWxsIGFnZ3JlZ2F0aW9uIHF1ZXJpZXMgZGVmYXVsdCB0byB1c2luZyBNb25nb0RCIEV4dGVuZGVkIEpTT04gKEVKU09OKSBmb3IgZXhwbGljaXQgdmFsdWUgdHlwaW5nIGFuZCBza2lwIHNjaGVtYS1iYXNlZCB2YWx1ZSBjb2VyY2lvbi4gSW5kaXZpZHVhbCBxdWVyaWVzIGNhbiBzdGlsbCBvdmVycmlkZSB0aGlzIHZpYSB0aGUgYHJhd1ZhbHVlc2Agb3B0aW9uLiBEZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYWdlc09wdGlvbnMgPSB7XG4gIGN1c3RvbVJvdXRlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fUk9VVEVTJyxcbiAgICBoZWxwOiAnVGhlIGN1c3RvbSByb3V0ZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgdHlwZTogJ1BhZ2VzUm91dGVbXScsXG4gICAgZGVmYXVsdDogW10sXG4gIH0sXG4gIGN1c3RvbVVybHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTFMnLFxuICAgIGhlbHA6ICdUaGUgVVJMcyB0byB0aGUgY3VzdG9tIHBhZ2VzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnUGFnZXNDdXN0b21VcmxzT3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGVuYWJsZUxvY2FsaXphdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19FTkFCTEVfTE9DQUxJWkFUSU9OJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBwYWdlcyBzaG91bGQgYmUgbG9jYWxpemVkOyB0aGlzIGhhcyBubyBlZmZlY3Qgb24gY3VzdG9tIHBhZ2UgcmVkaXJlY3RzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuY29kZVBhZ2VQYXJhbUhlYWRlcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfRU5DT0RFX1BBR0VfUEFSQU1fSEVBREVSUycsXG4gICAgaGVscDogJ0lzIGB0cnVlYCBpZiB0aGUgcGFnZSBwYXJhbWV0ZXIgaGVhZGVycyBzaG91bGQgYmUgVVJJLWVuY29kZWQuIFRoaXMgaXMgcmVxdWlyZWQgaWYgYW55IHBhZ2UgcGFyYW1ldGVyIHZhbHVlIGNvbnRhaW5zIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCBzdWNoIGFzIHRoZSBhcHAgbmFtZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBmb3JjZVJlZGlyZWN0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0ZPUkNFX1JFRElSRUNUJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiByZXNwb25zZXMgc2hvdWxkIGFsd2F5cyBiZSByZWRpcmVjdHMgYW5kIG5ldmVyIGNvbnRlbnQsIGZhbHNlIGlmIHRoZSByZXNwb25zZSB0eXBlIHNob3VsZCBkZXBlbmQgb24gdGhlIHJlcXVlc3QgdHlwZSAoR0VUIHJlcXVlc3QgLT4gY29udGVudCByZXNwb25zZTsgUE9TVCByZXF1ZXN0IC0+IHJlZGlyZWN0IHJlc3BvbnNlKS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBsb2NhbGl6YXRpb25GYWxsYmFja0xvY2FsZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19MT0NBTElaQVRJT05fRkFMTEJBQ0tfTE9DQUxFJyxcbiAgICBoZWxwOiAnVGhlIGZhbGxiYWNrIGxvY2FsZSBmb3IgbG9jYWxpemF0aW9uIGlmIG5vIG1hdGNoaW5nIHRyYW5zbGF0aW9uIGlzIHByb3ZpZGVkIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiBwcm92aWRpbmcgdHJhbnNsYXRpb24gcmVzb3VyY2VzIHZpYSBKU09OIGZpbGUuJyxcbiAgICBkZWZhdWx0OiAnZW4nLFxuICB9LFxuICBsb2NhbGl6YXRpb25Kc29uUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19MT0NBTElaQVRJT05fSlNPTl9QQVRIJyxcbiAgICBoZWxwOiAnVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZSBmb3IgbG9jYWxpemF0aW9uOyB0aGUgdHJhbnNsYXRpb25zIHdpbGwgYmUgdXNlZCB0byBmaWxsIHRlbXBsYXRlIHBsYWNlaG9sZGVycyBhY2NvcmRpbmcgdG8gdGhlIGxvY2FsZS4nLFxuICB9LFxuICBwYWdlc0VuZHBvaW50OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1BBR0VTX0VORFBPSU5UJyxcbiAgICBoZWxwOiBcIlRoZSBBUEkgZW5kcG9pbnQgZm9yIHRoZSBwYWdlcy4gRGVmYXVsdCBpcyAnYXBwcycuXCIsXG4gICAgZGVmYXVsdDogJ2FwcHMnLFxuICB9LFxuICBwYWdlc1BhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUEFHRVNfUEFUSCcsXG4gICAgaGVscDogXCJUaGUgcGF0aCB0byB0aGUgcGFnZXMgZGlyZWN0b3J5OyB0aGlzIGFsc28gZGVmaW5lcyB3aGVyZSB0aGUgc3RhdGljIGVuZHBvaW50ICcvYXBwcycgcG9pbnRzIHRvLiBEZWZhdWx0IGlzIHRoZSAnLi9wdWJsaWMvJyBkaXJlY3Rvcnkgb2YgdGhlIHBhcnNlLXNlcnZlciBtb2R1bGUuXCIsXG4gIH0sXG4gIHBsYWNlaG9sZGVyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19QTEFDRUhPTERFUlMnLFxuICAgIGhlbHA6ICdUaGUgcGxhY2Vob2xkZXIga2V5cyBhbmQgdmFsdWVzIHdoaWNoIHdpbGwgYmUgZmlsbGVkIGluIHBhZ2VzOyB0aGlzIGNhbiBiZSBhIHNpbXBsZSBvYmplY3Qgb3IgYSBjYWxsYmFjayBmdW5jdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuUGFnZXNSb3V0ZSA9IHtcbiAgaGFuZGxlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19ST1VURV9IQU5ETEVSJyxcbiAgICBoZWxwOiAnVGhlIHJvdXRlIGhhbmRsZXIgdGhhdCBpcyBhbiBhc3luYyBmdW5jdGlvbi4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBtZXRob2Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUk9VVEVfTUVUSE9EJyxcbiAgICBoZWxwOiBcIlRoZSByb3V0ZSBtZXRob2QsIGUuZy4gJ0dFVCcgb3IgJ1BPU1QnLlwiLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBwYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1JPVVRFX1BBVEgnLFxuICAgIGhlbHA6ICdUaGUgcm91dGUgcGF0aC4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlBhZ2VzQ3VzdG9tVXJsc09wdGlvbnMgPSB7XG4gIGVtYWlsVmVyaWZpY2F0aW9uTGlua0V4cGlyZWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9FTUFJTF9WRVJJRklDQVRJT05fTElOS19FWFBJUkVEJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIGVtYWlsIHZlcmlmaWNhdGlvbiAtPiBsaW5rIGV4cGlyZWQuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25MaW5rSW52YWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9MSU5LX0lOVkFMSUQnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgaW52YWxpZC4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvblNlbmRGYWlsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NFTkRfRkFJTCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gbGluayBzZW5kIGZhaWwuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25TZW5kU3VjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9TRU5EX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHJlc2VuZCBsaW5rIC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25TdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0LicsXG4gIH0sXG4gIHBhc3N3b3JkUmVzZXRMaW5rSW52YWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUX0xJTktfSU5WQUxJRCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBwYXNzd29yZCByZXNldCAtPiBsaW5rIGludmFsaWQuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9QQVNTV09SRF9SRVNFVF9TVUNDRVNTJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0IC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5DdXN0b21QYWdlc09wdGlvbnMgPSB7XG4gIGNob29zZVBhc3N3b3JkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19DSE9PU0VfUEFTU1dPUkQnLFxuICAgIGhlbHA6ICdjaG9vc2UgcGFzc3dvcmQgcGFnZSBwYXRoJyxcbiAgfSxcbiAgZXhwaXJlZFZlcmlmaWNhdGlvbkxpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0VYUElSRURfVkVSSUZJQ0FUSU9OX0xJTksnLFxuICAgIGhlbHA6ICdleHBpcmVkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIGludmFsaWRMaW5rOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19JTlZBTElEX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZFBhc3N3b3JkUmVzZXRMaW5rOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19JTlZBTElEX1BBU1NXT1JEX1JFU0VUX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIHBhc3N3b3JkIHJlc2V0IGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZFZlcmlmaWNhdGlvbkxpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0lOVkFMSURfVkVSSUZJQ0FUSU9OX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIGxpbmtTZW5kRmFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfTElOS19TRU5EX0ZBSUwnLFxuICAgIGhlbHA6ICd2ZXJpZmljYXRpb24gbGluayBzZW5kIGZhaWwgcGFnZSBwYXRoJyxcbiAgfSxcbiAgbGlua1NlbmRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19MSU5LX1NFTkRfU1VDQ0VTUycsXG4gICAgaGVscDogJ3ZlcmlmaWNhdGlvbiBsaW5rIHNlbmQgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxuICBwYXJzZUZyYW1lVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19QQVJTRV9GUkFNRV9VUkwnLFxuICAgIGhlbHA6ICdmb3IgbWFza2luZyB1c2VyLWZhY2luZyBwYWdlcycsXG4gIH0sXG4gIHBhc3N3b3JkUmVzZXRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19QQVNTV09SRF9SRVNFVF9TVUNDRVNTJyxcbiAgICBoZWxwOiAncGFzc3dvcmQgcmVzZXQgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxuICB2ZXJpZnlFbWFpbFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX1ZFUklGWV9FTUFJTF9TVUNDRVNTJyxcbiAgICBoZWxwOiAndmVyaWZ5IGVtYWlsIHN1Y2Nlc3MgcGFnZSBwYXRoJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5MaXZlUXVlcnlPcHRpb25zID0ge1xuICBjbGFzc05hbWVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9DTEFTU05BTUVTJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSBjbGFzc05hbWVzXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBwdWJTdWJBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9QVUJfU1VCX0FEQVBURVInLFxuICAgIGhlbHA6ICdMaXZlUXVlcnkgcHVic3ViIGFkYXB0ZXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgcmVkaXNPcHRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9SRURJU19PUFRJT05TJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc1VSTDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MSVZFUVVFUllfUkVESVNfVVJMJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc1VSTFwiLFxuICB9LFxuICByZWdleFRpbWVvdXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRVFVRVJZX1JFR0VYX1RJTUVPVVQnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBtYXhpbXVtIGV4ZWN1dGlvbiB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gbWF0Y2hpbmcgaW4gTGl2ZVF1ZXJ5LiBUaGlzIHByb3RlY3RzIGFnYWluc3QgUmVndWxhciBFeHByZXNzaW9uIERlbmlhbCBvZiBTZXJ2aWNlIChSZURvUykgYXR0YWNrcyB3aGVyZSBhIG1hbGljaW91cyByZWdleCBwYXR0ZXJuIGNvdWxkIGJsb2NrIHRoZSBldmVudCBsb29wLiBBIHJlZ2V4IHRoYXQgZXhjZWVkcyB0aGUgdGltZW91dCB3aWxsIGJlIHRyZWF0ZWQgYXMgbm9uLW1hdGNoaW5nLjxicj48YnI+VGhlIHByb3RlY3Rpb24gcnVucyBlYWNoIHJlZ2V4IGV2YWx1YXRpb24gaW4gYW4gaXNvbGF0ZWQgVk0gY29udGV4dCB3aXRoIGEgdGltZW91dC4gVGhpcyBhZGRzIGFwcHJveGltYXRlbHkgNTAgbWljcm9zZWNvbmRzIG9mIG92ZXJoZWFkIHBlciByZWdleCBldmFsdWF0aW9uLiBGb3IgbW9zdCBhcHBsaWNhdGlvbnMgdGhpcyBpcyBuZWdsaWdpYmxlLCBidXQgaXQgY2FuIGFkZCB1cCBpZiB5b3UgaGF2ZSBhIHZlcnkgbGFyZ2UgbnVtYmVyIG9mIExpdmVRdWVyeSBzdWJzY3JpcHRpb25zIHRoYXQgdXNlIGAkcmVnZXhgIG9uIHRoZSBzYW1lIGNsYXNzLiBGb3IgZXhhbXBsZSwgMTAsMDAwIGNvbmN1cnJlbnQgcmVnZXggc3Vic2NyaXB0aW9ucyB3b3VsZCBhZGQgYXBwcm94aW1hdGVseSA1MDBtcyBvZiBwcm9jZXNzaW5nIHRpbWUgcGVyIG9iamVjdCBzYXZlIGV2ZW50IG9uIHRoYXQgY2xhc3MuPGJyPjxicj5TZXQgdG8gYDBgIHRvIGRpc2FibGUgdGhlIHRpbWVvdXQgYW5kIHVzZSBuYXRpdmUgcmVnZXggZXZhbHVhdGlvbiB3aXRob3V0IHByb3RlY3Rpb24uIERlZmF1bHRzIHRvIGAxMDBgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncmVnZXhUaW1lb3V0JyksXG4gICAgZGVmYXVsdDogMTAwLFxuICB9LFxuICB3c3NBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9XU1NfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuTGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucyA9IHtcbiAgYXBwSWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9BUFBfSUQnLFxuICAgIGhlbHA6ICdUaGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggdGhlIGFwcElkIGluIHVzZSBieSB5b3VyIFBhcnNlIFNlcnZlci4gSWYgeW91IGRlcGxveSB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciBhbG9uZ3NpZGUgUGFyc2UgU2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byB1c2UgdGhlIHNhbWUgYXBwSWQuJyxcbiAgfSxcbiAgY2FjaGVUaW1lb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfQ0FDSEVfVElNRU9VVCcsXG4gICAgaGVscDogXCJOdW1iZXIgaW4gbWlsbGlzZWNvbmRzLiBXaGVuIGNsaWVudHMgcHJvdmlkZSB0aGUgc2Vzc2lvblRva2VuIHRvIHRoZSBMaXZlUXVlcnkgc2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byBmZXRjaCBpdHMgUGFyc2VVc2VyJ3Mgb2JqZWN0SWQgZnJvbSBwYXJzZSBzZXJ2ZXIgYW5kIHN0b3JlIGl0IGluIHRoZSBjYWNoZS4gVGhlIHZhbHVlIGRlZmluZXMgdGhlIGR1cmF0aW9uIG9mIHRoZSBjYWNoZS4gQ2hlY2sgdGhlIGZvbGxvd2luZyBTZWN1cml0eSBzZWN0aW9uIGFuZCBvdXIgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbiBmb3IgZGV0YWlscywgZGVmYXVsdHMgdG8gNSAqIDEwMDAgbXMgKDUgc2Vjb25kcykuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignY2FjaGVUaW1lb3V0JyksXG4gIH0sXG4gIGtleVBhaXJzOiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfS0VZX1BBSVJTJyxcbiAgICBoZWxwOiAnQSBKU09OIG9iamVjdCB0aGF0IHNlcnZlcyBhcyBhIHdoaXRlbGlzdCBvZiBrZXlzLiBJdCBpcyB1c2VkIGZvciB2YWxpZGF0aW5nIGNsaWVudHMgd2hlbiB0aGV5IHRyeSB0byBjb25uZWN0IHRvIHRoZSBMaXZlUXVlcnkgc2VydmVyLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9MT0dfTEVWRUwnLFxuICAgIGhlbHA6ICdUaGlzIHN0cmluZyBkZWZpbmVzIHRoZSBsb2cgbGV2ZWwgb2YgdGhlIExpdmVRdWVyeSBzZXJ2ZXIuIFdlIHN1cHBvcnQgVkVSQk9TRSwgSU5GTywgRVJST1IsIE5PTkUsIGRlZmF1bHRzIHRvIElORk8uJyxcbiAgfSxcbiAgbWFzdGVyS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfTUFTVEVSX0tFWScsXG4gICAgaGVscDogJ1RoaXMgc3RyaW5nIHNob3VsZCBtYXRjaCB0aGUgbWFzdGVyS2V5IGluIHVzZSBieSB5b3VyIFBhcnNlIFNlcnZlci4gSWYgeW91IGRlcGxveSB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciBhbG9uZ3NpZGUgUGFyc2UgU2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byB1c2UgdGhlIHNhbWUgbWFzdGVyS2V5LicsXG4gIH0sXG4gIHBvcnQ6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9QT1JUJyxcbiAgICBoZWxwOiAnVGhlIHBvcnQgdG8gcnVuIHRoZSBMaXZlUXVlcnkgc2VydmVyLCBkZWZhdWx0cyB0byAxMzM3LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncG9ydCcpLFxuICAgIGRlZmF1bHQ6IDEzMzcsXG4gIH0sXG4gIHB1YlN1YkFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9QVUJfU1VCX0FEQVBURVInLFxuICAgIGhlbHA6ICdMaXZlUXVlcnkgcHVic3ViIGFkYXB0ZXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgcmVkaXNPcHRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfUkVESVNfT1BUSU9OUycsXG4gICAgaGVscDogXCJwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgcmVkaXNPcHRpb25zXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgcmVkaXNVUkw6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9SRURJU19VUkwnLFxuICAgIGhlbHA6IFwicGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IHJlZGlzVVJMXCIsXG4gIH0sXG4gIHNlcnZlclVSTDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1NFUlZFUl9VUkwnLFxuICAgIGhlbHA6ICdUaGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggdGhlIHNlcnZlclVSTCBpbiB1c2UgYnkgeW91ciBQYXJzZSBTZXJ2ZXIuIElmIHlvdSBkZXBsb3kgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgYWxvbmdzaWRlIFBhcnNlIFNlcnZlciwgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgd2lsbCB0cnkgdG8gdXNlIHRoZSBzYW1lIHNlcnZlclVSTC4nLFxuICB9LFxuICB3ZWJzb2NrZXRUaW1lb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfV0VCU09DS0VUX1RJTUVPVVQnLFxuICAgIGhlbHA6ICdOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gcGluZy9wb25nIGZyYW1lcy4gVGhlIFdlYlNvY2tldCBzZXJ2ZXIgc2VuZHMgcGluZy9wb25nIGZyYW1lcyB0byB0aGUgY2xpZW50cyB0byBrZWVwIHRoZSBXZWJTb2NrZXQgYWxpdmUuIFRoaXMgdmFsdWUgZGVmaW5lcyB0aGUgaW50ZXJ2YWwgb2YgdGhlIHBpbmcvcG9uZyBmcmFtZSBmcm9tIHRoZSBzZXJ2ZXIgdG8gY2xpZW50cywgZGVmYXVsdHMgdG8gMTAgKiAxMDAwIG1zICgxMCBzKS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3dlYnNvY2tldFRpbWVvdXQnKSxcbiAgfSxcbiAgd3NzQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1dTU19BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBXZWJTb2NrZXRTZXJ2ZXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5JZGVtcG90ZW5jeU9wdGlvbnMgPSB7XG4gIHBhdGhzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYUEVSSU1FTlRBTF9JREVNUE9URU5DWV9QQVRIUycsXG4gICAgaGVscDogJ0FuIGFycmF5IG9mIHBhdGhzIGZvciB3aGljaCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgZW5hYmxlZC4gVGhlIG1vdW50IHBhdGggbXVzdCBub3QgYmUgaW5jbHVkZWQsIGZvciBleGFtcGxlIGluc3RlYWQgb2YgYC9wYXJzZS9mdW5jdGlvbnMvbXlGdW5jdGlvbmAgc3BlY2lmaXkgYGZ1bmN0aW9ucy9teUZ1bmN0aW9uYC4gVGhlIGVudHJpZXMgYXJlIGludGVycHJldGVkIGFzIHJlZ3VsYXIgZXhwcmVzc2lvbiwgZm9yIGV4YW1wbGUgYGZ1bmN0aW9ucy8uKmAgbWF0Y2hlcyBhbGwgZnVuY3Rpb25zLCBgam9icy8uKmAgbWF0Y2hlcyBhbGwgam9icywgYGNsYXNzZXMvLipgIG1hdGNoZXMgYWxsIGNsYXNzZXMsIGAuKmAgbWF0Y2hlcyBhbGwgcGF0aHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgZGVmYXVsdDogW10sXG4gIH0sXG4gIHR0bDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FWFBFUklNRU5UQUxfSURFTVBPVEVOQ1lfVFRMJyxcbiAgICBoZWxwOiAnVGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggYSByZXF1ZXN0IHJlY29yZCBpcyBkaXNjYXJkZWQgZnJvbSB0aGUgZGF0YWJhc2UsIGRlZmF1bHRzIHRvIDMwMHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd0dGwnKSxcbiAgICBkZWZhdWx0OiAzMDAsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuQWNjb3VudExvY2tvdXRPcHRpb25zID0ge1xuICBkdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVRfRFVSQVRJT04nLFxuICAgIGhlbHA6ICdTZXQgdGhlIGR1cmF0aW9uIGluIG1pbnV0ZXMgdGhhdCBhIGxvY2tlZC1vdXQgYWNjb3VudCByZW1haW5zIGxvY2tlZCBvdXQgYmVmb3JlIGF1dG9tYXRpY2FsbHkgYmVjb21pbmcgdW5sb2NrZWQuPGJyPjxicj5WYWxpZCB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBgMGAgYW5kIGxlc3MgdGhhbiBgMTAwMDAwYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2R1cmF0aW9uJyksXG4gIH0sXG4gIHRocmVzaG9sZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVRfVEhSRVNIT0xEJyxcbiAgICBoZWxwOiAnU2V0IHRoZSBudW1iZXIgb2YgZmFpbGVkIHNpZ24taW4gYXR0ZW1wdHMgdGhhdCB3aWxsIGNhdXNlIGEgdXNlciBhY2NvdW50IHRvIGJlIGxvY2tlZC4gSWYgdGhlIGFjY291bnQgaXMgbG9ja2VkLiBUaGUgYWNjb3VudCB3aWxsIHVubG9jayBhZnRlciB0aGUgZHVyYXRpb24gc2V0IGluIHRoZSBgZHVyYXRpb25gIG9wdGlvbiBoYXMgcGFzc2VkIGFuZCBubyBmdXJ0aGVyIGxvZ2luIGF0dGVtcHRzIGhhdmUgYmVlbiBtYWRlLjxicj48YnI+VmFsaWQgdmFsdWVzIGFyZSBncmVhdGVyIHRoYW4gYDBgIGFuZCBsZXNzIHRoYW4gYDEwMDBgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigndGhyZXNob2xkJyksXG4gIH0sXG4gIHVubG9ja09uUGFzc3dvcmRSZXNldDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVRfVU5MT0NLX09OX1BBU1NXT1JEX1JFU0VUJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCAgaWYgdGhlIGFjY291bnQgc2hvdWxkIGJlIHVubG9ja2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwYXNzd29yZCByZXNldC48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9ucyBgZHVyYXRpb25gIGFuZCBgdGhyZXNob2xkYCB0byBiZSBzZXQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYXNzd29yZFBvbGljeU9wdGlvbnMgPSB7XG4gIGRvTm90QWxsb3dVc2VybmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfRE9fTk9UX0FMTE9XX1VTRVJOQU1FJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCB0byBkaXNhbGxvdyB0aGUgdXNlcm5hbWUgYXMgcGFydCBvZiB0aGUgcGFzc3dvcmQuPGJyPjxicj5EZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgbWF4UGFzc3dvcmRBZ2U6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX01BWF9QQVNTV09SRF9BR0UnLFxuICAgIGhlbHA6ICdTZXQgdGhlIG51bWJlciBvZiBkYXlzIGFmdGVyIHdoaWNoIGEgcGFzc3dvcmQgZXhwaXJlcy4gTG9naW4gYXR0ZW1wdHMgZmFpbCBpZiB0aGUgdXNlciBkb2VzIG5vdCByZXNldCB0aGUgcGFzc3dvcmQgYmVmb3JlIGV4cGlyYXRpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhQYXNzd29yZEFnZScpLFxuICB9LFxuICBtYXhQYXNzd29yZEhpc3Rvcnk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX01BWF9QQVNTV09SRF9ISVNUT1JZJyxcbiAgICBoZWxwOiAnU2V0IHRoZSBudW1iZXIgb2YgcHJldmlvdXMgcGFzc3dvcmQgdGhhdCB3aWxsIG5vdCBiZSBhbGxvd2VkIHRvIGJlIHNldCBhcyBuZXcgcGFzc3dvcmQuIElmIHRoZSBvcHRpb24gaXMgbm90IHNldCBvciBzZXQgdG8gYDBgLCBubyBwcmV2aW91cyBwYXNzd29yZHMgd2lsbCBiZSBjb25zaWRlcmVkLjxicj48YnI+VmFsaWQgdmFsdWVzIGFyZSA+PSBgMGAgYW5kIDw9IGAyMGAuPGJyPkRlZmF1bHQgaXMgYDBgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4UGFzc3dvcmRIaXN0b3J5JyksXG4gIH0sXG4gIHJlc2V0UGFzc3dvcmRTdWNjZXNzT25JbnZhbGlkRW1haWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1JFU0VUX1BBU1NXT1JEX1NVQ0NFU1NfT05fSU5WQUxJRF9FTUFJTCcsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgaWYgYSByZXF1ZXN0IHRvIHJlc2V0IHRoZSBwYXNzd29yZCBzaG91bGQgcmV0dXJuIGEgc3VjY2VzcyByZXNwb25zZSBldmVuIGlmIHRoZSBwcm92aWRlZCBlbWFpbCBhZGRyZXNzIGlzIGludmFsaWQsIG9yIGBmYWxzZWAgaWYgdGhlIHJlcXVlc3Qgc2hvdWxkIHJldHVybiBhbiBlcnJvciByZXNwb25zZSBpZiB0aGUgZW1haWwgYWRkcmVzcyBpcyBpbnZhbGlkLjxicj48YnI+RGVmYXVsdCBpcyBgdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICByZXNldFRva2VuUmV1c2VJZlZhbGlkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9SRVNFVF9UT0tFTl9SRVVTRV9JRl9WQUxJRCcsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgaWYgYSBwYXNzd29yZCByZXNldCB0b2tlbiBzaG91bGQgYmUgcmV1c2VkIGluIGNhc2UgYW5vdGhlciB0b2tlbiBpcyByZXF1ZXN0ZWQgYnV0IHRoZXJlIGlzIGEgdG9rZW4gdGhhdCBpcyBzdGlsbCB2YWxpZCwgaS5lLiBoYXMgbm90IGV4cGlyZWQuIFRoaXMgYXZvaWRzIHRoZSBvZnRlbiBvYnNlcnZlZCBpc3N1ZSB0aGF0IGEgdXNlciByZXF1ZXN0cyBtdWx0aXBsZSBlbWFpbHMgYW5kIGRvZXMgbm90IGtub3cgd2hpY2ggbGluayBjb250YWlucyBhIHZhbGlkIHRva2VuIGJlY2F1c2UgZWFjaCBuZXdseSBnZW5lcmF0ZWQgdG9rZW4gd291bGQgaW52YWxpZGF0ZSB0aGUgcHJldmlvdXMgdG9rZW4uPGJyPjxicj5EZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgcmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1JFU0VUX1RPS0VOX1ZBTElESVRZX0RVUkFUSU9OJyxcbiAgICBoZWxwOiAnU2V0IHRoZSB2YWxpZGl0eSBkdXJhdGlvbiBvZiB0aGUgcGFzc3dvcmQgcmVzZXQgdG9rZW4gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgdG9rZW4gZXhwaXJlcy4gVGhlIHRva2VuIGlzIHVzZWQgaW4gdGhlIGxpbmsgdGhhdCBpcyBzZXQgaW4gdGhlIGVtYWlsLiBBZnRlciB0aGUgdG9rZW4gZXhwaXJlcywgdGhlIGxpbmsgYmVjb21lcyBpbnZhbGlkIGFuZCBhIG5ldyBsaW5rIGhhcyB0byBiZSBzZW50LiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGB1bmRlZmluZWRgLCB0aGVuIHRoZSB0b2tlbiBuZXZlciBleHBpcmVzLjxicj48YnI+Rm9yIGV4YW1wbGUsIHRvIGV4cGlyZSB0aGUgdG9rZW4gYWZ0ZXIgMiBob3Vycywgc2V0IGEgdmFsdWUgb2YgNzIwMCBzZWNvbmRzICg9IDYwIHNlY29uZHMgKiA2MCBtaW51dGVzICogMiBob3VycykuPGJyPjxicj5EZWZhdWx0IGlzIGB1bmRlZmluZWRgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb24nKSxcbiAgfSxcbiAgdmFsaWRhdGlvbkVycm9yOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9WQUxJREFUSU9OX0VSUk9SJyxcbiAgICBoZWxwOiAnU2V0IHRoZSBlcnJvciBtZXNzYWdlIHRvIGJlIHNlbnQuPGJyPjxicj5EZWZhdWx0IGlzIGBQYXNzd29yZCBkb2VzIG5vdCBtZWV0IHRoZSBQYXNzd29yZCBQb2xpY3kgcmVxdWlyZW1lbnRzLmAnLFxuICB9LFxuICB2YWxpZGF0b3JDYWxsYmFjazoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfVkFMSURBVE9SX0NBTExCQUNLJyxcbiAgICBoZWxwOiAnU2V0IGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gdmFsaWRhdGUgYSBwYXNzd29yZCB0byBiZSBhY2NlcHRlZC48YnI+PGJyPklmIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgdmFsaWRhdG9yUGF0dGVybmAsIHRoZSBwYXNzd29yZCBtdXN0IHBhc3MgYm90aCB0byBiZSBhY2NlcHRlZC4nLFxuICB9LFxuICB2YWxpZGF0b3JQYXR0ZXJuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9WQUxJREFUT1JfUEFUVEVSTicsXG4gICAgaGVscDogJ1NldCB0aGUgcmVndWxhciBleHByZXNzaW9uIHZhbGlkYXRpb24gcGF0dGVybiBhIHBhc3N3b3JkIG11c3QgbWF0Y2ggdG8gYmUgYWNjZXB0ZWQuPGJyPjxicj5JZiB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYHZhbGlkYXRvckNhbGxiYWNrYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLicsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuRmlsZVVwbG9hZE9wdGlvbnMgPSB7XG4gIGFsbG93ZWRGaWxlVXJsRG9tYWluczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9BTExPV0VEX0ZJTEVfVVJMX0RPTUFJTlMnLFxuICAgIGhlbHA6IFwiU2V0cyB0aGUgYWxsb3dlZCBob3N0bmFtZXMgZm9yIGZpbGUgVVJMcyByZWZlcmVuY2VkIGluIFBhcnNlIG9iamVjdHMuIFdoZW4gYSBGaWxlIG9iamVjdCBpbmNsdWRlcyBhIFVSTCwgaXRzIGhvc3RuYW1lIG11c3QgbWF0Y2ggb25lIG9mIHRoZXNlIGVudHJpZXMgdG8gYmUgYWNjZXB0ZWQuIFN1cHBvcnRzIGV4YWN0IGhvc3RuYW1lcyAoZS5nLiwgYCdjZG4uZXhhbXBsZS5jb20nYCkgYW5kIHdpbGRjYXJkIHN1YmRvbWFpbnMgKGUuZy4sIGAnKi5leGFtcGxlLmNvbSdgKS4gVXNlIGBbJyonXWAgdG8gYWxsb3cgYW55IGRvbWFpbi4gVXNlIGBbXWAgdG8gYmxvY2sgYWxsIGZpbGUgVVJMcyAob25seSBuYW1lLWJhc2VkIGZpbGVzIGFsbG93ZWQpLjxicj48YnI+SWYgdGhpcyBvcHRpb24gaXMgbm90IHNldCwgaXQgZGVmYXVsdHMgdG8gdGhlIGhvc3RuYW1lcyBvZiBgcHVibGljU2VydmVyVVJMYCBhbmQgYHNlcnZlclVSTGAsIHNvIGZpbGVzIGhvc3RlZCBieSBQYXJzZSBTZXJ2ZXIgYXJlIGFsbG93ZWQgd2l0aG91dCBvcGVuaW5nIGFyYml0cmFyeSBkb21haW5zLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgZW5hYmxlRm9yQW5vbnltb3VzVXNlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9FTkFCTEVfRk9SX0FOT05ZTU9VU19VU0VSJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBmaWxlIHVwbG9hZCBzaG91bGQgYmUgYWxsb3dlZCBmb3IgYW5vbnltb3VzIHVzZXJzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZUZvckF1dGhlbnRpY2F0ZWRVc2VyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX0VOQUJMRV9GT1JfQVVUSEVOVElDQVRFRF9VU0VSJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBmaWxlIHVwbG9hZCBzaG91bGQgYmUgYWxsb3dlZCBmb3IgYXV0aGVudGljYXRlZCB1c2Vycy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGVuYWJsZUZvclB1YmxpYzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9FTkFCTEVfRk9SX1BVQkxJQycsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGFueW9uZSwgcmVnYXJkbGVzcyBvZiB1c2VyIGF1dGhlbnRpY2F0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGZpbGVFeHRlbnNpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX0ZJTEVfRVhURU5TSU9OUycsXG4gICAgaGVscDogJ1NldHMgdGhlIGFsbG93ZWQgZmlsZSBleHRlbnNpb25zIGZvciB1cGxvYWRpbmcgZmlsZXMuIFRoZSBleHRlbnNpb24gaXMgZGVmaW5lZCBhcyBhbiBhcnJheSBvZiBmaWxlIGV4dGVuc2lvbnMsIG9yIGEgcmVnZXggcGF0dGVybi48YnI+PGJyPkl0IGlzIHJlY29tbWVuZGVkIHRvIG9ubHkgYWxsb3cgdGhlIGZpbGUgZXh0ZW5zaW9ucyB0aGF0IHlvdXIgYXBwIGFjdHVhbGx5IG5lZWRzLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGJsb2NraW5nIGRhbmdlcm91cyBleHRlbnNpb25zLiBUaGlzIGFsbG93bGlzdCBhcHByb2FjaCBpcyBtb3JlIHNlY3VyZSBiZWNhdXNlIG5ldyBkYW5nZXJvdXMgZmlsZSBleHRlbnNpb25zIG1heSBlbWVyZ2UgdGhhdCBhcmUgbm90IGNvdmVyZWQgYnkgdGhlIGRlZmF1bHQgYmxvY2tsaXN0Ljxicj48YnI+VGhlIGRlZmF1bHQgYmxvY2tzIHRoZSBtb3N0IGNvbW1vbiBmaWxlIGV4dGVuc2lvbnMgdGhhdCBhcmUga25vd24gdG8gYmUgcmVuZGVyZWQgYXMgYWN0aXZlIGNvbnRlbnQgYnkgd2ViIGJyb3dzZXJzLCBzdWNoIGFzIEhUTUwsIFNWRywgYW5kIFhNTCBmaWxlcywgd2hpY2ggbWF5IGJlIHVzZWQgYnkgYW4gYXR0YWNrZXIgdG8gY29tcHJvbWlzZSB0aGUgc2Vzc2lvbiB0b2tlbiBvZiBhbm90aGVyIHVzZXIgdmlhIGFjY2Vzc2luZyB0aGUgYnJvd3NlclxcJ3MgbG9jYWwgc3RvcmFnZS4gVGhlIGJsb2NrZWQgZXh0ZW5zaW9ucyBhcmU6IGBodG1sYCwgYGh0bWAsIGBzaHRtbGAsIGB4aHRtbGAsIGB4aHRtbCt4bWxgLCBgeGh0YCwgYHN2Z2AsIGBzdmd6YCwgYHN2Zyt4bWxgLCBgeG1sYCwgYHhzbGAsIGB4c2x0YCwgYHhzbHQreG1sYCwgYHhzZGAsIGBybmdgLCBgcmRmYCwgYHJkZit4bWxgLCBgb3dsYCwgYG1hdGhtbGAsIGBtYXRobWwreG1sYC48YnI+PGJyPkRlZmF1bHRzIHRvIGBbXCJeKD8hKFt4WHNTXT9baEhdW3RUXVttTV1bbExdPyhcXFxcXFxcXCtbeFhdW21NXVtsTF0pP3xbeFhdW2hIXVt0VF18W3NTXVt2Vl1bZ0ddKFt6Wl18XFxcXFxcXFwrW3hYXVttTV1bbExdKT98W3hYXVttTV1bbExdfFt4WF1bc1NdW2xMXVt0VF0/KFxcXFxcXFxcK1t4WF1bbU1dW2xMXSk/fFt4WF1bc1NdW2REXXxbclJdW25OXVtnR118W3JSXVtkRF1bZkZdKFxcXFxcXFxcK1t4WF1bbU1dW2xMXSk/fFtvT11bd1ddW2xMXXxbbU1dW2FBXVt0VF1baEhdW21NXVtsTF0oXFxcXFxcXFwrW3hYXVttTV1bbExdKT8pJClcIl1gLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFtcbiAgICAgICdeKD8hKFt4WHNTXT9baEhdW3RUXVttTV1bbExdPyhcXFxcK1t4WF1bbU1dW2xMXSk/fFt4WF1baEhdW3RUXXxbc1NdW3ZWXVtnR10oW3paXXxcXFxcK1t4WF1bbU1dW2xMXSk/fFt4WF1bbU1dW2xMXXxbeFhdW3NTXVtsTF1bdFRdPyhcXFxcK1t4WF1bbU1dW2xMXSk/fFt4WF1bc1NdW2REXXxbclJdW25OXVtnR118W3JSXVtkRF1bZkZdKFxcXFwrW3hYXVttTV1bbExdKT98W29PXVt3V11bbExdfFttTV1bYUFdW3RUXVtoSF1bbU1dW2xMXShcXFxcK1t4WF1bbU1dW2xMXSk/KSQpJyxcbiAgICBdLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkZpbGVEb3dubG9hZE9wdGlvbnMgPSB7XG4gIGVuYWJsZUZvckFub255bW91c1VzZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9ET1dOTE9BRF9FTkFCTEVfRk9SX0FOT05ZTU9VU19VU0VSJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBmaWxlIGRvd25sb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhbm9ueW1vdXMgdXNlcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBlbmFibGVGb3JBdXRoZW50aWNhdGVkVXNlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX0RPV05MT0FEX0VOQUJMRV9GT1JfQVVUSEVOVElDQVRFRF9VU0VSJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBmaWxlIGRvd25sb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhdXRoZW50aWNhdGVkIHVzZXJzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5hYmxlRm9yUHVibGljOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfRE9XTkxPQURfRU5BQkxFX0ZPUl9QVUJMSUMnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgZG93bmxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGFueW9uZSwgcmVnYXJkbGVzcyBvZiB1c2VyIGF1dGhlbnRpY2F0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbn07XG4vKiBUaGUgYXZhaWxhYmxlIGxvZyBsZXZlbHMgZm9yIFBhcnNlIFNlcnZlciBsb2dnaW5nLiBWYWxpZCB2YWx1ZXMgYXJlOjxicj4tIGAnZXJyb3InYCAtIEVycm9yIGxldmVsIChoaWdoZXN0IHByaW9yaXR5KTxicj4tIGAnd2FybidgIC0gV2FybmluZyBsZXZlbDxicj4tIGAnaW5mbydgIC0gSW5mbyBsZXZlbCAoZGVmYXVsdCk8YnI+LSBgJ3ZlcmJvc2UnYCAtIFZlcmJvc2UgbGV2ZWw8YnI+LSBgJ2RlYnVnJ2AgLSBEZWJ1ZyBsZXZlbDxicj4tIGAnc2lsbHknYCAtIFNpbGx5IGxldmVsIChsb3dlc3QgcHJpb3JpdHkpICovXG5tb2R1bGUuZXhwb3J0cy5Mb2dMZXZlbCA9IHtcbiAgZGVidWc6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMX0RFQlVHJyxcbiAgICBoZWxwOiAnRGVidWcgbGV2ZWwnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBlcnJvcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxfRVJST1InLFxuICAgIGhlbHA6ICdFcnJvciBsZXZlbCAtIGhpZ2hlc3QgcHJpb3JpdHknLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBpbmZvOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTF9JTkZPJyxcbiAgICBoZWxwOiAnSW5mbyBsZXZlbCAtIGRlZmF1bHQnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBzaWxseToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxfU0lMTFknLFxuICAgIGhlbHA6ICdTaWxseSBsZXZlbCAtIGxvd2VzdCBwcmlvcml0eScsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHZlcmJvc2U6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMX1ZFUkJPU0UnLFxuICAgIGhlbHA6ICdWZXJib3NlIGxldmVsJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgd2Fybjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxfV0FSTicsXG4gICAgaGVscDogJ1dhcm5pbmcgbGV2ZWwnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkxvZ0NsaWVudEV2ZW50ID0ge1xuICBrZXlzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0xPR19DTElFTlRfRVZFTlRTX0tFWVMnLFxuICAgIGhlbHA6ICdPcHRpb25hbCBhcnJheSBvZiBkb3Qtbm90YXRpb24gcGF0aHMgdG8gZXh0cmFjdCBzcGVjaWZpYyBkYXRhIGZyb20gdGhlIGV2ZW50IG9iamVjdC4gSWYgbm90IHByb3ZpZGVkIG9yIGVtcHR5LCB0aGUgZW50aXJlIGV2ZW50IG9iamVjdCB3aWxsIGJlIGxvZ2dlZC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTE9HX0NMSUVOVF9FVkVOVFNfTE9HX0xFVkVMJyxcbiAgICBoZWxwOiBcIlRoZSBsb2cgbGV2ZWwgdG8gdXNlIGZvciB0aGlzIGV2ZW50LiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy4gRGVmYXVsdHMgdG8gYCdpbmZvJ2AuXCIsXG4gICAgZGVmYXVsdDogJ2luZm8nLFxuICB9LFxuICBuYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0xPR19DTElFTlRfRVZFTlRTX05BTUUnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgZXZlbnQgbmFtZSB0byBsaXN0ZW4gZm9yLiBTZWUgdGhlIFtNb25nb0RCIGRyaXZlciBldmVudHMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cubW9uZ29kYi5jb20vZG9jcy9kcml2ZXJzL25vZGUvY3VycmVudC9mdW5kYW1lbnRhbHMvbW9uaXRvcmluZy8pIGZvciBhdmFpbGFibGUgZXZlbnRzLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuRGF0YWJhc2VPcHRpb25zID0ge1xuICBhbGxvd1B1YmxpY0V4cGxhaW46IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQUxMT1dfUFVCTElDX0VYUExBSU4nLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIHRvIGFsbG93IGBQYXJzZS5RdWVyeS5leHBsYWluYCB3aXRob3V0IG1hc3RlciBrZXkuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBFbmFibGluZyB0aGlzIG9wdGlvbiBtYXkgZXhwb3NlIHNlbnNpdGl2ZSBxdWVyeSBwZXJmb3JtYW5jZSBkYXRhIHRvIHVuYXV0aG9yaXplZCB1c2VycyBhbmQgY291bGQgcG90ZW50aWFsbHkgYmUgZXhwbG9pdGVkIGZvciBtYWxpY2lvdXMgcHVycG9zZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYXBwTmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BUFBfTkFNRScsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gdGhhdCBjcmVhdGVkIHRoaXMgTW9uZ29DbGllbnQgaW5zdGFuY2UuJyxcbiAgfSxcbiAgYXV0aE1lY2hhbmlzbToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BVVRIX01FQ0hBTklTTScsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYXV0aGVudGljYXRpb24gbWVjaGFuaXNtIHRoYXQgTW9uZ29EQiB3aWxsIHVzZSB0byBhdXRoZW50aWNhdGUgdGhlIGNvbm5lY3Rpb24uJyxcbiAgfSxcbiAgYXV0aE1lY2hhbmlzbVByb3BlcnRpZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQVVUSF9NRUNIQU5JU01fUFJPUEVSVElFUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSBwcm9wZXJ0aWVzIGZvciB0aGUgc3BlY2lmaWVkIGF1dGhNZWNoYW5pc20gYXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb2xvbi1zZXBhcmF0ZWQga2V5LXZhbHVlIHBhaXJzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgYXV0aFNvdXJjZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BVVRIX1NPVVJDRScsXG4gICAgaGVscDogXCJUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGRhdGFiYXNlIG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyJ3MgY3JlZGVudGlhbHMuXCIsXG4gIH0sXG4gIGF1dG9TZWxlY3RGYW1pbHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQVVUT19TRUxFQ1RfRkFNSUxZJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgd2hldGhlciB0aGUgc29ja2V0IGF0dGVtcHRzIHRvIGNvbm5lY3QgdG8gSVB2NiBhbmQgSVB2NCBhZGRyZXNzZXMgdW50aWwgYSBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkLiBJZiBhdmFpbGFibGUsIHRoZSBkcml2ZXIgd2lsbCBzZWxlY3QgdGhlIGZpcnN0IElQdjYgYWRkcmVzcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICBhdXRvU2VsZWN0RmFtaWx5QXR0ZW1wdFRpbWVvdXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQVVUT19TRUxFQ1RfRkFNSUxZX0FUVEVNUFRfVElNRU9VVCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIGEgY29ubmVjdGlvbiBhdHRlbXB0IHRvIGZpbmlzaCBiZWZvcmUgdHJ5aW5nIHRoZSBuZXh0IGFkZHJlc3Mgd2hlbiB1c2luZyB0aGUgYXV0b1NlbGVjdEZhbWlseSBvcHRpb24uIElmIHNldCB0byBhIHBvc2l0aXZlIGludGVnZXIgbGVzcyB0aGFuIDEwLCB0aGUgdmFsdWUgMTAgaXMgdXNlZCBpbnN0ZWFkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignYXV0b1NlbGVjdEZhbWlseUF0dGVtcHRUaW1lb3V0JyksXG4gIH0sXG4gIGJhdGNoU2l6ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9CQVRDSF9TSVpFJyxcbiAgICBoZWxwOiAnVGhlIG51bWJlciBvZiBkb2N1bWVudHMgcGVyIGJhdGNoIGZvciBNb25nb0RCIGN1cnNvciBgZ2V0TW9yZWAgb3BlcmF0aW9ucy4gQSBsb3dlciB2YWx1ZSByZWR1Y2VzIG1lbW9yeSB1c2FnZSBwZXIgYmF0Y2g7IGEgaGlnaGVyIHZhbHVlIHJlZHVjZXMgdGhlIG51bWJlciBvZiBuZXR3b3JrIHJvdW5kLXRyaXBzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignYmF0Y2hTaXplJyksXG4gICAgZGVmYXVsdDogMTAwMCxcbiAgfSxcbiAgY2xpZW50TWV0YWRhdGE6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ0xJRU5UX01FVEFEQVRBJyxcbiAgICBoZWxwOiBcIkN1c3RvbSBtZXRhZGF0YSB0byBhcHBlbmQgdG8gZGF0YWJhc2UgY2xpZW50IGNvbm5lY3Rpb25zIGZvciBpZGVudGlmeWluZyBQYXJzZSBTZXJ2ZXIgaW5zdGFuY2VzIGluIGRhdGFiYXNlIGxvZ3MuIElmIHNldCwgdGhpcyBtZXRhZGF0YSB3aWxsIGJlIHZpc2libGUgaW4gZGF0YWJhc2UgbG9ncyBkdXJpbmcgY29ubmVjdGlvbiBoYW5kc2hha2VzLiBUaGlzIGNhbiBoZWxwIHdpdGggZGVidWdnaW5nIGFuZCBtb25pdG9yaW5nIGluIGRlcGxveW1lbnRzIHdpdGggbXVsdGlwbGUgZGF0YWJhc2UgY2xpZW50cy4gU2V0IGBuYW1lYCB0byBpZGVudGlmeSB5b3VyIGFwcGxpY2F0aW9uIChlLmcuLCAnTXlBcHAnKSBhbmQgYHZlcnNpb25gIHRvIHlvdXIgYXBwbGljYXRpb24ncyB2ZXJzaW9uLiBMZWF2ZSB1bmRlZmluZWQgKGRlZmF1bHQpIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlIGFuZCBhdm9pZCB0aGUgYWRkaXRpb25hbCBkYXRhIHRyYW5zZmVyIG92ZXJoZWFkLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0RhdGFiYXNlT3B0aW9uc0NsaWVudE1ldGFkYXRhJyxcbiAgfSxcbiAgY29tcHJlc3NvcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ09NUFJFU1NPUlMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgYW4gYXJyYXkgb3IgY29tbWEtZGVsaW1pdGVkIHN0cmluZyBvZiBjb21wcmVzc29ycyB0byBlbmFibGUgbmV0d29yayBjb21wcmVzc2lvbiBmb3IgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoaXMgY2xpZW50IGFuZCBhIG1vbmdvZC9tb25nb3MgaW5zdGFuY2UuJyxcbiAgfSxcbiAgY29ubmVjdFRpbWVvdXRNUzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DT05ORUNUX1RJTUVPVVRfTVMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiB0aW1lLCBpbiBtaWxsaXNlY29uZHMsIHRvIHdhaXQgdG8gZXN0YWJsaXNoIGEgc2luZ2xlIFRDUCBzb2NrZXQgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGJlZm9yZSByYWlzaW5nIGFuIGVycm9yLiBTcGVjaWZ5aW5nIDAgZGlzYWJsZXMgdGhlIGNvbm5lY3Rpb24gdGltZW91dC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2Nvbm5lY3RUaW1lb3V0TVMnKSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhBdXRoRGF0YVVuaXF1ZW5lc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX0FVVEhfREFUQV9VTklRVUVORVNTJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSB1bmlxdWUgaW5kZXhlcyBvbiB0aGUgYXV0aERhdGEgZmllbGRzIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIGZvciBlYWNoIGNvbmZpZ3VyZWQgYXV0aCBwcm92aWRlciBvbiBzZXJ2ZXIgc3RhcnQsIGluY2x1ZGluZyBgYW5vbnltb3VzYCB3aGVuIGFub255bW91cyB1c2VycyBhcmUgZW5hYmxlZC4gVGhlc2UgaW5kZXhlcyBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyBkdXJpbmcgY29uY3VycmVudCBzaWdudXBzIHdpdGggdGhlIHNhbWUgYXV0aERhdGEuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleGVzLCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleGVzIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBjcmVhdGVJbmRleFJvbGVOYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NSRUFURV9JTkRFWF9ST0xFX05BTUUnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgdW5pcXVlIGluZGV4IG9uIHRoZSBuYW1lIGZpZWxkIG9mIHRoZSBfUm9sZSBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyRW1haWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1VTRVJfRU1BSUwnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGluZGV4ZXMgb24gdGhlIGVtYWlsIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyRW1haWxDYXNlSW5zZW5zaXRpdmU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1VTRVJfRU1BSUxfQ0FTRV9JTlNFTlNJVElWRScsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYSBjYXNlLWluc2Vuc2l0aXZlIGluZGV4IG9uIHRoZSBlbWFpbCBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGNyZWF0ZUluZGV4VXNlckVtYWlsVmVyaWZ5VG9rZW46IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1VTRVJfRU1BSUxfVkVSSUZZX1RPS0VOJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhbiBpbmRleCBvbiB0aGUgX2VtYWlsX3ZlcmlmeV90b2tlbiBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGNyZWF0ZUluZGV4VXNlclBhc3N3b3JkUmVzZXRUb2tlbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9QQVNTV09SRF9SRVNFVF9UT0tFTicsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW5kZXggb24gdGhlIF9wZXJpc2hhYmxlX3Rva2VuIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyVXNlcm5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1VTRVJfVVNFUk5BTUUnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGluZGV4ZXMgb24gdGhlIHVzZXJuYW1lIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyVXNlcm5hbWVDYXNlSW5zZW5zaXRpdmU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1VTRVJfVVNFUk5BTUVfQ0FTRV9JTlNFTlNJVElWRScsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYSBjYXNlLWluc2Vuc2l0aXZlIGluZGV4IG9uIHRoZSB1c2VybmFtZSBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGRpcmVjdENvbm5lY3Rpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfRElSRUNUX0NPTk5FQ1RJT04nLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGZvcmNlIGEgU2luZ2xlIHRvcG9sb2d5IHR5cGUgd2l0aCBhIGNvbm5lY3Rpb24gc3RyaW5nIGNvbnRhaW5pbmcgb25lIGhvc3QuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgZGlzYWJsZUluZGV4RmllbGRWYWxpZGF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0RJU0FCTEVfSU5ERVhfRklFTERfVkFMSURBVElPTicsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB2YWxpZGF0aW9uIG9mIGluZGV4IGZpZWxkcy4gV2hlbiBkaXNhYmxlZCwgaW5kZXhlcyBjYW4gYmUgY3JlYXRlZCBldmVuIGlmIHRoZSBmaWVsZHMgZG8gbm90IGV4aXN0IGluIHRoZSBzY2hlbWEuIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuIGNyZWF0aW5nIGluZGV4ZXMgb24gZmllbGRzIHRoYXQgd2lsbCBiZSBhZGRlZCBsYXRlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICBlbmFibGVTY2hlbWFIb29rczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9FTkFCTEVfU0NIRU1BX0hPT0tTJyxcbiAgICBoZWxwOiAnRW5hYmxlcyBkYXRhYmFzZSByZWFsLXRpbWUgaG9va3MgdG8gdXBkYXRlIHNpbmdsZSBzY2hlbWEgY2FjaGUuIFNldCB0byBgdHJ1ZWAgaWYgdXNpbmcgbXVsdGlwbGUgUGFyc2UgU2VydmVycyBpbnN0YW5jZXMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIGRhdGFiYXNlLiBGYWlsaW5nIHRvIGRvIHNvIHdpbGwgY2F1c2UgYSBzY2hlbWEgY2hhbmdlIHRvIG5vdCBwcm9wYWdhdGUgdG8gYWxsIGluc3RhbmNlcyBhbmQgcmUtc3luY2luZyB3aWxsIG9ubHkgaGFwcGVuIHdoZW4gdGhlIGluc3RhbmNlcyByZXN0YXJ0LiBUbyB1c2UgdGhpcyBmZWF0dXJlIHdpdGggTW9uZ29EQiwgYSByZXBsaWNhIHNldCBjbHVzdGVyIHdpdGggW2NoYW5nZSBzdHJlYW1dKGh0dHBzOi8vZG9jcy5tb25nb2RiLmNvbS9tYW51YWwvY2hhbmdlU3RyZWFtcy8jYXZhaWxhYmlsaXR5KSBzdXBwb3J0IGlzIHJlcXVpcmVkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGZvcmNlU2VydmVyT2JqZWN0SWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfRk9SQ0VfU0VSVkVSX09CSkVDVF9JRCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZm9yY2Ugc2VydmVyIHRvIGFzc2lnbiBfaWQgdmFsdWVzIGluc3RlYWQgb2YgZHJpdmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIGhlYXJ0YmVhdEZyZXF1ZW5jeU1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0hFQVJUQkVBVF9GUkVRVUVOQ1lfTVMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGZyZXF1ZW5jeSBpbiBtaWxsaXNlY29uZHMgYXQgd2hpY2ggdGhlIGRyaXZlciBjaGVja3MgdGhlIHN0YXRlIG9mIHRoZSBNb25nb0RCIGRlcGxveW1lbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdoZWFydGJlYXRGcmVxdWVuY3lNUycpLFxuICB9LFxuICBsb2FkQmFsYW5jZWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTE9BRF9CQUxBTkNFRCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gaW5zdHJ1Y3QgdGhlIGRyaXZlciBpdCBpcyBjb25uZWN0aW5nIHRvIGEgbG9hZCBiYWxhbmNlciBmcm9udGluZyBhIG1vbmdvcyBsaWtlIHNlcnZpY2UuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgbG9jYWxUaHJlc2hvbGRNUzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9MT0NBTF9USFJFU0hPTERfTVMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHNpemUgKGluIG1pbGxpc2Vjb25kcykgb2YgdGhlIGxhdGVuY3kgd2luZG93IGZvciBzZWxlY3RpbmcgYW1vbmcgbXVsdGlwbGUgc3VpdGFibGUgTW9uZ29EQiBpbnN0YW5jZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdsb2NhbFRocmVzaG9sZE1TJyksXG4gIH0sXG4gIGxvZ0NsaWVudEV2ZW50czoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9MT0dfQ0xJRU5UX0VWRU5UUycsXG4gICAgaGVscDogJ0FuIGFycmF5IG9mIE1vbmdvREIgY2xpZW50IGV2ZW50IGNvbmZpZ3VyYXRpb25zIHRvIGVuYWJsZSBsb2dnaW5nIG9mIHNwZWNpZmljIGV2ZW50cy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICB0eXBlOiAnTG9nQ2xpZW50RXZlbnRbXScsXG4gIH0sXG4gIG1heENvbm5lY3Rpbmc6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTUFYX0NPTk5FQ1RJTkcnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIHRoYXQgbWF5IGJlIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGVzdGFibGlzaGVkIGNvbmN1cnJlbnRseSBieSB0aGUgY29ubmVjdGlvbiBwb29sLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4Q29ubmVjdGluZycpLFxuICB9LFxuICBtYXhJZGxlVGltZU1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX01BWF9JRExFX1RJTUVfTVMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IGEgY29ubmVjdGlvbiBjYW4gcmVtYWluIGlkbGUgaW4gdGhlIGNvbm5lY3Rpb24gcG9vbCBiZWZvcmUgYmVpbmcgcmVtb3ZlZCBhbmQgY2xvc2VkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4SWRsZVRpbWVNUycpLFxuICB9LFxuICBtYXhQb29sU2l6ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9NQVhfUE9PTF9TSVpFJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIG9wZW5lZCwgY2FjaGVkLCByZWFkeS10by11c2UgZGF0YWJhc2UgY29ubmVjdGlvbnMgbWFpbnRhaW5lZCBieSB0aGUgZHJpdmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4UG9vbFNpemUnKSxcbiAgfSxcbiAgbWF4U3RhbGVuZXNzU2Vjb25kczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9NQVhfU1RBTEVORVNTX1NFQ09ORFMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB0aGUgbWF4aW11bSByZXBsaWNhdGlvbiBsYWcgZm9yIHJlYWRzIGZyb20gc2Vjb25kYXJ5IG5vZGVzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4U3RhbGVuZXNzU2Vjb25kcycpLFxuICB9LFxuICBtYXhUaW1lTVM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTUFYX1RJTUVfTVMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCBhIGN1bXVsYXRpdmUgdGltZSBsaW1pdCBpbiBtaWxsaXNlY29uZHMgZm9yIHByb2Nlc3Npbmcgb3BlcmF0aW9ucyBvbiBhIGN1cnNvci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heFRpbWVNUycpLFxuICB9LFxuICBtaW5Qb29sU2l6ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9NSU5fUE9PTF9TSVpFJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG9wZW5lZCwgY2FjaGVkLCByZWFkeS10by11c2UgZGF0YWJhc2UgY29ubmVjdGlvbnMgbWFpbnRhaW5lZCBieSB0aGUgZHJpdmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWluUG9vbFNpemUnKSxcbiAgfSxcbiAgcHJveHlIb3N0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1BST1hZX0hPU1QnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhIFNvY2tzNSBwcm94eSBob3N0IHVzZWQgZm9yIGNyZWF0aW5nIFRDUCBjb25uZWN0aW9ucy4nLFxuICB9LFxuICBwcm94eVBhc3N3b3JkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1BST1hZX1BBU1NXT1JEJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBjb25maWd1cmUgYSBTb2NrczUgcHJveHkgcGFzc3dvcmQgd2hlbiB0aGUgcHJveHkgcmVxdWlyZXMgdXNlcm5hbWUvcGFzc3dvcmQgYXV0aGVudGljYXRpb24uJyxcbiAgfSxcbiAgcHJveHlQb3J0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1BST1hZX1BPUlQnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhIFNvY2tzNSBwcm94eSBwb3J0IHVzZWQgZm9yIGNyZWF0aW5nIFRDUCBjb25uZWN0aW9ucy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3Byb3h5UG9ydCcpLFxuICB9LFxuICBwcm94eVVzZXJuYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1BST1hZX1VTRVJOQU1FJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBjb25maWd1cmUgYSBTb2NrczUgcHJveHkgdXNlcm5hbWUgd2hlbiB0aGUgcHJveHkgcmVxdWlyZXMgdXNlcm5hbWUvcGFzc3dvcmQgYXV0aGVudGljYXRpb24uJyxcbiAgfSxcbiAgcmVhZENvbmNlcm5MZXZlbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRUFEX0NPTkNFUk5fTEVWRUwnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGxldmVsIG9mIGlzb2xhdGlvbi4nLFxuICB9LFxuICByZWFkUHJlZmVyZW5jZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRUFEX1BSRUZFUkVOQ0UnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHJlYWQgcHJlZmVyZW5jZXMgZm9yIHRoaXMgY29ubmVjdGlvbi4nLFxuICB9LFxuICByZWFkUHJlZmVyZW5jZVRhZ3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUkVBRF9QUkVGRVJFTkNFX1RBR1MnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHRhZ3MgZG9jdW1lbnQgYXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb2xvbi1zZXBhcmF0ZWQga2V5LXZhbHVlIHBhaXJzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICByZXBsaWNhU2V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1JFUExJQ0FfU0VUJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSByZXBsaWNhIHNldCwgaWYgdGhlIG1vbmdvZCBpcyBhIG1lbWJlciBvZiBhIHJlcGxpY2Egc2V0LicsXG4gIH0sXG4gIHJldHJ5UmVhZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUkVUUllfUkVBRFMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGVuYWJsZSByZXRyeWFibGUgcmVhZHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgcmV0cnlXcml0ZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUkVUUllfV1JJVEVTJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgd2hldGhlciB0byByZXRyeSBmYWlsZWQgd3JpdGVzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHNjaGVtYUNhY2hlVHRsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NDSEVNQV9DQUNIRV9UVEwnLFxuICAgIGhlbHA6ICdUaGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgc2NoZW1hIGNhY2hlIGV4cGlyZXMgYW5kIHdpbGwgYmUgcmVmZXRjaGVkIGZyb20gdGhlIGRhdGFiYXNlLiBVc2UgdGhpcyBvcHRpb24gaWYgdXNpbmcgbXVsdGlwbGUgUGFyc2UgU2VydmVycyBpbnN0YW5jZXMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIGRhdGFiYXNlLiBBIGxvdyBkdXJhdGlvbiB3aWxsIGNhdXNlIHRoZSBzY2hlbWEgY2FjaGUgdG8gYmUgdXBkYXRlZCB0b28gb2Z0ZW4sIGNhdXNpbmcgdW5uZWNlc3NhcnkgZGF0YWJhc2UgcmVhZHMuIEEgaGlnaCBkdXJhdGlvbiB3aWxsIGNhdXNlIHRoZSBzY2hlbWEgdG8gYmUgdXBkYXRlZCB0b28gcmFyZWx5LCBpbmNyZWFzaW5nIHRoZSB0aW1lIHJlcXVpcmVkIHVudGlsIHNjaGVtYSBjaGFuZ2VzIHByb3BhZ2F0ZSB0byBhbGwgc2VydmVyIGluc3RhbmNlcy4gVGhpcyBmZWF0dXJlIGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIG9yIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIG9wdGlvbiBgZW5hYmxlU2NoZW1hSG9va3NgLiBEZWZhdWx0IGlzIGluZmluaXRlIHdoaWNoIG1lYW5zIHRoZSBzY2hlbWEgY2FjaGUgbmV2ZXIgZXhwaXJlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3NjaGVtYUNhY2hlVHRsJyksXG4gIH0sXG4gIHNlcnZlck1vbml0b3JpbmdNb2RlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NFUlZFUl9NT05JVE9SSU5HX01PREUnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGluc3RydWN0IHRoZSBkcml2ZXIgbW9uaXRvcnMgdG8gdXNlIGEgc3BlY2lmaWMgbW9uaXRvcmluZyBtb2RlLicsXG4gIH0sXG4gIHNlcnZlclNlbGVjdGlvblRpbWVvdXRNUzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9TRVJWRVJfU0VMRUNUSU9OX1RJTUVPVVRfTVMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgYSBzZXJ2ZXIgdG8gYmUgY29uc2lkZXJlZCBzdWl0YWJsZSBmb3Igc2VsZWN0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignc2VydmVyU2VsZWN0aW9uVGltZW91dE1TJyksXG4gIH0sXG4gIHNvY2tldFRpbWVvdXRNUzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9TT0NLRVRfVElNRU9VVF9NUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgc3BlbnQgYXR0ZW1wdGluZyB0byBzZW5kIG9yIHJlY2VpdmUgb24gYSBzb2NrZXQgYmVmb3JlIHRpbWluZyBvdXQuIFNwZWNpZnlpbmcgMCBtZWFucyBubyB0aW1lb3V0LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignc29ja2V0VGltZW91dE1TJyksXG4gIH0sXG4gIHNydk1heEhvc3RzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NSVl9NQVhfSE9TVFMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIGhvc3RzIHRvIGNvbm5lY3QgdG8gd2hlbiB1c2luZyBhbiBzcnYgY29ubmVjdGlvbiBzdHJpbmcsIGEgc2V0dGluZyBvZiAwIG1lYW5zIHVubGltaXRlZCBob3N0cy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3Nydk1heEhvc3RzJyksXG4gIH0sXG4gIHNydlNlcnZpY2VOYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NSVl9TRVJWSUNFX05BTUUnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIG1vZGlmeSB0aGUgc3J2IFVSSSBzZXJ2aWNlIG5hbWUuJyxcbiAgfSxcbiAgc3NsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NTTCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZW5hYmxlIG9yIGRpc2FibGUgVExTL1NTTCBmb3IgdGhlIGNvbm5lY3Rpb24gKGVxdWl2YWxlbnQgdG8gdGxzIG9wdGlvbikuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdGxzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZW5hYmxlIG9yIGRpc2FibGUgVExTL1NTTCBmb3IgdGhlIGNvbm5lY3Rpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdGxzQWxsb3dJbnZhbGlkQ2VydGlmaWNhdGVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19BTExPV19JTlZBTElEX0NFUlRJRklDQVRFUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gYnlwYXNzIHZhbGlkYXRpb24gb2YgdGhlIGNlcnRpZmljYXRlcyBwcmVzZW50ZWQgYnkgdGhlIG1vbmdvZC9tb25nb3MgaW5zdGFuY2UuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdGxzQWxsb3dJbnZhbGlkSG9zdG5hbWVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19BTExPV19JTlZBTElEX0hPU1ROQU1FUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZGlzYWJsZSBob3N0bmFtZSB2YWxpZGF0aW9uIG9mIHRoZSBjZXJ0aWZpY2F0ZSBwcmVzZW50ZWQgYnkgdGhlIG1vbmdvZC9tb25nb3MgaW5zdGFuY2UuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdGxzQ0FGaWxlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19DQUZJTEUnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIGEgbG9jYWwgLnBlbSBmaWxlIHRoYXQgY29udGFpbnMgdGhlIHJvb3QgY2VydGlmaWNhdGUgY2hhaW4gZnJvbSB0aGUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5LicsXG4gIH0sXG4gIHRsc0NlcnRpZmljYXRlS2V5RmlsZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9UTFNfQ0VSVElGSUNBVEVfS0VZX0ZJTEUnLFxuICAgIGhlbHA6IFwiVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhIGxvY2FsIC5wZW0gZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBjbGllbnQncyBUTFMvU1NMIGNlcnRpZmljYXRlIGFuZCBrZXkuXCIsXG4gIH0sXG4gIHRsc0NlcnRpZmljYXRlS2V5RmlsZVBhc3N3b3JkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19DRVJUSUZJQ0FURV9LRVlfRklMRV9QQVNTV09SRCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgcGFzc3dvcmQgdG8gZGVjcnlwdCB0aGUgdGxzQ2VydGlmaWNhdGVLZXlGaWxlLicsXG4gIH0sXG4gIHRsc0luc2VjdXJlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19JTlNFQ1VSRScsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZGlzYWJsZSB2YXJpb3VzIGNlcnRpZmljYXRlIHZhbGlkYXRpb25zLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHdhaXRRdWV1ZVRpbWVvdXRNUzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9XQUlUX1FVRVVFX1RJTUVPVVRfTVMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCBhIHRocmVhZCBjYW4gd2FpdCBmb3IgYSBjb25uZWN0aW9uIHRvIGJlY29tZSBhdmFpbGFibGUuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd3YWl0UXVldWVUaW1lb3V0TVMnKSxcbiAgfSxcbiAgemxpYkNvbXByZXNzaW9uTGV2ZWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfWkxJQl9DT01QUkVTU0lPTl9MRVZFTCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgY29tcHJlc3Npb24gbGV2ZWwgaWYgdXNpbmcgemxpYiBmb3IgbmV0d29yayBjb21wcmVzc2lvbiAoMC05KS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3psaWJDb21wcmVzc2lvbkxldmVsJyksXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuRGF0YWJhc2VPcHRpb25zQ2xpZW50TWV0YWRhdGEgPSB7XG4gIG5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ0xJRU5UX01FVEFEQVRBX05BTUUnLFxuICAgIGhlbHA6IFwiVGhlIG5hbWUgdG8gaWRlbnRpZnkgeW91ciBhcHBsaWNhdGlvbiBpbiBkYXRhYmFzZSBsb2dzIChlLmcuLCAnTXlBcHAnKS5cIixcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgdmVyc2lvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DTElFTlRfTUVUQURBVEFfVkVSU0lPTicsXG4gICAgaGVscDogXCJUaGUgdmVyc2lvbiBvZiB5b3VyIGFwcGxpY2F0aW9uIChlLmcuLCAnMS4wLjAnKS5cIixcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5BdXRoQWRhcHRlciA9IHtcbiAgZW5hYmxlZDoge1xuICAgIGhlbHA6ICdJcyBgdHJ1ZWAgaWYgdGhlIGF1dGggYWRhcHRlciBpcyBlbmFibGVkLCBgZmFsc2VgIG90aGVyd2lzZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkxvZ0xldmVscyA9IHtcbiAgY2xvdWRGdW5jdGlvbkVycm9yOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfQ0xPVURfRlVOQ1RJT05fRVJST1InLFxuICAgIGhlbHA6ICdMb2cgbGV2ZWwgdXNlZCBieSB0aGUgQ2xvdWQgQ29kZSBGdW5jdGlvbnMgb24gZXJyb3IuIERlZmF1bHQgaXMgYGVycm9yYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuJyxcbiAgICBkZWZhdWx0OiAnZXJyb3InLFxuICB9LFxuICBjbG91ZEZ1bmN0aW9uU3VjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxTX0NMT1VEX0ZVTkNUSU9OX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdMb2cgbGV2ZWwgdXNlZCBieSB0aGUgQ2xvdWQgQ29kZSBGdW5jdGlvbnMgb24gc3VjY2Vzcy4gRGVmYXVsdCBpcyBgaW5mb2AuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLicsXG4gICAgZGVmYXVsdDogJ2luZm8nLFxuICB9LFxuICBzaWdudXBVc2VybmFtZVRha2VuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfU0lHTlVQX1VTRVJOQU1FX1RBS0VOJyxcbiAgICBoZWxwOiAnTG9nIGxldmVsIHVzZWQgd2hlbiBhIHNpZ24tdXAgZmFpbHMgYmVjYXVzZSB0aGUgdXNlcm5hbWUgYWxyZWFkeSBleGlzdHMuIERlZmF1bHQgaXMgYGluZm9gLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy4nLFxuICAgIGRlZmF1bHQ6ICdpbmZvJyxcbiAgfSxcbiAgdHJpZ2dlckFmdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfVFJJR0dFUl9BRlRFUicsXG4gICAgaGVscDogJ0xvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIFRyaWdnZXJzIGBhZnRlclNhdmVgLCBgYWZ0ZXJEZWxldGVgLCBgYWZ0ZXJGaW5kYCwgYGFmdGVyTG9nb3V0YC4gRGVmYXVsdCBpcyBgaW5mb2AuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLicsXG4gICAgZGVmYXVsdDogJ2luZm8nLFxuICB9LFxuICB0cmlnZ2VyQmVmb3JlRXJyb3I6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMU19UUklHR0VSX0JFRk9SRV9FUlJPUicsXG4gICAgaGVscDogJ0xvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIFRyaWdnZXJzIGBiZWZvcmVTYXZlYCwgYGJlZm9yZURlbGV0ZWAsIGBiZWZvcmVGaW5kYCwgYGJlZm9yZUxvZ2luYCBvbiBlcnJvci4gRGVmYXVsdCBpcyBgZXJyb3JgLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy4nLFxuICAgIGRlZmF1bHQ6ICdlcnJvcicsXG4gIH0sXG4gIHRyaWdnZXJCZWZvcmVTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfVFJJR0dFUl9CRUZPUkVfU1VDQ0VTUycsXG4gICAgaGVscDogJ0xvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIFRyaWdnZXJzIGBiZWZvcmVTYXZlYCwgYGJlZm9yZURlbGV0ZWAsIGBiZWZvcmVGaW5kYCwgYGJlZm9yZUxvZ2luYCBvbiBzdWNjZXNzLiBEZWZhdWx0IGlzIGBpbmZvYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuJyxcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gIH0sXG59O1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxXQUFXLENBQUM7QUFDbENDLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDQyxhQUFhLEdBQUc7RUFDN0JDLGNBQWMsRUFBRTtJQUNkQyxHQUFHLEVBQUUscUNBQXFDO0lBQzFDQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0RDLGVBQWUsRUFBRTtJQUNmRixHQUFHLEVBQUUsc0NBQXNDO0lBQzNDQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0RFLFdBQVcsRUFBRTtJQUNYSCxHQUFHLEVBQUUsaUNBQWlDO0lBQ3RDQyxJQUFJLEVBQUUsZ0dBQWdHO0lBQ3RHRyxRQUFRLEVBQUUsSUFBSTtJQUNkQyxNQUFNLEVBQUVYLE9BQU8sQ0FBQ1ksWUFBWTtJQUM1QkMsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEQyxpQkFBaUIsRUFBRTtJQUNqQlIsR0FBRyxFQUFFLHlDQUF5QztJQUM5Q0MsSUFBSSxFQUFFLG1JQUFtSTtJQUN6SUksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDREcsa0JBQWtCLEVBQUU7SUFDbEJWLEdBQUcsRUFBRSwwQ0FBMEM7SUFDL0NDLElBQUksRUFBRSxpT0FBaU87SUFDdk9JLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RJLFdBQVcsRUFBRTtJQUNYWCxHQUFHLEVBQUUsa0NBQWtDO0lBQ3ZDQyxJQUFJLEVBQUUsb0dBQW9HO0lBQzFHSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNESyxzQkFBc0IsRUFBRTtJQUN0QlosR0FBRyxFQUFFLDhDQUE4QztJQUNuREMsSUFBSSxFQUFFLGtMQUFrTDtJQUN4TEksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRE0sTUFBTSxFQUFFO0lBQ05iLEdBQUcsRUFBRSw0QkFBNEI7SUFDakNDLElBQUksRUFBRSw0REFBNEQ7SUFDbEVJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWDtBQUNGLENBQUM7QUFDRFgsTUFBTSxDQUFDQyxPQUFPLENBQUNpQixrQkFBa0IsR0FBRztFQUNsQ0MsY0FBYyxFQUFFO0lBQ2RmLEdBQUcsRUFBRSw4QkFBOEI7SUFDbkNDLElBQUksRUFBRSxvVkFBb1Y7SUFDMVZJLE1BQU0sRUFBRVgsT0FBTyxDQUFDWSxZQUFZO0lBQzVCVSxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0RDLG9DQUFvQyxFQUFFO0lBQ3BDakIsR0FBRyxFQUFFLHlEQUF5RDtJQUM5REMsSUFBSSxFQUFFLG9zQkFBb3NCO0lBQzFzQkksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRFcsd0JBQXdCLEVBQUU7SUFDeEJsQixHQUFHLEVBQUUsMENBQTBDO0lBQy9DQyxJQUFJLEVBQUUsOERBQThEO0lBQ3BFSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEWSxtQkFBbUIsRUFBRTtJQUNuQm5CLEdBQUcsRUFBRSxxQ0FBcUM7SUFDMUNDLElBQUksRUFBRSxxQ0FBcUM7SUFDM0NJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RhLHlCQUF5QixFQUFFO0lBQ3pCcEIsR0FBRyxFQUFFLDRDQUE0QztJQUNqREMsSUFBSSxFQUFFLHVUQUF1VDtJQUM3VEksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRGMsWUFBWSxFQUFFO0lBQ1pyQixHQUFHLEVBQUUsNEJBQTRCO0lBQ2pDQyxJQUFJLEVBQUUsNkNBQTZDO0lBQ25ESSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzRCO0VBQ2xCLENBQUM7RUFDREMsV0FBVyxFQUFFO0lBQ1h2QixHQUFHLEVBQUUsMkJBQTJCO0lBQ2hDQyxJQUFJLEVBQUUscUlBQXFJO0lBQzNJSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzRCO0VBQ2xCLENBQUM7RUFDREUsZ0JBQWdCLEVBQUU7SUFDaEJ4QixHQUFHLEVBQUUsZ0NBQWdDO0lBQ3JDQyxJQUFJLEVBQUUsa0NBQWtDO0lBQ3hDSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQytCO0VBQ2xCLENBQUM7RUFDREMsS0FBSyxFQUFFO0lBQ0wxQixHQUFHLEVBQUUsNkJBQTZCO0lBQ2xDQyxJQUFJLEVBQUUsMkJBQTJCO0lBQ2pDRyxRQUFRLEVBQUU7RUFDWixDQUFDO0VBQ0R1QixPQUFPLEVBQUU7SUFDUDNCLEdBQUcsRUFBRSx1QkFBdUI7SUFDNUJDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDJCLElBQUksRUFBRTtJQUNKNUIsR0FBRyxFQUFFLDZCQUE2QjtJQUNsQ0MsSUFBSSxFQUFFLDhiQUE4YjtJQUNwY0ksTUFBTSxFQUFFWCxPQUFPLENBQUNZO0VBQ2xCLENBQUM7RUFDRHVCLFlBQVksRUFBRTtJQUNaN0IsR0FBRyxFQUFFLDRCQUE0QjtJQUNqQ0MsSUFBSSxFQUFFLDhCQUE4QjtJQUNwQ0ksTUFBTSxFQUFFWCxPQUFPLENBQUMrQjtFQUNsQixDQUFDO0VBQ0RLLFlBQVksRUFBRTtJQUNaOUIsR0FBRyxFQUFFLDZCQUE2QjtJQUNsQ0MsSUFBSSxFQUFFLGtFQUFrRTtJQUN4RUksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsY0FBYyxDQUFDO0lBQzVDeEIsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEeUIsUUFBUSxFQUFFO0lBQ1JoQyxHQUFHLEVBQUUsd0JBQXdCO0lBQzdCQyxJQUFJLEVBQUUsNEVBQTRFO0lBQ2xGSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxVQUFVLENBQUM7SUFDeEN4QixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0QwQixTQUFTLEVBQUU7SUFDVGpDLEdBQUcsRUFBRSx5QkFBeUI7SUFDOUJDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRGlDLEtBQUssRUFBRTtJQUNMbEMsR0FBRyxFQUFFLG9CQUFvQjtJQUN6QkMsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEa0MsT0FBTyxFQUFFO0lBQ1BuQyxHQUFHLEVBQUUsc0JBQXNCO0lBQzNCQyxJQUFJLEVBQUUsc0ZBQXNGO0lBQzVGSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzBDLGtCQUFrQixDQUFDLFNBQVM7RUFDOUMsQ0FBQztFQUNEQyxnQkFBZ0IsRUFBRTtJQUNoQnJDLEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckNDLElBQUksRUFBRSxxQ0FBcUM7SUFDM0NNLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRCtCLHVCQUF1QixFQUFFO0lBQ3ZCdEMsR0FBRyxFQUFFLHlDQUF5QztJQUM5Q0MsSUFBSSxFQUFFLGdXQUFnVztJQUN0V0ksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRGdDLDBCQUEwQixFQUFFO0lBQzFCdkMsR0FBRyxFQUFFLDRDQUE0QztJQUNqREMsSUFBSSxFQUFFLHNXQUFzVztJQUM1V0ksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRGlDLFdBQVcsRUFBRTtJQUNYeEMsR0FBRyxFQUFFLDJCQUEyQjtJQUNoQ0MsSUFBSSxFQUFFLGdEQUFnRDtJQUN0REksTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJVLElBQUksRUFBRSxvQkFBb0I7SUFDMUJULE9BQU8sRUFBRSxDQUFDO0VBQ1osQ0FBQztFQUNEa0MsZUFBZSxFQUFFO0lBQ2Z6QyxHQUFHLEVBQUUsK0JBQStCO0lBQ3BDQyxJQUFJLEVBQUUsaUlBQWlJO0lBQ3ZJSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQytCO0VBQ2xCLENBQUM7RUFDRGlCLGVBQWUsRUFBRTtJQUNmMUMsR0FBRyxFQUFFLCtCQUErQjtJQUNwQ0MsSUFBSSxFQUFFLHdDQUF3QztJQUM5Q0ksTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJVLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDJCLFdBQVcsRUFBRTtJQUNYM0MsR0FBRyxFQUFFLDJCQUEyQjtJQUNoQ0MsSUFBSSxFQUFFLDZFQUE2RTtJQUNuRkcsUUFBUSxFQUFFLElBQUk7SUFDZEcsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEcUMsWUFBWSxFQUFFO0lBQ1o1QyxHQUFHLEVBQUUsNEJBQTRCO0lBQ2pDQyxJQUFJLEVBQUUsK0RBQStEO0lBQ3JFSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxjQUFjLENBQUM7SUFDNUN4QixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RzQyxZQUFZLEVBQUU7SUFDWjdDLEdBQUcsRUFBRSw0QkFBNEI7SUFDakNDLElBQUksRUFBRSw2MUJBQTYxQjtJQUNuMkJJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0R1QyxTQUFTLEVBQUU7SUFDVDlDLEdBQUcsRUFBRSwwQkFBMEI7SUFDL0JDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDhDLFlBQVksRUFBRTtJQUNaL0MsR0FBRyxFQUFFLDRCQUE0QjtJQUNqQ0MsSUFBSSxFQUFFLGtDQUFrQztJQUN4Q0ksTUFBTSxFQUFFWCxPQUFPLENBQUMrQjtFQUNsQixDQUFDO0VBQ0R1QixnQ0FBZ0MsRUFBRTtJQUNoQ2hELEdBQUcsRUFBRSxvREFBb0Q7SUFDekRDLElBQUksRUFBRSxxV0FBcVc7SUFDM1dJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0QwQyw0QkFBNEIsRUFBRTtJQUM1QmpELEdBQUcsRUFBRSxnREFBZ0Q7SUFDckRDLElBQUksRUFBRSwrYUFBK2E7SUFDcmJJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0QyQyxnQ0FBZ0MsRUFBRTtJQUNoQ2xELEdBQUcsRUFBRSxtREFBbUQ7SUFDeERDLElBQUksRUFBRSxrZ0JBQWtnQjtJQUN4Z0JJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGtDQUFrQztFQUNqRSxDQUFDO0VBQ0RvQixvQkFBb0IsRUFBRTtJQUNwQm5ELEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckNDLElBQUksRUFBRSx1REFBdUQ7SUFDN0RJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0Q2Qyw2QkFBNkIsRUFBRTtJQUM3QnBELEdBQUcsRUFBRSwrQ0FBK0M7SUFDcERDLElBQUksRUFBRSx5UkFBeVI7SUFDL1JJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0Q4Qyx5QkFBeUIsRUFBRTtJQUN6QnJELEdBQUcsRUFBRSwyQ0FBMkM7SUFDaERDLElBQUksRUFBRSwwREFBMEQ7SUFDaEVJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0QrQywwQkFBMEIsRUFBRTtJQUMxQnRELEdBQUcsRUFBRSw0Q0FBNEM7SUFDakRDLElBQUksRUFBRSx5SkFBeUo7SUFDL0pJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RnRCx3Q0FBd0MsRUFBRTtJQUN4Q3ZELEdBQUcsRUFBRSw2REFBNkQ7SUFDbEVDLElBQUksRUFBRSxnbUJBQWdtQjtJQUN0bUJJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RpRCw4QkFBOEIsRUFBRTtJQUM5QnhELEdBQUcsRUFBRSxpREFBaUQ7SUFDdERDLElBQUksRUFBRSxpVkFBaVY7SUFDdlZJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RrRCw0QkFBNEIsRUFBRTtJQUM1QnpELEdBQUcsRUFBRSw4Q0FBOEM7SUFDbkRDLElBQUksRUFBRSxrS0FBa0s7SUFDeEtJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RtRCxhQUFhLEVBQUU7SUFDYjFELEdBQUcsRUFBRSw2QkFBNkI7SUFDbENDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDBELG1CQUFtQixFQUFFO0lBQ25CM0QsR0FBRyxFQUFFLG9DQUFvQztJQUN6Q0MsSUFBSSxFQUFFLGtGQUFrRjtJQUN4RkksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHFELHNCQUFzQixFQUFFO0lBQ3RCNUQsR0FBRyxFQUFFLHVDQUF1QztJQUM1Q0MsSUFBSSxFQUFFLHdJQUF3STtJQUM5SUksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHNELGtCQUFrQixFQUFFO0lBQ2xCN0QsR0FBRyxFQUFFLG9DQUFvQztJQUN6Q0MsSUFBSSxFQUFFLHVSQUF1UjtJQUM3UkksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHVELFlBQVksRUFBRTtJQUNaOUQsR0FBRyxFQUFFLG9DQUFvQztJQUN6Q0MsSUFBSSxFQUFFLDRCQUE0QjtJQUNsQ0ksTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJVLElBQUksRUFBRSxxQkFBcUI7SUFDM0JULE9BQU8sRUFBRSxDQUFDO0VBQ1osQ0FBQztFQUNEd0QsT0FBTyxFQUFFO0lBQ1AvRCxHQUFHLEVBQUUsdUJBQXVCO0lBQzVCQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0QrRCxZQUFZLEVBQUU7SUFDWmhFLEdBQUcsRUFBRSw0QkFBNEI7SUFDakNDLElBQUksRUFBRSx5Q0FBeUM7SUFDL0NJLE1BQU0sRUFBRVgsT0FBTyxDQUFDK0I7RUFDbEIsQ0FBQztFQUNEd0MsVUFBVSxFQUFFO0lBQ1ZqRSxHQUFHLEVBQUUsa0NBQWtDO0lBQ3ZDQyxJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ1ksWUFBWTtJQUM1QlUsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QlQsT0FBTyxFQUFFLENBQUM7RUFDWixDQUFDO0VBQ0QyRCxXQUFXLEVBQUU7SUFDWGxFLEdBQUcsRUFBRSwyQkFBMkI7SUFDaENDLElBQUksRUFBRSw2T0FBNk87SUFDblBNLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRDRELDBCQUEwQixFQUFFO0lBQzFCbkUsR0FBRyxFQUFFLDJDQUEyQztJQUNoREMsSUFBSSxFQUFFLDhmQUE4ZjtJQUNwZ0JJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0Q2RCxhQUFhLEVBQUU7SUFDYnBFLEdBQUcsRUFBRSw2QkFBNkI7SUFDbENDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRG9FLElBQUksRUFBRTtJQUNKckUsR0FBRyxFQUFFLG1CQUFtQjtJQUN4QkMsSUFBSSxFQUFFLHVEQUF1RDtJQUM3RE0sT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEK0Qsa0JBQWtCLEVBQUU7SUFDbEJ0RSxHQUFHLEVBQUUsK0NBQStDO0lBQ3BEQyxJQUFJLEVBQUUsOExBQThMO0lBQ3BNSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ1ksWUFBWTtJQUM1QlUsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQlQsT0FBTyxFQUFFLENBQUM7RUFDWixDQUFDO0VBQ0RnRSxZQUFZLEVBQUU7SUFDWnZFLEdBQUcsRUFBRSwyQkFBMkI7SUFDaENDLElBQUksRUFBRSw4R0FBOEc7SUFDcEhJLE1BQU0sRUFBRVgsT0FBTyxDQUFDWSxZQUFZO0lBQzVCVSxJQUFJLEVBQUUscUJBQXFCO0lBQzNCVCxPQUFPLEVBQUUsQ0FBQztFQUNaLENBQUM7RUFDRGlFLGFBQWEsRUFBRTtJQUNieEUsR0FBRyxFQUFFLDZCQUE2QjtJQUNsQ0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEd0UsUUFBUSxFQUFFO0lBQ1J6RSxHQUFHLEVBQUUsV0FBVztJQUNoQkMsSUFBSSxFQUFFLGdDQUFnQztJQUN0Q0ksTUFBTSxFQUFFWCxPQUFPLENBQUNlO0VBQ2xCLENBQUM7RUFDRGlFLFNBQVMsRUFBRTtJQUNUMUUsR0FBRyxFQUFFLHlCQUF5QjtJQUM5QkMsSUFBSSxFQUFFLGdVQUFnVTtJQUN0VUksTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJVLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDJELHNCQUFzQixFQUFFO0lBQ3RCM0UsR0FBRyxFQUFFLHdDQUF3QztJQUM3Q0MsSUFBSSxFQUFFLCtNQUErTTtJQUNyTkksTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJVLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDRELGFBQWEsRUFBRTtJQUNiNUUsR0FBRyxFQUFFLDZCQUE2QjtJQUNsQ0MsSUFBSSxFQUFFLDJDQUEyQztJQUNqREksTUFBTSxFQUFFWCxPQUFPLENBQUMrQjtFQUNsQixDQUFDO0VBQ0RvRCxRQUFRLEVBQUU7SUFDUjdFLEdBQUcsRUFBRSx3QkFBd0I7SUFDN0JDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDZFLFNBQVMsRUFBRTtJQUNUOUUsR0FBRyxFQUFFLHlCQUF5QjtJQUM5QkMsSUFBSSxFQUFFLG9GQUFvRjtJQUMxRkksTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJVLElBQUksRUFBRSxXQUFXO0lBQ2pCVCxPQUFPLEVBQUUsQ0FBQztFQUNaLENBQUM7RUFDRHdFLFVBQVUsRUFBRTtJQUNWL0UsR0FBRyxFQUFFLDBCQUEwQjtJQUMvQkMsSUFBSSxFQUFFLHVGQUF1RjtJQUM3Rk0sT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEeUUsdUJBQXVCLEVBQUU7SUFDdkJoRixHQUFHLEVBQUUseUNBQXlDO0lBQzlDQyxJQUFJLEVBQUUsNkVBQTZFO0lBQ25GSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQztJQUN2RHhCLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRDBFLGNBQWMsRUFBRTtJQUNkakYsR0FBRyxFQUFFLDhCQUE4QjtJQUNuQ0MsSUFBSSxFQUFFLGlvQkFBaW9CO0lBQ3ZvQkcsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNEOEUsaUJBQWlCLEVBQUU7SUFDakJsRixHQUFHLEVBQUUsa0NBQWtDO0lBQ3ZDQyxJQUFJLEVBQUUsZzJEQUFnMkQ7SUFDdDJESSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzRCLFdBQVc7SUFDM0JmLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLO0VBQzlCLENBQUM7RUFDRDRFLFNBQVMsRUFBRTtJQUNUbkYsR0FBRyxFQUFFLHlCQUF5QjtJQUM5QkMsSUFBSSxFQUFFLHVCQUF1QjtJQUM3QkcsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNEZ0YsWUFBWSxFQUFFO0lBQ1pwRixHQUFHLEVBQUUsNkJBQTZCO0lBQ2xDQyxJQUFJLEVBQUUsNDBEQUE0MEQ7SUFDbDFESSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzRCLFdBQVc7SUFDM0JmLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLO0VBQzlCLENBQUM7RUFDRDhFLFlBQVksRUFBRTtJQUNackYsR0FBRyxFQUFFLDZCQUE2QjtJQUNsQ0MsSUFBSSxFQUFFLHNYQUFzWDtJQUM1WEksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsY0FBYztFQUM3QyxDQUFDO0VBQ0R1RCxRQUFRLEVBQUU7SUFDUnRGLEdBQUcsRUFBRSx3QkFBd0I7SUFDN0JDLElBQUksRUFBRSw4REFBOEQ7SUFDcEVJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLFVBQVU7RUFDekMsQ0FBQztFQUNEd0QsV0FBVyxFQUFFO0lBQ1h2RixHQUFHLEVBQUUsNEJBQTRCO0lBQ2pDQyxJQUFJLEVBQUUsNktBQTZLO0lBQ25MSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzhGLG9CQUFvQixDQUFDLGFBQWE7RUFDcEQsQ0FBQztFQUNEQyxhQUFhLEVBQUU7SUFDYnpGLEdBQUcsRUFBRSw4QkFBOEI7SUFDbkNDLElBQUksRUFBRSw2Q0FBNkM7SUFDbkRNLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRG1GLFVBQVUsRUFBRTtJQUNWMUYsR0FBRyxFQUFFLHlCQUF5QjtJQUM5QkMsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEMEYsWUFBWSxFQUFFO0lBQ1ozRixHQUFHLEVBQUUsNEJBQTRCO0lBQ2pDQyxJQUFJLEVBQUUsNkJBQTZCO0lBQ25DSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEcUYsU0FBUyxFQUFFO0lBQ1Q1RixHQUFHLEVBQUUseUJBQXlCO0lBQzlCQyxJQUFJLEVBQUUsK0NBQStDO0lBQ3JETSxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RzRixlQUFlLEVBQUU7SUFDZjdGLEdBQUcsRUFBRSwrQkFBK0I7SUFDcENDLElBQUksRUFBRSx3UUFBd1E7SUFDOVFJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0R1RixZQUFZLEVBQUU7SUFDWjlGLEdBQUcsRUFBRSw2QkFBNkI7SUFDbENDLElBQUksRUFBRSxvRUFBb0U7SUFDMUVJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztJQUM1Q3hCLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHdGLEtBQUssRUFBRTtJQUNML0YsR0FBRyxFQUFFLG9CQUFvQjtJQUN6QkMsSUFBSSxFQUFFLHNFQUFzRTtJQUM1RUksTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJVLElBQUksRUFBRSxjQUFjO0lBQ3BCVCxPQUFPLEVBQUUsQ0FBQztFQUNaLENBQUM7RUFDRHlGLGNBQWMsRUFBRTtJQUNkaEcsR0FBRyxFQUFFLDhCQUE4QjtJQUNuQ0MsSUFBSSxFQUFFLDJEQUEyRDtJQUNqRUksTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJVLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRGlGLGNBQWMsRUFBRTtJQUNkakcsR0FBRyxFQUFFLDhCQUE4QjtJQUNuQ0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEaUcsSUFBSSxFQUFFO0lBQ0psRyxHQUFHLEVBQUUsTUFBTTtJQUNYQyxJQUFJLEVBQUUsb0RBQW9EO0lBQzFESSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDcEN4QixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0Q0RixnQkFBZ0IsRUFBRTtJQUNoQm5HLEdBQUcsRUFBRSxpQ0FBaUM7SUFDdENDLElBQUksRUFBRSxxRUFBcUU7SUFDM0VJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0Q2RiwrQkFBK0IsRUFBRTtJQUMvQnBHLEdBQUcsRUFBRSxrREFBa0Q7SUFDdkRDLElBQUksRUFBRSwreUJBQSt5QjtJQUNyekJJLE1BQU0sRUFBRVgsT0FBTyxDQUFDMkcsdUJBQXVCO0lBQ3ZDOUYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEK0YsZ0NBQWdDLEVBQUU7SUFDaEN0RyxHQUFHLEVBQUUsbURBQW1EO0lBQ3hEQyxJQUFJLEVBQUUsZ2hCQUFnaEI7SUFDdGhCSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEZ0csZUFBZSxFQUFFO0lBQ2Z2RyxHQUFHLEVBQUUsK0JBQStCO0lBQ3BDQyxJQUFJLEVBQUUsbzNCQUFvM0I7SUFDMTNCSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ1ksWUFBWTtJQUM1QkMsT0FBTyxFQUFFO01BQ1BpRyxLQUFLLEVBQUU7UUFDTCxHQUFHLEVBQUUsQ0FBQyxPQUFPO01BQ2Y7SUFDRjtFQUNGLENBQUM7RUFDREMsMEJBQTBCLEVBQUU7SUFDMUJ6RyxHQUFHLEVBQUUsNENBQTRDO0lBQ2pEQyxJQUFJLEVBQUUsMGdCQUEwZ0I7SUFDaGhCSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEbUcsaUNBQWlDLEVBQUU7SUFDakMxRyxHQUFHLEVBQUUsb0RBQW9EO0lBQ3pEQyxJQUFJLEVBQUUsNFVBQTRVO0lBQ2xWSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEb0csNEJBQTRCLEVBQUU7SUFDNUIzRyxHQUFHLEVBQUUsOENBQThDO0lBQ25EQyxJQUFJLEVBQUUsMFhBQTBYO0lBQ2hZSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEcUcsZUFBZSxFQUFFO0lBQ2Y1RyxHQUFHLEVBQUUseUJBQXlCO0lBQzlCQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q0RyxJQUFJLEVBQUU7SUFDSjdHLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEJDLElBQUksRUFBRSx1SEFBdUg7SUFDN0hJLE1BQU0sRUFBRVgsT0FBTyxDQUFDWTtFQUNsQixDQUFDO0VBQ0R3RyxLQUFLLEVBQUU7SUFDTDlHLEdBQUcsRUFBRSxvQkFBb0I7SUFDekJDLElBQUksRUFBRSxnQ0FBZ0M7SUFDdENJLE1BQU0sRUFBRVgsT0FBTyxDQUFDWSxZQUFZO0lBQzVCVSxJQUFJLEVBQUUsb0JBQW9CO0lBQzFCVCxPQUFPLEVBQUUsQ0FBQztFQUNaLENBQUM7RUFDRHdHLFNBQVMsRUFBRTtJQUNUL0csR0FBRyxFQUFFLHlCQUF5QjtJQUM5QkMsSUFBSSxFQUFFLDZvREFBNm9EO0lBQ25wREksTUFBTSxFQUFFWCxPQUFPLENBQUM0QixXQUFXO0lBQzNCTixJQUFJLEVBQUUsb0JBQW9CO0lBQzFCVCxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0R5RyxpQkFBaUIsRUFBRTtJQUNqQmhILEdBQUcsRUFBRSxtQ0FBbUM7SUFDeENDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRGdILG9CQUFvQixFQUFFO0lBQ3BCakgsR0FBRyxFQUFFLHVDQUF1QztJQUM1Q0MsSUFBSSxFQUFFLG02REFBbTZEO0lBQ3o2REksTUFBTSxFQUFFWCxPQUFPLENBQUM0QixXQUFXO0lBQzNCZixPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSztFQUM5QixDQUFDO0VBQ0QyRyxpQkFBaUIsRUFBRTtJQUNqQmxILEdBQUcsRUFBRSxpQ0FBaUM7SUFDdENDLElBQUksRUFBRSwyT0FBMk87SUFDalBJLE1BQU0sRUFBRVgsT0FBTyxDQUFDWSxZQUFZO0lBQzVCVSxJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDVCxPQUFPLEVBQUUsQ0FBQztFQUNaLENBQUM7RUFDRDRHLHdCQUF3QixFQUFFO0lBQ3hCbkgsR0FBRyxFQUFFLHlDQUF5QztJQUM5Q0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEbUgsc0JBQXNCLEVBQUU7SUFDdEJwSCxHQUFHLEVBQUUsdUNBQXVDO0lBQzVDQyxJQUFJLEVBQUUsd25CQUF3bkI7SUFDOW5CSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzRCLFdBQVc7SUFDM0JmLE9BQU8sRUFBRSxDQUNQO01BQ0U4RyxHQUFHLEVBQUUsV0FBVztNQUNoQkMsS0FBSyxFQUFFO0lBQ1QsQ0FBQyxFQUNEO01BQ0VELEdBQUcsRUFBRTtJQUNQLENBQUMsRUFDRDtNQUNFQSxHQUFHLEVBQUU7SUFDUCxDQUFDO0VBRUwsQ0FBQztFQUNERSxVQUFVLEVBQUU7SUFDVnZILEdBQUcsRUFBRSwyQkFBMkI7SUFDaENDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRHVILDRCQUE0QixFQUFFO0lBQzVCeEgsR0FBRyxFQUFFLCtDQUErQztJQUNwREMsSUFBSSxFQUFFLDhMQUE4TDtJQUNwTUksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRGtILGNBQWMsRUFBRTtJQUNkekgsR0FBRyxFQUFFLCtCQUErQjtJQUNwQ0MsSUFBSSxFQUFFLHFwREFBcXBEO0lBQzNwREksTUFBTSxFQUFFWCxPQUFPLENBQUM0QjtFQUNsQixDQUFDO0VBQ0RvRyxhQUFhLEVBQUU7SUFDYjFILEdBQUcsRUFBRSw2QkFBNkI7SUFDbENDLElBQUksRUFBRSx1REFBdUQ7SUFDN0RJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RvSCxNQUFNLEVBQUU7SUFDTjNILEdBQUcsRUFBRSxxQkFBcUI7SUFDMUJDLElBQUksRUFBRSxnQkFBZ0I7SUFDdEJJLE1BQU0sRUFBRVgsT0FBTyxDQUFDWSxZQUFZO0lBQzVCVSxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q0RyxRQUFRLEVBQUU7SUFDUjVILEdBQUcsRUFBRSx1QkFBdUI7SUFDNUJDLElBQUksRUFBRSxxRUFBcUU7SUFDM0VJLE1BQU0sRUFBRVgsT0FBTyxDQUFDWSxZQUFZO0lBQzVCVSxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCVCxPQUFPLEVBQUUsQ0FBQztFQUNaLENBQUM7RUFDRHNILHlCQUF5QixFQUFFO0lBQ3pCN0gsR0FBRyxFQUFFLDJDQUEyQztJQUNoREMsSUFBSSxFQUFFLG9MQUFvTDtJQUMxTEksTUFBTSxFQUFFWCxPQUFPLENBQUMyRyx1QkFBdUI7SUFDdkM5RixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0R1SCxtQkFBbUIsRUFBRTtJQUNuQjlILEdBQUcsRUFBRSxvQ0FBb0M7SUFDekNDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDhILFNBQVMsRUFBRTtJQUNUL0gsR0FBRyxFQUFFLGtCQUFrQjtJQUN2QkMsSUFBSSxFQUFFLGdVQUFnVTtJQUN0VUcsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNENEgsYUFBYSxFQUFFO0lBQ2JoSSxHQUFHLEVBQUUsNkJBQTZCO0lBQ2xDQyxJQUFJLEVBQUUsa0RBQWtEO0lBQ3hESSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxlQUFlLENBQUM7SUFDN0N4QixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0QwSCxNQUFNLEVBQUU7SUFDTmpJLEdBQUcsRUFBRSxRQUFRO0lBQ2JDLElBQUksRUFBRSx5QkFBeUI7SUFDL0JJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZTtFQUNsQixDQUFDO0VBQ0R5SCxvQkFBb0IsRUFBRTtJQUNwQmxJLEdBQUcsRUFBRSxzQ0FBc0M7SUFDM0NDLElBQUksRUFBRSw4T0FBOE87SUFDcFBJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZTtFQUNsQixDQUFDO0VBQ0QwSCxVQUFVLEVBQUU7SUFDVm5JLEdBQUcsRUFBRSwwQkFBMEI7SUFDL0JDLElBQUksRUFBRSx3VEFBd1Q7SUFDOVRJLE1BQU0sRUFBRVgsT0FBTyxDQUFDWSxZQUFZO0lBQzVCQyxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0Q2SCxtQkFBbUIsRUFBRTtJQUNuQnBJLEdBQUcsRUFBRSxvQ0FBb0M7SUFDekNDLElBQUksRUFBRSw4SUFBOEk7SUFDcEpJLE1BQU0sRUFBRVgsT0FBTyxDQUFDNEI7RUFDbEIsQ0FBQztFQUNEK0csT0FBTyxFQUFFO0lBQ1BySSxHQUFHLEVBQUUsU0FBUztJQUNkQyxJQUFJLEVBQUUsNEJBQTRCO0lBQ2xDSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2U7RUFDbEIsQ0FBQztFQUNENkgsZUFBZSxFQUFFO0lBQ2Z0SSxHQUFHLEVBQUUsZ0NBQWdDO0lBQ3JDQyxJQUFJLEVBQUUsc2lCQUFzaUI7SUFDNWlCSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEZ0ksZ0JBQWdCLEVBQUU7SUFDaEJ2SSxHQUFHLEVBQUUsaUNBQWlDO0lBQ3RDQyxJQUFJLEVBQUUsMjFCQUEyMUI7SUFDajJCSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzJHLHVCQUF1QjtJQUN2QzlGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRGlJLFVBQVUsRUFBRTtJQUNWeEksR0FBRyxFQUFFLDBCQUEwQjtJQUMvQkMsSUFBSSxFQUFFO0VBQ1I7QUFDRixDQUFDO0FBQ0RMLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDNEksZ0JBQWdCLEdBQUc7RUFDaENDLG9CQUFvQixFQUFFO0lBQ3BCMUksR0FBRyxFQUFFLGdEQUFnRDtJQUNyREMsSUFBSSxFQUFFLDZJQUE2STtJQUNuSk0sT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEb0ksdUJBQXVCLEVBQUU7SUFDdkIzSSxHQUFHLEVBQUUsbURBQW1EO0lBQ3hEQyxJQUFJLEVBQUUsc1BBQXNQO0lBQzVQSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEcUksZ0JBQWdCLEVBQUU7SUFDaEI1SSxHQUFHLEVBQUUsNENBQTRDO0lBQ2pEQyxJQUFJLEVBQUUsbVFBQW1RO0lBQ3pRSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEc0ksUUFBUSxFQUFFO0lBQ1I3SSxHQUFHLEVBQUUsbUNBQW1DO0lBQ3hDQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q2SSxZQUFZLEVBQUU7SUFDWjlJLEdBQUcsRUFBRSx1Q0FBdUM7SUFDNUNDLElBQUksRUFBRSx3aUJBQXdpQjtJQUM5aUJJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGNBQWM7RUFDN0MsQ0FBQztFQUNEZ0gsY0FBYyxFQUFFO0lBQ2QvSSxHQUFHLEVBQUUseUNBQXlDO0lBQzlDQyxJQUFJLEVBQUUsb2hCQUFvaEI7SUFDMWhCSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzRCO0VBQ2xCLENBQUM7RUFDRDBILFdBQVcsRUFBRTtJQUNYaEosR0FBRyxFQUFFLHNDQUFzQztJQUMzQ0MsSUFBSSxFQUFFLGlTQUFpUztJQUN2U0csUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNENkksaUJBQWlCLEVBQUU7SUFDakJqSixHQUFHLEVBQUUsNkNBQTZDO0lBQ2xEQyxJQUFJLEVBQUUsNElBQTRJO0lBQ2xKSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxtQkFBbUI7RUFDbEQsQ0FBQztFQUNEbUgsSUFBSSxFQUFFO0lBQ0psSixHQUFHLEVBQUUsOEJBQThCO0lBQ25DQyxJQUFJLEVBQUUsb1hBQW9YO0lBQzFYTSxPQUFPLEVBQUU7RUFDWDtBQUNGLENBQUM7QUFDRFgsTUFBTSxDQUFDQyxPQUFPLENBQUNzSix3QkFBd0IsR0FBRztFQUN4Q0MsVUFBVSxFQUFFO0lBQ1ZwSixHQUFHLEVBQUUsNkNBQTZDO0lBQ2xEQyxJQUFJLEVBQUUseUlBQXlJO0lBQy9JSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEOEksaUJBQWlCLEVBQUU7SUFDakJySixHQUFHLEVBQUUscURBQXFEO0lBQzFEQyxJQUFJLEVBQUUsb0dBQW9HO0lBQzFHSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztJQUNqRHhCLE9BQU8sRUFBRSxDQUFDO0VBQ1osQ0FBQztFQUNEK0ksWUFBWSxFQUFFO0lBQ1p0SixHQUFHLEVBQUUsK0NBQStDO0lBQ3BEQyxJQUFJLEVBQUUscUZBQXFGO0lBQzNGSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxjQUFjLENBQUM7SUFDNUN4QixPQUFPLEVBQUUsQ0FBQztFQUNaLENBQUM7RUFDRGdKLGFBQWEsRUFBRTtJQUNidkosR0FBRyxFQUFFLGdEQUFnRDtJQUNyREMsSUFBSSxFQUFFLGlHQUFpRztJQUN2R0ksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsZUFBZSxDQUFDO0lBQzdDeEIsT0FBTyxFQUFFLENBQUM7RUFDWixDQUFDO0VBQ0RpSixZQUFZLEVBQUU7SUFDWnhKLEdBQUcsRUFBRSwrQ0FBK0M7SUFDcERDLElBQUksRUFBRSw2RkFBNkY7SUFDbkdJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztJQUM1Q3hCLE9BQU8sRUFBRSxDQUFDO0VBQ1osQ0FBQztFQUNEa0osWUFBWSxFQUFFO0lBQ1p6SixHQUFHLEVBQUUsK0NBQStDO0lBQ3BEQyxJQUFJLEVBQUUsNEdBQTRHO0lBQ2xISSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxjQUFjLENBQUM7SUFDNUN4QixPQUFPLEVBQUUsQ0FBQztFQUNaLENBQUM7RUFDRG1KLFVBQVUsRUFBRTtJQUNWMUosR0FBRyxFQUFFLDZDQUE2QztJQUNsREMsSUFBSSxFQUFFLDBHQUEwRztJQUNoSEksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsWUFBWSxDQUFDO0lBQzFDeEIsT0FBTyxFQUFFLENBQUM7RUFDWixDQUFDO0VBQ0RvSixhQUFhLEVBQUU7SUFDYjNKLEdBQUcsRUFBRSxnREFBZ0Q7SUFDckRDLElBQUksRUFBRSxtSUFBbUk7SUFDeklJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztJQUM3Q3hCLE9BQU8sRUFBRSxDQUFDO0VBQ1osQ0FBQztFQUNEcUosYUFBYSxFQUFFO0lBQ2I1SixHQUFHLEVBQUUsZ0RBQWdEO0lBQ3JEQyxJQUFJLEVBQUUsZ0pBQWdKO0lBQ3RKSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxlQUFlLENBQUM7SUFDN0N4QixPQUFPLEVBQUUsQ0FBQztFQUNaO0FBQ0YsQ0FBQztBQUNEWCxNQUFNLENBQUNDLE9BQU8sQ0FBQ2dLLG1CQUFtQixHQUFHO0VBQ25DQywwQkFBMEIsRUFBRTtJQUMxQjlKLEdBQUcsRUFBRSx5REFBeUQ7SUFDOURDLElBQUksRUFBRSw0VEFBNFQ7SUFDbFVNLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHdKLHFDQUFxQyxFQUFFO0lBQ3JDL0osR0FBRyxFQUFFLHNFQUFzRTtJQUMzRUMsSUFBSSxFQUFFLHV0QkFBdXRCO0lBQzd0QkksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHlKLGlDQUFpQyxFQUFFO0lBQ2pDaEssR0FBRyxFQUFFLGlFQUFpRTtJQUN0RUMsSUFBSSxFQUFFLHNYQUFzWDtJQUM1WE0sT0FBTyxFQUFFO0VBQ1g7QUFDRixDQUFDO0FBQ0RYLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDb0ssZUFBZSxHQUFHO0VBQy9CQyxXQUFXLEVBQUU7SUFDWGxLLEdBQUcsRUFBRSxvQ0FBb0M7SUFDekNDLElBQUksRUFBRSw0SkFBNEo7SUFDbEtJLE1BQU0sRUFBRVgsT0FBTyxDQUFDNEI7RUFDbEIsQ0FBQztFQUNENkksV0FBVyxFQUFFO0lBQ1huSyxHQUFHLEVBQUUsb0NBQW9DO0lBQ3pDQyxJQUFJLEVBQUUsa0VBQWtFO0lBQ3hFSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNENkosY0FBYyxFQUFFO0lBQ2RwSyxHQUFHLEVBQUUsd0NBQXdDO0lBQzdDQyxJQUFJLEVBQUUsdUpBQXVKO0lBQzdKSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1g7QUFDRixDQUFDO0FBQ0RYLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDd0ssa0JBQWtCLEdBQUc7RUFDbENDLHdCQUF3QixFQUFFO0lBQ3hCdEssR0FBRyxFQUFFLGdEQUFnRDtJQUNyREMsSUFBSSxFQUFFLDRPQUE0TztJQUNsUEksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRGdLLG9CQUFvQixFQUFFO0lBQ3BCdkssR0FBRyxFQUFFLDJDQUEyQztJQUNoREMsSUFBSSxFQUFFLGdQQUFnUDtJQUN0UEksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYO0FBQ0YsQ0FBQztBQUNEWCxNQUFNLENBQUNDLE9BQU8sQ0FBQzJLLFlBQVksR0FBRztFQUM1QkMsWUFBWSxFQUFFO0lBQ1p6SyxHQUFHLEVBQUUsa0NBQWtDO0lBQ3ZDQyxJQUFJLEVBQUUsb0JBQW9CO0lBQzFCSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzRCLFdBQVc7SUFDM0JOLElBQUksRUFBRSxjQUFjO0lBQ3BCVCxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RtSyxVQUFVLEVBQUU7SUFDVjFLLEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckNDLElBQUksRUFBRSwrQkFBK0I7SUFDckNJLE1BQU0sRUFBRVgsT0FBTyxDQUFDWSxZQUFZO0lBQzVCVSxJQUFJLEVBQUUsd0JBQXdCO0lBQzlCVCxPQUFPLEVBQUUsQ0FBQztFQUNaLENBQUM7RUFDRG9LLGtCQUFrQixFQUFFO0lBQ2xCM0ssR0FBRyxFQUFFLHdDQUF3QztJQUM3Q0MsSUFBSSxFQUFFLG9GQUFvRjtJQUMxRkksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHFLLHNCQUFzQixFQUFFO0lBQ3RCNUssR0FBRyxFQUFFLDhDQUE4QztJQUNuREMsSUFBSSxFQUFFLGtLQUFrSztJQUN4S0ksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHNLLGFBQWEsRUFBRTtJQUNiN0ssR0FBRyxFQUFFLG1DQUFtQztJQUN4Q0MsSUFBSSxFQUFFLHVNQUF1TTtJQUM3TUksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHVLLDBCQUEwQixFQUFFO0lBQzFCOUssR0FBRyxFQUFFLGlEQUFpRDtJQUN0REMsSUFBSSxFQUFFLDZLQUE2SztJQUNuTE0sT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEd0ssb0JBQW9CLEVBQUU7SUFDcEIvSyxHQUFHLEVBQUUsMkNBQTJDO0lBQ2hEQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0QrSyxhQUFhLEVBQUU7SUFDYmhMLEdBQUcsRUFBRSxtQ0FBbUM7SUFDeENDLElBQUksRUFBRSxvREFBb0Q7SUFDMURNLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRDBLLFNBQVMsRUFBRTtJQUNUakwsR0FBRyxFQUFFLCtCQUErQjtJQUNwQ0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEaUwsWUFBWSxFQUFFO0lBQ1psTCxHQUFHLEVBQUUsaUNBQWlDO0lBQ3RDQyxJQUFJLEVBQUUsb0hBQW9IO0lBQzFISSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ1ksWUFBWTtJQUM1QkMsT0FBTyxFQUFFLENBQUM7RUFDWjtBQUNGLENBQUM7QUFDRFgsTUFBTSxDQUFDQyxPQUFPLENBQUNzTCxVQUFVLEdBQUc7RUFDMUJDLE9BQU8sRUFBRTtJQUNQcEwsR0FBRyxFQUFFLGtDQUFrQztJQUN2Q0MsSUFBSSxFQUFFLDhDQUE4QztJQUNwREcsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNEaUwsTUFBTSxFQUFFO0lBQ05yTCxHQUFHLEVBQUUsaUNBQWlDO0lBQ3RDQyxJQUFJLEVBQUUseUNBQXlDO0lBQy9DRyxRQUFRLEVBQUU7RUFDWixDQUFDO0VBQ0RrTCxJQUFJLEVBQUU7SUFDSnRMLEdBQUcsRUFBRSwrQkFBK0I7SUFDcENDLElBQUksRUFBRSxpQkFBaUI7SUFDdkJHLFFBQVEsRUFBRTtFQUNaO0FBQ0YsQ0FBQztBQUNEUixNQUFNLENBQUNDLE9BQU8sQ0FBQzBMLHNCQUFzQixHQUFHO0VBQ3RDQyw0QkFBNEIsRUFBRTtJQUM1QnhMLEdBQUcsRUFBRSwrREFBK0Q7SUFDcEVDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRHdMLDRCQUE0QixFQUFFO0lBQzVCekwsR0FBRyxFQUFFLCtEQUErRDtJQUNwRUMsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEeUwseUJBQXlCLEVBQUU7SUFDekIxTCxHQUFHLEVBQUUsNERBQTREO0lBQ2pFQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0QwTCw0QkFBNEIsRUFBRTtJQUM1QjNMLEdBQUcsRUFBRSwrREFBK0Q7SUFDcEVDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDJMLHdCQUF3QixFQUFFO0lBQ3hCNUwsR0FBRyxFQUFFLDBEQUEwRDtJQUMvREMsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNENEwsYUFBYSxFQUFFO0lBQ2I3TCxHQUFHLEVBQUUsOENBQThDO0lBQ25EQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q2TCx3QkFBd0IsRUFBRTtJQUN4QjlMLEdBQUcsRUFBRSwyREFBMkQ7SUFDaEVDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDhMLG9CQUFvQixFQUFFO0lBQ3BCL0wsR0FBRyxFQUFFLHNEQUFzRDtJQUMzREMsSUFBSSxFQUFFO0VBQ1I7QUFDRixDQUFDO0FBQ0RMLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDbU0sa0JBQWtCLEdBQUc7RUFDbENDLGNBQWMsRUFBRTtJQUNkak0sR0FBRyxFQUFFLDJDQUEyQztJQUNoREMsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEaU0sdUJBQXVCLEVBQUU7SUFDdkJsTSxHQUFHLEVBQUUscURBQXFEO0lBQzFEQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0RrTSxXQUFXLEVBQUU7SUFDWG5NLEdBQUcsRUFBRSx3Q0FBd0M7SUFDN0NDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRG1NLHdCQUF3QixFQUFFO0lBQ3hCcE0sR0FBRyxFQUFFLHVEQUF1RDtJQUM1REMsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEb00sdUJBQXVCLEVBQUU7SUFDdkJyTSxHQUFHLEVBQUUscURBQXFEO0lBQzFEQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0RxTSxZQUFZLEVBQUU7SUFDWnRNLEdBQUcsRUFBRSwwQ0FBMEM7SUFDL0NDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRHNNLGVBQWUsRUFBRTtJQUNmdk0sR0FBRyxFQUFFLDZDQUE2QztJQUNsREMsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEdU0sYUFBYSxFQUFFO0lBQ2J4TSxHQUFHLEVBQUUsMkNBQTJDO0lBQ2hEQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q4TCxvQkFBb0IsRUFBRTtJQUNwQi9MLEdBQUcsRUFBRSxrREFBa0Q7SUFDdkRDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRHdNLGtCQUFrQixFQUFFO0lBQ2xCek0sR0FBRyxFQUFFLGdEQUFnRDtJQUNyREMsSUFBSSxFQUFFO0VBQ1I7QUFDRixDQUFDO0FBQ0RMLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDNk0sZ0JBQWdCLEdBQUc7RUFDaENDLFVBQVUsRUFBRTtJQUNWM00sR0FBRyxFQUFFLG1DQUFtQztJQUN4Q0MsSUFBSSxFQUFFLHFDQUFxQztJQUMzQ0ksTUFBTSxFQUFFWCxPQUFPLENBQUM0QjtFQUNsQixDQUFDO0VBQ0RzTCxhQUFhLEVBQUU7SUFDYjVNLEdBQUcsRUFBRSx3Q0FBd0M7SUFDN0NDLElBQUksRUFBRSwwQkFBMEI7SUFDaENJLE1BQU0sRUFBRVgsT0FBTyxDQUFDK0I7RUFDbEIsQ0FBQztFQUNEb0wsWUFBWSxFQUFFO0lBQ1o3TSxHQUFHLEVBQUUsc0NBQXNDO0lBQzNDQyxJQUFJLEVBQUUsdUNBQXVDO0lBQzdDSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ1k7RUFDbEIsQ0FBQztFQUNEd00sUUFBUSxFQUFFO0lBQ1I5TSxHQUFHLEVBQUUsa0NBQWtDO0lBQ3ZDQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q4TSxZQUFZLEVBQUU7SUFDWi9NLEdBQUcsRUFBRSxzQ0FBc0M7SUFDM0NDLElBQUksRUFBRSwwMkJBQTAyQjtJQUNoM0JJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztJQUM1Q3hCLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHlNLFVBQVUsRUFBRTtJQUNWaE4sR0FBRyxFQUFFLG9DQUFvQztJQUN6Q0MsSUFBSSxFQUFFLHdDQUF3QztJQUM5Q0ksTUFBTSxFQUFFWCxPQUFPLENBQUMrQjtFQUNsQjtBQUNGLENBQUM7QUFDRDdCLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDb04sc0JBQXNCLEdBQUc7RUFDdEN2TCxLQUFLLEVBQUU7SUFDTDFCLEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckNDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRGlOLFlBQVksRUFBRTtJQUNabE4sR0FBRyxFQUFFLHVDQUF1QztJQUM1Q0MsSUFBSSxFQUFFLHdXQUF3VztJQUM5V0ksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsY0FBYztFQUM3QyxDQUFDO0VBQ0RvTCxRQUFRLEVBQUU7SUFDUm5OLEdBQUcsRUFBRSxtQ0FBbUM7SUFDeENDLElBQUksRUFBRSx3TkFBd047SUFDOU5JLE1BQU0sRUFBRVgsT0FBTyxDQUFDWTtFQUNsQixDQUFDO0VBQ0R1RSxRQUFRLEVBQUU7SUFDUjdFLEdBQUcsRUFBRSxtQ0FBbUM7SUFDeENDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRGtGLFNBQVMsRUFBRTtJQUNUbkYsR0FBRyxFQUFFLG9DQUFvQztJQUN6Q0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEaUcsSUFBSSxFQUFFO0lBQ0psRyxHQUFHLEVBQUUsOEJBQThCO0lBQ25DQyxJQUFJLEVBQUUseURBQXlEO0lBQy9ESSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDcEN4QixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RxTSxhQUFhLEVBQUU7SUFDYjVNLEdBQUcsRUFBRSx5Q0FBeUM7SUFDOUNDLElBQUksRUFBRSwwQkFBMEI7SUFDaENJLE1BQU0sRUFBRVgsT0FBTyxDQUFDK0I7RUFDbEIsQ0FBQztFQUNEb0wsWUFBWSxFQUFFO0lBQ1o3TSxHQUFHLEVBQUUsdUNBQXVDO0lBQzVDQyxJQUFJLEVBQUUsdUNBQXVDO0lBQzdDSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ1k7RUFDbEIsQ0FBQztFQUNEd00sUUFBUSxFQUFFO0lBQ1I5TSxHQUFHLEVBQUUsbUNBQW1DO0lBQ3hDQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q4SCxTQUFTLEVBQUU7SUFDVC9ILEdBQUcsRUFBRSxvQ0FBb0M7SUFDekNDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRG1OLGdCQUFnQixFQUFFO0lBQ2hCcE4sR0FBRyxFQUFFLDJDQUEyQztJQUNoREMsSUFBSSxFQUFFLDhQQUE4UDtJQUNwUUksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsa0JBQWtCO0VBQ2pELENBQUM7RUFDRGlMLFVBQVUsRUFBRTtJQUNWaE4sR0FBRyxFQUFFLHFDQUFxQztJQUMxQ0MsSUFBSSxFQUFFLHdDQUF3QztJQUM5Q0ksTUFBTSxFQUFFWCxPQUFPLENBQUMrQjtFQUNsQjtBQUNGLENBQUM7QUFDRDdCLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDd04sa0JBQWtCLEdBQUc7RUFDbENDLEtBQUssRUFBRTtJQUNMdE4sR0FBRyxFQUFFLDZDQUE2QztJQUNsREMsSUFBSSxFQUFFLGtYQUFrWDtJQUN4WEksTUFBTSxFQUFFWCxPQUFPLENBQUM0QixXQUFXO0lBQzNCZixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RnTixHQUFHLEVBQUU7SUFDSHZOLEdBQUcsRUFBRSwyQ0FBMkM7SUFDaERDLElBQUksRUFBRSx3R0FBd0c7SUFDOUdJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNuQ3hCLE9BQU8sRUFBRTtFQUNYO0FBQ0YsQ0FBQztBQUNEWCxNQUFNLENBQUNDLE9BQU8sQ0FBQzJOLHFCQUFxQixHQUFHO0VBQ3JDQyxRQUFRLEVBQUU7SUFDUnpOLEdBQUcsRUFBRSx1Q0FBdUM7SUFDNUNDLElBQUksRUFBRSxtTEFBbUw7SUFDekxJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLFVBQVU7RUFDekMsQ0FBQztFQUNEMkwsU0FBUyxFQUFFO0lBQ1QxTixHQUFHLEVBQUUsd0NBQXdDO0lBQzdDQyxJQUFJLEVBQUUsa1RBQWtUO0lBQ3hUSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxXQUFXO0VBQzFDLENBQUM7RUFDRDRMLHFCQUFxQixFQUFFO0lBQ3JCM04sR0FBRyxFQUFFLHVEQUF1RDtJQUM1REMsSUFBSSxFQUFFLDBLQUEwSztJQUNoTEksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYO0FBQ0YsQ0FBQztBQUNEWCxNQUFNLENBQUNDLE9BQU8sQ0FBQytOLHFCQUFxQixHQUFHO0VBQ3JDQyxrQkFBa0IsRUFBRTtJQUNsQjdOLEdBQUcsRUFBRSxvREFBb0Q7SUFDekRDLElBQUksRUFBRSw0RkFBNEY7SUFDbEdJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0R1TixjQUFjLEVBQUU7SUFDZDlOLEdBQUcsRUFBRSwrQ0FBK0M7SUFDcERDLElBQUksRUFBRSx1SUFBdUk7SUFDN0lJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGdCQUFnQjtFQUMvQyxDQUFDO0VBQ0RnTSxrQkFBa0IsRUFBRTtJQUNsQi9OLEdBQUcsRUFBRSxtREFBbUQ7SUFDeERDLElBQUksRUFBRSwwT0FBME87SUFDaFBJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLG9CQUFvQjtFQUNuRCxDQUFDO0VBQ0RpTSxrQ0FBa0MsRUFBRTtJQUNsQ2hPLEdBQUcsRUFBRSxzRUFBc0U7SUFDM0VDLElBQUksRUFBRSx1UEFBdVA7SUFDN1BJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0QwTixzQkFBc0IsRUFBRTtJQUN0QmpPLEdBQUcsRUFBRSx5REFBeUQ7SUFDOURDLElBQUksRUFBRSw4WEFBOFg7SUFDcFlJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0QyTiwwQkFBMEIsRUFBRTtJQUMxQmxPLEdBQUcsRUFBRSw0REFBNEQ7SUFDakVDLElBQUksRUFBRSxpZEFBaWQ7SUFDdmRJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLDRCQUE0QjtFQUMzRCxDQUFDO0VBQ0RvTSxlQUFlLEVBQUU7SUFDZm5PLEdBQUcsRUFBRSwrQ0FBK0M7SUFDcERDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRG1PLGlCQUFpQixFQUFFO0lBQ2pCcE8sR0FBRyxFQUFFLGlEQUFpRDtJQUN0REMsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEb08sZ0JBQWdCLEVBQUU7SUFDaEJyTyxHQUFHLEVBQUUsZ0RBQWdEO0lBQ3JEQyxJQUFJLEVBQUU7RUFDUjtBQUNGLENBQUM7QUFDREwsTUFBTSxDQUFDQyxPQUFPLENBQUN5TyxpQkFBaUIsR0FBRztFQUNqQ0MscUJBQXFCLEVBQUU7SUFDckJ2TyxHQUFHLEVBQUUsbURBQW1EO0lBQ3hEQyxJQUFJLEVBQUUscWlCQUFxaUI7SUFDM2lCSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzRCO0VBQ2xCLENBQUM7RUFDRGtOLHNCQUFzQixFQUFFO0lBQ3RCeE8sR0FBRyxFQUFFLG9EQUFvRDtJQUN6REMsSUFBSSxFQUFFLCtEQUErRDtJQUNyRUksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRGtPLDBCQUEwQixFQUFFO0lBQzFCek8sR0FBRyxFQUFFLHdEQUF3RDtJQUM3REMsSUFBSSxFQUFFLG1FQUFtRTtJQUN6RUksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRG1PLGVBQWUsRUFBRTtJQUNmMU8sR0FBRyxFQUFFLDRDQUE0QztJQUNqREMsSUFBSSxFQUFFLHlGQUF5RjtJQUMvRkksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRG9PLGNBQWMsRUFBRTtJQUNkM08sR0FBRyxFQUFFLDBDQUEwQztJQUMvQ0MsSUFBSSxFQUFFLDBxQ0FBMHFDO0lBQ2hyQ0ksTUFBTSxFQUFFWCxPQUFPLENBQUM0QixXQUFXO0lBQzNCZixPQUFPLEVBQUUsQ0FDUCx1UUFBdVE7RUFFM1E7QUFDRixDQUFDO0FBQ0RYLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDK08sbUJBQW1CLEdBQUc7RUFDbkNKLHNCQUFzQixFQUFFO0lBQ3RCeE8sR0FBRyxFQUFFLHNEQUFzRDtJQUMzREMsSUFBSSxFQUFFLGlFQUFpRTtJQUN2RUksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRGtPLDBCQUEwQixFQUFFO0lBQzFCek8sR0FBRyxFQUFFLDBEQUEwRDtJQUMvREMsSUFBSSxFQUFFLHFFQUFxRTtJQUMzRUksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRG1PLGVBQWUsRUFBRTtJQUNmMU8sR0FBRyxFQUFFLDhDQUE4QztJQUNuREMsSUFBSSxFQUFFLDJGQUEyRjtJQUNqR0ksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYO0FBQ0YsQ0FBQztBQUNEO0FBQ0FYLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDZ1AsUUFBUSxHQUFHO0VBQ3hCQyxLQUFLLEVBQUU7SUFDTDlPLEdBQUcsRUFBRSw4QkFBOEI7SUFDbkNDLElBQUksRUFBRSxhQUFhO0lBQ25CRyxRQUFRLEVBQUU7RUFDWixDQUFDO0VBQ0QyTyxLQUFLLEVBQUU7SUFDTC9PLEdBQUcsRUFBRSw4QkFBOEI7SUFDbkNDLElBQUksRUFBRSxnQ0FBZ0M7SUFDdENHLFFBQVEsRUFBRTtFQUNaLENBQUM7RUFDRDRPLElBQUksRUFBRTtJQUNKaFAsR0FBRyxFQUFFLDZCQUE2QjtJQUNsQ0MsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QkcsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNENk8sS0FBSyxFQUFFO0lBQ0xqUCxHQUFHLEVBQUUsOEJBQThCO0lBQ25DQyxJQUFJLEVBQUUsK0JBQStCO0lBQ3JDRyxRQUFRLEVBQUU7RUFDWixDQUFDO0VBQ0RpSSxPQUFPLEVBQUU7SUFDUHJJLEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckNDLElBQUksRUFBRSxlQUFlO0lBQ3JCRyxRQUFRLEVBQUU7RUFDWixDQUFDO0VBQ0Q4TyxJQUFJLEVBQUU7SUFDSmxQLEdBQUcsRUFBRSw2QkFBNkI7SUFDbENDLElBQUksRUFBRSxlQUFlO0lBQ3JCRyxRQUFRLEVBQUU7RUFDWjtBQUNGLENBQUM7QUFDRFIsTUFBTSxDQUFDQyxPQUFPLENBQUNzUCxjQUFjLEdBQUc7RUFDOUJDLElBQUksRUFBRTtJQUNKcFAsR0FBRyxFQUFFLDhDQUE4QztJQUNuREMsSUFBSSxFQUFFLHdKQUF3SjtJQUM5SkksTUFBTSxFQUFFWCxPQUFPLENBQUM0QjtFQUNsQixDQUFDO0VBQ0R1RCxRQUFRLEVBQUU7SUFDUjdFLEdBQUcsRUFBRSxtREFBbUQ7SUFDeERDLElBQUksRUFBRSxnSEFBZ0g7SUFDdEhNLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRDhPLElBQUksRUFBRTtJQUNKclAsR0FBRyxFQUFFLDhDQUE4QztJQUNuREMsSUFBSSxFQUFFLDhMQUE4TDtJQUNwTUcsUUFBUSxFQUFFO0VBQ1o7QUFDRixDQUFDO0FBQ0RSLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDeVAsZUFBZSxHQUFHO0VBQy9CQyxrQkFBa0IsRUFBRTtJQUNsQnZQLEdBQUcsRUFBRSw0Q0FBNEM7SUFDakRDLElBQUksRUFBRSx3T0FBd087SUFDOU9JLE1BQU0sRUFBRVgsT0FBTyxDQUFDZSxhQUFhO0lBQzdCRixPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RvQixPQUFPLEVBQUU7SUFDUDNCLEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckNDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRHVQLGFBQWEsRUFBRTtJQUNieFAsR0FBRyxFQUFFLHNDQUFzQztJQUMzQ0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEd1AsdUJBQXVCLEVBQUU7SUFDdkJ6UCxHQUFHLEVBQUUsaURBQWlEO0lBQ3REQyxJQUFJLEVBQUUsK0lBQStJO0lBQ3JKSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ1k7RUFDbEIsQ0FBQztFQUNEb1AsVUFBVSxFQUFFO0lBQ1YxUCxHQUFHLEVBQUUsbUNBQW1DO0lBQ3hDQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0QwUCxnQkFBZ0IsRUFBRTtJQUNoQjNQLEdBQUcsRUFBRSwwQ0FBMEM7SUFDL0NDLElBQUksRUFBRSxvTUFBb007SUFDMU1JLE1BQU0sRUFBRVgsT0FBTyxDQUFDZTtFQUNsQixDQUFDO0VBQ0RtUCw4QkFBOEIsRUFBRTtJQUM5QjVQLEdBQUcsRUFBRSwwREFBMEQ7SUFDL0RDLElBQUksRUFBRSxvUUFBb1E7SUFDMVFJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGdDQUFnQztFQUMvRCxDQUFDO0VBQ0Q4TixTQUFTLEVBQUU7SUFDVDdQLEdBQUcsRUFBRSxrQ0FBa0M7SUFDdkNDLElBQUksRUFBRSxvTEFBb0w7SUFDMUxJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztJQUN6Q3hCLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRHVQLGNBQWMsRUFBRTtJQUNkOVAsR0FBRyxFQUFFLHVDQUF1QztJQUM1Q0MsSUFBSSxFQUFFLDJlQUEyZTtJQUNqZkksTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJVLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRCtPLFdBQVcsRUFBRTtJQUNYL1AsR0FBRyxFQUFFLG1DQUFtQztJQUN4Q0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEK1AsZ0JBQWdCLEVBQUU7SUFDaEJoUSxHQUFHLEVBQUUsMENBQTBDO0lBQy9DQyxJQUFJLEVBQUUsb05BQW9OO0lBQzFOSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxrQkFBa0I7RUFDakQsQ0FBQztFQUNEa08sNkJBQTZCLEVBQUU7SUFDN0JqUSxHQUFHLEVBQUUseURBQXlEO0lBQzlEQyxJQUFJLEVBQUUseWtCQUF5a0I7SUFDL2tCSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEMlAsbUJBQW1CLEVBQUU7SUFDbkJsUSxHQUFHLEVBQUUsOENBQThDO0lBQ25EQyxJQUFJLEVBQUUsOFlBQThZO0lBQ3BaSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNENFAsb0JBQW9CLEVBQUU7SUFDcEJuUSxHQUFHLEVBQUUsK0NBQStDO0lBQ3BEQyxJQUFJLEVBQUUsd1lBQXdZO0lBQzlZSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNENlAsbUNBQW1DLEVBQUU7SUFDbkNwUSxHQUFHLEVBQUUsZ0VBQWdFO0lBQ3JFQyxJQUFJLEVBQUUseVpBQXlaO0lBQy9aSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEOFAsK0JBQStCLEVBQUU7SUFDL0JyUSxHQUFHLEVBQUUsNERBQTREO0lBQ2pFQyxJQUFJLEVBQUUsdVpBQXVaO0lBQzdaSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEK1AsaUNBQWlDLEVBQUU7SUFDakN0USxHQUFHLEVBQUUsOERBQThEO0lBQ25FQyxJQUFJLEVBQUUscVpBQXFaO0lBQzNaSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEZ1EsdUJBQXVCLEVBQUU7SUFDdkJ2USxHQUFHLEVBQUUsa0RBQWtEO0lBQ3ZEQyxJQUFJLEVBQUUsMllBQTJZO0lBQ2paSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEaVEsc0NBQXNDLEVBQUU7SUFDdEN4USxHQUFHLEVBQUUsbUVBQW1FO0lBQ3hFQyxJQUFJLEVBQUUsNFpBQTRaO0lBQ2xhSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEa1EsZ0JBQWdCLEVBQUU7SUFDaEJ6USxHQUFHLEVBQUUseUNBQXlDO0lBQzlDQyxJQUFJLEVBQUUseUdBQXlHO0lBQy9HSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2U7RUFDbEIsQ0FBQztFQUNEaVEsMkJBQTJCLEVBQUU7SUFDM0IxUSxHQUFHLEVBQUUsc0RBQXNEO0lBQzNEQyxJQUFJLEVBQUUsd05BQXdOO0lBQzlOSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2U7RUFDbEIsQ0FBQztFQUNEa1EsaUJBQWlCLEVBQUU7SUFDakIzUSxHQUFHLEVBQUUsMkNBQTJDO0lBQ2hEQyxJQUFJLEVBQUUsa2NBQWtjO0lBQ3hjSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2UsYUFBYTtJQUM3QkYsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEcVEsbUJBQW1CLEVBQUU7SUFDbkI1USxHQUFHLEVBQUUsOENBQThDO0lBQ25EQyxJQUFJLEVBQUUsbUZBQW1GO0lBQ3pGSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2U7RUFDbEIsQ0FBQztFQUNEb1Esb0JBQW9CLEVBQUU7SUFDcEI3USxHQUFHLEVBQUUsOENBQThDO0lBQ25EQyxJQUFJLEVBQUUsb0lBQW9JO0lBQzFJSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxzQkFBc0I7RUFDckQsQ0FBQztFQUNEK08sWUFBWSxFQUFFO0lBQ1o5USxHQUFHLEVBQUUscUNBQXFDO0lBQzFDQyxJQUFJLEVBQUUsc0hBQXNIO0lBQzVISSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ2U7RUFDbEIsQ0FBQztFQUNEc1EsZ0JBQWdCLEVBQUU7SUFDaEIvUSxHQUFHLEVBQUUsMENBQTBDO0lBQy9DQyxJQUFJLEVBQUUsZ0pBQWdKO0lBQ3RKSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxrQkFBa0I7RUFDakQsQ0FBQztFQUNEaVAsZUFBZSxFQUFFO0lBQ2ZoUixHQUFHLEVBQUUseUNBQXlDO0lBQzlDQyxJQUFJLEVBQUUsdUZBQXVGO0lBQzdGSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQzRCLFdBQVc7SUFDM0JOLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRGlRLGFBQWEsRUFBRTtJQUNialIsR0FBRyxFQUFFLHNDQUFzQztJQUMzQ0MsSUFBSSxFQUFFLDZKQUE2SjtJQUNuS0ksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsZUFBZTtFQUM5QyxDQUFDO0VBQ0RtUCxhQUFhLEVBQUU7SUFDYmxSLEdBQUcsRUFBRSx3Q0FBd0M7SUFDN0NDLElBQUksRUFBRSxtS0FBbUs7SUFDektJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGVBQWU7RUFDOUMsQ0FBQztFQUNEb1AsV0FBVyxFQUFFO0lBQ1huUixHQUFHLEVBQUUscUNBQXFDO0lBQzFDQyxJQUFJLEVBQUUsb0lBQW9JO0lBQzFJSSxNQUFNLEVBQUVYLE9BQU8sQ0FBQ3FDLFlBQVksQ0FBQyxhQUFhO0VBQzVDLENBQUM7RUFDRHFQLG1CQUFtQixFQUFFO0lBQ25CcFIsR0FBRyxFQUFFLDZDQUE2QztJQUNsREMsSUFBSSxFQUFFLDhGQUE4RjtJQUNwR0ksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMscUJBQXFCO0VBQ3BELENBQUM7RUFDRHNQLFNBQVMsRUFBRTtJQUNUclIsR0FBRyxFQUFFLG1DQUFtQztJQUN4Q0MsSUFBSSxFQUFFLGlIQUFpSDtJQUN2SEksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsV0FBVztFQUMxQyxDQUFDO0VBQ0R1UCxXQUFXLEVBQUU7SUFDWHRSLEdBQUcsRUFBRSxxQ0FBcUM7SUFDMUNDLElBQUksRUFBRSxvSUFBb0k7SUFDMUlJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGFBQWE7RUFDNUMsQ0FBQztFQUNEd1AsU0FBUyxFQUFFO0lBQ1R2UixHQUFHLEVBQUUsa0NBQWtDO0lBQ3ZDQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0R1UixhQUFhLEVBQUU7SUFDYnhSLEdBQUcsRUFBRSxzQ0FBc0M7SUFDM0NDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRHdSLFNBQVMsRUFBRTtJQUNUelIsR0FBRyxFQUFFLGtDQUFrQztJQUN2Q0MsSUFBSSxFQUFFLCtGQUErRjtJQUNyR0ksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsV0FBVztFQUMxQyxDQUFDO0VBQ0QyUCxhQUFhLEVBQUU7SUFDYjFSLEdBQUcsRUFBRSxzQ0FBc0M7SUFDM0NDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDBSLGdCQUFnQixFQUFFO0lBQ2hCM1IsR0FBRyxFQUFFLDBDQUEwQztJQUMvQ0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEMlIsY0FBYyxFQUFFO0lBQ2Q1UixHQUFHLEVBQUUsdUNBQXVDO0lBQzVDQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q0UixrQkFBa0IsRUFBRTtJQUNsQjdSLEdBQUcsRUFBRSw0Q0FBNEM7SUFDakRDLElBQUksRUFBRSxzSEFBc0g7SUFDNUhJLE1BQU0sRUFBRVgsT0FBTyxDQUFDNEI7RUFDbEIsQ0FBQztFQUNEd1EsVUFBVSxFQUFFO0lBQ1Y5UixHQUFHLEVBQUUsbUNBQW1DO0lBQ3hDQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q4UixVQUFVLEVBQUU7SUFDVi9SLEdBQUcsRUFBRSxtQ0FBbUM7SUFDeENDLElBQUksRUFBRSxzREFBc0Q7SUFDNURJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZTtFQUNsQixDQUFDO0VBQ0R1UixXQUFXLEVBQUU7SUFDWGhTLEdBQUcsRUFBRSxvQ0FBb0M7SUFDekNDLElBQUksRUFBRSxrRUFBa0U7SUFDeEVJLE1BQU0sRUFBRVgsT0FBTyxDQUFDZTtFQUNsQixDQUFDO0VBQ0R3UixjQUFjLEVBQUU7SUFDZGpTLEdBQUcsRUFBRSx3Q0FBd0M7SUFDN0NDLElBQUksRUFBRSxnbUJBQWdtQjtJQUN0bUJJLE1BQU0sRUFBRVgsT0FBTyxDQUFDcUMsWUFBWSxDQUFDLGdCQUFnQjtFQUMvQyxDQUFDO0VBQ0RtUSxvQkFBb0IsRUFBRTtJQUNwQmxTLEdBQUcsRUFBRSw4Q0FBOEM7SUFDbkRDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRGtTLHdCQUF3QixFQUFFO0lBQ3hCblMsR0FBRyxFQUFFLG1EQUFtRDtJQUN4REMsSUFBSSxFQUFFLCtIQUErSDtJQUNySUksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsMEJBQTBCO0VBQ3pELENBQUM7RUFDRHFRLGVBQWUsRUFBRTtJQUNmcFMsR0FBRyxFQUFFLHlDQUF5QztJQUM5Q0MsSUFBSSxFQUFFLDZLQUE2SztJQUNuTEksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsaUJBQWlCO0VBQ2hELENBQUM7RUFDRHNRLFdBQVcsRUFBRTtJQUNYclMsR0FBRyxFQUFFLHFDQUFxQztJQUMxQ0MsSUFBSSxFQUFFLDJKQUEySjtJQUNqS0ksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsYUFBYTtFQUM1QyxDQUFDO0VBQ0R1USxjQUFjLEVBQUU7SUFDZHRTLEdBQUcsRUFBRSx3Q0FBd0M7SUFDN0NDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRHNTLEdBQUcsRUFBRTtJQUNIdlMsR0FBRyxFQUFFLDJCQUEyQjtJQUNoQ0MsSUFBSSxFQUFFLHVHQUF1RztJQUM3R0ksTUFBTSxFQUFFWCxPQUFPLENBQUNlO0VBQ2xCLENBQUM7RUFDRCtSLEdBQUcsRUFBRTtJQUNIeFMsR0FBRyxFQUFFLDJCQUEyQjtJQUNoQ0MsSUFBSSxFQUFFLDRFQUE0RTtJQUNsRkksTUFBTSxFQUFFWCxPQUFPLENBQUNlO0VBQ2xCLENBQUM7RUFDRGdTLDJCQUEyQixFQUFFO0lBQzNCelMsR0FBRyxFQUFFLHNEQUFzRDtJQUMzREMsSUFBSSxFQUFFLDZHQUE2RztJQUNuSEksTUFBTSxFQUFFWCxPQUFPLENBQUNlO0VBQ2xCLENBQUM7RUFDRGlTLHdCQUF3QixFQUFFO0lBQ3hCMVMsR0FBRyxFQUFFLG1EQUFtRDtJQUN4REMsSUFBSSxFQUFFLHNIQUFzSDtJQUM1SEksTUFBTSxFQUFFWCxPQUFPLENBQUNlO0VBQ2xCLENBQUM7RUFDRGtTLFNBQVMsRUFBRTtJQUNUM1MsR0FBRyxFQUFFLGtDQUFrQztJQUN2Q0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEMlMscUJBQXFCLEVBQUU7SUFDckI1UyxHQUFHLEVBQUUsZ0RBQWdEO0lBQ3JEQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0Q0Uyw2QkFBNkIsRUFBRTtJQUM3QjdTLEdBQUcsRUFBRSx5REFBeUQ7SUFDOURDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRDZTLFdBQVcsRUFBRTtJQUNYOVMsR0FBRyxFQUFFLG9DQUFvQztJQUN6Q0MsSUFBSSxFQUFFLHVFQUF1RTtJQUM3RUksTUFBTSxFQUFFWCxPQUFPLENBQUNlO0VBQ2xCLENBQUM7RUFDRHNTLGtCQUFrQixFQUFFO0lBQ2xCL1MsR0FBRyxFQUFFLDZDQUE2QztJQUNsREMsSUFBSSxFQUFFLG9JQUFvSTtJQUMxSUksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsb0JBQW9CO0VBQ25ELENBQUM7RUFDRGlSLG9CQUFvQixFQUFFO0lBQ3BCaFQsR0FBRyxFQUFFLDhDQUE4QztJQUNuREMsSUFBSSxFQUFFLHlHQUF5RztJQUMvR0ksTUFBTSxFQUFFWCxPQUFPLENBQUNxQyxZQUFZLENBQUMsc0JBQXNCO0VBQ3JEO0FBQ0YsQ0FBQztBQUNEbkMsTUFBTSxDQUFDQyxPQUFPLENBQUNvVCw2QkFBNkIsR0FBRztFQUM3QzVELElBQUksRUFBRTtJQUNKclAsR0FBRyxFQUFFLDRDQUE0QztJQUNqREMsSUFBSSxFQUFFLHlFQUF5RTtJQUMvRUcsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNEOFMsT0FBTyxFQUFFO0lBQ1BsVCxHQUFHLEVBQUUsK0NBQStDO0lBQ3BEQyxJQUFJLEVBQUUsa0RBQWtEO0lBQ3hERyxRQUFRLEVBQUU7RUFDWjtBQUNGLENBQUM7QUFDRFIsTUFBTSxDQUFDQyxPQUFPLENBQUNzVCxXQUFXLEdBQUc7RUFDM0JDLE9BQU8sRUFBRTtJQUNQblQsSUFBSSxFQUFFLDhEQUE4RDtJQUNwRUksTUFBTSxFQUFFWCxPQUFPLENBQUNlLGFBQWE7SUFDN0JGLE9BQU8sRUFBRTtFQUNYO0FBQ0YsQ0FBQztBQUNEWCxNQUFNLENBQUNDLE9BQU8sQ0FBQ3dULFNBQVMsR0FBRztFQUN6QkMsa0JBQWtCLEVBQUU7SUFDbEJ0VCxHQUFHLEVBQUUsOENBQThDO0lBQ25EQyxJQUFJLEVBQUUsOEhBQThIO0lBQ3BJTSxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RnVCxvQkFBb0IsRUFBRTtJQUNwQnZULEdBQUcsRUFBRSxnREFBZ0Q7SUFDckRDLElBQUksRUFBRSwrSEFBK0g7SUFDcklNLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRGlULG1CQUFtQixFQUFFO0lBQ25CeFQsR0FBRyxFQUFFLCtDQUErQztJQUNwREMsSUFBSSxFQUFFLGlKQUFpSjtJQUN2Sk0sT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEa1QsWUFBWSxFQUFFO0lBQ1p6VCxHQUFHLEVBQUUsdUNBQXVDO0lBQzVDQyxJQUFJLEVBQUUsMEtBQTBLO0lBQ2hMTSxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RtVCxrQkFBa0IsRUFBRTtJQUNsQjFULEdBQUcsRUFBRSw4Q0FBOEM7SUFDbkRDLElBQUksRUFBRSx1TEFBdUw7SUFDN0xNLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDRG9ULG9CQUFvQixFQUFFO0lBQ3BCM1QsR0FBRyxFQUFFLGdEQUFnRDtJQUNyREMsSUFBSSxFQUFFLHdMQUF3TDtJQUM5TE0sT0FBTyxFQUFFO0VBQ1g7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
1609
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZXJzIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJTY2hlbWFPcHRpb25zIiwiYWZ0ZXJNaWdyYXRpb24iLCJlbnYiLCJoZWxwIiwiYmVmb3JlTWlncmF0aW9uIiwiZGVmaW5pdGlvbnMiLCJyZXF1aXJlZCIsImFjdGlvbiIsIm9iamVjdFBhcnNlciIsImRlZmF1bHQiLCJkZWxldGVFeHRyYUZpZWxkcyIsImJvb2xlYW5QYXJzZXIiLCJrZWVwVW5rbm93bkluZGV4ZXMiLCJsb2NrU2NoZW1hcyIsInJlY3JlYXRlTW9kaWZpZWRGaWVsZHMiLCJzdHJpY3QiLCJQYXJzZVNlcnZlck9wdGlvbnMiLCJhY2NvdW50TG9ja291dCIsInR5cGUiLCJhbGxvd0FnZ3JlZ2F0aW9uRm9yUmVhZE9ubHlNYXN0ZXJLZXkiLCJhbGxvd0NsaWVudENsYXNzQ3JlYXRpb24iLCJhbGxvd0N1c3RvbU9iamVjdElkIiwiYWxsb3dFeHBpcmVkQXV0aERhdGFUb2tlbiIsImFsbG93SGVhZGVycyIsImFycmF5UGFyc2VyIiwiYWxsb3dPcmlnaW4iLCJhbmFseXRpY3NBZGFwdGVyIiwibW9kdWxlT3JPYmplY3RQYXJzZXIiLCJhcHBJZCIsImFwcE5hbWUiLCJhdXRoIiwiY2FjaGVBZGFwdGVyIiwiY2FjaGVNYXhTaXplIiwibnVtYmVyUGFyc2VyIiwiY2FjaGVUVEwiLCJjbGllbnRLZXkiLCJjbG91ZCIsImNsdXN0ZXIiLCJudW1iZXJPckJvb2xQYXJzZXIiLCJjb2xsZWN0aW9uUHJlZml4IiwiY29udmVydEVtYWlsVG9Mb3dlcmNhc2UiLCJjb252ZXJ0VXNlcm5hbWVUb0xvd2VyY2FzZSIsImN1c3RvbVBhZ2VzIiwiZGF0YWJhc2VBZGFwdGVyIiwiZGF0YWJhc2VPcHRpb25zIiwiZGF0YWJhc2VVUkkiLCJkZWZhdWx0TGltaXQiLCJkaXJlY3RBY2Nlc3MiLCJkb3ROZXRLZXkiLCJlbWFpbEFkYXB0ZXIiLCJlbWFpbFZlcmlmeVN1Y2Nlc3NPbkludmFsaWRFbWFpbCIsImVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQiLCJlbWFpbFZlcmlmeVRva2VuVmFsaWRpdHlEdXJhdGlvbiIsImVuYWJsZUFub255bW91c1VzZXJzIiwiZW5hYmxlQ29sbGF0aW9uQ2FzZUNvbXBhcmlzb24iLCJlbmFibGVFeHByZXNzRXJyb3JIYW5kbGVyIiwiZW5hYmxlSW5zZWN1cmVBdXRoQWRhcHRlcnMiLCJlbmFibGVMaXZlUXVlcnlDbGFzc0xldmVsUGVybWlzc2lvblJvbGVzIiwiZW5hYmxlUHJvZHVjdFB1cmNoYXNlTGVnYWN5QXBpIiwiZW5hYmxlU2FuaXRpemVkRXJyb3JSZXNwb25zZSIsImVuY3J5cHRpb25LZXkiLCJlbmZvcmNlUHJpdmF0ZVVzZXJzIiwiZXhwaXJlSW5hY3RpdmVTZXNzaW9ucyIsImV4dGVuZFNlc3Npb25PblVzZSIsImZpbGVEb3dubG9hZCIsImZpbGVLZXkiLCJmaWxlc0FkYXB0ZXIiLCJmaWxlVXBsb2FkIiwiZ3JhcGhRTFBhdGgiLCJncmFwaFFMUHVibGljSW50cm9zcGVjdGlvbiIsImdyYXBoUUxTY2hlbWEiLCJob3N0IiwiaWRlbXBvdGVuY3lPcHRpb25zIiwiaW5zdGFsbGF0aW9uIiwiamF2YXNjcmlwdEtleSIsImpzb25Mb2dzIiwibGl2ZVF1ZXJ5IiwibGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucyIsImxvZ2dlckFkYXB0ZXIiLCJsb2dMZXZlbCIsImxvZ0xldmVscyIsImxvZ3NGb2xkZXIiLCJsb2dTdHJpbmdUcnVuY2F0ZUxlbmd0aCIsIm1haW50ZW5hbmNlS2V5IiwibWFpbnRlbmFuY2VLZXlJcHMiLCJtYXN0ZXJLZXkiLCJtYXN0ZXJLZXlJcHMiLCJtYXN0ZXJLZXlUdGwiLCJtYXhMaW1pdCIsIm1heExvZ0ZpbGVzIiwibnVtYmVyT3JTdHJpbmdQYXJzZXIiLCJtYXhVcGxvYWRTaXplIiwibWlkZGxld2FyZSIsIm1vdW50R3JhcGhRTCIsIm1vdW50UGF0aCIsIm1vdW50UGxheWdyb3VuZCIsIm9iamVjdElkU2l6ZSIsInBhZ2VzIiwicGFzc3dvcmRQb2xpY3kiLCJwbGF5Z3JvdW5kUGF0aCIsInBvcnQiLCJwcmVzZXJ2ZUZpbGVOYW1lIiwicHJldmVudExvZ2luV2l0aFVudmVyaWZpZWRFbWFpbCIsImJvb2xlYW5PckZ1bmN0aW9uUGFyc2VyIiwicHJldmVudFNpZ251cFdpdGhVbnZlcmlmaWVkRW1haWwiLCJwcm90ZWN0ZWRGaWVsZHMiLCJfVXNlciIsInByb3RlY3RlZEZpZWxkc093bmVyRXhlbXB0IiwicHJvdGVjdGVkRmllbGRzU2F2ZVJlc3BvbnNlRXhlbXB0IiwicHJvdGVjdGVkRmllbGRzVHJpZ2dlckV4ZW1wdCIsInB1YmxpY1NlcnZlclVSTCIsInB1c2giLCJxdWVyeSIsInJhdGVMaW1pdCIsInJlYWRPbmx5TWFzdGVyS2V5IiwicmVhZE9ubHlNYXN0ZXJLZXlJcHMiLCJyZXF1ZXN0Q29tcGxleGl0eSIsInJlcXVlc3RDb250ZXh0TWlkZGxld2FyZSIsInJlcXVlc3RLZXl3b3JkRGVueWxpc3QiLCJrZXkiLCJ2YWx1ZSIsInJlc3RBUElLZXkiLCJyZXZva2VTZXNzaW9uT25QYXNzd29yZFJlc2V0Iiwicm91dGVBbGxvd0xpc3QiLCJzY2hlZHVsZWRQdXNoIiwic2NoZW1hIiwic2VjdXJpdHkiLCJzZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uIiwic2VydmVyQ2xvc2VDb21wbGV0ZSIsInNlcnZlclVSTCIsInNlc3Npb25MZW5ndGgiLCJzaWxlbnQiLCJzdGFydExpdmVRdWVyeVNlcnZlciIsInRydXN0UHJveHkiLCJ1c2VyU2Vuc2l0aXZlRmllbGRzIiwidmVyYm9zZSIsInZlcmlmeVNlcnZlclVybCIsInZlcmlmeVVzZXJFbWFpbHMiLCJ3ZWJob29rS2V5IiwiUmF0ZUxpbWl0T3B0aW9ucyIsImVycm9yUmVzcG9uc2VNZXNzYWdlIiwiaW5jbHVkZUludGVybmFsUmVxdWVzdHMiLCJpbmNsdWRlTWFzdGVyS2V5IiwicmVkaXNVcmwiLCJyZXF1ZXN0Q291bnQiLCJyZXF1ZXN0TWV0aG9kcyIsInJlcXVlc3RQYXRoIiwicmVxdWVzdFRpbWVXaW5kb3ciLCJ6b25lIiwiUmVxdWVzdENvbXBsZXhpdHlPcHRpb25zIiwiYWxsb3dSZWdleCIsImJhdGNoUmVxdWVzdExpbWl0IiwiZ3JhcGhRTERlcHRoIiwiZ3JhcGhRTEZpZWxkcyIsImluY2x1ZGVDb3VudCIsImluY2x1ZGVEZXB0aCIsInF1ZXJ5RGVwdGgiLCJzdWJxdWVyeURlcHRoIiwic3VicXVlcnlMaW1pdCIsIkluc3RhbGxhdGlvbk9wdGlvbnMiLCJkdXBsaWNhdGVEZXZpY2VUb2tlbkFjdGlvbiIsImR1cGxpY2F0ZURldmljZVRva2VuQWN0aW9uRW5mb3JjZUF1dGgiLCJkdXBsaWNhdGVEZXZpY2VUb2tlbk1lcmdlUHJpb3JpdHkiLCJTZWN1cml0eU9wdGlvbnMiLCJjaGVja0dyb3VwcyIsImVuYWJsZUNoZWNrIiwiZW5hYmxlQ2hlY2tMb2ciLCJRdWVyeVNlcnZlck9wdGlvbnMiLCJhZ2dyZWdhdGlvblJhd0ZpZWxkTmFtZXMiLCJhZ2dyZWdhdGlvblJhd1ZhbHVlcyIsIlBhZ2VzT3B0aW9ucyIsImN1c3RvbVJvdXRlcyIsImN1c3RvbVVybHMiLCJlbmFibGVMb2NhbGl6YXRpb24iLCJlbmNvZGVQYWdlUGFyYW1IZWFkZXJzIiwiZm9yY2VSZWRpcmVjdCIsImxvY2FsaXphdGlvbkZhbGxiYWNrTG9jYWxlIiwibG9jYWxpemF0aW9uSnNvblBhdGgiLCJwYWdlc0VuZHBvaW50IiwicGFnZXNQYXRoIiwicGxhY2Vob2xkZXJzIiwiUGFnZXNSb3V0ZSIsImhhbmRsZXIiLCJtZXRob2QiLCJwYXRoIiwiUGFnZXNDdXN0b21VcmxzT3B0aW9ucyIsImVtYWlsVmVyaWZpY2F0aW9uTGlua0V4cGlyZWQiLCJlbWFpbFZlcmlmaWNhdGlvbkxpbmtJbnZhbGlkIiwiZW1haWxWZXJpZmljYXRpb25TZW5kRmFpbCIsImVtYWlsVmVyaWZpY2F0aW9uU2VuZFN1Y2Nlc3MiLCJlbWFpbFZlcmlmaWNhdGlvblN1Y2Nlc3MiLCJwYXNzd29yZFJlc2V0IiwicGFzc3dvcmRSZXNldExpbmtJbnZhbGlkIiwicGFzc3dvcmRSZXNldFN1Y2Nlc3MiLCJDdXN0b21QYWdlc09wdGlvbnMiLCJjaG9vc2VQYXNzd29yZCIsImV4cGlyZWRWZXJpZmljYXRpb25MaW5rIiwiaW52YWxpZExpbmsiLCJpbnZhbGlkUGFzc3dvcmRSZXNldExpbmsiLCJpbnZhbGlkVmVyaWZpY2F0aW9uTGluayIsImxpbmtTZW5kRmFpbCIsImxpbmtTZW5kU3VjY2VzcyIsInBhcnNlRnJhbWVVUkwiLCJ2ZXJpZnlFbWFpbFN1Y2Nlc3MiLCJMaXZlUXVlcnlPcHRpb25zIiwiY2xhc3NOYW1lcyIsInB1YlN1YkFkYXB0ZXIiLCJyZWRpc09wdGlvbnMiLCJyZWRpc1VSTCIsInJlZ2V4VGltZW91dCIsIndzc0FkYXB0ZXIiLCJMaXZlUXVlcnlTZXJ2ZXJPcHRpb25zIiwiY2FjaGVUaW1lb3V0Iiwia2V5UGFpcnMiLCJ3ZWJzb2NrZXRUaW1lb3V0IiwiSWRlbXBvdGVuY3lPcHRpb25zIiwicGF0aHMiLCJ0dGwiLCJBY2NvdW50TG9ja291dE9wdGlvbnMiLCJkdXJhdGlvbiIsInRocmVzaG9sZCIsInVubG9ja09uUGFzc3dvcmRSZXNldCIsIlBhc3N3b3JkUG9saWN5T3B0aW9ucyIsImRvTm90QWxsb3dVc2VybmFtZSIsIm1heFBhc3N3b3JkQWdlIiwibWF4UGFzc3dvcmRIaXN0b3J5IiwicmVzZXRQYXNzd29yZFN1Y2Nlc3NPbkludmFsaWRFbWFpbCIsInJlc2V0VG9rZW5SZXVzZUlmVmFsaWQiLCJyZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbiIsInZhbGlkYXRpb25FcnJvciIsInZhbGlkYXRvckNhbGxiYWNrIiwidmFsaWRhdG9yUGF0dGVybiIsIkZpbGVVcGxvYWRPcHRpb25zIiwiYWxsb3dlZEZpbGVVcmxEb21haW5zIiwiZW5hYmxlRm9yQW5vbnltb3VzVXNlciIsImVuYWJsZUZvckF1dGhlbnRpY2F0ZWRVc2VyIiwiZW5hYmxlRm9yUHVibGljIiwiZmlsZUV4dGVuc2lvbnMiLCJGaWxlRG93bmxvYWRPcHRpb25zIiwiTG9nTGV2ZWwiLCJkZWJ1ZyIsImVycm9yIiwiaW5mbyIsInNpbGx5Iiwid2FybiIsIkxvZ0NsaWVudEV2ZW50Iiwia2V5cyIsIm5hbWUiLCJEYXRhYmFzZU9wdGlvbnMiLCJhbGxvd1B1YmxpY0V4cGxhaW4iLCJhdXRoTWVjaGFuaXNtIiwiYXV0aE1lY2hhbmlzbVByb3BlcnRpZXMiLCJhdXRoU291cmNlIiwiYXV0b1NlbGVjdEZhbWlseSIsImF1dG9TZWxlY3RGYW1pbHlBdHRlbXB0VGltZW91dCIsImJhdGNoU2l6ZSIsImNsaWVudE1ldGFkYXRhIiwiY29tcHJlc3NvcnMiLCJjb25uZWN0VGltZW91dE1TIiwiY3JlYXRlSW5kZXhBdXRoRGF0YVVuaXF1ZW5lc3MiLCJjcmVhdGVJbmRleFJvbGVOYW1lIiwiY3JlYXRlSW5kZXhVc2VyRW1haWwiLCJjcmVhdGVJbmRleFVzZXJFbWFpbENhc2VJbnNlbnNpdGl2ZSIsImNyZWF0ZUluZGV4VXNlckVtYWlsVmVyaWZ5VG9rZW4iLCJjcmVhdGVJbmRleFVzZXJQYXNzd29yZFJlc2V0VG9rZW4iLCJjcmVhdGVJbmRleFVzZXJVc2VybmFtZSIsImNyZWF0ZUluZGV4VXNlclVzZXJuYW1lQ2FzZUluc2Vuc2l0aXZlIiwiZGlyZWN0Q29ubmVjdGlvbiIsImRpc2FibGVJbmRleEZpZWxkVmFsaWRhdGlvbiIsImVuYWJsZVNjaGVtYUhvb2tzIiwiZm9yY2VTZXJ2ZXJPYmplY3RJZCIsImhlYXJ0YmVhdEZyZXF1ZW5jeU1TIiwibG9hZEJhbGFuY2VkIiwibG9jYWxUaHJlc2hvbGRNUyIsImxvZ0NsaWVudEV2ZW50cyIsIm1heENvbm5lY3RpbmciLCJtYXhJZGxlVGltZU1TIiwibWF4UG9vbFNpemUiLCJtYXhTdGFsZW5lc3NTZWNvbmRzIiwibWF4VGltZU1TIiwibWluUG9vbFNpemUiLCJwcm94eUhvc3QiLCJwcm94eVBhc3N3b3JkIiwicHJveHlQb3J0IiwicHJveHlVc2VybmFtZSIsInJlYWRDb25jZXJuTGV2ZWwiLCJyZWFkUHJlZmVyZW5jZSIsInJlYWRQcmVmZXJlbmNlVGFncyIsInJlcGxpY2FTZXQiLCJyZXRyeVJlYWRzIiwicmV0cnlXcml0ZXMiLCJzY2hlbWFDYWNoZVR0bCIsInNlcnZlck1vbml0b3JpbmdNb2RlIiwic2VydmVyU2VsZWN0aW9uVGltZW91dE1TIiwic29ja2V0VGltZW91dE1TIiwic3J2TWF4SG9zdHMiLCJzcnZTZXJ2aWNlTmFtZSIsInNzbCIsInRscyIsInRsc0FsbG93SW52YWxpZENlcnRpZmljYXRlcyIsInRsc0FsbG93SW52YWxpZEhvc3RuYW1lcyIsInRsc0NBRmlsZSIsInRsc0NlcnRpZmljYXRlS2V5RmlsZSIsInRsc0NlcnRpZmljYXRlS2V5RmlsZVBhc3N3b3JkIiwidGxzSW5zZWN1cmUiLCJ3YWl0UXVldWVUaW1lb3V0TVMiLCJ6bGliQ29tcHJlc3Npb25MZXZlbCIsIkRhdGFiYXNlT3B0aW9uc0NsaWVudE1ldGFkYXRhIiwidmVyc2lvbiIsIkF1dGhBZGFwdGVyIiwiZW5hYmxlZCIsIkxvZ0xldmVscyIsImNsb3VkRnVuY3Rpb25FcnJvciIsImNsb3VkRnVuY3Rpb25TdWNjZXNzIiwic2lnbnVwVXNlcm5hbWVUYWtlbiIsInRyaWdnZXJBZnRlciIsInRyaWdnZXJCZWZvcmVFcnJvciIsInRyaWdnZXJCZWZvcmVTdWNjZXNzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL09wdGlvbnMvRGVmaW5pdGlvbnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbioqKiogR0VORVJBVEVEIENPREUgKioqKlxuVGhpcyBjb2RlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSByZXNvdXJjZXMvYnVpbGRDb25maWdEZWZpbml0aW9ucy5qc1xuRG8gbm90IGVkaXQgbWFudWFsbHksIGJ1dCB1cGRhdGUgT3B0aW9ucy9pbmRleC5qc1xuKi9cbnZhciBwYXJzZXJzID0gcmVxdWlyZSgnLi9wYXJzZXJzJyk7XG5tb2R1bGUuZXhwb3J0cy5TY2hlbWFPcHRpb25zID0ge1xuICBhZnRlck1pZ3JhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfQUZURVJfTUlHUkFUSU9OJyxcbiAgICBoZWxwOiAnRXhlY3V0ZSBhIGNhbGxiYWNrIGFmdGVyIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbnMuJyxcbiAgfSxcbiAgYmVmb3JlTWlncmF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9CRUZPUkVfTUlHUkFUSU9OJyxcbiAgICBoZWxwOiAnRXhlY3V0ZSBhIGNhbGxiYWNrIGJlZm9yZSBydW5uaW5nIHNjaGVtYSBtaWdyYXRpb25zLicsXG4gIH0sXG4gIGRlZmluaXRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9ERUZJTklUSU9OUycsXG4gICAgaGVscDogJ1Jlc3QgcmVwcmVzZW50YXRpb24gb24gUGFyc2UuU2NoZW1hIGh0dHBzOi8vZG9jcy5wYXJzZXBsYXRmb3JtLm9yZy9yZXN0L2d1aWRlLyNhZGRpbmctYS1zY2hlbWEnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDogW10sXG4gIH0sXG4gIGRlbGV0ZUV4dHJhRmllbGRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9ERUxFVEVfRVhUUkFfRklFTERTJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGRlbGV0ZSBhbnkgZmllbGRzIG5vdCBkZWZpbmVkIGluIGEgc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAga2VlcFVua25vd25JbmRleGVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9LRUVQX1VOS05PV05fSU5ERVhFUycsXG4gICAgaGVscDogXCIoT3B0aW9uYWwpIEtlZXAgaW5kZXhlcyB0aGF0IGFyZSBwcmVzZW50IGluIHRoZSBkYXRhYmFzZSBidXQgbm90IGRlZmluZWQgaW4gdGhlIHNjaGVtYS4gU2V0IHRoaXMgdG8gYHRydWVgIGlmIHlvdSBhcmUgYWRkaW5nIGluZGV4ZXMgbWFudWFsbHksIHNvIHRoYXQgdGhleSB3b24ndCBiZSByZW1vdmVkIHdoZW4gcnVubmluZyBzY2hlbWEgbWlncmF0aW9uLiBEZWZhdWx0IGlzIGBmYWxzZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGxvY2tTY2hlbWFzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9MT0NLX1NDSEVNQVMnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciB3aWxsIHJlamVjdCBhbnkgYXR0ZW1wdHMgdG8gbW9kaWZ5IHRoZSBzY2hlbWEgd2hpbGUgdGhlIHNlcnZlciBpcyBydW5uaW5nLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHJlY3JlYXRlTW9kaWZpZWRGaWVsZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRU1BX1JFQ1JFQVRFX01PRElGSUVEX0ZJRUxEUycsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgUGFyc2UgU2VydmVyIHNob3VsZCByZWNyZWF0ZSBhbnkgZmllbGRzIHRoYXQgYXJlIGRpZmZlcmVudCBiZXR3ZWVuIHRoZSBjdXJyZW50IGRhdGFiYXNlIHNjaGVtYSBhbmQgdGhlc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgc3RyaWN0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9TVFJJQ1QnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciBzaG91bGQgZXhpdCBpZiBzY2hlbWEgdXBkYXRlIGZhaWwuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYXJzZVNlcnZlck9wdGlvbnMgPSB7XG4gIGFjY291bnRMb2Nrb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVCcsXG4gICAgaGVscDogXCJUaGUgYWNjb3VudCBsb2Nrb3V0IHBvbGljeSBmb3IgZmFpbGVkIGxvZ2luIGF0dGVtcHRzLjxicj48YnI+Tm90ZTogU2V0dGluZyBhIHVzZXIncyBBQ0wgdG8gYW4gZW1wdHkgb2JqZWN0IGB7fWAgdmlhIG1hc3RlciBrZXkgaXMgYSBzZXBhcmF0ZSBtZWNoYW5pc20gdGhhdCBvbmx5IHByZXZlbnRzIG5ldyBsb2dpbnM7IGl0IGRvZXMgbm90IGludmFsaWRhdGUgZXhpc3Rpbmcgc2Vzc2lvbiB0b2tlbnMuIFRvIGltbWVkaWF0ZWx5IHJldm9rZSBhIHVzZXIncyBhY2Nlc3MsIGRlc3Ryb3kgdGhlaXIgc2Vzc2lvbnMgdmlhIG1hc3RlciBrZXkgaW4gYWRkaXRpb24gdG8gc2V0dGluZyB0aGUgQUNMLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0FjY291bnRMb2Nrb3V0T3B0aW9ucycsXG4gIH0sXG4gIGFsbG93QWdncmVnYXRpb25Gb3JSZWFkT25seU1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19BR0dSRUdBVElPTl9GT1JfUkVBRF9PTkxZX01BU1RFUl9LRVknLFxuICAgIGhlbHA6ICdXaGV0aGVyIHRoZSBgcmVhZE9ubHlNYXN0ZXJLZXlgIGlzIGFsbG93ZWQgdG8gcnVuIGFnZ3JlZ2F0aW9uIHBpcGVsaW5lcyB2aWEgdGhlIGFnZ3JlZ2F0ZSBlbmRwb2ludC4gQW4gYWdncmVnYXRpb24gcGlwZWxpbmUgY2FuIGNvbnRhaW4gd3JpdGUtY2FwYWJsZSBzdGFnZXMgKGZvciBleGFtcGxlIE1vbmdvREIgYCRvdXRgIGFuZCBgJG1lcmdlYCksIHNvIGFsbG93aW5nIGFnZ3JlZ2F0aW9uIGVmZmVjdGl2ZWx5IGdpdmVzIHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleSBhIHdheSB0byBwZXJmb3JtIHdyaXRlcywgY29udHJhcnkgdG8gaXRzIHJlYWQtb25seSBpbnRlbnQuIElmIGB0cnVlYCAoZGVmYXVsdCksIHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleSBjYW4gcnVuIGFnZ3JlZ2F0aW9uIHBpcGVsaW5lcy4gSWYgYGZhbHNlYCwgdGhlIHJlYWQtb25seSBtYXN0ZXIga2V5IGNhbm5vdCBydW4gYWdncmVnYXRpb24gcGlwZWxpbmVzIGF0IGFsbC4gTm90ZSB0aGF0IHRoZSBgcmVhZE9ubHlNYXN0ZXJLZXlgIGlzIGEgc2VjcmV0IGtleSBmb3IgaW50ZXJuYWwgc2VydmVyLXNpZGUgdXNlIG9ubHkgYW5kIG11c3QgbmV2ZXIgYmUgZGlzdHJpYnV0ZWQ7IHRoaXMgb3B0aW9uIGlzIGFuIGFkZGl0aW9uYWwgc2FmZWd1YXJkLCBub3QgYSBzdWJzdGl0dXRlIGZvciBrZWVwaW5nIHRoZSBrZXkgY29uZmlkZW50aWFsLiBEZWZhdWx0cyB0byBgdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBhbGxvd0NsaWVudENsYXNzQ3JlYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUxMT1dfQ0xJRU5UX0NMQVNTX0NSRUFUSU9OJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSBjbGllbnQgY2xhc3MgY3JlYXRpb24sIGRlZmF1bHRzIHRvIGZhbHNlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYWxsb3dDdXN0b21PYmplY3RJZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19DVVNUT01fT0JKRUNUX0lEJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSBjdXN0b20gb2JqZWN0SWQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBhbGxvd0V4cGlyZWRBdXRoRGF0YVRva2VuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0VYUElSRURfQVVUSF9EQVRBX1RPS0VOJyxcbiAgICBoZWxwOiAnRGVwcmVjYXRlZC4gVGhpcyBvcHRpb24gd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uIEF1dGggcHJvdmlkZXJzIGFyZSBhbHdheXMgdmFsaWRhdGVkIG9uIGxvZ2luLiBPbiB1cGRhdGUsIGlmIHRoaXMgaXMgc2V0IHRvIGB0cnVlYCwgYXV0aCBwcm92aWRlcnMgYXJlIG9ubHkgcmUtdmFsaWRhdGVkIHdoZW4gdGhlIGF1dGggZGF0YSBoYXMgY2hhbmdlZC4gSWYgdGhpcyBpcyBzZXQgdG8gYGZhbHNlYCwgYXV0aCBwcm92aWRlcnMgYXJlIHJlLXZhbGlkYXRlZCBvbiBldmVyeSB1cGRhdGUuIERlZmF1bHRzIHRvIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYWxsb3dIZWFkZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0hFQURFUlMnLFxuICAgIGhlbHA6ICdBZGQgaGVhZGVycyB0byBBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIGFsbG93T3JpZ2luOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX09SSUdJTicsXG4gICAgaGVscDogJ1NldHMgb3JpZ2lucyBmb3IgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLiBUaGlzIGNhbiBiZSBhIHN0cmluZyBmb3IgYSBzaW5nbGUgb3JpZ2luIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MgZm9yIG11bHRpcGxlIG9yaWdpbnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIGFuYWx5dGljc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQU5BTFlUSUNTX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGFuYWx5dGljcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBhcHBJZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BUFBMSUNBVElPTl9JRCcsXG4gICAgaGVscDogJ1lvdXIgUGFyc2UgQXBwbGljYXRpb24gSUQnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBhcHBOYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FQUF9OQU1FJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgYXBwIG5hbWUnLFxuICB9LFxuICBhdXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FVVEhfUFJPVklERVJTJyxcbiAgICBoZWxwOiBcIkNvbmZpZ3VyYXRpb24gZm9yIHlvdXIgYXV0aGVudGljYXRpb24gcHJvdmlkZXJzLCBhcyBzdHJpbmdpZmllZCBKU09OLiBTZWUgaHR0cDovL2RvY3MucGFyc2VwbGF0Zm9ybS5vcmcvcGFyc2Utc2VydmVyL2d1aWRlLyNvYXV0aC1hbmQtM3JkLXBhcnR5LWF1dGhlbnRpY2F0aW9uPGJyPjxicj5Qcm92aWRlciBuYW1lcyBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgYW5kIGNvbnRhaW4gb25seSBsZXR0ZXJzLCBkaWdpdHMsIGFuZCB1bmRlcnNjb3JlcyAoYC9eW0EtWmEtel1bQS1aYS16MC05X10qJC9gKS4gVGhpcyBpcyBiZWNhdXNlIGVhY2ggcHJvdmlkZXIgbmFtZSBpcyB1c2VkIHRvIGNvbnN0cnVjdCBhIGRhdGFiYXNlIGZpZWxkIChgX2F1dGhfZGF0YV88cHJvdmlkZXI+YCksIHdoaWNoIG11c3QgY29tcGx5IHdpdGggUGFyc2UgU2VydmVyJ3MgZmllbGQgbmFtaW5nIHJ1bGVzLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIGNhY2hlQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DQUNIRV9BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBjYWNoZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBjYWNoZU1heFNpemU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfTUFYX1NJWkUnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBtYXhpbXVtIHNpemUgZm9yIHRoZSBpbiBtZW1vcnkgY2FjaGUsIGRlZmF1bHRzIHRvIDEwMDAwJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjYWNoZU1heFNpemUnKSxcbiAgICBkZWZhdWx0OiAxMDAwMCxcbiAgfSxcbiAgY2FjaGVUVEw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfVFRMJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgVFRMIGZvciB0aGUgaW4gbWVtb3J5IGNhY2hlIChpbiBtcyksIGRlZmF1bHRzIHRvIDUwMDAgKDUgc2Vjb25kcyknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2NhY2hlVFRMJyksXG4gICAgZGVmYXVsdDogNTAwMCxcbiAgfSxcbiAgY2xpZW50S2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMSUVOVF9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIGlPUywgTWFjT1MsIHR2T1MgY2xpZW50cycsXG4gIH0sXG4gIGNsb3VkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMT1VEJyxcbiAgICBoZWxwOiAnRnVsbCBwYXRoIHRvIHlvdXIgY2xvdWQgY29kZSBtYWluLmpzJyxcbiAgfSxcbiAgY2x1c3Rlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DTFVTVEVSJyxcbiAgICBoZWxwOiAnUnVuIHdpdGggY2x1c3Rlciwgb3B0aW9uYWxseSBzZXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMgZGVmYXVsdCB0byBvcy5jcHVzKCkubGVuZ3RoJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyT3JCb29sUGFyc2VyKCdjbHVzdGVyJyksXG4gIH0sXG4gIGNvbGxlY3Rpb25QcmVmaXg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ09MTEVDVElPTl9QUkVGSVgnLFxuICAgIGhlbHA6ICdBIGNvbGxlY3Rpb24gcHJlZml4IGZvciB0aGUgY2xhc3NlcycsXG4gICAgZGVmYXVsdDogJycsXG4gIH0sXG4gIGNvbnZlcnRFbWFpbFRvTG93ZXJjYXNlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NPTlZFUlRfRU1BSUxfVE9fTE9XRVJDQVNFJyxcbiAgICBoZWxwOiAnT3B0aW9uYWwuIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBgZW1haWxgIHByb3BlcnR5IG9mIGEgdXNlciBpcyBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBsb3dlcmNhc2UgYmVmb3JlIGJlaW5nIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuIENvbnNlcXVlbnRseSwgcXVlcmllcyBtdXN0IG1hdGNoIHRoZSBjYXNlIGFzIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIHdoaWNoIHdvdWxkIGJlIGxvd2VyY2FzZSBpbiB0aGlzIHNjZW5hcmlvLiBJZiBgZmFsc2VgLCB0aGUgYGVtYWlsYCBwcm9wZXJ0eSBpcyBzdG9yZWQgYXMgc2V0LCB3aXRob3V0IGFueSBjYXNlIG1vZGlmaWNhdGlvbnMuIERlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBjb252ZXJ0VXNlcm5hbWVUb0xvd2VyY2FzZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DT05WRVJUX1VTRVJOQU1FX1RPX0xPV0VSQ0FTRScsXG4gICAgaGVscDogJ09wdGlvbmFsLiBJZiBzZXQgdG8gYHRydWVgLCB0aGUgYHVzZXJuYW1lYCBwcm9wZXJ0eSBvZiBhIHVzZXIgaXMgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlIGJlZm9yZSBiZWluZyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLiBDb25zZXF1ZW50bHksIHF1ZXJpZXMgbXVzdCBtYXRjaCB0aGUgY2FzZSBhcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCB3aGljaCB3b3VsZCBiZSBsb3dlcmNhc2UgaW4gdGhpcyBzY2VuYXJpby4gSWYgYGZhbHNlYCwgdGhlIGB1c2VybmFtZWAgcHJvcGVydHkgaXMgc3RvcmVkIGFzIHNldCwgd2l0aG91dCBhbnkgY2FzZSBtb2RpZmljYXRpb25zLiBEZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgY3VzdG9tUGFnZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTJyxcbiAgICBoZWxwOiAnY3VzdG9tIHBhZ2VzIGZvciBwYXNzd29yZCB2YWxpZGF0aW9uIGFuZCByZXNldCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnQ3VzdG9tUGFnZXNPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgZGF0YWJhc2VBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGRhdGFiYXNlOyBhbnkgb3B0aW9ucyB0aGF0IGFyZSBub3QgZXhwbGljaXRseSBkZXNjcmliZWQgaGVyZSBhcmUgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBkYXRhYmFzZSBjbGllbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG4gIGRhdGFiYXNlT3B0aW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9PUFRJT05TJyxcbiAgICBoZWxwOiAnT3B0aW9ucyB0byBwYXNzIHRvIHRoZSBkYXRhYmFzZSBjbGllbnQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0RhdGFiYXNlT3B0aW9ucycsXG4gIH0sXG4gIGRhdGFiYXNlVVJJOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1VSSScsXG4gICAgaGVscDogJ1RoZSBmdWxsIFVSSSB0byB5b3VyIGRhdGFiYXNlLiBTdXBwb3J0ZWQgZGF0YWJhc2VzIGFyZSBtb25nb2RiIG9yIHBvc3RncmVzLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVmYXVsdDogJ21vbmdvZGI6Ly9sb2NhbGhvc3Q6MjcwMTcvcGFyc2UnLFxuICB9LFxuICBkZWZhdWx0TGltaXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREVGQVVMVF9MSU1JVCcsXG4gICAgaGVscDogJ0RlZmF1bHQgdmFsdWUgZm9yIGxpbWl0IG9wdGlvbiBvbiBxdWVyaWVzLCBkZWZhdWx0cyB0byBgMTAwYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2RlZmF1bHRMaW1pdCcpLFxuICAgIGRlZmF1bHQ6IDEwMCxcbiAgfSxcbiAgZGlyZWN0QWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RJUkVDVF9BQ0NFU1MnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIGlmIFBhcnNlIHJlcXVlc3RzIHdpdGhpbiB0aGUgc2FtZSBOb2RlLmpzIGVudmlyb25tZW50IGFzIFBhcnNlIFNlcnZlciBzaG91bGQgYmUgcm91dGVkIHRvIFBhcnNlIFNlcnZlciBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSB0aGUgSFRUUCBpbnRlcmZhY2UuIERlZmF1bHQgaXMgYGZhbHNlYC48YnI+PGJyPklmIHNldCB0byBgZmFsc2VgIHRoZW4gUGFyc2UgcmVxdWVzdHMgd2l0aGluIHRoZSBzYW1lIE5vZGUuanMgZW52aXJvbm1lbnQgYXMgUGFyc2UgU2VydmVyIGFyZSBleGVjdXRlZCBhcyBIVFRQIHJlcXVlc3RzIHNlbnQgdG8gUGFyc2UgU2VydmVyIHZpYSB0aGUgYHNlcnZlclVSTGAuIEZvciBleGFtcGxlLCBhIGBQYXJzZS5RdWVyeWAgaW4gQ2xvdWQgQ29kZSBpcyBjYWxsaW5nIFBhcnNlIFNlcnZlciB2aWEgYSBIVFRQIHJlcXVlc3QuIFRoZSBzZXJ2ZXIgaXMgZXNzZW50aWFsbHkgbWFraW5nIGEgSFRUUCByZXF1ZXN0IHRvIGl0c2VsZiwgdW5uZWNlc3NhcmlseSB1c2luZyBuZXR3b3JrIHJlc291cmNlcyBzdWNoIGFzIG5ldHdvcmsgcG9ydHMuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBJbiBlbnZpcm9ubWVudHMgd2hlcmUgbXVsdGlwbGUgUGFyc2UgU2VydmVyIGluc3RhbmNlcyBydW4gYmVoaW5kIGEgbG9hZCBiYWxhbmNlciBhbmQgUGFyc2UgcmVxdWVzdHMgd2l0aGluIHRoZSBjdXJyZW50IE5vZGUuanMgZW52aXJvbm1lbnQgc2hvdWxkIGJlIHJvdXRlZCB2aWEgdGhlIGxvYWQgYmFsYW5jZXIgYW5kIGRpc3RyaWJ1dGVkIGFzIEhUVFAgcmVxdWVzdHMgYW1vbmcgYWxsIGluc3RhbmNlcyB2aWEgdGhlIGBzZXJ2ZXJVUkxgLCB0aGlzIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGRvdE5ldEtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9ET1RfTkVUX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgVW5pdHkgYW5kIC5OZXQgU0RLJyxcbiAgfSxcbiAgZW1haWxBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VNQUlMX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgZW1haWwgc2VuZGluZycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBlbWFpbFZlcmlmeVN1Y2Nlc3NPbkludmFsaWRFbWFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9WRVJJRllfU1VDQ0VTU19PTl9JTlZBTElEX0VNQUlMJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCBpZiBhIHJlcXVlc3QgdG8gdmVyaWZ5IHRoZSBlbWFpbCBzaG91bGQgcmV0dXJuIGEgc3VjY2VzcyByZXNwb25zZSBldmVuIGlmIHRoZSBwcm92aWRlZCBlbWFpbCBhZGRyZXNzIGRvZXMgbm90IGJlbG9uZyB0byBhIHZlcmlmaWFibGUgYWNjb3VudCwgZm9yIGV4YW1wbGUgYmVjYXVzZSBpdCBpcyB1bmtub3duIG9yIGFscmVhZHkgdmVyaWZpZWQsIG9yIGBmYWxzZWAgaWYgdGhlIHJlcXVlc3Qgc2hvdWxkIHJldHVybiBhbiBlcnJvciByZXNwb25zZSBpbiB0aG9zZSBjYXNlcy48YnI+PGJyPkRlZmF1bHQgaXMgYHRydWVgLjxicj5SZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW1haWxWZXJpZnlUb2tlblJldXNlSWZWYWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9WRVJJRllfVE9LRU5fUkVVU0VfSUZfVkFMSUQnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIGlmIGEgZW1haWwgdmVyaWZpY2F0aW9uIHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9uIGB2ZXJpZnlVc2VyRW1haWxzOiB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbWFpbFZlcmlmeVRva2VuVmFsaWRpdHlEdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9WRVJJRllfVE9LRU5fVkFMSURJVFlfRFVSQVRJT04nLFxuICAgIGhlbHA6ICdTZXQgdGhlIHZhbGlkaXR5IGR1cmF0aW9uIG9mIHRoZSBlbWFpbCB2ZXJpZmljYXRpb24gdG9rZW4gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgdG9rZW4gZXhwaXJlcy4gVGhlIHRva2VuIGlzIHVzZWQgaW4gdGhlIGxpbmsgdGhhdCBpcyBzZXQgaW4gdGhlIGVtYWlsLiBBZnRlciB0aGUgdG9rZW4gZXhwaXJlcywgdGhlIGxpbmsgYmVjb21lcyBpbnZhbGlkIGFuZCBhIG5ldyBsaW5rIGhhcyB0byBiZSBzZW50LiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGB1bmRlZmluZWRgLCB0aGVuIHRoZSB0b2tlbiBuZXZlciBleHBpcmVzLjxicj48YnI+Rm9yIGV4YW1wbGUsIHRvIGV4cGlyZSB0aGUgdG9rZW4gYWZ0ZXIgMiBob3Vycywgc2V0IGEgdmFsdWUgb2YgNzIwMCBzZWNvbmRzICg9IDYwIHNlY29uZHMgKiA2MCBtaW51dGVzICogMiBob3VycykuPGJyPjxicj5EZWZhdWx0IGlzIGB1bmRlZmluZWRgLjxicj5SZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24nKSxcbiAgfSxcbiAgZW5hYmxlQW5vbnltb3VzVXNlcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0FOT05fVVNFUlMnLFxuICAgIGhlbHA6ICdFbmFibGUgKG9yIGRpc2FibGUpIGFub255bW91cyB1c2VycywgZGVmYXVsdHMgdG8gdHJ1ZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5hYmxlQ29sbGF0aW9uQ2FzZUNvbXBhcmlzb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0NPTExBVElPTl9DQVNFX0NPTVBBUklTT04nLFxuICAgIGhlbHA6ICdPcHRpb25hbC4gSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGNvbGxhdGlvbiBydWxlIG9mIGNhc2UgY29tcGFyaXNvbiBmb3IgcXVlcmllcyBhbmQgaW5kZXhlcyBpcyBlbmFibGVkLiBFbmFibGUgdGhpcyBvcHRpb24gdG8gcnVuIFBhcnNlIFNlcnZlciB3aXRoIE1vbmdvREIgQXRsYXMgU2VydmVybGVzcyBvciBBV1MgQW1hem9uIERvY3VtZW50REIuIElmIGBmYWxzZWAsIHRoZSBjb2xsYXRpb24gcnVsZSBvZiBjYXNlIGNvbXBhcmlzb24gaXMgZGlzYWJsZWQuIERlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVFeHByZXNzRXJyb3JIYW5kbGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9FWFBSRVNTX0VSUk9SX0hBTkRMRVInLFxuICAgIGhlbHA6ICdFbmFibGVzIHRoZSBkZWZhdWx0IGV4cHJlc3MgZXJyb3IgaGFuZGxlciBmb3IgYWxsIGVycm9ycycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZUluc2VjdXJlQXV0aEFkYXB0ZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9JTlNFQ1VSRV9BVVRIX0FEQVBURVJTJyxcbiAgICBoZWxwOiAnT3B0aW9uYWwuIEVuYWJsZXMgaW5zZWN1cmUgYXV0aGVudGljYXRpb24gYWRhcHRlcnMuIEluc2VjdXJlIGF1dGggYWRhcHRlcnMgYXJlIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBEZWZhdWx0cyB0byBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZUxpdmVRdWVyeUNsYXNzTGV2ZWxQZXJtaXNzaW9uUm9sZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0xJVkVfUVVFUllfQ0xBU1NfTEVWRUxfUEVSTUlTU0lPTl9ST0xFUycsXG4gICAgaGVscDogXCJXaGV0aGVyIExpdmVRdWVyeSBpbmNsdWRlcyB0aGUgc3Vic2NyaWJlcidzIHJvbGVzIHdoZW4gZXZhbHVhdGluZyBDbGFzcyBMZXZlbCBQZXJtaXNzaW9ucyAoQ0xQKS4gSWYgYHRydWVgLCBhIENMUCB0aGF0IGdyYW50cyBgZmluZGAgb3IgYGdldGAgdG8gYHJvbGU6PFJvbGVOYW1lPmAgYXBwbGllcyB0byBMaXZlUXVlcnkgc3Vic2NyaXB0aW9ucyBmb3IgbWVtYmVycyBvZiB0aGF0IHJvbGUsIHRoZSBzYW1lIHdheSBpdCBhbHJlYWR5IGFwcGxpZXMgdG8gdGhlIGVxdWl2YWxlbnQgUkVTVCBxdWVyeS4gSWYgYGZhbHNlYCAoZGVmYXVsdCksIHJvbGVzIGFyZSBub3QgcmVzb2x2ZWQgZm9yIENMUCBhbmQgc3VjaCBhIHN1YnNjcmlwdGlvbiBpcyByZWplY3RlZCBldmVuIGZvciBsZWdpdGltYXRlIHJvbGUgbWVtYmVycywgc28gTGl2ZVF1ZXJ5IGlzIG1vcmUgcmVzdHJpY3RpdmUgdGhhbiBSRVNUIGZvciB0aGUgc2FtZSBDTFAuIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCBvYmplY3QgQUNMcywgd2hvc2UgYHJvbGU6YCBlbnRyaWVzIExpdmVRdWVyeSBhbHJlYWR5IGhvbm9ycyByZWdhcmRsZXNzIG9mIHRoaXMgc2V0dGluZy4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5hYmxlUHJvZHVjdFB1cmNoYXNlTGVnYWN5QXBpOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9QUk9EVUNUX1BVUkNIQVNFX0xFR0FDWV9BUEknLFxuICAgIGhlbHA6ICdEZXByZWNhdGVkLiBFbmFibGVzIHRoZSBsZWdhY3kgcHJvZHVjdCBwdXJjaGFzZSBBUEkgaW5jbHVkaW5nIHRoZSBgX1Byb2R1Y3RgIGNsYXNzIGFuZCB0aGUgYC92YWxpZGF0ZV9wdXJjaGFzZWAgZW5kcG9pbnQuIFRoaXMgaXMgYW4gdW5kb2N1bWVudGVkLCB1bm1haW50YWluZWQgbGVnYWN5IGZlYXR1cmUgaW5oZXJpdGVkIGZyb20gdGhlIG9yaWdpbmFsIFBhcnNlIHBsYXRmb3JtIHRoYXQgbWF5IG5vdCBmdW5jdGlvbiBhcyBleHBlY3RlZC4gV2Ugc3Ryb25nbHkgYWR2aXNlIGFnYWluc3QgdXNpbmcgaXQuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciB2ZXJzaW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5hYmxlU2FuaXRpemVkRXJyb3JSZXNwb25zZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkFCTEVfU0FOSVRJWkVEX0VSUk9SX1JFU1BPTlNFJyxcbiAgICBoZWxwOiAnSWYgc2V0IHRvIGB0cnVlYCwgZXJyb3IgZGV0YWlscyBhcmUgcmVtb3ZlZCBmcm9tIGVycm9yIG1lc3NhZ2VzIGluIHJlc3BvbnNlcyB0byBjbGllbnQgcmVxdWVzdHMsIGFuZCBpbnN0ZWFkIGEgZ2VuZXJpYyBlcnJvciBtZXNzYWdlIGlzIHNlbnQuIERlZmF1bHQgaXMgYHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5jcnlwdGlvbktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkNSWVBUSU9OX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgZW5jcnlwdGluZyB5b3VyIGZpbGVzJyxcbiAgfSxcbiAgZW5mb3JjZVByaXZhdGVVc2Vyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkZPUkNFX1BSSVZBVEVfVVNFUlMnLFxuICAgIGhlbHA6ICdTZXQgdG8gdHJ1ZSBpZiBuZXcgdXNlcnMgc2hvdWxkIGJlIGNyZWF0ZWQgd2l0aG91dCBwdWJsaWMgcmVhZCBhbmQgd3JpdGUgYWNjZXNzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZXhwaXJlSW5hY3RpdmVTZXNzaW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FWFBJUkVfSU5BQ1RJVkVfU0VTU0lPTlMnLFxuICAgIGhlbHA6ICdTZXRzIHdoZXRoZXIgd2Ugc2hvdWxkIGV4cGlyZSB0aGUgaW5hY3RpdmUgc2Vzc2lvbnMsIGRlZmF1bHRzIHRvIHRydWUuIElmIGZhbHNlLCBhbGwgbmV3IHNlc3Npb25zIGFyZSBjcmVhdGVkIHdpdGggbm8gZXhwaXJhdGlvbiBkYXRlLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZXh0ZW5kU2Vzc2lvbk9uVXNlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYVEVORF9TRVNTSU9OX09OX1VTRScsXG4gICAgaGVscDogXCJXaGV0aGVyIFBhcnNlIFNlcnZlciBzaG91bGQgYXV0b21hdGljYWxseSBleHRlbmQgYSB2YWxpZCBzZXNzaW9uIGJ5IHRoZSBzZXNzaW9uTGVuZ3RoLiBJbiBvcmRlciB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBzZXNzaW9uIHVwZGF0ZXMgaW4gdGhlIGRhdGFiYXNlLCBhIHNlc3Npb24gd2lsbCBvbmx5IGJlIGV4dGVuZGVkIHdoZW4gYSByZXF1ZXN0IGlzIHJlY2VpdmVkIGFmdGVyIGF0IGxlYXN0IGhhbGYgb2YgdGhlIGN1cnJlbnQgc2Vzc2lvbidzIGxpZmV0aW1lIGhhcyBwYXNzZWQuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGZpbGVEb3dubG9hZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX0RPV05MT0FEX09QVElPTlMnLFxuICAgIGhlbHA6ICdPcHRpb25zIGZvciBmaWxlIGRvd25sb2FkcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnRmlsZURvd25sb2FkT3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGZpbGVLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIHlvdXIgZmlsZXMnLFxuICB9LFxuICBmaWxlc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRVNfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgZmlsZXMgc3ViLXN5c3RlbScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBmaWxlVXBsb2FkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX09QVElPTlMnLFxuICAgIGhlbHA6ICdPcHRpb25zIGZvciBmaWxlIHVwbG9hZHMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0ZpbGVVcGxvYWRPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgZ3JhcGhRTFBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfR1JBUEhRTF9QQVRIJyxcbiAgICBoZWxwOiAnVGhlIG1vdW50IHBhdGggZm9yIHRoZSBHcmFwaFFMIGVuZHBvaW50PGJyPjxicj5cXHUyNkEwXFx1RkUwRiBGaWxlIHVwbG9hZCBpbnNpZGUgdGhlIEdyYXBoUUwgbXV0YXRpb24gc3lzdGVtIHJlcXVpcmVzIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC48YnI+PGJyPkRlZmF1bHRzIGlzIGAvZ3JhcGhxbGAuJyxcbiAgICBkZWZhdWx0OiAnL2dyYXBocWwnLFxuICB9LFxuICBncmFwaFFMUHVibGljSW50cm9zcGVjdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9HUkFQSFFMX1BVQkxJQ19JTlRST1NQRUNUSU9OJyxcbiAgICBoZWxwOiAnRW5hYmxlIHB1YmxpYyBpbnRyb3NwZWN0aW9uIGZvciB0aGUgR3JhcGhRTCBlbmRwb2ludCwgZGVmYXVsdHMgdG8gZmFsc2UuPGJyPjxicj5cXHUyMTM5XFx1RkUwRiBEaXNhYmxpbmcgcHVibGljIGludHJvc3BlY3Rpb24gZG9lcyBub3QgaGlkZSB3aGV0aGVyIGEgY2xhc3Mgb3IgZmllbGQgZXhpc3RzLiBBIEdyYXBoUUwgb3BlcmF0aW9uIGlzIHZhbGlkYXRlZCBhZ2FpbnN0IHRoZSBjb21wbGV0ZSBzY2hlbWEgYmVmb3JlIGFueSBjbGFzcy1sZXZlbCBwZXJtaXNzaW9uIGlzIGNoZWNrZWQsIHNvIGEgY2xpZW50IGNhbiBjb25maXJtIGEgZ3Vlc3NlZCBjbGFzcyBvciBmaWVsZCBuYW1lIGJ5IHNlbmRpbmcgYW4gb3BlcmF0aW9uIHRoYXQgcmVmZXJlbmNlcyBpdC4gVG8gaGlkZSBhIGNsYXNzIGZyb20gdGhlIEdyYXBoUUwgQVBJLCBleGNsdWRlIGl0IHdpdGggdGhlIGBlbmFibGVkRm9yQ2xhc3Nlc2Agb3IgYGRpc2FibGVkRm9yQ2xhc3Nlc2Agc2V0dGluZyBvZiB0aGUgR3JhcGhRTCBjb25maWcuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZ3JhcGhRTFNjaGVtYToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9HUkFQSF9RTFNDSEVNQScsXG4gICAgaGVscDogJ0Z1bGwgcGF0aCB0byB5b3VyIEdyYXBoUUwgY3VzdG9tIHNjaGVtYS5ncmFwaHFsIGZpbGUnLFxuICB9LFxuICBob3N0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0hPU1QnLFxuICAgIGhlbHA6ICdUaGUgaG9zdCB0byBzZXJ2ZSBQYXJzZVNlcnZlciBvbiwgZGVmYXVsdHMgdG8gMC4wLjAuMCcsXG4gICAgZGVmYXVsdDogJzAuMC4wLjAnLFxuICB9LFxuICBpZGVtcG90ZW5jeU9wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRVhQRVJJTUVOVEFMX0lERU1QT1RFTkNZX09QVElPTlMnLFxuICAgIGhlbHA6ICdPcHRpb25zIGZvciByZXF1ZXN0IGlkZW1wb3RlbmN5IHRvIGRlZHVwbGljYXRlIGlkZW50aWNhbCByZXF1ZXN0cyB0aGF0IG1heSBiZSBjYXVzZWQgYnkgbmV0d29yayBpc3N1ZXMuIENhdXRpb24sIHRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUgdGhhdCBtYXkgbm90IGJlIGFwcHJvcHJpYXRlIGZvciBwcm9kdWN0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnSWRlbXBvdGVuY3lPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgaW5zdGFsbGF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0lOU1RBTExBVElPTicsXG4gICAgaGVscDogJ09wdGlvbnMgY29udHJvbGxpbmcgaG93IFBhcnNlIFNlcnZlciBkZWR1cGxpY2F0ZXMgYF9JbnN0YWxsYXRpb25gIHJlY29yZHMgdGhhdCBzaGFyZSB0aGUgc2FtZSBgZGV2aWNlVG9rZW5gLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnSW5zdGFsbGF0aW9uT3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGphdmFzY3JpcHRLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfSkFWQVNDUklQVF9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIHRoZSBKYXZhc2NyaXB0IFNESycsXG4gIH0sXG4gIGpzb25Mb2dzOiB7XG4gICAgZW52OiAnSlNPTl9MT0dTJyxcbiAgICBoZWxwOiAnTG9nIGFzIHN0cnVjdHVyZWQgSlNPTiBvYmplY3RzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgbGl2ZVF1ZXJ5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVfUVVFUlknLFxuICAgIGhlbHA6IFwiQ29uZmlndXJhdGlvbiBmb3IgTGl2ZVF1ZXJ5IG9uIHRoaXMgUGFyc2UgU2VydmVyLCBmb3IgZXhhbXBsZSBgeyBjbGFzc05hbWVzOiBbJ015Q2xhc3MnXSB9YC4gYGNsYXNzTmFtZXNgIGxpc3RzIHRoZSBjbGFzc2VzIHRoYXQgcHVibGlzaCBjcmVhdGUvdXBkYXRlL2RlbGV0ZSBldmVudHMgdG8gc3Vic2NyaWJlcnM7IHdpdGhvdXQgaXQgbm8gZXZlbnRzIGFyZSBwdXNoZWQsIGV2ZW4gd2hpbGUgYSBMaXZlUXVlcnkgc2VydmVyIGlzIHJ1bm5pbmcuIENvbWJpbmUgd2l0aCBgc3RhcnRMaXZlUXVlcnlTZXJ2ZXJgIHRvIHJ1biBhIExpdmVRdWVyeSBzZXJ2ZXIuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnTGl2ZVF1ZXJ5T3B0aW9ucycsXG4gIH0sXG4gIGxpdmVRdWVyeVNlcnZlck9wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRV9RVUVSWV9TRVJWRVJfT1BUSU9OUycsXG4gICAgaGVscDogJ0NvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIExpdmVRdWVyeSBzZXJ2ZXIuIFByb3ZpZGluZyB0aGlzIGFsc28gc3RhcnRzIHRoZSBMaXZlUXVlcnkgc2VydmVyIChsaWtlIGBzdGFydExpdmVRdWVyeVNlcnZlcmApOyBldmVudHMgYXJlIHN0aWxsIG9ubHkgcHVibGlzaGVkIGZvciB0aGUgY2xhc3NlcyBzZXQgaW4gYGxpdmVRdWVyeS5jbGFzc05hbWVzYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0xpdmVRdWVyeVNlcnZlck9wdGlvbnMnLFxuICB9LFxuICBsb2dnZXJBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR0dFUl9BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBsb2dnaW5nIHN1Yi1zeXN0ZW0nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgbGV2ZWwgZm9yIGxvZ3MnLFxuICB9LFxuICBsb2dMZXZlbHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMUycsXG4gICAgaGVscDogJyhPcHRpb25hbCkgT3ZlcnJpZGVzIHRoZSBsb2cgbGV2ZWxzIHVzZWQgaW50ZXJuYWxseSBieSBQYXJzZSBTZXJ2ZXIgdG8gbG9nIGV2ZW50cy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0xvZ0xldmVscycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGxvZ3NGb2xkZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HU19GT0xERVInLFxuICAgIGhlbHA6IFwiRm9sZGVyIGZvciB0aGUgbG9ncyAoZGVmYXVsdHMgdG8gJy4vbG9ncycpOyBzZXQgdG8gbnVsbCB0byBkaXNhYmxlIGZpbGUgYmFzZWQgbG9nZ2luZ1wiLFxuICAgIGRlZmF1bHQ6ICcuL2xvZ3MnLFxuICB9LFxuICBsb2dTdHJpbmdUcnVuY2F0ZUxlbmd0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfU1RSSU5HX1RSVU5DQVRFX0xFTkdUSCcsXG4gICAgaGVscDogJ01heGltdW0gbGVuZ3RoIG9mIGxvZyBtZXNzYWdlIHN0cmluZ3MgYmVmb3JlIHRydW5jYXRpb24gaW4gQ2xvdWQgQ29kZSBsb2dzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbG9nU3RyaW5nVHJ1bmNhdGVMZW5ndGgnKSxcbiAgICBkZWZhdWx0OiAxMDAwLFxuICB9LFxuICBtYWludGVuYW5jZUtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQUlOVEVOQU5DRV9LRVknLFxuICAgIGhlbHA6ICcoT3B0aW9uYWwpIFRoZSBtYWludGVuYW5jZSBrZXkgaXMgdXNlZCBmb3IgbW9kaWZ5aW5nIGludGVybmFsIGFuZCByZWFkLW9ubHkgZmllbGRzIG9mIFBhcnNlIFNlcnZlci48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFRoaXMga2V5IGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIHBhcnQgb2YgYSByZWd1bGFyIG9wZXJhdGlvbiBvZiBQYXJzZSBTZXJ2ZXIuIFRoaXMga2V5IGlzIGludGVuZGVkIHRvIGNvbmR1Y3Qgb3V0LW9mLWJhbmQgY2hhbmdlcyBzdWNoIGFzIG9uZS10aW1lIG1pZ3JhdGlvbnMgb3IgZGF0YSBjb3JyZWN0aW9uIHRhc2tzLiBJbnRlcm5hbCBmaWVsZHMgYXJlIG5vdCBvZmZpY2lhbGx5IGRvY3VtZW50ZWQgYW5kIG1heSBjaGFuZ2UgYXQgYW55IHRpbWUgd2l0aG91dCBwdWJsaWNhdGlvbiBpbiByZWxlYXNlIGNoYW5nZWxvZ3MuIFdlIHN0cm9uZ2x5IGFkdmljZSBub3QgdG8gcmVseSBvbiBpbnRlcm5hbCBmaWVsZHMgYXMgcGFydCBvZiB5b3VyIHJlZ3VsYXIgb3BlcmF0aW9uIGFuZCB0byBpbnZlc3RpZ2F0ZSB0aGUgaW1wbGljYXRpb25zIG9mIGFueSBwbGFubmVkIGNoYW5nZXMgKmRpcmVjdGx5IGluIHRoZSBzb3VyY2UgY29kZSogb2YgeW91ciBjdXJyZW50IHZlcnNpb24gb2YgUGFyc2UgU2VydmVyLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIG1haW50ZW5hbmNlS2V5SXBzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BSU5URU5BTkNFX0tFWV9JUFMnLFxuICAgIGhlbHA6IFwiKE9wdGlvbmFsKSBSZXN0cmljdHMgdGhlIHVzZSBvZiBtYWludGVuYW5jZSBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIG1haW50ZW5hbmNlIGtleSBjYW5ub3QgYmUgdXNlZCBldmVuIGluIFBhcnNlIFNlcnZlciBDbG91ZCBDb2RlLiBUaGlzIHZhbHVlIGNhbm5vdCBiZSBzZXQgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIGFzIHRoZXJlIGlzIG5vIHdheSB0byBwYXNzIGFuIGVtcHR5IGFycmF5IHRvIFBhcnNlIFNlcnZlciB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuPGJyPi0gU2V0dGluZyBgWycwLjAuMC4wLzAnLCAnOjowJ11gIG1lYW5zIHRvIGFsbG93IGFueSBJUHY0IGFuZCBJUHY2IGFkZHJlc3MgdG8gdXNlIHRoZSBtYWludGVuYW5jZSBrZXkgYW5kIGVmZmVjdGl2ZWx5IGRpc2FibGVzIHRoZSBJUCBmaWx0ZXIuPGJyPjxicj48Yj5Db25zaWRlcmF0aW9uczo8L2I+PGJyPi0gSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMgYXJlIG5vdCBjb21wYXJlZCBhZ2FpbnN0IGVhY2ggb3RoZXIuIEVhY2ggSVAgdmVyc2lvbiAoSVB2NCBhbmQgSVB2NikgbmVlZHMgdG8gYmUgY29uc2lkZXJlZCBzZXBhcmF0ZWx5LiBGb3IgZXhhbXBsZSwgYFsnMC4wLjAuMC8wJ11gIGFsbG93cyBhbnkgSVB2NCBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NiBhZGRyZXNzLiBDb252ZXJzZWx5LCBgWyc6OjAnXWAgYWxsb3dzIGFueSBJUHY2IGFkZHJlc3MgYW5kIGJsb2NrcyBldmVyeSBJUHY0IGFkZHJlc3MuPGJyPi0gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIElQIHZlcnNpb24gaW4gdXNlIGRlcGVuZHMgb24gdGhlIG5ldHdvcmsgc3RhY2sgb2YgdGhlIGVudmlyb25tZW50IGluIHdoaWNoIFBhcnNlIFNlcnZlciBydW5zLiBBIGxvY2FsIGVudmlyb25tZW50IG1heSB1c2UgYSBkaWZmZXJlbnQgSVAgdmVyc2lvbiB0aGFuIGEgcmVtb3RlIGVudmlyb25tZW50LiBGb3IgZXhhbXBsZSwgaXQncyBwb3NzaWJsZSB0aGF0IGxvY2FsbHkgdGhlIHZhbHVlIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgdGhlIHJlcXVlc3QgSVAgYmVjYXVzZSB0aGUgZW52aXJvbm1lbnQgaXMgdXNpbmcgSVB2NCwgYnV0IHdoZW4gUGFyc2UgU2VydmVyIGlzIGRlcGxveWVkIHJlbW90ZWx5IHRoZSByZXF1ZXN0IElQIGlzIGJsb2NrZWQgYmVjYXVzZSB0aGUgcmVtb3RlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjYuPGJyPi0gV2hlbiBzZXR0aW5nIHRoZSBvcHRpb24gdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRoZSBub3RhdGlvbiBpcyBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcsIGZvciBleGFtcGxlIGBcXFwiMC4wLjAuMC8wLDo6MFxcXCJgLjxicj4tIElQdjYgem9uZSBpbmRpY2VzIChgJWAgc3VmZml4KSBhcmUgbm90IHN1cHBvcnRlZCwgZm9yIGV4YW1wbGUgYGZlODA6OjElZXRoMGAsIGBmZTgwOjoxJTFgIG9yIGA6OjElbG9gLjxicj48YnI+RGVmYXVsdHMgdG8gYFsnMTI3LjAuMC4xJywgJzo6MSddYCB3aGljaCBtZWFucyB0aGF0IG9ubHkgYGxvY2FsaG9zdGAsIHRoZSBzZXJ2ZXIgaW5zdGFuY2Ugb24gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMsIGlzIGFsbG93ZWQgdG8gdXNlIHRoZSBtYWludGVuYW5jZSBrZXkuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFsnMTI3LjAuMC4xJywgJzo6MSddLFxuICB9LFxuICBtYXN0ZXJLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFTVEVSX0tFWScsXG4gICAgaGVscDogJ1lvdXIgUGFyc2UgTWFzdGVyIEtleScsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIG1hc3RlcktleUlwczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVNURVJfS0VZX0lQUycsXG4gICAgaGVscDogXCIoT3B0aW9uYWwpIFJlc3RyaWN0cyB0aGUgdXNlIG9mIG1hc3RlciBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIG1hc3RlciBrZXkgY2Fubm90IGJlIHVzZWQgZXZlbiBpbiBQYXJzZSBTZXJ2ZXIgQ2xvdWQgQ29kZS4gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgc2V0IHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBhbiBlbXB0eSBhcnJheSB0byBQYXJzZSBTZXJ2ZXIgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLjxicj4tIFNldHRpbmcgYFsnMC4wLjAuMC8wJywgJzo6MCddYCBtZWFucyB0byBhbGxvdyBhbnkgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHRvIHVzZSB0aGUgbWFzdGVyIGtleSBhbmQgZWZmZWN0aXZlbHkgZGlzYWJsZXMgdGhlIElQIGZpbHRlci48YnI+PGJyPjxiPkNvbnNpZGVyYXRpb25zOjwvYj48YnI+LSBJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcyBhcmUgbm90IGNvbXBhcmVkIGFnYWluc3QgZWFjaCBvdGhlci4gRWFjaCBJUCB2ZXJzaW9uIChJUHY0IGFuZCBJUHY2KSBuZWVkcyB0byBiZSBjb25zaWRlcmVkIHNlcGFyYXRlbHkuIEZvciBleGFtcGxlLCBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIGFueSBJUHY0IGFkZHJlc3MgYW5kIGJsb2NrcyBldmVyeSBJUHY2IGFkZHJlc3MuIENvbnZlcnNlbHksIGBbJzo6MCddYCBhbGxvd3MgYW55IElQdjYgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjQgYWRkcmVzcy48YnI+LSBLZWVwIGluIG1pbmQgdGhhdCB0aGUgSVAgdmVyc2lvbiBpbiB1c2UgZGVwZW5kcyBvbiB0aGUgbmV0d29yayBzdGFjayBvZiB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMuIEEgbG9jYWwgZW52aXJvbm1lbnQgbWF5IHVzZSBhIGRpZmZlcmVudCBJUCB2ZXJzaW9uIHRoYW4gYSByZW1vdGUgZW52aXJvbm1lbnQuIEZvciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRoYXQgbG9jYWxseSB0aGUgdmFsdWUgYFsnMC4wLjAuMC8wJ11gIGFsbG93cyB0aGUgcmVxdWVzdCBJUCBiZWNhdXNlIHRoZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY0LCBidXQgd2hlbiBQYXJzZSBTZXJ2ZXIgaXMgZGVwbG95ZWQgcmVtb3RlbHkgdGhlIHJlcXVlc3QgSVAgaXMgYmxvY2tlZCBiZWNhdXNlIHRoZSByZW1vdGUgZW52aXJvbm1lbnQgaXMgdXNpbmcgSVB2Ni48YnI+LSBXaGVuIHNldHRpbmcgdGhlIG9wdGlvbiB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdGhlIG5vdGF0aW9uIGlzIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZywgZm9yIGV4YW1wbGUgYFxcXCIwLjAuMC4wLzAsOjowXFxcImAuPGJyPi0gSVB2NiB6b25lIGluZGljZXMgKGAlYCBzdWZmaXgpIGFyZSBub3Qgc3VwcG9ydGVkLCBmb3IgZXhhbXBsZSBgZmU4MDo6MSVldGgwYCwgYGZlODA6OjElMWAgb3IgYDo6MSVsb2AuPGJyPjxicj5EZWZhdWx0cyB0byBgWycxMjcuMC4wLjEnLCAnOjoxJ11gIHdoaWNoIG1lYW5zIHRoYXQgb25seSBgbG9jYWxob3N0YCwgdGhlIHNlcnZlciBpbnN0YW5jZSBvbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucywgaXMgYWxsb3dlZCB0byB1c2UgdGhlIG1hc3RlciBrZXkuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFsnMTI3LjAuMC4xJywgJzo6MSddLFxuICB9LFxuICBtYXN0ZXJLZXlUdGw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFTVEVSX0tFWV9UVEwnLFxuICAgIGhlbHA6ICcoT3B0aW9uYWwpIFRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGZvciB3aGljaCB0aGUgY3VycmVudCBgbWFzdGVyS2V5YCBpcyBiZWluZyB1c2VkIGJlZm9yZSBpdCBpcyByZXF1ZXN0ZWQgYWdhaW4gaWYgYG1hc3RlcktleWAgaXMgc2V0IHRvIGEgZnVuY3Rpb24uIElmIGBtYXN0ZXJLZXlgIGlzIG5vdCBzZXQgdG8gYSBmdW5jdGlvbiwgdGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdC4gRGVmYXVsdCBpcyBgMGAsIHdoaWNoIG1lYW5zIHRoZSBtYXN0ZXIga2V5IGlzIHJlcXVlc3RlZCBieSBpbnZva2luZyB0aGUgIGBtYXN0ZXJLZXlgIGZ1bmN0aW9uIGV2ZXJ5IHRpbWUgdGhlIG1hc3RlciBrZXkgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21hc3RlcktleVR0bCcpLFxuICB9LFxuICBtYXhMaW1pdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVhfTElNSVQnLFxuICAgIGhlbHA6ICdNYXggdmFsdWUgZm9yIGxpbWl0IG9wdGlvbiBvbiBxdWVyaWVzLCBkZWZhdWx0cyB0byB1bmxpbWl0ZWQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heExpbWl0JyksXG4gIH0sXG4gIG1heExvZ0ZpbGVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BWF9MT0dfRklMRVMnLFxuICAgIGhlbHA6IFwiTWF4aW11bSBudW1iZXIgb2YgbG9ncyB0byBrZWVwLiBJZiBub3Qgc2V0LCBubyBsb2dzIHdpbGwgYmUgcmVtb3ZlZC4gVGhpcyBjYW4gYmUgYSBudW1iZXIgb2YgZmlsZXMgb3IgbnVtYmVyIG9mIGRheXMuIElmIHVzaW5nIGRheXMsIGFkZCAnZCcgYXMgdGhlIHN1ZmZpeC4gKGRlZmF1bHQ6IG51bGwpXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlck9yU3RyaW5nUGFyc2VyKCdtYXhMb2dGaWxlcycpLFxuICB9LFxuICBtYXhVcGxvYWRTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BWF9VUExPQURfU0laRScsXG4gICAgaGVscDogJ01heCBmaWxlIHNpemUgZm9yIHVwbG9hZHMsIGRlZmF1bHRzIHRvIDIwbWInLFxuICAgIGRlZmF1bHQ6ICcyMG1iJyxcbiAgfSxcbiAgbWlkZGxld2FyZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NSURETEVXQVJFJyxcbiAgICBoZWxwOiAnbWlkZGxld2FyZSBmb3IgZXhwcmVzcyBzZXJ2ZXIsIGNhbiBiZSBzdHJpbmcgb3IgZnVuY3Rpb24nLFxuICB9LFxuICBtb3VudEdyYXBoUUw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTU9VTlRfR1JBUEhRTCcsXG4gICAgaGVscDogJ01vdW50cyB0aGUgR3JhcGhRTCBlbmRwb2ludCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIG1vdW50UGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NT1VOVF9QQVRIJyxcbiAgICBoZWxwOiAnTW91bnQgcGF0aCBmb3IgdGhlIHNlcnZlciwgZGVmYXVsdHMgdG8gL3BhcnNlJyxcbiAgICBkZWZhdWx0OiAnL3BhcnNlJyxcbiAgfSxcbiAgbW91bnRQbGF5Z3JvdW5kOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01PVU5UX1BMQVlHUk9VTkQnLFxuICAgIGhlbHA6ICdEZXByZWNhdGVkLiBNb3VudHMgdGhlIEdyYXBoUUwgUGxheWdyb3VuZCB3aGljaCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gVGhlIHBsYXlncm91bmQgZXhwb3NlcyB0aGUgbWFzdGVyIGtleSBpbiB0aGUgYnJvd3Nlci4gVXNlIFBhcnNlIERhc2hib2FyZCBhcyBHcmFwaFFMIElERSBvciBjb25maWd1cmUgYSB0aGlyZC1wYXJ0eSBHcmFwaFFMIGNsaWVudCB3aXRoIGN1c3RvbSByZXF1ZXN0IGhlYWRlcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgb2JqZWN0SWRTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX09CSkVDVF9JRF9TSVpFJyxcbiAgICBoZWxwOiBcIlNldHMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGdlbmVyYXRlZCBvYmplY3QgaWQncywgZGVmYXVsdCAxMFwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ29iamVjdElkU2l6ZScpLFxuICAgIGRlZmF1bHQ6IDEwLFxuICB9LFxuICBwYWdlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFUycsXG4gICAgaGVscDogJ1RoZSBvcHRpb25zIGZvciBwYWdlcyBzdWNoIGFzIHBhc3N3b3JkIHJlc2V0IGFuZCBlbWFpbCB2ZXJpZmljYXRpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdQYWdlc09wdGlvbnMnLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBwYXNzd29yZFBvbGljeToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1knLFxuICAgIGhlbHA6ICdUaGUgcGFzc3dvcmQgcG9saWN5IGZvciBlbmZvcmNpbmcgcGFzc3dvcmQgcmVsYXRlZCBydWxlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ1Bhc3N3b3JkUG9saWN5T3B0aW9ucycsXG4gIH0sXG4gIHBsYXlncm91bmRQYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BMQVlHUk9VTkRfUEFUSCcsXG4gICAgaGVscDogJ0RlcHJlY2F0ZWQuIE1vdW50IHBhdGggZm9yIHRoZSBHcmFwaFFMIFBsYXlncm91bmQuIFRoZSBwbGF5Z3JvdW5kIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBJZiB1bnNldCwgUGxheWdyb3VuZCBtb3VudHMgYXQgYC9wbGF5Z3JvdW5kYCB3aGVuIGBtb3VudFBsYXlncm91bmRgIGlzIGVuYWJsZWQuJyxcbiAgfSxcbiAgcG9ydDoge1xuICAgIGVudjogJ1BPUlQnLFxuICAgIGhlbHA6ICdUaGUgcG9ydCB0byBydW4gdGhlIFBhcnNlU2VydmVyLCBkZWZhdWx0cyB0byAxMzM3LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncG9ydCcpLFxuICAgIGRlZmF1bHQ6IDEzMzcsXG4gIH0sXG4gIHByZXNlcnZlRmlsZU5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJFU0VSVkVfRklMRV9OQU1FJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSB0aGUgYWRkaXRpb24gb2YgYSB1bmlxdWUgaGFzaCB0byB0aGUgZmlsZSBuYW1lcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHByZXZlbnRMb2dpbldpdGhVbnZlcmlmaWVkRW1haWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJFVkVOVF9MT0dJTl9XSVRIX1VOVkVSSUZJRURfRU1BSUwnLFxuICAgIGhlbHA6IFwiU2V0IHRvIGB0cnVlYCB0byBwcmV2ZW50IGEgdXNlciBmcm9tIGxvZ2dpbmcgaW4gaWYgdGhlIGVtYWlsIGhhcyBub3QgeWV0IGJlZW4gdmVyaWZpZWQgYW5kIGVtYWlsIHZlcmlmaWNhdGlvbiBpcyByZXF1aXJlZC4gU3VwcG9ydHMgYSBmdW5jdGlvbiB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIGB0cnVlYCBvciBgZmFsc2VgIGZvciBjb25kaXRpb25hbCBwcmV2ZW50aW9uLiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgYSByZXF1ZXN0IG9iamVjdCB0aGF0IGluY2x1ZGVzIGBjcmVhdGVkV2l0aGAgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgaW52b2NhdGlvbiBpcyBmb3IgYHNpZ251cGAgb3IgYGxvZ2luYCBhbmQgdGhlIHVzZWQgYXV0aCBwcm92aWRlci48YnI+PGJyPlRoZSBgY3JlYXRlZFdpdGhgIHZhbHVlcyBwZXIgc2NlbmFyaW86PHVsPjxsaT5QYXNzd29yZCBzaWdudXA6IGB7IGFjdGlvbjogJ3NpZ251cCcsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgc2lnbnVwOiBgeyBhY3Rpb246ICdzaWdudXAnLCBhdXRoUHJvdmlkZXI6ICc8cHJvdmlkZXI+JyB9YDwvbGk+PGxpPlBhc3N3b3JkIGxvZ2luOiBgeyBhY3Rpb246ICdsb2dpbicsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgbG9naW46IGZ1bmN0aW9uIG5vdCBpbnZva2VkOyBhdXRoIHByb3ZpZGVyIGxvZ2luIGJ5cGFzc2VzIGVtYWlsIHZlcmlmaWNhdGlvbjwvbGk+PC91bD5EZWZhdWx0IGlzIGBmYWxzZWAuPGJyPlJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5PckZ1bmN0aW9uUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBwcmV2ZW50U2lnbnVwV2l0aFVudmVyaWZpZWRFbWFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QUkVWRU5UX1NJR05VUF9XSVRIX1VOVkVSSUZJRURfRU1BSUwnLFxuICAgIGhlbHA6IFwiSWYgc2V0IHRvIGB0cnVlYCBpdCBwcmV2ZW50cyBhIHVzZXIgZnJvbSBzaWduaW5nIHVwIGlmIHRoZSBlbWFpbCBoYXMgbm90IHlldCBiZWVuIHZlcmlmaWVkIGFuZCBlbWFpbCB2ZXJpZmljYXRpb24gaXMgcmVxdWlyZWQuIEluIHRoYXQgY2FzZSB0aGUgc2VydmVyIHJlc3BvbmRzIHRvIHRoZSBzaWduLXVwIHdpdGggSFRUUCBzdGF0dXMgNDAwIGFuZCBhIFBhcnNlIEVycm9yIDIwNSBgRU1BSUxfTk9UX0ZPVU5EYC4gSWYgc2V0IHRvIGBmYWxzZWAgdGhlIHNlcnZlciByZXNwb25kcyB3aXRoIEhUVFAgc3RhdHVzIDIwMCwgYW5kIGNsaWVudCBTREtzIHJldHVybiBhbiB1bmF1dGhlbnRpY2F0ZWQgUGFyc2UgVXNlciB3aXRob3V0IHNlc3Npb24gdG9rZW4uIEluIHRoYXQgY2FzZSBzdWJzZXF1ZW50IHJlcXVlc3RzIGZhaWwgdW50aWwgdGhlIHVzZXIncyBlbWFpbCBhZGRyZXNzIGlzIHZlcmlmaWVkLjxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLjxicj5SZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBwcm90ZWN0ZWRGaWVsZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJPVEVDVEVEX0ZJRUxEUycsXG4gICAgaGVscDogXCJGaWVsZHMgcGVyIGNsYXNzIHRoYXQgYXJlIGhpZGRlbiBmcm9tIHF1ZXJ5IHJlc3VsdHMgZm9yIHNwZWNpZmljIHVzZXIgZ3JvdXBzLiBQcm90ZWN0ZWQgZmllbGRzIGFyZSBzdHJpcHBlZCBmcm9tIHRoZSBzZXJ2ZXIgcmVzcG9uc2UsIGJ1dCBjYW4gc3RpbGwgYmUgdXNlZCBpbnRlcm5hbGx5IChlLmcuIGluIENsb3VkIENvZGUgdHJpZ2dlcnMpLiBDb25maWd1cmUgYXMgYHsgJ0NsYXNzTmFtZSc6IHsgJ1VzZXJHcm91cCc6IFsnZmllbGQxJywgJ2ZpZWxkMiddIH0gfWAgd2hlcmUgYFVzZXJHcm91cGAgaXMgb25lIG9mOiBgJyonYCAoYWxsIHVzZXJzKSwgYCdhdXRoZW50aWNhdGVkJ2AgKGF1dGhlbnRpY2F0ZWQgdXNlcnMpLCBgJ3JvbGU6Um9sZU5hbWUnYCAodXNlcnMgd2l0aCBhIHNwZWNpZmljIHJvbGUpLCBgJ3VzZXJGaWVsZDpGaWVsZE5hbWUnYCAodXNlcnMgcmVmZXJlbmNlZCBieSBhIHBvaW50ZXIgZmllbGQpLCBvciBhIHVzZXIgYG9iamVjdElkYCB0byB0YXJnZXQgYSBzcGVjaWZpYyB1c2VyLiBXaGVuIG11bHRpcGxlIGdyb3VwcyBhcHBseSwgdGhlIGludGVyc2VjdGlvbiBvZiB0aGVpciBwcm90ZWN0ZWQgZmllbGRzIGlzIHVzZWQuIEFueSBmaWVsZCBjYW4gYmUgcHJvdGVjdGVkLCBpbmNsdWRpbmcgc3lzdGVtIGZpZWxkcyBsaWtlIGBjcmVhdGVkQXRgIGFuZCBgdXBkYXRlZEF0YC4gQnkgZGVmYXVsdCwgYGVtYWlsYCBpcyBwcm90ZWN0ZWQgb24gdGhlIGBfVXNlcmAgY2xhc3MgZm9yIGFsbCB1c2Vycy4gT24gdGhlIGBfVXNlcmAgY2xhc3MsIHRoZSBvYmplY3Qgb3duZXIgaXMgZXhlbXB0IGZyb20gcHJvdGVjdGVkIGZpZWxkcyBieSBkZWZhdWx0OyBzZWUgYHByb3RlY3RlZEZpZWxkc093bmVyRXhlbXB0YCB0byBjaGFuZ2UgdGhpcy5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIF9Vc2VyOiB7XG4gICAgICAgICcqJzogWydlbWFpbCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBwcm90ZWN0ZWRGaWVsZHNPd25lckV4ZW1wdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QUk9URUNURURfRklFTERTX09XTkVSX0VYRU1QVCcsXG4gICAgaGVscDogXCJXaGV0aGVyIHRoZSBgX1VzZXJgIGNsYXNzIGlzIGV4ZW1wdCBmcm9tIGBwcm90ZWN0ZWRGaWVsZHNgIHdoZW4gdGhlIGxvZ2dlZC1pbiB1c2VyIHF1ZXJpZXMgdGhlaXIgb3duIHVzZXIgb2JqZWN0LiBJZiBgdHJ1ZWAgKGRlZmF1bHQpLCBhIHVzZXIgY2FuIHNlZSBhbGwgdGhlaXIgb3duIGZpZWxkcyByZWdhcmRsZXNzIG9mIGBwcm90ZWN0ZWRGaWVsZHNgIGNvbmZpZ3VyYXRpb247IGRlZmF1bHQgcHJvdGVjdGVkIGZpZWxkcyAoZS5nLiBgZW1haWxgKSBhcmUgbWVyZ2VkIGludG8gYW55IGN1c3RvbSBgcHJvdGVjdGVkRmllbGRzYCBjb25maWd1cmF0aW9uLiBJZiBgZmFsc2VgLCBgcHJvdGVjdGVkRmllbGRzYCBhcHBsaWVzIGVxdWFsbHkgdG8gdGhlIHVzZXIncyBvd24gb2JqZWN0LCBjb25zaXN0ZW50IHdpdGggYWxsIG90aGVyIGNsYXNzZXM7IG9ubHkgZXhwbGljaXRseSBjb25maWd1cmVkIHByb3RlY3RlZCBmaWVsZHMgYXBwbHksIGRlZmF1bHRzIGFyZSBub3QgbWVyZ2VkLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgcHJvdGVjdGVkRmllbGRzU2F2ZVJlc3BvbnNlRXhlbXB0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BST1RFQ1RFRF9GSUVMRFNfU0FWRV9SRVNQT05TRV9FWEVNUFQnLFxuICAgIGhlbHA6IFwiV2hldGhlciBzYXZlIG9wZXJhdGlvbiByZXNwb25zZXMgKGNyZWF0ZSwgdXBkYXRlKSBhcmUgZXhlbXB0IGZyb20gYHByb3RlY3RlZEZpZWxkc2AuIElmIGB0cnVlYCAoZGVmYXVsdCksIHByb3RlY3RlZCBmaWVsZHMgbW9kaWZpZWQgZHVyaW5nIGEgc2F2ZSBhcmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlIHRvIHRoZSBjbGllbnQuIElmIGBmYWxzZWAsIHByb3RlY3RlZCBmaWVsZHMgYXJlIHN0cmlwcGVkIGZyb20gc2F2ZSByZXNwb25zZXMsIGNvbnNpc3RlbnQgd2l0aCBob3cgdGhleSBhcmUgc3RyaXBwZWQgZnJvbSBxdWVyeSByZXN1bHRzLiBJbmRlcGVuZGVudGx5IG9mIHRoaXMgb3B0aW9uLCBmb3IgYSByZXF1ZXN0IHdpdGhvdXQgdGhlIG1hc3RlciBrZXkgb3IgbWFpbnRlbmFuY2Uga2V5LCBhbiB1cGRhdGUgcmVzcG9uc2UgY29udGFpbnMgc3RvcmVkIGZpZWxkIHZhbHVlcyBvbmx5IGlmIHRoZSBjbGFzcy1sZXZlbCBwZXJtaXNzaW9ucyBhbmQgdGhlIEFDTCBhbGxvdyB0aGUgY2xpZW50IHRvIHJlYWQgdGhlIG9iamVjdCwgdW5sZXNzIGFuIGBhZnRlclNhdmVgIHRyaWdnZXIgb2YgdGhlIG9iamVjdCdzIGNsYXNzIHJldHVybnMgYSBwbGFpbiBvYmplY3QgYXMgdGhlIHJlc3BvbnNlLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgcHJvdGVjdGVkRmllbGRzVHJpZ2dlckV4ZW1wdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QUk9URUNURURfRklFTERTX1RSSUdHRVJfRVhFTVBUJyxcbiAgICBoZWxwOiBcIldoZXRoZXIgQ2xvdWQgQ29kZSB0cmlnZ2VycyAoZS5nLiBgYmVmb3JlU2F2ZWAsIGBhZnRlclNhdmVgKSBhcmUgZXhlbXB0IGZyb20gYHByb3RlY3RlZEZpZWxkc2AuIElmIGB0cnVlYCwgdHJpZ2dlcnMgcmVjZWl2ZSB0aGUgZnVsbCBvYmplY3QgaW5jbHVkaW5nIHByb3RlY3RlZCBmaWVsZHMgaW4gYHJlcXVlc3Qub2JqZWN0YCBhbmQgYHJlcXVlc3Qub3JpZ2luYWxgLCByZWdhcmRsZXNzIG9mIHRoZSBjYWxsZXIncyBhdXRoIGNvbnRleHQuIElmIGBmYWxzZWAsIHByb3RlY3RlZCBmaWVsZHMgYXJlIHN0cmlwcGVkIGZyb20gdGhlIG9yaWdpbmFsIG9iamVjdCBmZXRjaCB1c2VkIHRvIGJ1aWxkIHRyaWdnZXIgb2JqZWN0cy4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgcHVibGljU2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfUFVCTElDX1NFUlZFUl9VUkwnLFxuICAgIGhlbHA6ICdPcHRpb25hbC4gVGhlIHB1YmxpYyBVUkwgdG8gUGFyc2UgU2VydmVyLiBUaGlzIFVSTCB3aWxsIGJlIHVzZWQgdG8gcmVhY2ggUGFyc2UgU2VydmVyIHB1YmxpY2x5IGZvciBmZWF0dXJlcyBsaWtlIHBhc3N3b3JkIHJlc2V0IGFuZCBlbWFpbCB2ZXJpZmljYXRpb24gbGlua3MuIFRoZSBvcHRpb24gY2FuIGJlIHNldCB0byBhIHN0cmluZyBvciBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGFzeW5jaHJvbm91c2x5IHJlc29sdmVkLiBUaGUgcmV0dXJuZWQgVVJMIHN0cmluZyBtdXN0IHN0YXJ0IHdpdGggYGh0dHA6Ly9gIG9yIGBodHRwczovL2AuJyxcbiAgfSxcbiAgcHVzaDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QVVNIJyxcbiAgICBoZWxwOiAnQ29uZmlndXJhdGlvbiBmb3IgcHVzaCwgYXMgc3RyaW5naWZpZWQgSlNPTi4gU2VlIGh0dHA6Ly9kb2NzLnBhcnNlcGxhdGZvcm0ub3JnL3BhcnNlLXNlcnZlci9ndWlkZS8jcHVzaC1ub3RpZmljYXRpb25zJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICBxdWVyeToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9RVUVSWScsXG4gICAgaGVscDogJ1F1ZXJ5LXJlbGF0ZWQgc2VydmVyIGRlZmF1bHRzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnUXVlcnlTZXJ2ZXJPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgcmF0ZUxpbWl0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVQnLFxuICAgIGhlbHA6IFwiT3B0aW9ucyB0byBsaW1pdCByZXBlYXRlZCByZXF1ZXN0cyB0byBQYXJzZSBTZXJ2ZXIgQVBJcy4gVGhpcyBjYW4gYmUgdXNlZCB0byBwcm90ZWN0IHNlbnNpdGl2ZSBlbmRwb2ludHMgc3VjaCBhcyBgL3JlcXVlc3RQYXNzd29yZFJlc2V0YCBmcm9tIGJydXRlLWZvcmNlIGF0dGFja3Mgb3IgUGFyc2UgU2VydmVyIGFzIGEgd2hvbGUgZnJvbSBkZW5pYWwtb2Ytc2VydmljZSAoRG9TKSBhdHRhY2tzLjxicj48YnI+XFx1MjEzOVxcdUZFMEYgTWluZCB0aGUgZm9sbG93aW5nIGxpbWl0YXRpb25zOjxicj4tIHJhdGUgbGltaXRzIGFwcGxpZWQgcGVyIElQIGFkZHJlc3M7IHRoaXMgbGltaXRzIHByb3RlY3Rpb24gYWdhaW5zdCBkaXN0cmlidXRlZCBkZW5pYWwtb2Ytc2VydmljZSAoRERvUykgYXR0YWNrcyB3aGVyZSBtYW55IHJlcXVlc3RzIGFyZSBjb21pbmcgZnJvbSB2YXJpb3VzIElQIGFkZHJlc3Nlczxicj4tIGlmIG11bHRpcGxlIFBhcnNlIFNlcnZlciBpbnN0YW5jZXMgYXJlIGJlaGluZCBhIGxvYWQgYmFsYW5jZXIgb3IgcmFuIGluIGEgY2x1c3RlciwgZWFjaCBpbnN0YW5jZSB3aWxsIGNhbGN1bGF0ZSBpdCdzIG93biByZXF1ZXN0IHJhdGVzLCBpbmRlcGVuZGVudCBmcm9tIG90aGVyIGluc3RhbmNlczsgdGhpcyBsaW1pdHMgdGhlIGFwcGxpY2FiaWxpdHkgb2YgdGhpcyBmZWF0dXJlIHdoZW4gdXNpbmcgYSBsb2FkIGJhbGFuY2VyIGFuZCBhbm90aGVyIHJhdGUgbGltaXRpbmcgc29sdXRpb24gdGhhdCB0YWtlcyByZXF1ZXN0cyBhY3Jvc3MgYWxsIGluc3RhbmNlcyBpbnRvIGFjY291bnQgbWF5IGJlIG1vcmUgc3VpdGFibGU8YnI+LSB0aGlzIGZlYXR1cmUgcHJvdmlkZXMgYmFzaWMgcHJvdGVjdGlvbiBhZ2FpbnN0IGRlbmlhbC1vZi1zZXJ2aWNlIGF0dGFja3MsIGJ1dCBhIG1vcmUgc29waGlzdGljYXRlZCBzb2x1dGlvbiB3b3JrcyBlYXJsaWVyIGluIHRoZSByZXF1ZXN0IGZsb3cgYW5kIHByZXZlbnRzIGEgbWFsaWNpb3VzIHJlcXVlc3RzIHRvIGV2ZW4gcmVhY2ggYSBzZXJ2ZXIgaW5zdGFuY2U7IGl0J3MgdGhlcmVmb3JlIHJlY29tbWVuZGVkIHRvIGltcGxlbWVudCBhIHNvbHV0aW9uIGFjY29yZGluZyB0byBhcmNoaXRlY3R1cmUgYW5kIHVzZSBjYXNlLjxicj4tIHJhdGUgbGltaXRzIGFyZSBtYXRjaGVkIGFnYWluc3QgdGhlIFJFU1QgQVBJIFVSTCBwYXRoIChgcmVxdWVzdFBhdGhgKSBhbmQgdGhlcmVmb3JlIGFwcGx5IHRvIFJFU1QgQVBJIHJvdXRlcyBvbmx5OyB0aGV5IGRvIG5vdCBhcHBseSB0byBHcmFwaFFMIG9wZXJhdGlvbnMsIHdoaWNoIGFyZSBhbGwgc2VydmVkIHVuZGVyIHRoZSBzaW5nbGUgR3JhcGhRTCBlbmRwb2ludCBwYXRoIChgZ3JhcGhRTFBhdGhgLCBkZWZhdWx0IGAvZ3JhcGhxbGApIGFuZCBhcmUgaWRlbnRpZmllZCBieSB0aGUgcmVxdWVzdCBwYXlsb2FkIHJhdGhlciB0aGFuIHRoZSBVUkwuIFRvIHJhdGUgbGltaXQgR3JhcGhRTCwgZWl0aGVyIHNldCBhIGByZXF1ZXN0UGF0aGAgZm9yIHRoZSBHcmFwaFFMIGVuZHBvaW50IHBhdGggdG8gdGhyb3R0bGUgdGhlIGVudGlyZSBHcmFwaFFMIEFQSSwgb3IgdXNlIGEgR3JhcGhRTC1hd2FyZSByYXRlIGxpbWl0aW5nIHNvbHV0aW9uIChmb3IgZXhhbXBsZSBhIHNjaGVtYS1kaXJlY3RpdmUtYmFzZWQgcmF0ZSBsaW1pdGVyKSBmb3IgcGVyLW9wZXJhdGlvbiBsaW1pdHMuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIHR5cGU6ICdSYXRlTGltaXRPcHRpb25zW10nLFxuICAgIGRlZmF1bHQ6IFtdLFxuICB9LFxuICByZWFkT25seU1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRUFEX09OTFlfTUFTVEVSX0tFWScsXG4gICAgaGVscDogJ1RoZSByZWFkLW9ubHkgbWFzdGVyIGtleSBpcyBhIHNlY3JldCBrZXkgd2l0aCB0aGUgc2FtZSByZWFkIGNhcGFiaWxpdGllcyBhcyB0aGUgYG1hc3RlcktleWAsIGJ1dCB3aXRob3V0IHRoZSBhYmlsaXR5IHRvIHBlcmZvcm0gd3JpdGVzLiBMaWtlIHRoZSBgbWFzdGVyS2V5YCwgaXQgYnlwYXNzZXMgYWxsIHNlY3VyaXR5IG1lY2hhbmlzbXMgKENsYXNzIExldmVsIFBlcm1pc3Npb25zLCBvYmplY3QgQUNMcywgYHByb3RlY3RlZEZpZWxkc2ApLCBzbyBpdCBncmFudHMgZnVsbCByZWFkIGFjY2VzcyB0byBhbGwgZGF0YS48YnI+PGJyPkl0IGlzIGludGVuZGVkIHN0cmljdGx5IGZvciBpbnRlcm5hbCwgc2VydmVyLXNpZGUgdXNlIFxcdTIwMTQgZm9yIGV4YW1wbGUgdG8gZ2l2ZSBhIHRydXN0ZWQgaW50ZXJuYWwgcHJvY2VzcyByZWFkIGFjY2VzcyB3aGlsZSBndWFyZGluZyBhZ2FpbnN0IGFjY2lkZW50YWwgd3JpdGVzIGR1cmluZyBkZXZlbG9wbWVudCBvciBvcGVyYXRpb25zLiBJdCBpcyBub3QgYSBjcmVkZW50aWFsIGZvciB1bnRydXN0ZWQgY29udGV4dHM6IGl0IG11c3QgbmV2ZXIgYmUgc2hpcHBlZCwgZGlzdHJpYnV0ZWQsIHB1Ymxpc2hlZCwgZW1iZWRkZWQgaW4gYSBjbGllbnQgYXBwbGljYXRpb24sIG9yIG90aGVyd2lzZSBleHBvc2VkIHRvIHVudHJ1c3RlZCBwYXJ0aWVzLCBiZWNhdXNlIGFueW9uZSB3aG8gb2J0YWlucyBpdCBjYW4gcmVhZCBhbGwgZGF0YSBpbiB0aGUgZGF0YWJhc2UuIFVzZSBgcmVhZE9ubHlNYXN0ZXJLZXlJcHNgIHRvIHJlc3RyaWN0IHRoZSBJUCBhZGRyZXNzZXMgZnJvbSB3aGljaCBpdCBtYXkgYmUgdXNlZC4nLFxuICB9LFxuICByZWFkT25seU1hc3RlcktleUlwczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRUFEX09OTFlfTUFTVEVSX0tFWV9JUFMnLFxuICAgIGhlbHA6IFwiKE9wdGlvbmFsKSBSZXN0cmljdHMgdGhlIHVzZSBvZiByZWFkLW9ubHkgbWFzdGVyIGtleSBwZXJtaXNzaW9ucyB0byBhIGxpc3Qgb2YgSVAgYWRkcmVzc2VzIG9yIHJhbmdlcy48YnI+PGJyPlRoaXMgb3B0aW9uIGFjY2VwdHMgYSBsaXN0IG9mIHNpbmdsZSBJUCBhZGRyZXNzZXMsIGZvciBleGFtcGxlIGBbJzEwLjAuMC4xJywgJzEwLjAuMC4yJ11gLiBZb3UgY2FuIGFsc28gdXNlIENJRFIgbm90YXRpb24gdG8gc3BlY2lmeSBhbiBJUCBhZGRyZXNzIHJhbmdlLCBmb3IgZXhhbXBsZSBgWycxMC4wLjEuMC8yNCddYC48YnI+PGJyPjxiPlNwZWNpYWwgc2NlbmFyaW9zOjwvYj48YnI+LSBTZXR0aW5nIGFuIGVtcHR5IGFycmF5IGBbXWAgbWVhbnMgdGhhdCB0aGUgcmVhZC1vbmx5IG1hc3RlciBrZXkgY2Fubm90IGJlIHVzZWQgZXZlbiBpbiBQYXJzZSBTZXJ2ZXIgQ2xvdWQgQ29kZS4gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgc2V0IHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBhbiBlbXB0eSBhcnJheSB0byBQYXJzZSBTZXJ2ZXIgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLjxicj4tIFNldHRpbmcgYFsnMC4wLjAuMC8wJywgJzo6MCddYCBtZWFucyB0byBhbGxvdyBhbnkgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHRvIHVzZSB0aGUgcmVhZC1vbmx5IG1hc3RlciBrZXkgYW5kIGVmZmVjdGl2ZWx5IGRpc2FibGVzIHRoZSBJUCBmaWx0ZXIuPGJyPjxicj48Yj5Db25zaWRlcmF0aW9uczo8L2I+PGJyPi0gSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMgYXJlIG5vdCBjb21wYXJlZCBhZ2FpbnN0IGVhY2ggb3RoZXIuIEVhY2ggSVAgdmVyc2lvbiAoSVB2NCBhbmQgSVB2NikgbmVlZHMgdG8gYmUgY29uc2lkZXJlZCBzZXBhcmF0ZWx5LiBGb3IgZXhhbXBsZSwgYFsnMC4wLjAuMC8wJ11gIGFsbG93cyBhbnkgSVB2NCBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NiBhZGRyZXNzLiBDb252ZXJzZWx5LCBgWyc6OjAnXWAgYWxsb3dzIGFueSBJUHY2IGFkZHJlc3MgYW5kIGJsb2NrcyBldmVyeSBJUHY0IGFkZHJlc3MuPGJyPi0gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIElQIHZlcnNpb24gaW4gdXNlIGRlcGVuZHMgb24gdGhlIG5ldHdvcmsgc3RhY2sgb2YgdGhlIGVudmlyb25tZW50IGluIHdoaWNoIFBhcnNlIFNlcnZlciBydW5zLiBBIGxvY2FsIGVudmlyb25tZW50IG1heSB1c2UgYSBkaWZmZXJlbnQgSVAgdmVyc2lvbiB0aGFuIGEgcmVtb3RlIGVudmlyb25tZW50LiBGb3IgZXhhbXBsZSwgaXQncyBwb3NzaWJsZSB0aGF0IGxvY2FsbHkgdGhlIHZhbHVlIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgdGhlIHJlcXVlc3QgSVAgYmVjYXVzZSB0aGUgZW52aXJvbm1lbnQgaXMgdXNpbmcgSVB2NCwgYnV0IHdoZW4gUGFyc2UgU2VydmVyIGlzIGRlcGxveWVkIHJlbW90ZWx5IHRoZSByZXF1ZXN0IElQIGlzIGJsb2NrZWQgYmVjYXVzZSB0aGUgcmVtb3RlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjYuPGJyPi0gV2hlbiBzZXR0aW5nIHRoZSBvcHRpb24gdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRoZSBub3RhdGlvbiBpcyBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcsIGZvciBleGFtcGxlIGBcXFwiMC4wLjAuMC8wLDo6MFxcXCJgLjxicj4tIElQdjYgem9uZSBpbmRpY2VzIChgJWAgc3VmZml4KSBhcmUgbm90IHN1cHBvcnRlZCwgZm9yIGV4YW1wbGUgYGZlODA6OjElZXRoMGAsIGBmZTgwOjoxJTFgIG9yIGA6OjElbG9gLjxicj48YnI+RGVmYXVsdHMgdG8gYFsnMC4wLjAuMC8wJywgJzo6MCddYCB3aGljaCBtZWFucyB0aGF0IGFueSBJUCBhZGRyZXNzIGlzIGFsbG93ZWQgdG8gdXNlIHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gc2V0IHRoaXMgb3B0aW9uIHRvIGBbJzEyNy4wLjAuMScsICc6OjEnXWAgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIGBsb2NhbGhvc3RgLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbJzAuMC4wLjAvMCcsICc6OjAnXSxcbiAgfSxcbiAgcmVxdWVzdENvbXBsZXhpdHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9DT01QTEVYSVRZJyxcbiAgICBoZWxwOiAnT3B0aW9ucyB0byBsaW1pdCB0aGUgY29tcGxleGl0eSBvZiByZXF1ZXN0cyB0byBwcmV2ZW50IGRlbmlhbC1vZi1zZXJ2aWNlIGF0dGFja3MuIExpbWl0cyBhcmUgZW5mb3JjZWQgZm9yIGFsbCByZXF1ZXN0cyBleGNlcHQgdGhvc2UgdXNpbmcgdGhlIG1hc3RlciBvciBtYWludGVuYW5jZSBrZXkuIEVhY2ggcHJvcGVydHkgY2FuIGJlIHNldCB0byBgLTFgIHRvIGRpc2FibGUgdGhhdCBzcGVjaWZpYyBsaW1pdC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ1JlcXVlc3RDb21wbGV4aXR5T3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIHJlcXVlc3RDb250ZXh0TWlkZGxld2FyZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTlRFWFRfTUlERExFV0FSRScsXG4gICAgaGVscDogJ09wdGlvbnMgdG8gY3VzdG9taXplIHRoZSByZXF1ZXN0IGNvbnRleHQgdXNpbmcgaW52ZXJzaW9uIG9mIGNvbnRyb2wvZGVwZW5kZW5jeSBpbmplY3Rpb24uJyxcbiAgfSxcbiAgcmVxdWVzdEtleXdvcmREZW55bGlzdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0tFWVdPUkRfREVOWUxJU1QnLFxuICAgIGhlbHA6ICdBbiBhcnJheSBvZiBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBhcmUgcHJvaGliaXRlZCBpbiBkYXRhYmFzZSByZWFkIGFuZCB3cml0ZSByZXF1ZXN0cyB0byBwcmV2ZW50IHBvdGVudGlhbCBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMuIEl0IGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkgb25seSBhIGtleSAoYHtcImtleVwiOlwiLi4uXCJ9YCksIG9ubHkgYSB2YWx1ZSAoYHtcInZhbHVlXCI6XCIuLi5cIn1gKSBvciBhIGtleS12YWx1ZSBwYWlyIChge1wia2V5XCI6XCIuLi5cIixcInZhbHVlXCI6XCIuLi5cIn1gKS4gVGhlIHNwZWNpZmljYXRpb24gY2FuIHVzZSB0aGUgZm9sbG93aW5nIHR5cGVzOiBgYm9vbGVhbmAsIGBudW1lcmljYCBvciBgc3RyaW5nYCwgd2hlcmUgYHN0cmluZ2Agd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhIHJlZ2V4IG5vdGF0aW9uLiBSZXF1ZXN0IGRhdGEgaXMgZGVlcC1zY2FubmVkIGZvciBtYXRjaGluZyBkZWZpbml0aW9ucyB0byBkZXRlY3QgYWxzbyBhbnkgbmVzdGVkIG9jY3VycmVuY2VzLiBEZWZhdWx0cyBhcmUgcGF0dGVybnMgdGhhdCBhcmUgbGlrZWx5IHRvIGJlIHVzZWQgaW4gbWFsaWNpb3VzIHJlcXVlc3RzLiBTZXR0aW5nIHRoaXMgb3B0aW9uIHdpbGwgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcGF0dGVybnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgZGVmYXVsdDogW1xuICAgICAge1xuICAgICAgICBrZXk6ICdfYnNvbnR5cGUnLFxuICAgICAgICB2YWx1ZTogJ0NvZGUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnY29uc3RydWN0b3InLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnX19wcm90b19fJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcmVzdEFQSUtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVNUX0FQSV9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIFJFU1QgY2FsbHMnLFxuICB9LFxuICByZXZva2VTZXNzaW9uT25QYXNzd29yZFJlc2V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFVk9LRV9TRVNTSU9OX09OX1BBU1NXT1JEX1JFU0VUJyxcbiAgICBoZWxwOiBcIldoZW4gYSB1c2VyIGNoYW5nZXMgdGhlaXIgcGFzc3dvcmQsIGVpdGhlciB0aHJvdWdoIHRoZSByZXNldCBwYXNzd29yZCBlbWFpbCBvciB3aGlsZSBsb2dnZWQgaW4sIGFsbCBzZXNzaW9ucyBhcmUgcmV2b2tlZCBpZiB0aGlzIGlzIHRydWUuIFNldCB0byBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byByZXZva2Ugc2Vzc2lvbnMuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgcm91dGVBbGxvd0xpc3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUk9VVEVfQUxMT1dfTElTVCcsXG4gICAgaGVscDogJyhPcHRpb25hbCkgUmVzdHJpY3RzIGV4dGVybmFsIGNsaWVudCBhY2Nlc3MgdG8gYSBsaXN0IG9mIGFsbG93ZWQgUkVTVCBBUEkgcm91dGVzLjxicj48YnI+V2hlbiB0aGlzIG9wdGlvbiBpcyBzZXQsIGFsbCBleHRlcm5hbCBub24tbWFzdGVyLWtleSBSRVNUIEFQSSByZXF1ZXN0cyBhcmUgZGVuaWVkIGJ5IGRlZmF1bHQuIE9ubHkgcm91dGVzIG1hdGNoaW5nIGF0IGxlYXN0IG9uZSBvZiB0aGUgY29uZmlndXJlZCByZWdleCBwYXR0ZXJucyBhcmUgYWxsb3dlZCB0aHJvdWdoLiBJbnRlcm5hbCBjYWxscyBmcm9tIENsb3VkIENvZGUsIENsb3VkIEpvYnMsIGFuZCB0cmlnZ2VycyBhcmUgbm90IGFmZmVjdGVkLjxicj48YnI+RWFjaCBlbnRyeSBpcyBhIHJlZ2V4IHBhdHRlcm4gc3RyaW5nIG1hdGNoZWQgYWdhaW5zdCB0aGUgbm9ybWFsaXplZCByb3V0ZSBpZGVudGlmaWVyIChyZXF1ZXN0IHBhdGggd2l0aCBtb3VudCBwcmVmaXggYW5kIGxlYWRpbmcgc2xhc2ggc3RyaXBwZWQpLiBQYXR0ZXJucyBhcmUgYXV0by1hbmNob3JlZCB3aXRoIGBeYCBhbmQgYCRgIGZvciBmdWxsLW1hdGNoIHNlbWFudGljcy48YnI+PGJyPjxiPkV4YW1wbGVzIG9mIG5vcm1hbGl6ZWQgcm91dGUgaWRlbnRpZmllcnM6PC9iPjx1bD48bGk+YGNsYXNzZXMvR2FtZVNjb3JlYCAoY2xhc3MgQ1JVRCk8L2xpPjxsaT5gY2xhc3Nlcy9HYW1lU2NvcmUvYWJjMTIzYCAob2JqZWN0IGJ5IElEKTwvbGk+PGxpPmB1c2Vyc2AgKHVzZXIgb3BlcmF0aW9ucyk8L2xpPjxsaT5gbG9naW5gIChsb2dpbiBlbmRwb2ludCk8L2xpPjxsaT5gZnVuY3Rpb25zL3NlbmRFbWFpbGAgKENsb3VkIEZ1bmN0aW9uKTwvbGk+PGxpPmBqb2JzL2NsZWFudXBgIChDbG91ZCBKb2IpPC9saT48bGk+YHB1c2hgIChwdXNoIG5vdGlmaWNhdGlvbnMpPC9saT48bGk+YGNvbmZpZ2AgKGNsaWVudCBjb25maWcpPC9saT48bGk+YGluc3RhbGxhdGlvbnNgIChpbnN0YWxsYXRpb25zKTwvbGk+PC91bD48Yj5FeGFtcGxlIHBhdHRlcm5zOjwvYj48dWw+PGxpPmBjbGFzc2VzL0NoYXRNZXNzYWdlYCBtYXRjaGVzIG9ubHkgYGNsYXNzZXMvQ2hhdE1lc3NhZ2VgPC9saT48bGk+YGNsYXNzZXMvQ2hhdC4qYCBtYXRjaGVzIGBjbGFzc2VzL0NoYXRNZXNzYWdlYCwgYGNsYXNzZXMvQ2hhdFJvb21gLCBldGMuPC9saT48bGk+YGZ1bmN0aW9ucy8uKmAgbWF0Y2hlcyBhbGwgQ2xvdWQgRnVuY3Rpb25zPC9saT48L3VsPlNldHRpbmcgYW4gZW1wdHkgYXJyYXkgYFtdYCBibG9ja3MgYWxsIGV4dGVybmFsIG5vbi1tYXN0ZXIta2V5IFJFU1QgQVBJIHJlcXVlc3RzIChmdWxsIGxvY2tkb3duIG9mIFJFU1QgQVBJIHJvdXRlcykuPGJyPjxicj5XaGVuIHNldHRpbmcgdGhlIG9wdGlvbiB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBub3RhdGlvbiBpcyBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcsIGZvciBleGFtcGxlIGBcImNsYXNzZXMvQ2hhdE1lc3NhZ2UsdXNlcnMsZnVuY3Rpb25zLy4qXCJgLjxicj48YnI+RGVmYXVsdHMgdG8gYHVuZGVmaW5lZGAgd2hpY2ggbWVhbnMgdGhlIGZlYXR1cmUgaXMgaW5hY3RpdmUgYW5kIGFsbCByb3V0ZXMgYXJlIGFjY2Vzc2libGUuPGJyPjxicj48Yj5Ob3RlOjwvYj4gRmlsZSByb3V0ZXMsIHRoZSBQYWdlcyBBUEkgYW5kIHRoZSBHcmFwaFFMIEFQSSBhcmUgbm90IGNvdmVyZWQgYnkgdGhpcyBvcHRpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIHNjaGVkdWxlZFB1c2g6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRURVTEVEX1BVU0gnLFxuICAgIGhlbHA6ICdDb25maWd1cmF0aW9uIGZvciBwdXNoIHNjaGVkdWxpbmcsIGRlZmF1bHRzIHRvIGZhbHNlLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHNjaGVtYToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUEnLFxuICAgIGhlbHA6ICdEZWZpbmVkIHNjaGVtYScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnU2NoZW1hT3B0aW9ucycsXG4gIH0sXG4gIHNlY3VyaXR5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFQ1VSSVRZJyxcbiAgICBoZWxwOiAnVGhlIHNlY3VyaXR5IG9wdGlvbnMgdG8gaWRlbnRpZnkgYW5kIHJlcG9ydCB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnU2VjdXJpdHlPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgc2VuZFVzZXJFbWFpbFZlcmlmaWNhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TRU5EX1VTRVJfRU1BSUxfVkVSSUZJQ0FUSU9OJyxcbiAgICBoZWxwOiAnU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBzZW5kaW5nIG9mIHZlcmlmaWNhdGlvbiBlbWFpbC4gU3VwcG9ydHMgYSBmdW5jdGlvbiB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIGB0cnVlYCBvciBgZmFsc2VgIGZvciBjb25kaXRpb25hbCBlbWFpbCBzZW5kaW5nLjxicj48YnI+RGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5PckZ1bmN0aW9uUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHNlcnZlckNsb3NlQ29tcGxldGU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VSVkVSX0NMT1NFX0NPTVBMRVRFJyxcbiAgICBoZWxwOiAnQ2FsbGJhY2sgd2hlbiBzZXJ2ZXIgaGFzIGNsb3NlZCcsXG4gIH0sXG4gIHNlcnZlclVSTDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9VUkwnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIFBhcnNlIFNlcnZlci48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIENlcnRhaW4gc2VydmVyIGZlYXR1cmVzIG9yIGFkYXB0ZXJzIG1heSByZXF1aXJlIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC4gSWYgYSBmZWF0dXJlIHJlcXVpcmVzIHRoaXMsIGl0IGlzIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSW4gdGhhdCBjYXNlIGVuc3VyZSB0aGF0IHRoZSBVUkwgaXMgYWNjZXNzaWJsZSBmcm9tIHRoZSBzZXJ2ZXIgaXRzZWxmLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHNlc3Npb25MZW5ndGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VTU0lPTl9MRU5HVEgnLFxuICAgIGhlbHA6ICdTZXNzaW9uIGR1cmF0aW9uLCBpbiBzZWNvbmRzLCBkZWZhdWx0cyB0byAxIHllYXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3Nlc3Npb25MZW5ndGgnKSxcbiAgICBkZWZhdWx0OiAzMTUzNjAwMCxcbiAgfSxcbiAgc2lsZW50OiB7XG4gICAgZW52OiAnU0lMRU5UJyxcbiAgICBoZWxwOiAnRGlzYWJsZXMgY29uc29sZSBvdXRwdXQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICBzdGFydExpdmVRdWVyeVNlcnZlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TVEFSVF9MSVZFX1FVRVJZX1NFUlZFUicsXG4gICAgaGVscDogJ1N0YXJ0cyBhIExpdmVRdWVyeSBzZXJ2ZXIgYWxvbmdzaWRlIHRoaXMgUGFyc2UgU2VydmVyLiBFdmVudHMgYXJlIG9ubHkgZGVsaXZlcmVkIGZvciB0aGUgY2xhc3NlcyBzZXQgaW4gYGxpdmVRdWVyeS5jbGFzc05hbWVzYCwgc28gYSBtaW5pbWFsIHdvcmtpbmcgc2V0dXAgaXMgYGxpdmVRdWVyeTogeyBjbGFzc05hbWVzOiBbLi4uXSB9YCB0b2dldGhlciB3aXRoIGBzdGFydExpdmVRdWVyeVNlcnZlcjogdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdHJ1c3RQcm94eToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9UUlVTVF9QUk9YWScsXG4gICAgaGVscDogJ1RoZSB0cnVzdCBwcm94eSBzZXR0aW5ncy4gSXQgaXMgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIGV4YWN0IHNldHVwIG9mIHRoZSByZXZlcnNlIHByb3h5LCBzaW5jZSB0aGlzIHNldHRpbmcgd2lsbCB0cnVzdCB2YWx1ZXMgcHJvdmlkZWQgaW4gdGhlIFBhcnNlIFNlcnZlciBBUEkgcmVxdWVzdC4gU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9leHByZXNzanMuY29tL2VuL2d1aWRlL2JlaGluZC1wcm94aWVzLmh0bWxcIj5leHByZXNzIHRydXN0IHByb3h5IHNldHRpbmdzPC9hPiBkb2N1bWVudGF0aW9uLiBEZWZhdWx0cyB0byBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgdXNlclNlbnNpdGl2ZUZpZWxkczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9VU0VSX1NFTlNJVElWRV9GSUVMRFMnLFxuICAgIGhlbHA6ICdQZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBmaWVsZHMgaW4gdGhlIHVzZXIgdGFibGUgdGhlIHNob3VsZCBiZSByZW1vdmVkIGZvciBub24tYXV0aG9yaXplZCB1c2Vycy4gRGVwcmVjYXRlZCBAc2VlIHByb3RlY3RlZEZpZWxkcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICB2ZXJib3NlOiB7XG4gICAgZW52OiAnVkVSQk9TRScsXG4gICAgaGVscDogJ1NldCB0aGUgbG9nZ2luZyB0byB2ZXJib3NlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdmVyaWZ5U2VydmVyVXJsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1ZFUklGWV9TRVJWRVJfVVJMJyxcbiAgICBoZWxwOiAnUGFyc2UgU2VydmVyIG1ha2VzIGEgSFRUUCByZXF1ZXN0IHRvIHRoZSBVUkwgc2V0IGluIGBzZXJ2ZXJVUkxgIGF0IHRoZSBlbmQgb2YgaXRzIGxhdW5jaCByb3V0aW5lIHRvIHZlcmlmeSB0aGF0IHRoZSBsYXVuY2ggc3VjY2VlZGVkLiBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgdG8gYGZhbHNlYCwgdGhlIHZlcmlmaWNhdGlvbiB3aWxsIGJlIHNraXBwZWQuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpbiBlbnZpcm9ubWVudHMgd2hlcmUgdGhlIHNlcnZlciBVUkwgaXMgbm90IGFjY2Vzc2libGUgZnJvbSB0aGUgc2VydmVyIGl0c2VsZiwgc3VjaCBhcyB3aGVuIHJ1bm5pbmcgYmVoaW5kIGEgZmlyZXdhbGwgb3IgaW4gY2VydGFpbiBjb250YWluZXJpemVkIGVudmlyb25tZW50cy48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFNlcnZlciBVUkwgdmVyaWZpY2F0aW9uIHJlcXVpcmVzIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC48YnI+PGJyPkRlZmF1bHQgaXMgYHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgdmVyaWZ5VXNlckVtYWlsczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9WRVJJRllfVVNFUl9FTUFJTFMnLFxuICAgIGhlbHA6IFwiU2V0IHRvIGB0cnVlYCB0byByZXF1aXJlIHVzZXJzIHRvIHZlcmlmeSB0aGVpciBlbWFpbCBhZGRyZXNzIHRvIGNvbXBsZXRlIHRoZSBzaWduLXVwIHByb2Nlc3MuIFN1cHBvcnRzIGEgZnVuY3Rpb24gd2l0aCBhIHJldHVybiB2YWx1ZSBvZiBgdHJ1ZWAgb3IgYGZhbHNlYCBmb3IgY29uZGl0aW9uYWwgdmVyaWZpY2F0aW9uLiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgYSByZXF1ZXN0IG9iamVjdCB0aGF0IGluY2x1ZGVzIGBjcmVhdGVkV2l0aGAgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgaW52b2NhdGlvbiBpcyBmb3IgYHNpZ251cGAgb3IgYGxvZ2luYCBhbmQgdGhlIHVzZWQgYXV0aCBwcm92aWRlci48YnI+PGJyPlRoZSBgY3JlYXRlZFdpdGhgIHZhbHVlcyBwZXIgc2NlbmFyaW86PHVsPjxsaT5QYXNzd29yZCBzaWdudXA6IGB7IGFjdGlvbjogJ3NpZ251cCcsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgc2lnbnVwOiBgeyBhY3Rpb246ICdzaWdudXAnLCBhdXRoUHJvdmlkZXI6ICc8cHJvdmlkZXI+JyB9YDwvbGk+PGxpPlBhc3N3b3JkIGxvZ2luOiBgeyBhY3Rpb246ICdsb2dpbicsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgbG9naW46IGZ1bmN0aW9uIG5vdCBpbnZva2VkOyBhdXRoIHByb3ZpZGVyIGxvZ2luIGJ5cGFzc2VzIGVtYWlsIHZlcmlmaWNhdGlvbjwvbGk+PGxpPlJlc2VuZCB2ZXJpZmljYXRpb24gZW1haWw6IGBjcmVhdGVkV2l0aGAgaXMgYHVuZGVmaW5lZGA7IHVzZSB0aGUgYHJlc2VuZFJlcXVlc3RgIHByb3BlcnR5IHRvIGlkZW50aWZ5IHRob3NlPC9saT48L3VsPkRlZmF1bHQgaXMgYGZhbHNlYC5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhbk9yRnVuY3Rpb25QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHdlYmhvb2tLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfV0VCSE9PS19LRVknLFxuICAgIGhlbHA6ICdLZXkgc2VudCB3aXRoIG91dGdvaW5nIHdlYmhvb2sgY2FsbHMnLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlJhdGVMaW1pdE9wdGlvbnMgPSB7XG4gIGVycm9yUmVzcG9uc2VNZXNzYWdlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfRVJST1JfUkVTUE9OU0VfTUVTU0FHRScsXG4gICAgaGVscDogJ1RoZSBlcnJvciBtZXNzYWdlIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIGluIHRoZSBib2R5IG9mIHRoZSBIVFRQIDQyOSByZXNwb25zZSB3aGVuIHRoZSByYXRlIGxpbWl0IGlzIGhpdC4gRGVmYXVsdCBpcyBgVG9vIG1hbnkgcmVxdWVzdHMuYC4nLFxuICAgIGRlZmF1bHQ6ICdUb28gbWFueSByZXF1ZXN0cy4nLFxuICB9LFxuICBpbmNsdWRlSW50ZXJuYWxSZXF1ZXN0czoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX0lOQ0xVREVfSU5URVJOQUxfUkVRVUVTVFMnLFxuICAgIGhlbHA6ICdPcHRpb25hbCwgaWYgYHRydWVgIHRoZSByYXRlIGxpbWl0IHdpbGwgYWxzbyBhcHBseSB0byByZXF1ZXN0cyB0aGF0IGFyZSBtYWRlIGluIGJ5IENsb3VkIENvZGUsIGRlZmF1bHQgaXMgYGZhbHNlYC4gTm90ZSB0aGF0IGEgcHVibGljIENsb3VkIENvZGUgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBpbnRlcm5hbCByZXF1ZXN0cyBtYXkgY2lyY3VtdmVudCByYXRlIGxpbWl0aW5nIGFuZCBiZSB2dWxuZXJhYmxlIHRvIGF0dGFja3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgaW5jbHVkZU1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX0lOQ0xVREVfTUFTVEVSX0tFWScsXG4gICAgaGVscDogJ09wdGlvbmFsLCBpZiBgdHJ1ZWAgdGhlIHJhdGUgbGltaXQgd2lsbCBhbHNvIGFwcGx5IHRvIHJlcXVlc3RzIHVzaW5nIHRoZSBgbWFzdGVyS2V5YCwgZGVmYXVsdCBpcyBgZmFsc2VgLiBOb3RlIHRoYXQgYSBwdWJsaWMgQ2xvdWQgQ29kZSBmdW5jdGlvbiB0aGF0IHRyaWdnZXJzIGludGVybmFsIHJlcXVlc3RzIHVzaW5nIHRoZSBgbWFzdGVyS2V5YCBtYXkgY2lyY3VtdmVudCByYXRlIGxpbWl0aW5nIGFuZCBiZSB2dWxuZXJhYmxlIHRvIGF0dGFja3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgcmVkaXNVcmw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkFURV9MSU1JVF9SRURJU19VUkwnLFxuICAgIGhlbHA6ICdPcHRpb25hbCwgdGhlIFVSTCBvZiB0aGUgUmVkaXMgc2VydmVyIHRvIHN0b3JlIHJhdGUgbGltaXQgZGF0YS4gVGhpcyBhbGxvd3MgdG8gcmF0ZSBsaW1pdCByZXF1ZXN0cyBmb3IgbXVsdGlwbGUgc2VydmVycyBieSBjYWxjdWxhdGluZyB0aGUgc3VtIG9mIGFsbCByZXF1ZXN0cyBhY3Jvc3MgYWxsIHNlcnZlcnMuIFRoaXMgaXMgdXNlZnVsIGlmIG11bHRpcGxlIHNlcnZlcnMgYXJlIHByb2Nlc3NpbmcgcmVxdWVzdHMgYmVoaW5kIGEgbG9hZCBiYWxhbmNlci4gRm9yIGV4YW1wbGUsIHRoZSBsaW1pdCBvZiAxMCByZXF1ZXN0cyBpcyByZWFjaGVkIGlmIGVhY2ggb2YgMiBzZXJ2ZXJzIHByb2Nlc3NlZCA1IHJlcXVlc3RzLicsXG4gIH0sXG4gIHJlcXVlc3RDb3VudDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1JFUVVFU1RfQ09VTlQnLFxuICAgIGhlbHA6ICdUaGUgbnVtYmVyIG9mIHJlcXVlc3RzIHRoYXQgY2FuIGJlIG1hZGUgcGVyIElQIGFkZHJlc3Mgd2l0aGluIHRoZSB0aW1lIHdpbmRvdyBzZXQgaW4gYHJlcXVlc3RUaW1lV2luZG93YCBiZWZvcmUgdGhlIHJhdGUgbGltaXQgaXMgYXBwbGllZC4gRm9yIGJhdGNoIHJlcXVlc3RzLCB0aGlzIGFsc28gbGltaXRzIHRoZSBudW1iZXIgb2Ygc3ViLXJlcXVlc3RzIGluIGEgc2luZ2xlIGJhdGNoIHRoYXQgdGFyZ2V0IHRoaXMgcGF0aDsgaG93ZXZlciwgcmVxdWVzdHMgYWxyZWFkeSBjb25zdW1lZCBpbiB0aGUgY3VycmVudCB0aW1lIHdpbmRvdyBhcmUgbm90IGNvdW50ZWQgYWdhaW5zdCB0aGUgYmF0Y2gsIHNvIHRoZSBlZmZlY3RpdmUgbGltaXQgbWF5IGJlIGhpZ2hlciB3aGVuIGNvbWJpbmluZyBpbmRpdmlkdWFsIGFuZCBiYXRjaCByZXF1ZXN0cy4gTm90ZSB0aGF0IHRoaXMgaXMgYSBiYXNpYyBzZXJ2ZXItbGV2ZWwgcmF0ZSBsaW1pdDsgZm9yIGNvbXByZWhlbnNpdmUgcHJvdGVjdGlvbiwgdXNlIGEgcmV2ZXJzZSBwcm94eSBvciBXQUYgZm9yIHJhdGUgbGltaXRpbmcuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdyZXF1ZXN0Q291bnQnKSxcbiAgfSxcbiAgcmVxdWVzdE1ldGhvZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkFURV9MSU1JVF9SRVFVRVNUX01FVEhPRFMnLFxuICAgIGhlbHA6IFwiT3B0aW9uYWwsIHRoZSBIVFRQIHJlcXVlc3QgbWV0aG9kcyB0byB3aGljaCB0aGUgcmF0ZSBsaW1pdCBzaG91bGQgYmUgYXBwbGllZCwgZGVmYXVsdCBpcyBhbGwgbWV0aG9kcy4gVGhlIG1ldGhvZCBpcyBtYXRjaGVkIGFmdGVyIGFueSBgX21ldGhvZGAgYm9keSBvdmVycmlkZSBoYXMgYmVlbiByZXNvbHZlZCwgaS5lLiBpdCBpcyB0aGUgbWV0aG9kIHVzZWQgdG8gcm91dGUgdGhlIHJlcXVlc3QuIE5vdGUgdGhhdCBzb21lIGVuZHBvaW50cyBhcmUgcmVhY2hhYmxlIHZpYSBtb3JlIHRoYW4gb25lIEhUVFAgbWV0aG9kIChmb3IgZXhhbXBsZSBgL2xvZ2luYCBhbmQgYC92ZXJpZnlQYXNzd29yZGAgYXJlIGF2YWlsYWJsZSB2aWEgYm90aCBgR0VUYCBhbmQgYFBPU1RgKTsgdG8gcmF0ZSBsaW1pdCBzdWNoIGFuIGVuZHBvaW50IHJlbGlhYmx5LCBpbmNsdWRlIGFsbCByZWxldmFudCBtZXRob2RzIChlLmcuIGBbJ0dFVCcsICdQT1NUJ11gKSBvciBvbWl0IHRoaXMgb3B0aW9uIHRvIGFwcGx5IHRoZSBsaW1pdCB0byBhbGwgbWV0aG9kcy5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIHJlcXVlc3RQYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfUkVRVUVTVF9QQVRIJyxcbiAgICBoZWxwOiAnVGhlIHBhdGggb2YgdGhlIEFQSSByb3V0ZSB0byBiZSByYXRlIGxpbWl0ZWQuIFJvdXRlIHBhdGhzLCBpbiBjb21iaW5hdGlvbiB3aXRoIGEgcmVxdWVzdCBtZXRob2QsIGRlZmluZSB0aGUgZW5kcG9pbnRzIGF0IHdoaWNoIHJlcXVlc3RzIGNhbiBiZSBtYWRlLiBSb3V0ZSBwYXRocyBjYW4gYmUgc3RyaW5ncyBvciBzdHJpbmcgcGF0dGVybnMgZm9sbG93aW5nIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHBcIj5wYXRoLXRvLXJlZ2V4cCB2ODwvYT4gc3ludGF4LicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHJlcXVlc3RUaW1lV2luZG93OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfUkVRVUVTVF9USU1FX1dJTkRPVycsXG4gICAgaGVscDogJ1RoZSB3aW5kb3cgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgd2l0aGluIHdoaWNoIHRoZSBudW1iZXIgb2YgcmVxdWVzdHMgc2V0IGluIGByZXF1ZXN0Q291bnRgIGNhbiBiZSBtYWRlIGJlZm9yZSB0aGUgcmF0ZSBsaW1pdCBpcyBhcHBsaWVkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncmVxdWVzdFRpbWVXaW5kb3cnKSxcbiAgfSxcbiAgem9uZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1pPTkUnLFxuICAgIGhlbHA6ICdUaGUgdHlwZSBvZiByYXRlIGxpbWl0IHRvIGFwcGx5LiBUaGUgZm9sbG93aW5nIHR5cGVzIGFyZSBzdXBwb3J0ZWQ6PHVsPjxsaT5gZ2xvYmFsYDogcmF0ZSBsaW1pdCBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIG1hZGUgYnkgYWxsIHVzZXJzPC9saT48bGk+YGlwYDogcmF0ZSBsaW1pdCBiYXNlZCBvbiB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgcmVxdWVzdDwvbGk+PGxpPmB1c2VyYDogcmF0ZSBsaW1pdCBiYXNlZCBvbiB0aGUgdXNlciBJRCBvZiB0aGUgcmVxdWVzdDwvbGk+PGxpPmBzZXNzaW9uYDogcmF0ZSBsaW1pdCBiYXNlZCBvbiB0aGUgc2Vzc2lvbiB0b2tlbiBvZiB0aGUgcmVxdWVzdDwvbGk+PC91bD5EZWZhdWx0IGlzIGBpcGAuJyxcbiAgICBkZWZhdWx0OiAnaXAnLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlJlcXVlc3RDb21wbGV4aXR5T3B0aW9ucyA9IHtcbiAgYWxsb3dSZWdleDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTVBMRVhJVFlfQUxMT1dfUkVHRVgnLFxuICAgIGhlbHA6ICdXaGV0aGVyIHRvIGFsbG93IHRoZSBgJHJlZ2V4YCBxdWVyeSBvcGVyYXRvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmVqZWN0IGAkcmVnZXhgIGluIHF1ZXJpZXMgZm9yIG5vbi1tYXN0ZXIta2V5IHVzZXJzLiBEZWZhdWx0IGlzIGB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGJhdGNoUmVxdWVzdExpbWl0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFUVVFU1RfQ09NUExFWElUWV9CQVRDSF9SRVFVRVNUX0xJTUlUJyxcbiAgICBoZWxwOiAnTWF4aW11bSBudW1iZXIgb2Ygc3ViLXJlcXVlc3RzIGluIGEgc2luZ2xlIGJhdGNoIHJlcXVlc3QuIFNldCB0byBgLTFgIHRvIGRpc2FibGUuIERlZmF1bHQgaXMgYC0xYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2JhdGNoUmVxdWVzdExpbWl0JyksXG4gICAgZGVmYXVsdDogLTEsXG4gIH0sXG4gIGdyYXBoUUxEZXB0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTVBMRVhJVFlfR1JBUEhRTF9ERVBUSCcsXG4gICAgaGVscDogJ01heGltdW0gZGVwdGggb2YgR3JhcGhRTCBmaWVsZCBzZWxlY3Rpb25zLiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGAtMWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdncmFwaFFMRGVwdGgnKSxcbiAgICBkZWZhdWx0OiAtMSxcbiAgfSxcbiAgZ3JhcGhRTEZpZWxkczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTVBMRVhJVFlfR1JBUEhRTF9GSUVMRFMnLFxuICAgIGhlbHA6ICdNYXhpbXVtIG51bWJlciBvZiBmaWVsZCBzZWxlY3Rpb25zIGluIGEgR3JhcGhRTCBxdWVyeS4gU2V0IHRvIGAtMWAgdG8gZGlzYWJsZS4gRGVmYXVsdCBpcyBgLTFgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignZ3JhcGhRTEZpZWxkcycpLFxuICAgIGRlZmF1bHQ6IC0xLFxuICB9LFxuICBpbmNsdWRlQ291bnQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9DT01QTEVYSVRZX0lOQ0xVREVfQ09VTlQnLFxuICAgIGhlbHA6ICdNYXhpbXVtIG51bWJlciBvZiBpbmNsdWRlIHBhdGhzIGluIGEgc2luZ2xlIHF1ZXJ5LiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGAtMWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdpbmNsdWRlQ291bnQnKSxcbiAgICBkZWZhdWx0OiAtMSxcbiAgfSxcbiAgaW5jbHVkZURlcHRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFUVVFU1RfQ09NUExFWElUWV9JTkNMVURFX0RFUFRIJyxcbiAgICBoZWxwOiAnTWF4aW11bSBkZXB0aCBvZiBpbmNsdWRlIHBvaW50ZXIgY2hhaW5zIChlLmcuIGBhLmIuY2AgPSBkZXB0aCAzKS4gU2V0IHRvIGAtMWAgdG8gZGlzYWJsZS4gRGVmYXVsdCBpcyBgLTFgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignaW5jbHVkZURlcHRoJyksXG4gICAgZGVmYXVsdDogLTEsXG4gIH0sXG4gIHF1ZXJ5RGVwdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9DT01QTEVYSVRZX1FVRVJZX0RFUFRIJyxcbiAgICBoZWxwOiAnTWF4aW11bSBuZXN0aW5nIGRlcHRoIG9mIGAkb3JgLCBgJGFuZGAsIGAkbm9yYCBxdWVyeSBvcGVyYXRvcnMuIFNldCB0byBgLTFgIHRvIGRpc2FibGUuIERlZmF1bHQgaXMgYC0xYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3F1ZXJ5RGVwdGgnKSxcbiAgICBkZWZhdWx0OiAtMSxcbiAgfSxcbiAgc3VicXVlcnlEZXB0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTVBMRVhJVFlfU1VCUVVFUllfREVQVEgnLFxuICAgIGhlbHA6ICdNYXhpbXVtIG5lc3RpbmcgZGVwdGggb2YgYCRpblF1ZXJ5YCwgYCRub3RJblF1ZXJ5YCwgYCRzZWxlY3RgLCBgJGRvbnRTZWxlY3RgIHN1YnF1ZXJpZXMuIFNldCB0byBgLTFgIHRvIGRpc2FibGUuIERlZmF1bHQgaXMgYC0xYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3N1YnF1ZXJ5RGVwdGgnKSxcbiAgICBkZWZhdWx0OiAtMSxcbiAgfSxcbiAgc3VicXVlcnlMaW1pdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTVBMRVhJVFlfU1VCUVVFUllfTElNSVQnLFxuICAgIGhlbHA6ICdNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIHJldHVybmVkIGJ5IGEgYCRpblF1ZXJ5YCwgYCRub3RJblF1ZXJ5YCwgYCRzZWxlY3RgLCBgJGRvbnRTZWxlY3RgIHN1YnF1ZXJ5LiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGAtMWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdzdWJxdWVyeUxpbWl0JyksXG4gICAgZGVmYXVsdDogLTEsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuSW5zdGFsbGF0aW9uT3B0aW9ucyA9IHtcbiAgZHVwbGljYXRlRGV2aWNlVG9rZW5BY3Rpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfSU5TVEFMTEFUSU9OX0RVUExJQ0FURV9ERVZJQ0VfVE9LRU5fQUNUSU9OJyxcbiAgICBoZWxwOiBcIldoYXQgUGFyc2UgU2VydmVyIGRvZXMgdG8gdGhlIGNvbmZsaWN0aW5nIGBfSW5zdGFsbGF0aW9uYCByb3cocykgd2hlbiBhIG5ldyBpbnN0YWxsJ3MgYGRldmljZVRva2VuYCBjb2xsaWRlcyB3aXRoIGFuIGV4aXN0aW5nIHJvdy4gYCdkZWxldGUnYCBkZXN0cm95cyB0aGUgY29uZmxpY3Rpbmcgcm93LiBgJ3VwZGF0ZSdgIGNsZWFycyB0aGUgbm93LWNvbmZsaWN0aW5nIElEIGZpZWxkIG9uIHRoZSBjb25mbGljdGluZyByb3csIHByZXNlcnZpbmcgY3VzdG9tIGZpZWxkcywgY2hhbm5lbHMsIGFuZCBoaXN0b3J5LiBEZWZhdWx0IGlzIGAnZGVsZXRlJ2AuXCIsXG4gICAgZGVmYXVsdDogJ2RlbGV0ZScsXG4gIH0sXG4gIGR1cGxpY2F0ZURldmljZVRva2VuQWN0aW9uRW5mb3JjZUF1dGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfSU5TVEFMTEFUSU9OX0RVUExJQ0FURV9ERVZJQ0VfVE9LRU5fQUNUSU9OX0VORk9SQ0VfQVVUSCcsXG4gICAgaGVscDogXCJXaGV0aGVyIHRoZSBgX0luc3RhbGxhdGlvbmAgZGVkdXBsaWNhdGlvbiBvcGVyYXRpb24gZW5mb3JjZXMgdGhlIGNhbGxlcidzIGF1dGggY29udGV4dCAoYW5kIHRoZSByZXN1bHRpbmcgQUNMIGFuZCBDTFApLiBXaGVuIGB0cnVlYCwgdGhlIGRlZHVwIGBkZXN0cm95YC9gdXBkYXRlYCBydW5zIHdpdGggdGhlIGNhbGxlcidzIGBydW5PcHRpb25zYCwgc28gQUNMIGFuZCBDTFAgYXJlIGhvbm9yZWQuIFdoZW4gYGZhbHNlYCwgdGhlIGRlZHVwIHJ1bnMgYXMgbWFzdGVyIGFuZCBieXBhc3NlcyBib3RoLiBNYXN0ZXIgYW5kIG1haW50ZW5hbmNlIGtleXMgYWx3YXlzIGJ5cGFzcyByZWdhcmRsZXNzIG9mIHRoaXMgZmxhZy4gQmVjYXVzZSB3aGF0IHRoaXMgb3B0aW9uIGVuZm9yY2VzIGlzIHRoZSBBQ0wgYW5kIHRoZSBjbGFzcy1sZXZlbCBwZXJtaXNzaW9ucywgaXQgaGFzIG5vIGVmZmVjdCBvbiBpdHMgb3duIGZvciBhIHJlY29yZCB0aGF0IGNhcnJpZXMgbm8gQUNMIHVuZGVyIHBlcm1pc3NpdmUgY2xhc3MtbGV2ZWwgcGVybWlzc2lvbnM7IHRvIHNjb3BlIHRoZSBkZWR1cGxpY2F0aW9uLCBjb21iaW5lIHRoaXMgb3B0aW9uIHdpdGggYW4gQUNMIG9uIGBfSW5zdGFsbGF0aW9uYCByZWNvcmRzIG9yIHdpdGggY2xhc3MtbGV2ZWwgcGVybWlzc2lvbnMgdGhhdCB3aXRoaG9sZCB0aGUgYGRlbGV0ZWAgb3BlcmF0aW9uIGZyb20gdGhlIGNhbGxlci4gRGVmYXVsdCBpcyBgZmFsc2VgLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBkdXBsaWNhdGVEZXZpY2VUb2tlbk1lcmdlUHJpb3JpdHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfSU5TVEFMTEFUSU9OX0RVUExJQ0FURV9ERVZJQ0VfVE9LRU5fTUVSR0VfUFJJT1JJVFknLFxuICAgIGhlbHA6IFwiQXQgdGhlIG1lcmdlIGNhc2UgKHdoZW4gYW4gZXhpc3Rpbmcgcm93IGhvbGRzIHRoZSBuZXcgYGRldmljZVRva2VuYCBidXQgaGFzIG5vIGBpbnN0YWxsYXRpb25JZGAgb2YgaXRzIG93biksIHdoaWNoIHNpZGUgd2lucy4gYCdkZXZpY2VUb2tlbidgIFxcdTIwMTQgdGhlIGRldmljZVRva2VuLW9ubHkgcm93IHN1cnZpdmVzLCB0aGUgcmVxdWVzdCdzIGBpZE1hdGNoYCByb3cgaXMgdGhlIGxvc2VyLiBgJ2luc3RhbGxhdGlvbklkJ2AgXFx1MjAxNCB0aGUgcmVxdWVzdCdzIGBpZE1hdGNoYCAoYWN0aXZlIGluc3RhbGwpIHN1cnZpdmVzLCB0aGUgZGV2aWNlVG9rZW4tb25seSBvcnBoYW4gaXMgdGhlIGxvc2VyLiBEZWZhdWx0IGlzIGAnZGV2aWNlVG9rZW4nYC5cIixcbiAgICBkZWZhdWx0OiAnZGV2aWNlVG9rZW4nLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlNlY3VyaXR5T3B0aW9ucyA9IHtcbiAgY2hlY2tHcm91cHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFlfQ0hFQ0tfR1JPVVBTJyxcbiAgICBoZWxwOiAnVGhlIHNlY3VyaXR5IGNoZWNrIGdyb3VwcyB0byBydW4uIFRoaXMgYWxsb3dzIHRvIGFkZCBjdXN0b20gc2VjdXJpdHkgY2hlY2tzIG9yIG92ZXJyaWRlIGV4aXN0aW5nIG9uZXMuIERlZmF1bHQgYXJlIHRoZSBncm91cHMgZGVmaW5lZCBpbiBgQ2hlY2tHcm91cHMuanNgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBlbmFibGVDaGVjazoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TRUNVUklUWV9FTkFCTEVfQ0hFQ0snLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciBzaG91bGQgY2hlY2sgZm9yIHdlYWsgc2VjdXJpdHkgc2V0dGluZ3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5hYmxlQ2hlY2tMb2c6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFlfRU5BQkxFX0NIRUNLX0xPRycsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgdGhlIHNlY3VyaXR5IGNoZWNrIHJlcG9ydCBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2dzLiBUaGlzIHNob3VsZCBvbmx5IGJlIGVuYWJsZWQgdGVtcG9yYXJpbHkgdG8gbm90IGV4cG9zZSB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzIGluIGxvZ3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5RdWVyeVNlcnZlck9wdGlvbnMgPSB7XG4gIGFnZ3JlZ2F0aW9uUmF3RmllbGROYW1lczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9RVUVSWV9BR0dSRUdBVElPTl9SQVdfRklFTERfTkFNRVMnLFxuICAgIGhlbHA6ICdXaGVuIGB0cnVlYCwgYWxsIGFnZ3JlZ2F0aW9uIHF1ZXJpZXMgZGVmYXVsdCB0byB1c2luZyBuYXRpdmUgTW9uZ29EQiBmaWVsZCBuYW1lcyAobm8gYXV0b21hdGljIGBjcmVhdGVkQXRgIFxcdTIxOTIgYF9jcmVhdGVkX2F0YCByZXdyaXRpbmcpLiBJbmRpdmlkdWFsIHF1ZXJpZXMgY2FuIHN0aWxsIG92ZXJyaWRlIHRoaXMgdmlhIHRoZSBgcmF3RmllbGROYW1lc2Agb3B0aW9uLiBEZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYWdncmVnYXRpb25SYXdWYWx1ZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUVVFUllfQUdHUkVHQVRJT05fUkFXX1ZBTFVFUycsXG4gICAgaGVscDogJ1doZW4gYHRydWVgLCBhbGwgYWdncmVnYXRpb24gcXVlcmllcyBkZWZhdWx0IHRvIHVzaW5nIE1vbmdvREIgRXh0ZW5kZWQgSlNPTiAoRUpTT04pIGZvciBleHBsaWNpdCB2YWx1ZSB0eXBpbmcgYW5kIHNraXAgc2NoZW1hLWJhc2VkIHZhbHVlIGNvZXJjaW9uLiBJbmRpdmlkdWFsIHF1ZXJpZXMgY2FuIHN0aWxsIG92ZXJyaWRlIHRoaXMgdmlhIHRoZSBgcmF3VmFsdWVzYCBvcHRpb24uIERlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlBhZ2VzT3B0aW9ucyA9IHtcbiAgY3VzdG9tUm91dGVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9ST1VURVMnLFxuICAgIGhlbHA6ICdUaGUgY3VzdG9tIHJvdXRlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICB0eXBlOiAnUGFnZXNSb3V0ZVtdJyxcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgY3VzdG9tVXJsczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMUycsXG4gICAgaGVscDogJ1RoZSBVUkxzIHRvIHRoZSBjdXN0b20gcGFnZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdQYWdlc0N1c3RvbVVybHNPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgZW5hYmxlTG9jYWxpemF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0VOQUJMRV9MT0NBTElaQVRJT04nLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIHBhZ2VzIHNob3VsZCBiZSBsb2NhbGl6ZWQ7IHRoaXMgaGFzIG5vIGVmZmVjdCBvbiBjdXN0b20gcGFnZSByZWRpcmVjdHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5jb2RlUGFnZVBhcmFtSGVhZGVyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19FTkNPREVfUEFHRV9QQVJBTV9IRUFERVJTJyxcbiAgICBoZWxwOiAnSXMgYHRydWVgIGlmIHRoZSBwYWdlIHBhcmFtZXRlciBoZWFkZXJzIHNob3VsZCBiZSBVUkktZW5jb2RlZC4gVGhpcyBpcyByZXF1aXJlZCBpZiBhbnkgcGFnZSBwYXJhbWV0ZXIgdmFsdWUgY29udGFpbnMgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIHN1Y2ggYXMgdGhlIGFwcCBuYW1lLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGZvcmNlUmVkaXJlY3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfRk9SQ0VfUkVESVJFQ1QnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIHJlc3BvbnNlcyBzaG91bGQgYWx3YXlzIGJlIHJlZGlyZWN0cyBhbmQgbmV2ZXIgY29udGVudCwgZmFsc2UgaWYgdGhlIHJlc3BvbnNlIHR5cGUgc2hvdWxkIGRlcGVuZCBvbiB0aGUgcmVxdWVzdCB0eXBlIChHRVQgcmVxdWVzdCAtPiBjb250ZW50IHJlc3BvbnNlOyBQT1NUIHJlcXVlc3QgLT4gcmVkaXJlY3QgcmVzcG9uc2UpLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGxvY2FsaXphdGlvbkZhbGxiYWNrTG9jYWxlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0xPQ0FMSVpBVElPTl9GQUxMQkFDS19MT0NBTEUnLFxuICAgIGhlbHA6ICdUaGUgZmFsbGJhY2sgbG9jYWxlIGZvciBsb2NhbGl6YXRpb24gaWYgbm8gbWF0Y2hpbmcgdHJhbnNsYXRpb24gaXMgcHJvdmlkZWQgZm9yIHRoZSBnaXZlbiBsb2NhbGUuIFRoaXMgaXMgb25seSByZWxldmFudCB3aGVuIHByb3ZpZGluZyB0cmFuc2xhdGlvbiByZXNvdXJjZXMgdmlhIEpTT04gZmlsZS4nLFxuICAgIGRlZmF1bHQ6ICdlbicsXG4gIH0sXG4gIGxvY2FsaXphdGlvbkpzb25QYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0xPQ0FMSVpBVElPTl9KU09OX1BBVEgnLFxuICAgIGhlbHA6ICdUaGUgcGF0aCB0byB0aGUgSlNPTiBmaWxlIGZvciBsb2NhbGl6YXRpb247IHRoZSB0cmFuc2xhdGlvbnMgd2lsbCBiZSB1c2VkIHRvIGZpbGwgdGVtcGxhdGUgcGxhY2Vob2xkZXJzIGFjY29yZGluZyB0byB0aGUgbG9jYWxlLicsXG4gIH0sXG4gIHBhZ2VzRW5kcG9pbnQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUEFHRVNfRU5EUE9JTlQnLFxuICAgIGhlbHA6IFwiVGhlIEFQSSBlbmRwb2ludCBmb3IgdGhlIHBhZ2VzLiBEZWZhdWx0IGlzICdhcHBzJy5cIixcbiAgICBkZWZhdWx0OiAnYXBwcycsXG4gIH0sXG4gIHBhZ2VzUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19QQUdFU19QQVRIJyxcbiAgICBoZWxwOiBcIlRoZSBwYXRoIHRvIHRoZSBwYWdlcyBkaXJlY3Rvcnk7IHRoaXMgYWxzbyBkZWZpbmVzIHdoZXJlIHRoZSBzdGF0aWMgZW5kcG9pbnQgJy9hcHBzJyBwb2ludHMgdG8uIERlZmF1bHQgaXMgdGhlICcuL3B1YmxpYy8nIGRpcmVjdG9yeSBvZiB0aGUgcGFyc2Utc2VydmVyIG1vZHVsZS5cIixcbiAgfSxcbiAgcGxhY2Vob2xkZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1BMQUNFSE9MREVSUycsXG4gICAgaGVscDogJ1RoZSBwbGFjZWhvbGRlciBrZXlzIGFuZCB2YWx1ZXMgd2hpY2ggd2lsbCBiZSBmaWxsZWQgaW4gcGFnZXM7IHRoaXMgY2FuIGJlIGEgc2ltcGxlIG9iamVjdCBvciBhIGNhbGxiYWNrIGZ1bmN0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYWdlc1JvdXRlID0ge1xuICBoYW5kbGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1JPVVRFX0hBTkRMRVInLFxuICAgIGhlbHA6ICdUaGUgcm91dGUgaGFuZGxlciB0aGF0IGlzIGFuIGFzeW5jIGZ1bmN0aW9uLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIG1ldGhvZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19ST1VURV9NRVRIT0QnLFxuICAgIGhlbHA6IFwiVGhlIHJvdXRlIG1ldGhvZCwgZS5nLiAnR0VUJyBvciAnUE9TVCcuXCIsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUk9VVEVfUEFUSCcsXG4gICAgaGVscDogJ1RoZSByb3V0ZSBwYXRoLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuUGFnZXNDdXN0b21VcmxzT3B0aW9ucyA9IHtcbiAgZW1haWxWZXJpZmljYXRpb25MaW5rRXhwaXJlZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9MSU5LX0VYUElSRUQnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgZXhwaXJlZC4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvbkxpbmtJbnZhbGlkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX0xJTktfSU5WQUxJRCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gbGluayBpbnZhbGlkLicsXG4gIH0sXG4gIGVtYWlsVmVyaWZpY2F0aW9uU2VuZEZhaWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9FTUFJTF9WRVJJRklDQVRJT05fU0VORF9GQUlMJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIGVtYWlsIHZlcmlmaWNhdGlvbiAtPiBsaW5rIHNlbmQgZmFpbC4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvblNlbmRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NFTkRfU1VDQ0VTUycsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gcmVzZW5kIGxpbmsgLT4gc3VjY2Vzcy4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvblN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9FTUFJTF9WRVJJRklDQVRJT05fU1VDQ0VTUycsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gc3VjY2Vzcy4nLFxuICB9LFxuICBwYXNzd29yZFJlc2V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgcGFzc3dvcmQgcmVzZXQuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldExpbmtJbnZhbGlkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfUEFTU1dPUkRfUkVTRVRfTElOS19JTlZBTElEJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0IC0+IGxpbmsgaW52YWxpZC4nLFxuICB9LFxuICBwYXNzd29yZFJlc2V0U3VjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgcGFzc3dvcmQgcmVzZXQgLT4gc3VjY2Vzcy4nLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkN1c3RvbVBhZ2VzT3B0aW9ucyA9IHtcbiAgY2hvb3NlUGFzc3dvcmQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0NIT09TRV9QQVNTV09SRCcsXG4gICAgaGVscDogJ2Nob29zZSBwYXNzd29yZCBwYWdlIHBhdGgnLFxuICB9LFxuICBleHBpcmVkVmVyaWZpY2F0aW9uTGluazoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfRVhQSVJFRF9WRVJJRklDQVRJT05fTElOSycsXG4gICAgaGVscDogJ2V4cGlyZWQgdmVyaWZpY2F0aW9uIGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZExpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0lOVkFMSURfTElOSycsXG4gICAgaGVscDogJ2ludmFsaWQgbGluayBwYWdlIHBhdGgnLFxuICB9LFxuICBpbnZhbGlkUGFzc3dvcmRSZXNldExpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0lOVkFMSURfUEFTU1dPUkRfUkVTRVRfTElOSycsXG4gICAgaGVscDogJ2ludmFsaWQgcGFzc3dvcmQgcmVzZXQgbGluayBwYWdlIHBhdGgnLFxuICB9LFxuICBpbnZhbGlkVmVyaWZpY2F0aW9uTGluazoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfSU5WQUxJRF9WRVJJRklDQVRJT05fTElOSycsXG4gICAgaGVscDogJ2ludmFsaWQgdmVyaWZpY2F0aW9uIGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgbGlua1NlbmRGYWlsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19MSU5LX1NFTkRfRkFJTCcsXG4gICAgaGVscDogJ3ZlcmlmaWNhdGlvbiBsaW5rIHNlbmQgZmFpbCBwYWdlIHBhdGgnLFxuICB9LFxuICBsaW5rU2VuZFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0xJTktfU0VORF9TVUNDRVNTJyxcbiAgICBoZWxwOiAndmVyaWZpY2F0aW9uIGxpbmsgc2VuZCBzdWNjZXNzIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIHBhcnNlRnJhbWVVUkw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX1BBUlNFX0ZSQU1FX1VSTCcsXG4gICAgaGVscDogJ2ZvciBtYXNraW5nIHVzZXItZmFjaW5nIHBhZ2VzJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX1BBU1NXT1JEX1JFU0VUX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdwYXNzd29yZCByZXNldCBzdWNjZXNzIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIHZlcmlmeUVtYWlsU3VjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfVkVSSUZZX0VNQUlMX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICd2ZXJpZnkgZW1haWwgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkxpdmVRdWVyeU9wdGlvbnMgPSB7XG4gIGNsYXNzTmFtZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRVFVRVJZX0NMQVNTTkFNRVMnLFxuICAgIGhlbHA6IFwicGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IGNsYXNzTmFtZXNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIHB1YlN1YkFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRVFVRVJZX1BVQl9TVUJfQURBUFRFUicsXG4gICAgaGVscDogJ0xpdmVRdWVyeSBwdWJzdWIgYWRhcHRlcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc09wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRVFVRVJZX1JFRElTX09QVElPTlMnLFxuICAgIGhlbHA6IFwicGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IHJlZGlzT3B0aW9uc1wiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIHJlZGlzVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9SRURJU19VUkwnLFxuICAgIGhlbHA6IFwicGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IHJlZGlzVVJMXCIsXG4gIH0sXG4gIHJlZ2V4VGltZW91dDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MSVZFUVVFUllfUkVHRVhfVElNRU9VVCcsXG4gICAgaGVscDogJ1NldHMgdGhlIG1heGltdW0gZXhlY3V0aW9uIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiBtYXRjaGluZyBpbiBMaXZlUXVlcnkuIFRoaXMgcHJvdGVjdHMgYWdhaW5zdCBSZWd1bGFyIEV4cHJlc3Npb24gRGVuaWFsIG9mIFNlcnZpY2UgKFJlRG9TKSBhdHRhY2tzIHdoZXJlIGEgbWFsaWNpb3VzIHJlZ2V4IHBhdHRlcm4gY291bGQgYmxvY2sgdGhlIGV2ZW50IGxvb3AuIEEgcmVnZXggdGhhdCBleGNlZWRzIHRoZSB0aW1lb3V0IHdpbGwgYmUgdHJlYXRlZCBhcyBub24tbWF0Y2hpbmcuPGJyPjxicj5UaGUgcHJvdGVjdGlvbiBydW5zIGVhY2ggcmVnZXggZXZhbHVhdGlvbiBpbiBhbiBpc29sYXRlZCBWTSBjb250ZXh0IHdpdGggYSB0aW1lb3V0LiBUaGlzIGFkZHMgYXBwcm94aW1hdGVseSA1MCBtaWNyb3NlY29uZHMgb2Ygb3ZlcmhlYWQgcGVyIHJlZ2V4IGV2YWx1YXRpb24uIEZvciBtb3N0IGFwcGxpY2F0aW9ucyB0aGlzIGlzIG5lZ2xpZ2libGUsIGJ1dCBpdCBjYW4gYWRkIHVwIGlmIHlvdSBoYXZlIGEgdmVyeSBsYXJnZSBudW1iZXIgb2YgTGl2ZVF1ZXJ5IHN1YnNjcmlwdGlvbnMgdGhhdCB1c2UgYCRyZWdleGAgb24gdGhlIHNhbWUgY2xhc3MuIEZvciBleGFtcGxlLCAxMCwwMDAgY29uY3VycmVudCByZWdleCBzdWJzY3JpcHRpb25zIHdvdWxkIGFkZCBhcHByb3hpbWF0ZWx5IDUwMG1zIG9mIHByb2Nlc3NpbmcgdGltZSBwZXIgb2JqZWN0IHNhdmUgZXZlbnQgb24gdGhhdCBjbGFzcy48YnI+PGJyPlNldCB0byBgMGAgdG8gZGlzYWJsZSB0aGUgdGltZW91dCBhbmQgdXNlIG5hdGl2ZSByZWdleCBldmFsdWF0aW9uIHdpdGhvdXQgcHJvdGVjdGlvbi4gRGVmYXVsdHMgdG8gYDEwMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdyZWdleFRpbWVvdXQnKSxcbiAgICBkZWZhdWx0OiAxMDAsXG4gIH0sXG4gIHdzc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRVFVRVJZX1dTU19BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBXZWJTb2NrZXRTZXJ2ZXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5MaXZlUXVlcnlTZXJ2ZXJPcHRpb25zID0ge1xuICBhcHBJZDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX0FQUF9JRCcsXG4gICAgaGVscDogJ1RoaXMgc3RyaW5nIHNob3VsZCBtYXRjaCB0aGUgYXBwSWQgaW4gdXNlIGJ5IHlvdXIgUGFyc2UgU2VydmVyLiBJZiB5b3UgZGVwbG95IHRoZSBMaXZlUXVlcnkgc2VydmVyIGFsb25nc2lkZSBQYXJzZSBTZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIHVzZSB0aGUgc2FtZSBhcHBJZC4nLFxuICB9LFxuICBjYWNoZVRpbWVvdXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9DQUNIRV9USU1FT1VUJyxcbiAgICBoZWxwOiBcIk51bWJlciBpbiBtaWxsaXNlY29uZHMuIFdoZW4gY2xpZW50cyBwcm92aWRlIHRoZSBzZXNzaW9uVG9rZW4gdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIGZldGNoIGl0cyBQYXJzZVVzZXIncyBvYmplY3RJZCBmcm9tIHBhcnNlIHNlcnZlciBhbmQgc3RvcmUgaXQgaW4gdGhlIGNhY2hlLiBUaGUgdmFsdWUgZGVmaW5lcyB0aGUgZHVyYXRpb24gb2YgdGhlIGNhY2hlLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLCBkZWZhdWx0cyB0byA1ICogMTAwMCBtcyAoNSBzZWNvbmRzKS5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjYWNoZVRpbWVvdXQnKSxcbiAgfSxcbiAga2V5UGFpcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9LRVlfUEFJUlMnLFxuICAgIGhlbHA6ICdBIEpTT04gb2JqZWN0IHRoYXQgc2VydmVzIGFzIGEgd2hpdGVsaXN0IG9mIGtleXMuIEl0IGlzIHVzZWQgZm9yIHZhbGlkYXRpbmcgY2xpZW50cyB3aGVuIHRoZXkgdHJ5IHRvIGNvbm5lY3QgdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIuIENoZWNrIHRoZSBmb2xsb3dpbmcgU2VjdXJpdHkgc2VjdGlvbiBhbmQgb3VyIHByb3RvY29sIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICBsb2dMZXZlbDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX0xPR19MRVZFTCcsXG4gICAgaGVscDogJ1RoaXMgc3RyaW5nIGRlZmluZXMgdGhlIGxvZyBsZXZlbCBvZiB0aGUgTGl2ZVF1ZXJ5IHNlcnZlci4gV2Ugc3VwcG9ydCBWRVJCT1NFLCBJTkZPLCBFUlJPUiwgTk9ORSwgZGVmYXVsdHMgdG8gSU5GTy4nLFxuICB9LFxuICBtYXN0ZXJLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9NQVNURVJfS0VZJyxcbiAgICBoZWxwOiAnVGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHRoZSBtYXN0ZXJLZXkgaW4gdXNlIGJ5IHlvdXIgUGFyc2UgU2VydmVyLiBJZiB5b3UgZGVwbG95IHRoZSBMaXZlUXVlcnkgc2VydmVyIGFsb25nc2lkZSBQYXJzZSBTZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIHVzZSB0aGUgc2FtZSBtYXN0ZXJLZXkuJyxcbiAgfSxcbiAgcG9ydDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1BPUlQnLFxuICAgIGhlbHA6ICdUaGUgcG9ydCB0byBydW4gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIGRlZmF1bHRzIHRvIDEzMzcuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdwb3J0JyksXG4gICAgZGVmYXVsdDogMTMzNyxcbiAgfSxcbiAgcHViU3ViQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1BVQl9TVUJfQURBUFRFUicsXG4gICAgaGVscDogJ0xpdmVRdWVyeSBwdWJzdWIgYWRhcHRlcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc09wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9SRURJU19PUFRJT05TJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc1VSTDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1JFRElTX1VSTCcsXG4gICAgaGVscDogXCJwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgcmVkaXNVUkxcIixcbiAgfSxcbiAgc2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfU0VSVkVSX1VSTCcsXG4gICAgaGVscDogJ1RoaXMgc3RyaW5nIHNob3VsZCBtYXRjaCB0aGUgc2VydmVyVVJMIGluIHVzZSBieSB5b3VyIFBhcnNlIFNlcnZlci4gSWYgeW91IGRlcGxveSB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciBhbG9uZ3NpZGUgUGFyc2UgU2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byB1c2UgdGhlIHNhbWUgc2VydmVyVVJMLicsXG4gIH0sXG4gIHdlYnNvY2tldFRpbWVvdXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9XRUJTT0NLRVRfVElNRU9VVCcsXG4gICAgaGVscDogJ051bWJlciBvZiBtaWxsaXNlY29uZHMgYmV0d2VlbiBwaW5nL3BvbmcgZnJhbWVzLiBUaGUgV2ViU29ja2V0IHNlcnZlciBzZW5kcyBwaW5nL3BvbmcgZnJhbWVzIHRvIHRoZSBjbGllbnRzIHRvIGtlZXAgdGhlIFdlYlNvY2tldCBhbGl2ZS4gVGhpcyB2YWx1ZSBkZWZpbmVzIHRoZSBpbnRlcnZhbCBvZiB0aGUgcGluZy9wb25nIGZyYW1lIGZyb20gdGhlIHNlcnZlciB0byBjbGllbnRzLCBkZWZhdWx0cyB0byAxMCAqIDEwMDAgbXMgKDEwIHMpLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignd2Vic29ja2V0VGltZW91dCcpLFxuICB9LFxuICB3c3NBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfV1NTX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIFdlYlNvY2tldFNlcnZlcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLklkZW1wb3RlbmN5T3B0aW9ucyA9IHtcbiAgcGF0aHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRVhQRVJJTUVOVEFMX0lERU1QT1RFTkNZX1BBVEhTJyxcbiAgICBoZWxwOiAnQW4gYXJyYXkgb2YgcGF0aHMgZm9yIHdoaWNoIHRoZSBmZWF0dXJlIHNob3VsZCBiZSBlbmFibGVkLiBUaGUgbW91bnQgcGF0aCBtdXN0IG5vdCBiZSBpbmNsdWRlZCwgZm9yIGV4YW1wbGUgaW5zdGVhZCBvZiBgL3BhcnNlL2Z1bmN0aW9ucy9teUZ1bmN0aW9uYCBzcGVjaWZpeSBgZnVuY3Rpb25zL215RnVuY3Rpb25gLiBUaGUgZW50cmllcyBhcmUgaW50ZXJwcmV0ZWQgYXMgcmVndWxhciBleHByZXNzaW9uLCBmb3IgZXhhbXBsZSBgZnVuY3Rpb25zLy4qYCBtYXRjaGVzIGFsbCBmdW5jdGlvbnMsIGBqb2JzLy4qYCBtYXRjaGVzIGFsbCBqb2JzLCBgY2xhc3Nlcy8uKmAgbWF0Y2hlcyBhbGwgY2xhc3NlcywgYC4qYCBtYXRjaGVzIGFsbCBwYXRocy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgdHRsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYUEVSSU1FTlRBTF9JREVNUE9URU5DWV9UVEwnLFxuICAgIGhlbHA6ICdUaGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB3aGljaCBhIHJlcXVlc3QgcmVjb3JkIGlzIGRpc2NhcmRlZCBmcm9tIHRoZSBkYXRhYmFzZSwgZGVmYXVsdHMgdG8gMzAwcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3R0bCcpLFxuICAgIGRlZmF1bHQ6IDMwMCxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5BY2NvdW50TG9ja291dE9wdGlvbnMgPSB7XG4gIGR1cmF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVF9EVVJBVElPTicsXG4gICAgaGVscDogJ1NldCB0aGUgZHVyYXRpb24gaW4gbWludXRlcyB0aGF0IGEgbG9ja2VkLW91dCBhY2NvdW50IHJlbWFpbnMgbG9ja2VkIG91dCBiZWZvcmUgYXV0b21hdGljYWxseSBiZWNvbWluZyB1bmxvY2tlZC48YnI+PGJyPlZhbGlkIHZhbHVlcyBhcmUgZ3JlYXRlciB0aGFuIGAwYCBhbmQgbGVzcyB0aGFuIGAxMDAwMDBgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignZHVyYXRpb24nKSxcbiAgfSxcbiAgdGhyZXNob2xkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVF9USFJFU0hPTEQnLFxuICAgIGhlbHA6ICdTZXQgdGhlIG51bWJlciBvZiBmYWlsZWQgc2lnbi1pbiBhdHRlbXB0cyB0aGF0IHdpbGwgY2F1c2UgYSB1c2VyIGFjY291bnQgdG8gYmUgbG9ja2VkLiBJZiB0aGUgYWNjb3VudCBpcyBsb2NrZWQuIFRoZSBhY2NvdW50IHdpbGwgdW5sb2NrIGFmdGVyIHRoZSBkdXJhdGlvbiBzZXQgaW4gdGhlIGBkdXJhdGlvbmAgb3B0aW9uIGhhcyBwYXNzZWQgYW5kIG5vIGZ1cnRoZXIgbG9naW4gYXR0ZW1wdHMgaGF2ZSBiZWVuIG1hZGUuPGJyPjxicj5WYWxpZCB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBgMGAgYW5kIGxlc3MgdGhhbiBgMTAwMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd0aHJlc2hvbGQnKSxcbiAgfSxcbiAgdW5sb2NrT25QYXNzd29yZFJlc2V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVF9VTkxPQ0tfT05fUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgICBpZiB0aGUgYWNjb3VudCBzaG91bGQgYmUgdW5sb2NrZWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIHBhc3N3b3JkIHJlc2V0Ljxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLjxicj5SZXF1aXJlcyBvcHRpb25zIGBkdXJhdGlvbmAgYW5kIGB0aHJlc2hvbGRgIHRvIGJlIHNldC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlBhc3N3b3JkUG9saWN5T3B0aW9ucyA9IHtcbiAgZG9Ob3RBbGxvd1VzZXJuYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9ET19OT1RfQUxMT1dfVVNFUk5BTUUnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIHRvIGRpc2FsbG93IHRoZSB1c2VybmFtZSBhcyBwYXJ0IG9mIHRoZSBwYXNzd29yZC48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBtYXhQYXNzd29yZEFnZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfTUFYX1BBU1NXT1JEX0FHRScsXG4gICAgaGVscDogJ1NldCB0aGUgbnVtYmVyIG9mIGRheXMgYWZ0ZXIgd2hpY2ggYSBwYXNzd29yZCBleHBpcmVzLiBMb2dpbiBhdHRlbXB0cyBmYWlsIGlmIHRoZSB1c2VyIGRvZXMgbm90IHJlc2V0IHRoZSBwYXNzd29yZCBiZWZvcmUgZXhwaXJhdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heFBhc3N3b3JkQWdlJyksXG4gIH0sXG4gIG1heFBhc3N3b3JkSGlzdG9yeToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfTUFYX1BBU1NXT1JEX0hJU1RPUlknLFxuICAgIGhlbHA6ICdTZXQgdGhlIG51bWJlciBvZiBwcmV2aW91cyBwYXNzd29yZCB0aGF0IHdpbGwgbm90IGJlIGFsbG93ZWQgdG8gYmUgc2V0IGFzIG5ldyBwYXNzd29yZC4gSWYgdGhlIG9wdGlvbiBpcyBub3Qgc2V0IG9yIHNldCB0byBgMGAsIG5vIHByZXZpb3VzIHBhc3N3b3JkcyB3aWxsIGJlIGNvbnNpZGVyZWQuPGJyPjxicj5WYWxpZCB2YWx1ZXMgYXJlID49IGAwYCBhbmQgPD0gYDIwYC48YnI+RGVmYXVsdCBpcyBgMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhQYXNzd29yZEhpc3RvcnknKSxcbiAgfSxcbiAgcmVzZXRQYXNzd29yZFN1Y2Nlc3NPbkludmFsaWRFbWFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfUkVTRVRfUEFTU1dPUkRfU1VDQ0VTU19PTl9JTlZBTElEX0VNQUlMJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCBpZiBhIHJlcXVlc3QgdG8gcmVzZXQgdGhlIHBhc3N3b3JkIHNob3VsZCByZXR1cm4gYSBzdWNjZXNzIHJlc3BvbnNlIGV2ZW4gaWYgdGhlIHByb3ZpZGVkIGVtYWlsIGFkZHJlc3MgaXMgaW52YWxpZCwgb3IgYGZhbHNlYCBpZiB0aGUgcmVxdWVzdCBzaG91bGQgcmV0dXJuIGFuIGVycm9yIHJlc3BvbnNlIGlmIHRoZSBlbWFpbCBhZGRyZXNzIGlzIGludmFsaWQuPGJyPjxicj5EZWZhdWx0IGlzIGB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHJlc2V0VG9rZW5SZXVzZUlmVmFsaWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1JFU0VUX1RPS0VOX1JFVVNFX0lGX1ZBTElEJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCBpZiBhIHBhc3N3b3JkIHJlc2V0IHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICByZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfUkVTRVRfVE9LRU5fVkFMSURJVFlfRFVSQVRJT04nLFxuICAgIGhlbHA6ICdTZXQgdGhlIHZhbGlkaXR5IGR1cmF0aW9uIG9mIHRoZSBwYXNzd29yZCByZXNldCB0b2tlbiBpbiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSB0b2tlbiBleHBpcmVzLiBUaGUgdG9rZW4gaXMgdXNlZCBpbiB0aGUgbGluayB0aGF0IGlzIHNldCBpbiB0aGUgZW1haWwuIEFmdGVyIHRoZSB0b2tlbiBleHBpcmVzLCB0aGUgbGluayBiZWNvbWVzIGludmFsaWQgYW5kIGEgbmV3IGxpbmsgaGFzIHRvIGJlIHNlbnQuIElmIHRoZSBvcHRpb24gaXMgbm90IHNldCBvciBzZXQgdG8gYHVuZGVmaW5lZGAsIHRoZW4gdGhlIHRva2VuIG5ldmVyIGV4cGlyZXMuPGJyPjxicj5Gb3IgZXhhbXBsZSwgdG8gZXhwaXJlIHRoZSB0b2tlbiBhZnRlciAyIGhvdXJzLCBzZXQgYSB2YWx1ZSBvZiA3MjAwIHNlY29uZHMgKD0gNjAgc2Vjb25kcyAqIDYwIG1pbnV0ZXMgKiAyIGhvdXJzKS48YnI+PGJyPkRlZmF1bHQgaXMgYHVuZGVmaW5lZGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdyZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbicpLFxuICB9LFxuICB2YWxpZGF0aW9uRXJyb3I6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1ZBTElEQVRJT05fRVJST1InLFxuICAgIGhlbHA6ICdTZXQgdGhlIGVycm9yIG1lc3NhZ2UgdG8gYmUgc2VudC48YnI+PGJyPkRlZmF1bHQgaXMgYFBhc3N3b3JkIGRvZXMgbm90IG1lZXQgdGhlIFBhc3N3b3JkIFBvbGljeSByZXF1aXJlbWVudHMuYCcsXG4gIH0sXG4gIHZhbGlkYXRvckNhbGxiYWNrOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9WQUxJREFUT1JfQ0FMTEJBQ0snLFxuICAgIGhlbHA6ICdTZXQgYSBjYWxsYmFjayBmdW5jdGlvbiB0byB2YWxpZGF0ZSBhIHBhc3N3b3JkIHRvIGJlIGFjY2VwdGVkLjxicj48YnI+SWYgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGB2YWxpZGF0b3JQYXR0ZXJuYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLicsXG4gIH0sXG4gIHZhbGlkYXRvclBhdHRlcm46IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1ZBTElEQVRPUl9QQVRURVJOJyxcbiAgICBoZWxwOiAnU2V0IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdmFsaWRhdGlvbiBwYXR0ZXJuIGEgcGFzc3dvcmQgbXVzdCBtYXRjaCB0byBiZSBhY2NlcHRlZC48YnI+PGJyPklmIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgdmFsaWRhdG9yQ2FsbGJhY2tgLCB0aGUgcGFzc3dvcmQgbXVzdCBwYXNzIGJvdGggdG8gYmUgYWNjZXB0ZWQuJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5GaWxlVXBsb2FkT3B0aW9ucyA9IHtcbiAgYWxsb3dlZEZpbGVVcmxEb21haW5zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX0FMTE9XRURfRklMRV9VUkxfRE9NQUlOUycsXG4gICAgaGVscDogXCJTZXRzIHRoZSBhbGxvd2VkIGhvc3RuYW1lcyBmb3IgZmlsZSBVUkxzIHJlZmVyZW5jZWQgaW4gUGFyc2Ugb2JqZWN0cy4gV2hlbiBhIEZpbGUgb2JqZWN0IGluY2x1ZGVzIGEgVVJMLCBpdHMgaG9zdG5hbWUgbXVzdCBtYXRjaCBvbmUgb2YgdGhlc2UgZW50cmllcyB0byBiZSBhY2NlcHRlZC4gU3VwcG9ydHMgZXhhY3QgaG9zdG5hbWVzIChlLmcuLCBgJ2Nkbi5leGFtcGxlLmNvbSdgKSBhbmQgd2lsZGNhcmQgc3ViZG9tYWlucyAoZS5nLiwgYCcqLmV4YW1wbGUuY29tJ2ApLiBVc2UgYFsnKiddYCB0byBhbGxvdyBhbnkgZG9tYWluLiBVc2UgYFtdYCB0byBibG9jayBhbGwgZmlsZSBVUkxzIChvbmx5IG5hbWUtYmFzZWQgZmlsZXMgYWxsb3dlZCkuPGJyPjxicj5JZiB0aGlzIG9wdGlvbiBpcyBub3Qgc2V0LCBpdCBkZWZhdWx0cyB0byB0aGUgaG9zdG5hbWVzIG9mIGBwdWJsaWNTZXJ2ZXJVUkxgIGFuZCBgc2VydmVyVVJMYCwgc28gZmlsZXMgaG9zdGVkIGJ5IFBhcnNlIFNlcnZlciBhcmUgYWxsb3dlZCB3aXRob3V0IG9wZW5pbmcgYXJiaXRyYXJ5IGRvbWFpbnMuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBlbmFibGVGb3JBbm9ueW1vdXNVc2VyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX0VOQUJMRV9GT1JfQU5PTllNT1VTX1VTRVInLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgdXBsb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhbm9ueW1vdXMgdXNlcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5hYmxlRm9yQXV0aGVudGljYXRlZFVzZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfRU5BQkxFX0ZPUl9BVVRIRU5USUNBVEVEX1VTRVInLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgdXBsb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhdXRoZW50aWNhdGVkIHVzZXJzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5hYmxlRm9yUHVibGljOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX0VOQUJMRV9GT1JfUFVCTElDJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBmaWxlIHVwbG9hZCBzaG91bGQgYmUgYWxsb3dlZCBmb3IgYW55b25lLCByZWdhcmRsZXNzIG9mIHVzZXIgYXV0aGVudGljYXRpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZmlsZUV4dGVuc2lvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfRklMRV9FWFRFTlNJT05TJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgYWxsb3dlZCBmaWxlIGV4dGVuc2lvbnMgZm9yIHVwbG9hZGluZyBmaWxlcy4gVGhlIGV4dGVuc2lvbiBpcyBkZWZpbmVkIGFzIGFuIGFycmF5IG9mIGZpbGUgZXh0ZW5zaW9ucywgb3IgYSByZWdleCBwYXR0ZXJuLjxicj48YnI+SXQgaXMgcmVjb21tZW5kZWQgdG8gb25seSBhbGxvdyB0aGUgZmlsZSBleHRlbnNpb25zIHRoYXQgeW91ciBhcHAgYWN0dWFsbHkgbmVlZHMsIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gYmxvY2tpbmcgZGFuZ2Vyb3VzIGV4dGVuc2lvbnMuIFRoaXMgYWxsb3dsaXN0IGFwcHJvYWNoIGlzIG1vcmUgc2VjdXJlIGJlY2F1c2UgbmV3IGRhbmdlcm91cyBmaWxlIGV4dGVuc2lvbnMgbWF5IGVtZXJnZSB0aGF0IGFyZSBub3QgY292ZXJlZCBieSB0aGUgZGVmYXVsdCBibG9ja2xpc3QuPGJyPjxicj5UaGUgZGVmYXVsdCBibG9ja3MgdGhlIG1vc3QgY29tbW9uIGZpbGUgZXh0ZW5zaW9ucyB0aGF0IGFyZSBrbm93biB0byBiZSByZW5kZXJlZCBhcyBhY3RpdmUgY29udGVudCBieSB3ZWIgYnJvd3NlcnMsIHN1Y2ggYXMgSFRNTCwgU1ZHLCBhbmQgWE1MIGZpbGVzLCB3aGljaCBtYXkgYmUgdXNlZCBieSBhbiBhdHRhY2tlciB0byBjb21wcm9taXNlIHRoZSBzZXNzaW9uIHRva2VuIG9mIGFub3RoZXIgdXNlciB2aWEgYWNjZXNzaW5nIHRoZSBicm93c2VyXFwncyBsb2NhbCBzdG9yYWdlLiBUaGUgYmxvY2tlZCBleHRlbnNpb25zIGFyZTogYGh0bWxgLCBgaHRtYCwgYHNodG1sYCwgYHhodG1sYCwgYHhodG1sK3htbGAsIGB4aHRgLCBgc3ZnYCwgYHN2Z3pgLCBgc3ZnK3htbGAsIGB4bWxgLCBgeHNsYCwgYHhzbHRgLCBgeHNsdCt4bWxgLCBgeHNkYCwgYHJuZ2AsIGByZGZgLCBgcmRmK3htbGAsIGBvd2xgLCBgbWF0aG1sYCwgYG1hdGhtbCt4bWxgLjxicj48YnI+RGVmYXVsdHMgdG8gYFtcIl4oPyEoW3hYc1NdP1toSF1bdFRdW21NXVtsTF0/KFxcXFxcXFxcK1t4WF1bbU1dW2xMXSk/fFt4WF1baEhdW3RUXXxbc1NdW3ZWXVtnR10oW3paXXxcXFxcXFxcXCtbeFhdW21NXVtsTF0pP3xbeFhdW21NXVtsTF18W3hYXVtzU11bbExdW3RUXT8oXFxcXFxcXFwrW3hYXVttTV1bbExdKT98W3hYXVtzU11bZERdfFtyUl1bbk5dW2dHXXxbclJdW2REXVtmRl0oXFxcXFxcXFwrW3hYXVttTV1bbExdKT98W29PXVt3V11bbExdfFttTV1bYUFdW3RUXVtoSF1bbU1dW2xMXShcXFxcXFxcXCtbeFhdW21NXVtsTF0pPykkKVwiXWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgZGVmYXVsdDogW1xuICAgICAgJ14oPyEoW3hYc1NdP1toSF1bdFRdW21NXVtsTF0/KFxcXFwrW3hYXVttTV1bbExdKT98W3hYXVtoSF1bdFRdfFtzU11bdlZdW2dHXShbelpdfFxcXFwrW3hYXVttTV1bbExdKT98W3hYXVttTV1bbExdfFt4WF1bc1NdW2xMXVt0VF0/KFxcXFwrW3hYXVttTV1bbExdKT98W3hYXVtzU11bZERdfFtyUl1bbk5dW2dHXXxbclJdW2REXVtmRl0oXFxcXCtbeFhdW21NXVtsTF0pP3xbb09dW3dXXVtsTF18W21NXVthQV1bdFRdW2hIXVttTV1bbExdKFxcXFwrW3hYXVttTV1bbExdKT8pJCknLFxuICAgIF0sXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuRmlsZURvd25sb2FkT3B0aW9ucyA9IHtcbiAgZW5hYmxlRm9yQW5vbnltb3VzVXNlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX0RPV05MT0FEX0VOQUJMRV9GT1JfQU5PTllNT1VTX1VTRVInLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgZG93bmxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGFub255bW91cyB1c2Vycy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGVuYWJsZUZvckF1dGhlbnRpY2F0ZWRVc2VyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfRE9XTkxPQURfRU5BQkxFX0ZPUl9BVVRIRU5USUNBVEVEX1VTRVInLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgZG93bmxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBlbmFibGVGb3JQdWJsaWM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9ET1dOTE9BRF9FTkFCTEVfRk9SX1BVQkxJQycsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgZmlsZSBkb3dubG9hZCBzaG91bGQgYmUgYWxsb3dlZCBmb3IgYW55b25lLCByZWdhcmRsZXNzIG9mIHVzZXIgYXV0aGVudGljYXRpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxufTtcbi8qIFRoZSBhdmFpbGFibGUgbG9nIGxldmVscyBmb3IgUGFyc2UgU2VydmVyIGxvZ2dpbmcuIFZhbGlkIHZhbHVlcyBhcmU6PGJyPi0gYCdlcnJvcidgIC0gRXJyb3IgbGV2ZWwgKGhpZ2hlc3QgcHJpb3JpdHkpPGJyPi0gYCd3YXJuJ2AgLSBXYXJuaW5nIGxldmVsPGJyPi0gYCdpbmZvJ2AgLSBJbmZvIGxldmVsIChkZWZhdWx0KTxicj4tIGAndmVyYm9zZSdgIC0gVmVyYm9zZSBsZXZlbDxicj4tIGAnZGVidWcnYCAtIERlYnVnIGxldmVsPGJyPi0gYCdzaWxseSdgIC0gU2lsbHkgbGV2ZWwgKGxvd2VzdCBwcmlvcml0eSkgKi9cbm1vZHVsZS5leHBvcnRzLkxvZ0xldmVsID0ge1xuICBkZWJ1Zzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxfREVCVUcnLFxuICAgIGhlbHA6ICdEZWJ1ZyBsZXZlbCcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIGVycm9yOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTF9FUlJPUicsXG4gICAgaGVscDogJ0Vycm9yIGxldmVsIC0gaGlnaGVzdCBwcmlvcml0eScsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIGluZm86IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMX0lORk8nLFxuICAgIGhlbHA6ICdJbmZvIGxldmVsIC0gZGVmYXVsdCcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHNpbGx5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTF9TSUxMWScsXG4gICAgaGVscDogJ1NpbGx5IGxldmVsIC0gbG93ZXN0IHByaW9yaXR5JyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgdmVyYm9zZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxfVkVSQk9TRScsXG4gICAgaGVscDogJ1ZlcmJvc2UgbGV2ZWwnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICB3YXJuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTF9XQVJOJyxcbiAgICBoZWxwOiAnV2FybmluZyBsZXZlbCcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuTG9nQ2xpZW50RXZlbnQgPSB7XG4gIGtleXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTE9HX0NMSUVOVF9FVkVOVFNfS0VZUycsXG4gICAgaGVscDogJ09wdGlvbmFsIGFycmF5IG9mIGRvdC1ub3RhdGlvbiBwYXRocyB0byBleHRyYWN0IHNwZWNpZmljIGRhdGEgZnJvbSB0aGUgZXZlbnQgb2JqZWN0LiBJZiBub3QgcHJvdmlkZWQgb3IgZW1wdHksIHRoZSBlbnRpcmUgZXZlbnQgb2JqZWN0IHdpbGwgYmUgbG9nZ2VkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBsb2dMZXZlbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9MT0dfQ0xJRU5UX0VWRU5UU19MT0dfTEVWRUwnLFxuICAgIGhlbHA6IFwiVGhlIGxvZyBsZXZlbCB0byB1c2UgZm9yIHRoaXMgZXZlbnQuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLiBEZWZhdWx0cyB0byBgJ2luZm8nYC5cIixcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTE9HX0NMSUVOVF9FVkVOVFNfTkFNRScsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBldmVudCBuYW1lIHRvIGxpc3RlbiBmb3IuIFNlZSB0aGUgW01vbmdvREIgZHJpdmVyIGV2ZW50cyBkb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5tb25nb2RiLmNvbS9kb2NzL2RyaXZlcnMvbm9kZS9jdXJyZW50L2Z1bmRhbWVudGFscy9tb25pdG9yaW5nLykgZm9yIGF2YWlsYWJsZSBldmVudHMuJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5EYXRhYmFzZU9wdGlvbnMgPSB7XG4gIGFsbG93UHVibGljRXhwbGFpbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BTExPV19QVUJMSUNfRVhQTEFJTicsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgdG8gYWxsb3cgYFBhcnNlLlF1ZXJ5LmV4cGxhaW5gIHdpdGhvdXQgbWFzdGVyIGtleS48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIEVuYWJsaW5nIHRoaXMgb3B0aW9uIG1heSBleHBvc2Ugc2Vuc2l0aXZlIHF1ZXJ5IHBlcmZvcm1hbmNlIGRhdGEgdG8gdW5hdXRob3JpemVkIHVzZXJzIGFuZCBjb3VsZCBwb3RlbnRpYWxseSBiZSBleHBsb2l0ZWQgZm9yIG1hbGljaW91cyBwdXJwb3Nlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBhcHBOYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0FQUF9OQU1FJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiB0aGF0IGNyZWF0ZWQgdGhpcyBNb25nb0NsaWVudCBpbnN0YW5jZS4nLFxuICB9LFxuICBhdXRoTWVjaGFuaXNtOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0FVVEhfTUVDSEFOSVNNJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc20gdGhhdCBNb25nb0RCIHdpbGwgdXNlIHRvIGF1dGhlbnRpY2F0ZSB0aGUgY29ubmVjdGlvbi4nLFxuICB9LFxuICBhdXRoTWVjaGFuaXNtUHJvcGVydGllczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BVVRIX01FQ0hBTklTTV9QUk9QRVJUSUVTJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgYXV0aE1lY2hhbmlzbSBhcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGNvbG9uLXNlcGFyYXRlZCBrZXktdmFsdWUgcGFpcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICBhdXRoU291cmNlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0FVVEhfU09VUkNFJyxcbiAgICBoZWxwOiBcIlRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgZGF0YWJhc2UgbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXIncyBjcmVkZW50aWFscy5cIixcbiAgfSxcbiAgYXV0b1NlbGVjdEZhbWlseToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BVVRPX1NFTEVDVF9GQU1JTFknLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB3aGV0aGVyIHRoZSBzb2NrZXQgYXR0ZW1wdHMgdG8gY29ubmVjdCB0byBJUHY2IGFuZCBJUHY0IGFkZHJlc3NlcyB1bnRpbCBhIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQuIElmIGF2YWlsYWJsZSwgdGhlIGRyaXZlciB3aWxsIHNlbGVjdCB0aGUgZmlyc3QgSVB2NiBhZGRyZXNzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIGF1dG9TZWxlY3RGYW1pbHlBdHRlbXB0VGltZW91dDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BVVRPX1NFTEVDVF9GQU1JTFlfQVRURU1QVF9USU1FT1VUJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3IgYSBjb25uZWN0aW9uIGF0dGVtcHQgdG8gZmluaXNoIGJlZm9yZSB0cnlpbmcgdGhlIG5leHQgYWRkcmVzcyB3aGVuIHVzaW5nIHRoZSBhdXRvU2VsZWN0RmFtaWx5IG9wdGlvbi4gSWYgc2V0IHRvIGEgcG9zaXRpdmUgaW50ZWdlciBsZXNzIHRoYW4gMTAsIHRoZSB2YWx1ZSAxMCBpcyB1c2VkIGluc3RlYWQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdhdXRvU2VsZWN0RmFtaWx5QXR0ZW1wdFRpbWVvdXQnKSxcbiAgfSxcbiAgYmF0Y2hTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0JBVENIX1NJWkUnLFxuICAgIGhlbHA6ICdUaGUgbnVtYmVyIG9mIGRvY3VtZW50cyBwZXIgYmF0Y2ggZm9yIE1vbmdvREIgY3Vyc29yIGBnZXRNb3JlYCBvcGVyYXRpb25zLiBBIGxvd2VyIHZhbHVlIHJlZHVjZXMgbWVtb3J5IHVzYWdlIHBlciBiYXRjaDsgYSBoaWdoZXIgdmFsdWUgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIG5ldHdvcmsgcm91bmQtdHJpcHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdiYXRjaFNpemUnKSxcbiAgICBkZWZhdWx0OiAxMDAwLFxuICB9LFxuICBjbGllbnRNZXRhZGF0YToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DTElFTlRfTUVUQURBVEEnLFxuICAgIGhlbHA6IFwiQ3VzdG9tIG1ldGFkYXRhIHRvIGFwcGVuZCB0byBkYXRhYmFzZSBjbGllbnQgY29ubmVjdGlvbnMgZm9yIGlkZW50aWZ5aW5nIFBhcnNlIFNlcnZlciBpbnN0YW5jZXMgaW4gZGF0YWJhc2UgbG9ncy4gSWYgc2V0LCB0aGlzIG1ldGFkYXRhIHdpbGwgYmUgdmlzaWJsZSBpbiBkYXRhYmFzZSBsb2dzIGR1cmluZyBjb25uZWN0aW9uIGhhbmRzaGFrZXMuIFRoaXMgY2FuIGhlbHAgd2l0aCBkZWJ1Z2dpbmcgYW5kIG1vbml0b3JpbmcgaW4gZGVwbG95bWVudHMgd2l0aCBtdWx0aXBsZSBkYXRhYmFzZSBjbGllbnRzLiBTZXQgYG5hbWVgIHRvIGlkZW50aWZ5IHlvdXIgYXBwbGljYXRpb24gKGUuZy4sICdNeUFwcCcpIGFuZCBgdmVyc2lvbmAgdG8geW91ciBhcHBsaWNhdGlvbidzIHZlcnNpb24uIExlYXZlIHVuZGVmaW5lZCAoZGVmYXVsdCkgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUgYW5kIGF2b2lkIHRoZSBhZGRpdGlvbmFsIGRhdGEgdHJhbnNmZXIgb3ZlcmhlYWQuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnRGF0YWJhc2VPcHRpb25zQ2xpZW50TWV0YWRhdGEnLFxuICB9LFxuICBjb21wcmVzc29yczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DT01QUkVTU09SUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSBhbiBhcnJheSBvciBjb21tYS1kZWxpbWl0ZWQgc3RyaW5nIG9mIGNvbXByZXNzb3JzIHRvIGVuYWJsZSBuZXR3b3JrIGNvbXByZXNzaW9uIGZvciBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhpcyBjbGllbnQgYW5kIGEgbW9uZ29kL21vbmdvcyBpbnN0YW5jZS4nLFxuICB9LFxuICBjb25uZWN0VGltZW91dE1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NPTk5FQ1RfVElNRU9VVF9NUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdG8gd2FpdCB0byBlc3RhYmxpc2ggYSBzaW5nbGUgVENQIHNvY2tldCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgYmVmb3JlIHJhaXNpbmcgYW4gZXJyb3IuIFNwZWNpZnlpbmcgMCBkaXNhYmxlcyB0aGUgY29ubmVjdGlvbiB0aW1lb3V0LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignY29ubmVjdFRpbWVvdXRNUycpLFxuICB9LFxuICBjcmVhdGVJbmRleEF1dGhEYXRhVW5pcXVlbmVzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfQVVUSF9EQVRBX1VOSVFVRU5FU1MnLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHVuaXF1ZSBpbmRleGVzIG9uIHRoZSBhdXRoRGF0YSBmaWVsZHMgb2YgdGhlIF9Vc2VyIGNvbGxlY3Rpb24gZm9yIGVhY2ggY29uZmlndXJlZCBhdXRoIHByb3ZpZGVyIG9uIHNlcnZlciBzdGFydCwgaW5jbHVkaW5nIGBhbm9ueW1vdXNgIHdoZW4gYW5vbnltb3VzIHVzZXJzIGFyZSBlbmFibGVkLiBUaGVzZSBpbmRleGVzIHByZXZlbnQgcmFjZSBjb25kaXRpb25zIGR1cmluZyBjb25jdXJyZW50IHNpZ251cHMgd2l0aCB0aGUgc2FtZSBhdXRoRGF0YS4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4ZXMsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4ZXMgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGNyZWF0ZUluZGV4Um9sZU5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1JPTEVfTkFNRScsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYSB1bmlxdWUgaW5kZXggb24gdGhlIG5hbWUgZmllbGQgb2YgdGhlIF9Sb2xlIGNvbGxlY3Rpb24gb24gc2VydmVyIHN0YXJ0LiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGluZGV4IGNyZWF0aW9uLiBEZWZhdWx0IGlzIGB0cnVlYC48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBjcmVhdGVJbmRleFVzZXJFbWFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9FTUFJTCcsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgaW5kZXhlcyBvbiB0aGUgZW1haWwgZmllbGQgb2YgdGhlIF9Vc2VyIGNvbGxlY3Rpb24gb24gc2VydmVyIHN0YXJ0LiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGluZGV4IGNyZWF0aW9uLiBEZWZhdWx0IGlzIGB0cnVlYC48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBjcmVhdGVJbmRleFVzZXJFbWFpbENhc2VJbnNlbnNpdGl2ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9FTUFJTF9DQVNFX0lOU0VOU0lUSVZFJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGNhc2UtaW5zZW5zaXRpdmUgaW5kZXggb24gdGhlIGVtYWlsIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyRW1haWxWZXJpZnlUb2tlbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9FTUFJTF9WRVJJRllfVE9LRU4nLFxuICAgIGhlbHA6ICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFuIGluZGV4IG9uIHRoZSBfZW1haWxfdmVyaWZ5X3Rva2VuIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyUGFzc3dvcmRSZXNldFRva2VuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NSRUFURV9JTkRFWF9VU0VSX1BBU1NXT1JEX1JFU0VUX1RPS0VOJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhbiBpbmRleCBvbiB0aGUgX3BlcmlzaGFibGVfdG9rZW4gZmllbGQgb2YgdGhlIF9Vc2VyIGNvbGxlY3Rpb24gb24gc2VydmVyIHN0YXJ0LiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGluZGV4IGNyZWF0aW9uLiBEZWZhdWx0IGlzIGB0cnVlYC48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBjcmVhdGVJbmRleFVzZXJVc2VybmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9VU0VSTkFNRScsXG4gICAgaGVscDogJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgaW5kZXhlcyBvbiB0aGUgdXNlcm5hbWUgZmllbGQgb2YgdGhlIF9Vc2VyIGNvbGxlY3Rpb24gb24gc2VydmVyIHN0YXJ0LiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGluZGV4IGNyZWF0aW9uLiBEZWZhdWx0IGlzIGB0cnVlYC48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBjcmVhdGVJbmRleFVzZXJVc2VybmFtZUNhc2VJbnNlbnNpdGl2ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9VU0VSTkFNRV9DQVNFX0lOU0VOU0lUSVZFJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGNhc2UtaW5zZW5zaXRpdmUgaW5kZXggb24gdGhlIHVzZXJuYW1lIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZGlyZWN0Q29ubmVjdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9ESVJFQ1RfQ09OTkVDVElPTicsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZm9yY2UgYSBTaW5nbGUgdG9wb2xvZ3kgdHlwZSB3aXRoIGEgY29ubmVjdGlvbiBzdHJpbmcgY29udGFpbmluZyBvbmUgaG9zdC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICBkaXNhYmxlSW5kZXhGaWVsZFZhbGlkYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfRElTQUJMRV9JTkRFWF9GSUVMRF9WQUxJREFUSU9OJyxcbiAgICBoZWxwOiAnU2V0IHRvIGB0cnVlYCB0byBkaXNhYmxlIHZhbGlkYXRpb24gb2YgaW5kZXggZmllbGRzLiBXaGVuIGRpc2FibGVkLCBpbmRleGVzIGNhbiBiZSBjcmVhdGVkIGV2ZW4gaWYgdGhlIGZpZWxkcyBkbyBub3QgZXhpc3QgaW4gdGhlIHNjaGVtYS4gVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gY3JlYXRpbmcgaW5kZXhlcyBvbiBmaWVsZHMgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIGVuYWJsZVNjaGVtYUhvb2tzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0VOQUJMRV9TQ0hFTUFfSE9PS1MnLFxuICAgIGhlbHA6ICdFbmFibGVzIGRhdGFiYXNlIHJlYWwtdGltZSBob29rcyB0byB1cGRhdGUgc2luZ2xlIHNjaGVtYSBjYWNoZS4gU2V0IHRvIGB0cnVlYCBpZiB1c2luZyBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXJzIGluc3RhbmNlcyBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgZGF0YWJhc2UuIEZhaWxpbmcgdG8gZG8gc28gd2lsbCBjYXVzZSBhIHNjaGVtYSBjaGFuZ2UgdG8gbm90IHByb3BhZ2F0ZSB0byBhbGwgaW5zdGFuY2VzIGFuZCByZS1zeW5jaW5nIHdpbGwgb25seSBoYXBwZW4gd2hlbiB0aGUgaW5zdGFuY2VzIHJlc3RhcnQuIFRvIHVzZSB0aGlzIGZlYXR1cmUgd2l0aCBNb25nb0RCLCBhIHJlcGxpY2Egc2V0IGNsdXN0ZXIgd2l0aCBbY2hhbmdlIHN0cmVhbV0oaHR0cHM6Ly9kb2NzLm1vbmdvZGIuY29tL21hbnVhbC9jaGFuZ2VTdHJlYW1zLyNhdmFpbGFiaWxpdHkpIHN1cHBvcnQgaXMgcmVxdWlyZWQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZm9yY2VTZXJ2ZXJPYmplY3RJZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9GT1JDRV9TRVJWRVJfT0JKRUNUX0lEJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBmb3JjZSBzZXJ2ZXIgdG8gYXNzaWduIF9pZCB2YWx1ZXMgaW5zdGVhZCBvZiBkcml2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgaGVhcnRiZWF0RnJlcXVlbmN5TVM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfSEVBUlRCRUFUX0ZSRVFVRU5DWV9NUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgZnJlcXVlbmN5IGluIG1pbGxpc2Vjb25kcyBhdCB3aGljaCB0aGUgZHJpdmVyIGNoZWNrcyB0aGUgc3RhdGUgb2YgdGhlIE1vbmdvREIgZGVwbG95bWVudC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2hlYXJ0YmVhdEZyZXF1ZW5jeU1TJyksXG4gIH0sXG4gIGxvYWRCYWxhbmNlZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9MT0FEX0JBTEFOQ0VEJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBpbnN0cnVjdCB0aGUgZHJpdmVyIGl0IGlzIGNvbm5lY3RpbmcgdG8gYSBsb2FkIGJhbGFuY2VyIGZyb250aW5nIGEgbW9uZ29zIGxpa2Ugc2VydmljZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICBsb2NhbFRocmVzaG9sZE1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0xPQ0FMX1RIUkVTSE9MRF9NUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgc2l6ZSAoaW4gbWlsbGlzZWNvbmRzKSBvZiB0aGUgbGF0ZW5jeSB3aW5kb3cgZm9yIHNlbGVjdGluZyBhbW9uZyBtdWx0aXBsZSBzdWl0YWJsZSBNb25nb0RCIGluc3RhbmNlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2xvY2FsVGhyZXNob2xkTVMnKSxcbiAgfSxcbiAgbG9nQ2xpZW50RXZlbnRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0xPR19DTElFTlRfRVZFTlRTJyxcbiAgICBoZWxwOiAnQW4gYXJyYXkgb2YgTW9uZ29EQiBjbGllbnQgZXZlbnQgY29uZmlndXJhdGlvbnMgdG8gZW5hYmxlIGxvZ2dpbmcgb2Ygc3BlY2lmaWMgZXZlbnRzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIHR5cGU6ICdMb2dDbGllbnRFdmVudFtdJyxcbiAgfSxcbiAgbWF4Q29ubmVjdGluZzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9NQVhfQ09OTkVDVElORycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbWF4aW11bSBudW1iZXIgb2YgY29ubmVjdGlvbnMgdGhhdCBtYXkgYmUgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgZXN0YWJsaXNoZWQgY29uY3VycmVudGx5IGJ5IHRoZSBjb25uZWN0aW9uIHBvb2wuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhDb25uZWN0aW5nJyksXG4gIH0sXG4gIG1heElkbGVUaW1lTVM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTUFYX0lETEVfVElNRV9NUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgYSBjb25uZWN0aW9uIGNhbiByZW1haW4gaWRsZSBpbiB0aGUgY29ubmVjdGlvbiBwb29sIGJlZm9yZSBiZWluZyByZW1vdmVkIGFuZCBjbG9zZWQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhJZGxlVGltZU1TJyksXG4gIH0sXG4gIG1heFBvb2xTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX01BWF9QT09MX1NJWkUnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb3BlbmVkLCBjYWNoZWQsIHJlYWR5LXRvLXVzZSBkYXRhYmFzZSBjb25uZWN0aW9ucyBtYWludGFpbmVkIGJ5IHRoZSBkcml2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhQb29sU2l6ZScpLFxuICB9LFxuICBtYXhTdGFsZW5lc3NTZWNvbmRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX01BWF9TVEFMRU5FU1NfU0VDT05EUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc2V0IHRoZSBtYXhpbXVtIHJlcGxpY2F0aW9uIGxhZyBmb3IgcmVhZHMgZnJvbSBzZWNvbmRhcnkgbm9kZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhTdGFsZW5lc3NTZWNvbmRzJyksXG4gIH0sXG4gIG1heFRpbWVNUzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9NQVhfVElNRV9NUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc2V0IGEgY3VtdWxhdGl2ZSB0aW1lIGxpbWl0IGluIG1pbGxpc2Vjb25kcyBmb3IgcHJvY2Vzc2luZyBvcGVyYXRpb25zIG9uIGEgY3Vyc29yLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4VGltZU1TJyksXG4gIH0sXG4gIG1pblBvb2xTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX01JTl9QT09MX1NJWkUnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB0aGUgbWluaW11bSBudW1iZXIgb2Ygb3BlbmVkLCBjYWNoZWQsIHJlYWR5LXRvLXVzZSBkYXRhYmFzZSBjb25uZWN0aW9ucyBtYWludGFpbmVkIGJ5IHRoZSBkcml2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtaW5Qb29sU2l6ZScpLFxuICB9LFxuICBwcm94eUhvc3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUFJPWFlfSE9TVCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gY29uZmlndXJlIGEgU29ja3M1IHByb3h5IGhvc3QgdXNlZCBmb3IgY3JlYXRpbmcgVENQIGNvbm5lY3Rpb25zLicsXG4gIH0sXG4gIHByb3h5UGFzc3dvcmQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUFJPWFlfUEFTU1dPUkQnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhIFNvY2tzNSBwcm94eSBwYXNzd29yZCB3aGVuIHRoZSBwcm94eSByZXF1aXJlcyB1c2VybmFtZS9wYXNzd29yZCBhdXRoZW50aWNhdGlvbi4nLFxuICB9LFxuICBwcm94eVBvcnQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUFJPWFlfUE9SVCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gY29uZmlndXJlIGEgU29ja3M1IHByb3h5IHBvcnQgdXNlZCBmb3IgY3JlYXRpbmcgVENQIGNvbm5lY3Rpb25zLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncHJveHlQb3J0JyksXG4gIH0sXG4gIHByb3h5VXNlcm5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUFJPWFlfVVNFUk5BTUUnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhIFNvY2tzNSBwcm94eSB1c2VybmFtZSB3aGVuIHRoZSBwcm94eSByZXF1aXJlcyB1c2VybmFtZS9wYXNzd29yZCBhdXRoZW50aWNhdGlvbi4nLFxuICB9LFxuICByZWFkQ29uY2VybkxldmVsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1JFQURfQ09OQ0VSTl9MRVZFTCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbGV2ZWwgb2YgaXNvbGF0aW9uLicsXG4gIH0sXG4gIHJlYWRQcmVmZXJlbmNlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1JFQURfUFJFRkVSRU5DRScsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgcmVhZCBwcmVmZXJlbmNlcyBmb3IgdGhpcyBjb25uZWN0aW9uLicsXG4gIH0sXG4gIHJlYWRQcmVmZXJlbmNlVGFnczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRUFEX1BSRUZFUkVOQ0VfVEFHUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgdGFncyBkb2N1bWVudCBhcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGNvbG9uLXNlcGFyYXRlZCBrZXktdmFsdWUgcGFpcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIHJlcGxpY2FTZXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUkVQTElDQV9TRVQnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHJlcGxpY2Egc2V0LCBpZiB0aGUgbW9uZ29kIGlzIGEgbWVtYmVyIG9mIGEgcmVwbGljYSBzZXQuJyxcbiAgfSxcbiAgcmV0cnlSZWFkczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRVRSWV9SRUFEUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZW5hYmxlIHJldHJ5YWJsZSByZWFkcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICByZXRyeVdyaXRlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRVRSWV9XUklURVMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB3aGV0aGVyIHRvIHJldHJ5IGZhaWxlZCB3cml0ZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgc2NoZW1hQ2FjaGVUdGw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfU0NIRU1BX0NBQ0hFX1RUTCcsXG4gICAgaGVscDogJ1RoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSBzY2hlbWEgY2FjaGUgZXhwaXJlcyBhbmQgd2lsbCBiZSByZWZldGNoZWQgZnJvbSB0aGUgZGF0YWJhc2UuIFVzZSB0aGlzIG9wdGlvbiBpZiB1c2luZyBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXJzIGluc3RhbmNlcyBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgZGF0YWJhc2UuIEEgbG93IGR1cmF0aW9uIHdpbGwgY2F1c2UgdGhlIHNjaGVtYSBjYWNoZSB0byBiZSB1cGRhdGVkIHRvbyBvZnRlbiwgY2F1c2luZyB1bm5lY2Vzc2FyeSBkYXRhYmFzZSByZWFkcy4gQSBoaWdoIGR1cmF0aW9uIHdpbGwgY2F1c2UgdGhlIHNjaGVtYSB0byBiZSB1cGRhdGVkIHRvbyByYXJlbHksIGluY3JlYXNpbmcgdGhlIHRpbWUgcmVxdWlyZWQgdW50aWwgc2NoZW1hIGNoYW5nZXMgcHJvcGFnYXRlIHRvIGFsbCBzZXJ2ZXIgaW5zdGFuY2VzLiBUaGlzIGZlYXR1cmUgY2FuIGJlIHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgb3IgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgb3B0aW9uIGBlbmFibGVTY2hlbWFIb29rc2AuIERlZmF1bHQgaXMgaW5maW5pdGUgd2hpY2ggbWVhbnMgdGhlIHNjaGVtYSBjYWNoZSBuZXZlciBleHBpcmVzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignc2NoZW1hQ2FjaGVUdGwnKSxcbiAgfSxcbiAgc2VydmVyTW9uaXRvcmluZ01vZGU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfU0VSVkVSX01PTklUT1JJTkdfTU9ERScsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gaW5zdHJ1Y3QgdGhlIGRyaXZlciBtb25pdG9ycyB0byB1c2UgYSBzcGVjaWZpYyBtb25pdG9yaW5nIG1vZGUuJyxcbiAgfSxcbiAgc2VydmVyU2VsZWN0aW9uVGltZW91dE1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NFUlZFUl9TRUxFQ1RJT05fVElNRU9VVF9NUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciBhIHNlcnZlciB0byBiZSBjb25zaWRlcmVkIHN1aXRhYmxlIGZvciBzZWxlY3Rpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdzZXJ2ZXJTZWxlY3Rpb25UaW1lb3V0TVMnKSxcbiAgfSxcbiAgc29ja2V0VGltZW91dE1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NPQ0tFVF9USU1FT1VUX01TJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCBzcGVudCBhdHRlbXB0aW5nIHRvIHNlbmQgb3IgcmVjZWl2ZSBvbiBhIHNvY2tldCBiZWZvcmUgdGltaW5nIG91dC4gU3BlY2lmeWluZyAwIG1lYW5zIG5vIHRpbWVvdXQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdzb2NrZXRUaW1lb3V0TVMnKSxcbiAgfSxcbiAgc3J2TWF4SG9zdHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfU1JWX01BWF9IT1NUUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbWF4aW11bSBudW1iZXIgb2YgaG9zdHMgdG8gY29ubmVjdCB0byB3aGVuIHVzaW5nIGFuIHNydiBjb25uZWN0aW9uIHN0cmluZywgYSBzZXR0aW5nIG9mIDAgbWVhbnMgdW5saW1pdGVkIGhvc3RzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignc3J2TWF4SG9zdHMnKSxcbiAgfSxcbiAgc3J2U2VydmljZU5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfU1JWX1NFUlZJQ0VfTkFNRScsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gbW9kaWZ5IHRoZSBzcnYgVVJJIHNlcnZpY2UgbmFtZS4nLFxuICB9LFxuICBzc2w6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfU1NMJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBlbmFibGUgb3IgZGlzYWJsZSBUTFMvU1NMIGZvciB0aGUgY29ubmVjdGlvbiAoZXF1aXZhbGVudCB0byB0bHMgb3B0aW9uKS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICB0bHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVExTJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBlbmFibGUgb3IgZGlzYWJsZSBUTFMvU1NMIGZvciB0aGUgY29ubmVjdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICB0bHNBbGxvd0ludmFsaWRDZXJ0aWZpY2F0ZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVExTX0FMTE9XX0lOVkFMSURfQ0VSVElGSUNBVEVTJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBieXBhc3MgdmFsaWRhdGlvbiBvZiB0aGUgY2VydGlmaWNhdGVzIHByZXNlbnRlZCBieSB0aGUgbW9uZ29kL21vbmdvcyBpbnN0YW5jZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICB0bHNBbGxvd0ludmFsaWRIb3N0bmFtZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVExTX0FMTE9XX0lOVkFMSURfSE9TVE5BTUVTJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBkaXNhYmxlIGhvc3RuYW1lIHZhbGlkYXRpb24gb2YgdGhlIGNlcnRpZmljYXRlIHByZXNlbnRlZCBieSB0aGUgbW9uZ29kL21vbmdvcyBpbnN0YW5jZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICB0bHNDQUZpbGU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVExTX0NBRklMRScsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgYSBsb2NhbCAucGVtIGZpbGUgdGhhdCBjb250YWlucyB0aGUgcm9vdCBjZXJ0aWZpY2F0ZSBjaGFpbiBmcm9tIHRoZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkuJyxcbiAgfSxcbiAgdGxzQ2VydGlmaWNhdGVLZXlGaWxlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19DRVJUSUZJQ0FURV9LRVlfRklMRScsXG4gICAgaGVscDogXCJUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIGEgbG9jYWwgLnBlbSBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNsaWVudCdzIFRMUy9TU0wgY2VydGlmaWNhdGUgYW5kIGtleS5cIixcbiAgfSxcbiAgdGxzQ2VydGlmaWNhdGVLZXlGaWxlUGFzc3dvcmQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVExTX0NFUlRJRklDQVRFX0tFWV9GSUxFX1BBU1NXT1JEJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBwYXNzd29yZCB0byBkZWNyeXB0IHRoZSB0bHNDZXJ0aWZpY2F0ZUtleUZpbGUuJyxcbiAgfSxcbiAgdGxzSW5zZWN1cmU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVExTX0lOU0VDVVJFJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBkaXNhYmxlIHZhcmlvdXMgY2VydGlmaWNhdGUgdmFsaWRhdGlvbnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgd2FpdFF1ZXVlVGltZW91dE1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1dBSVRfUVVFVUVfVElNRU9VVF9NUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IGEgdGhyZWFkIGNhbiB3YWl0IGZvciBhIGNvbm5lY3Rpb24gdG8gYmVjb21lIGF2YWlsYWJsZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3dhaXRRdWV1ZVRpbWVvdXRNUycpLFxuICB9LFxuICB6bGliQ29tcHJlc3Npb25MZXZlbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9aTElCX0NPTVBSRVNTSU9OX0xFVkVMJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBjb21wcmVzc2lvbiBsZXZlbCBpZiB1c2luZyB6bGliIGZvciBuZXR3b3JrIGNvbXByZXNzaW9uICgwLTkpLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignemxpYkNvbXByZXNzaW9uTGV2ZWwnKSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5EYXRhYmFzZU9wdGlvbnNDbGllbnRNZXRhZGF0YSA9IHtcbiAgbmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DTElFTlRfTUVUQURBVEFfTkFNRScsXG4gICAgaGVscDogXCJUaGUgbmFtZSB0byBpZGVudGlmeSB5b3VyIGFwcGxpY2F0aW9uIGluIGRhdGFiYXNlIGxvZ3MgKGUuZy4sICdNeUFwcCcpLlwiLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICB2ZXJzaW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NMSUVOVF9NRVRBREFUQV9WRVJTSU9OJyxcbiAgICBoZWxwOiBcIlRoZSB2ZXJzaW9uIG9mIHlvdXIgYXBwbGljYXRpb24gKGUuZy4sICcxLjAuMCcpLlwiLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkF1dGhBZGFwdGVyID0ge1xuICBlbmFibGVkOiB7XG4gICAgaGVscDogJ0lzIGB0cnVlYCBpZiB0aGUgYXV0aCBhZGFwdGVyIGlzIGVuYWJsZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuTG9nTGV2ZWxzID0ge1xuICBjbG91ZEZ1bmN0aW9uRXJyb3I6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMU19DTE9VRF9GVU5DVElPTl9FUlJPUicsXG4gICAgaGVscDogJ0xvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIEZ1bmN0aW9ucyBvbiBlcnJvci4gRGVmYXVsdCBpcyBgZXJyb3JgLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy4nLFxuICAgIGRlZmF1bHQ6ICdlcnJvcicsXG4gIH0sXG4gIGNsb3VkRnVuY3Rpb25TdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfQ0xPVURfRlVOQ1RJT05fU1VDQ0VTUycsXG4gICAgaGVscDogJ0xvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIEZ1bmN0aW9ucyBvbiBzdWNjZXNzLiBEZWZhdWx0IGlzIGBpbmZvYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuJyxcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gIH0sXG4gIHNpZ251cFVzZXJuYW1lVGFrZW46IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMU19TSUdOVVBfVVNFUk5BTUVfVEFLRU4nLFxuICAgIGhlbHA6ICdMb2cgbGV2ZWwgdXNlZCB3aGVuIGEgc2lnbi11cCBmYWlscyBiZWNhdXNlIHRoZSB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cy4gRGVmYXVsdCBpcyBgaW5mb2AuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLicsXG4gICAgZGVmYXVsdDogJ2luZm8nLFxuICB9LFxuICB0cmlnZ2VyQWZ0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMU19UUklHR0VSX0FGVEVSJyxcbiAgICBoZWxwOiAnTG9nIGxldmVsIHVzZWQgYnkgdGhlIENsb3VkIENvZGUgVHJpZ2dlcnMgYGFmdGVyU2F2ZWAsIGBhZnRlckRlbGV0ZWAsIGBhZnRlckZpbmRgLCBgYWZ0ZXJMb2dvdXRgLiBEZWZhdWx0IGlzIGBpbmZvYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuJyxcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gIH0sXG4gIHRyaWdnZXJCZWZvcmVFcnJvcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxTX1RSSUdHRVJfQkVGT1JFX0VSUk9SJyxcbiAgICBoZWxwOiAnTG9nIGxldmVsIHVzZWQgYnkgdGhlIENsb3VkIENvZGUgVHJpZ2dlcnMgYGJlZm9yZVNhdmVgLCBgYmVmb3JlRGVsZXRlYCwgYGJlZm9yZUZpbmRgLCBgYmVmb3JlTG9naW5gIG9uIGVycm9yLiBEZWZhdWx0IGlzIGBlcnJvcmAuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLicsXG4gICAgZGVmYXVsdDogJ2Vycm9yJyxcbiAgfSxcbiAgdHJpZ2dlckJlZm9yZVN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMU19UUklHR0VSX0JFRk9SRV9TVUNDRVNTJyxcbiAgICBoZWxwOiAnTG9nIGxldmVsIHVzZWQgYnkgdGhlIENsb3VkIENvZGUgVHJpZ2dlcnMgYGJlZm9yZVNhdmVgLCBgYmVmb3JlRGVsZXRlYCwgYGJlZm9yZUZpbmRgLCBgYmVmb3JlTG9naW5gIG9uIHN1Y2Nlc3MuIERlZmF1bHQgaXMgYGluZm9gLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy4nLFxuICAgIGRlZmF1bHQ6ICdpbmZvJyxcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFdBQVcsQ0FBQztBQUNsQ0MsTUFBTSxDQUFDQyxPQUFPLENBQUNDLGFBQWEsR0FBRztFQUM3QkMsY0FBYyxFQUFFO0lBQ2RDLEdBQUcsRUFBRSxxQ0FBcUM7SUFDMUNDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDREMsZUFBZSxFQUFFO0lBQ2ZGLEdBQUcsRUFBRSxzQ0FBc0M7SUFDM0NDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDREUsV0FBVyxFQUFFO0lBQ1hILEdBQUcsRUFBRSxpQ0FBaUM7SUFDdENDLElBQUksRUFBRSxnR0FBZ0c7SUFDdEdHLFFBQVEsRUFBRSxJQUFJO0lBQ2RDLE1BQU0sRUFBRVgsT0FBTyxDQUFDWSxZQUFZO0lBQzVCQyxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RD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
|