@openkaiden/opnshll-sdk 0.1.3 → 0.1.5

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.
@@ -8,7 +8,7 @@ import { file_sandbox } from "./sandbox_pb.js";
8
8
  /**
9
9
  * Describes the file openshell.proto.
10
10
  */
11
- export const file_openshell = /*@__PURE__*/ fileDesc("Cg9vcGVuc2hlbGwucHJvdG8SDG9wZW5zaGVsbC52MSIaChhJc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QiegoZSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZRITCgV0b2tlbhgBIAEoCUIEiLUYARIzCg9leHBpcmF0aW9uX3RpbWUYZiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIAhADUg1leHBpcmVzX2F0X21zIj0KGlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Eh8KF2V4dGVuc2lvbl9zZXJ2aWNlX25hbWVzGAEgAygJIuoCChtSZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2USEwoFdG9rZW4YASABKAlCBIi1GAESMwoPZXhwaXJhdGlvbl90aW1lGGYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJHChVleHRlbnNpb25fY3JlZGVudGlhbHMYAyADKAsyKC5vcGVuc2hlbGwudjEuRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwSGwoNc2FuZGJveF90b2tlbhgEIAEoCUIEiLUYARI7ChdzYW5kYm94X2V4cGlyYXRpb25fdGltZRhpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKc2Vzc2lvbl9pZBgGIAEoCRIYChBjcmVkZW50aWFsX2Vwb2NoGAcgASgESgQIAhADSgQIBRAGUg1leHBpcmVzX2F0X21zUhVzYW5kYm94X2V4cGlyZXNfYXRfbXMiDwoNSGVhbHRoUmVxdWVzdCJOCg5IZWFsdGhSZXNwb25zZRIrCgZzdGF0dXMYASABKA4yGy5vcGVuc2hlbGwudjEuU2VydmljZVN0YXR1cxIPCgd2ZXJzaW9uGAIgASgJIhcKFUdldEN1cnJlbnRVc2VyUmVxdWVzdCJ5ChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg0KBXJvbGVzGAMgAygJEg4KBnNjb3BlcxgEIAMoCRIZChFpZGVudGl0eV9wcm92aWRlchgFIAEoCSIXChVHZXRHYXRld2F5SW5mb1JlcXVlc3Qi0wEKFkdldEdhdGV3YXlJbmZvUmVzcG9uc2USKwoGc3RhdHVzGAEgASgOMhsub3BlbnNoZWxsLnYxLlNlcnZpY2VTdGF0dXMSFwoPZ2F0ZXdheV92ZXJzaW9uGAIgASgJEjgKD2NvbXB1dGVfZHJpdmVycxgDIAMoCzIfLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVySW5mbxI5CgpleHRlbnNpb25zGAQgAygLMiUub3BlbnNoZWxsLnYxLk5lZ290aWF0ZWRFeHRlbnNpb25JbmZvIokCChdOZWdvdGlhdGVkRXh0ZW5zaW9uSW5mbxIpCgRraW5kGAEgASgOMhsub3BlbnNoZWxsLnYxLkV4dGVuc2lvbktpbmQSFwoPY29uZmlndXJlZF9uYW1lGAIgASgJEhsKE2ltcGxlbWVudGF0aW9uX25hbWUYAyABKAkSHgoWaW1wbGVtZW50YXRpb25fdmVyc2lvbhgEIAEoCRIWCg5wcm90b2NvbF9tYWpvchgFIAEoDRIWCg5wcm90b2NvbF9taW5vchgGIAEoDRIeChZzdXBwb3J0ZWRfY2FwYWJpbGl0aWVzGAcgAygJEh0KFXJlcXVpcmVkX2NhcGFiaWxpdGllcxgIIAMoCSJgChFDb21wdXRlRHJpdmVySW5mbxIMCgRuYW1lGAEgASgJEj0KDGNhcGFiaWxpdGllcxgCIAEoCzInLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzIosBChlDb21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzEhMKC2RyaXZlcl9uYW1lGAEgASgJEhYKDmRyaXZlcl92ZXJzaW9uGAIgASgJEkEKFXJlc291cmNlX2NhcGFiaWxpdGllcxgDIAEoCzIiLm9wZW5zaGVsbC52MS5SZXNvdXJjZUNhcGFiaWxpdGllcyK4AQoUUmVzb3VyY2VDYXBhYmlsaXRpZXMSMgoDY3B1GAEgASgLMiUub3BlbnNoZWxsLnYxLkNwdVJlc291cmNlQ2FwYWJpbGl0aWVzEjgKBm1lbW9yeRgCIAEoCzIoLm9wZW5zaGVsbC52MS5NZW1vcnlSZXNvdXJjZUNhcGFiaWxpdGllcxIyCgNncHUYAyABKAsyJS5vcGVuc2hlbGwudjEuR3B1UmVzb3VyY2VDYXBhYmlsaXRpZXMiMgoXQ3B1UmVzb3VyY2VDYXBhYmlsaXRpZXMSFwoPbGltaXRfc3VwcG9ydGVkGAEgASgIIjUKGk1lbW9yeVJlc291cmNlQ2FwYWJpbGl0aWVzEhcKD2xpbWl0X3N1cHBvcnRlZBgBIAEoCCJhChdHcHVSZXNvdXJjZUNhcGFiaWxpdGllcxIjChtkZWZhdWx0X3NlbGVjdGlvbl9zdXBwb3J0ZWQYASABKAgSIQoZY291bnRfc2VsZWN0aW9uX3N1cHBvcnRlZBgCIAEoCCK3AgoHU2FuZGJveBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRInCgRzcGVjGAIgASgLMhkub3BlbnNoZWxsLnYxLlNhbmRib3hTcGVjEisKBnN0YXR1cxgDIAEoCzIbLm9wZW5zaGVsbC52MS5TYW5kYm94U3RhdHVzEhwKFGhvc3Rfa2V5X2ZpbmdlcnByaW50GAYgASgJElcKHmNyZWF0ZWRfZnJvbV93b3JrbG9hZF90ZW1wbGF0ZRgUIAEoCzIvLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZVByb3ZlbmFuY2VKBAgEEAVKBAgFEAZSBXBoYXNlUhZjdXJyZW50X3BvbGljeV92ZXJzaW9uIv4DCgtTYW5kYm94U3BlYxIRCglsb2dfbGV2ZWwYASABKAkSPwoLZW52aXJvbm1lbnQYBSADKAsyKi5vcGVuc2hlbGwudjEuU2FuZGJveFNwZWMuRW52aXJvbm1lbnRFbnRyeRIvCgh0ZW1wbGF0ZRgGIAEoCzIdLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUSMwoGcG9saWN5GAcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRIRCglwcm92aWRlcnMYCCADKAkSQQoVcmVzb3VyY2VfcmVxdWlyZW1lbnRzGAkgASgLMiIub3BlbnNoZWxsLnYxLlJlc291cmNlUmVxdWlyZW1lbnRzEg8KB2NvbW1hbmQYDCADKAkSCwoDdHR5GA0gASgIEiEKGXByb3ZpZGVyX2F0dGFjaG1lbnRfZXBvY2gYDiABKAkSOgoOcmVzdGFydF9wb2xpY3kYDyABKA4yIi5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3RhcnRQb2xpY3kaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIChALSgQICxAMUgpncHVfZGV2aWNlUhZwcm9wb3NhbF9hcHByb3ZhbF9tb2RlIkoKFFJlc291cmNlUmVxdWlyZW1lbnRzEjIKA2dwdRgBIAEoCzIlLm9wZW5zaGVsbC52MS5HcHVSZXNvdXJjZVJlcXVpcmVtZW50cyI3ChdHcHVSZXNvdXJjZVJlcXVpcmVtZW50cxISCgVjb3VudBgBIAEoDUgAiAEBQggKBl9jb3VudCLaBAoPU2FuZGJveFRlbXBsYXRlEg0KBWltYWdlGAEgASgJEhoKEnJ1bnRpbWVfY2xhc3NfbmFtZRgCIAEoCRIUCgxhZ2VudF9zb2NrZXQYAyABKAkSOQoGbGFiZWxzGAQgAygLMikub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZS5MYWJlbHNFbnRyeRJDCgthbm5vdGF0aW9ucxgFIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuQW5ub3RhdGlvbnNFbnRyeRJDCgtlbnZpcm9ubWVudBgGIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuRW52aXJvbm1lbnRFbnRyeRIqCglyZXNvdXJjZXMYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhwKD3VzZXJfbmFtZXNwYWNlcxgKIAEoCEgAiAEBEi4KDWRyaXZlcl9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUISChBfdXNlcl9uYW1lc3BhY2VzSgQICRAKUhZ2b2x1bWVfY2xhaW1fdGVtcGxhdGVzIogBChdTYW5kYm94V29ya2xvYWRUZW1wbGF0ZRI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRI3CgRzcGVjGAIgASgLMikub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZFRlbXBsYXRlU3BlYyLGAQobU2FuZGJveFdvcmtsb2FkVGVtcGxhdGVTcGVjEjUKCHdvcmtsb2FkGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZENvbmZpZxIuCg1kcml2ZXJfY29uZmlnGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBJAChVkZXNpcmVkX3NlcnZpY2VfbGV2ZWwYAyABKAsyIS5vcGVuc2hlbGwudjEuU2FuZGJveFNlcnZpY2VMZXZlbCLYAQoVU2FuZGJveFdvcmtsb2FkQ29uZmlnEg0KBWltYWdlGAEgASgJEkkKC2Vudmlyb25tZW50GAIgAygLMjQub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZENvbmZpZy5FbnZpcm9ubWVudEVudHJ5EjEKCXJlc291cmNlcxgDIAEoCzIeLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzb3VyY2VzGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJjChBTYW5kYm94UmVzb3VyY2VzEgsKA2NwdRgBIAEoCRIOCgZtZW1vcnkYAiABKAkSMgoDZ3B1GAMgASgLMiUub3BlbnNoZWxsLnYxLkdwdVJlc291cmNlUmVxdWlyZW1lbnRzIkQKE1NhbmRib3hTZXJ2aWNlTGV2ZWwSLQoHc3RhcnR1cBgBIAEoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94U3RhcnR1cCJUCg5TYW5kYm94U3RhcnR1cBIvCgxyZWFkeV93aXRoaW4YASABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SEQoJbWF4X2J1cnN0GAIgASgNIksKIVNhbmRib3hXb3JrbG9hZFRlbXBsYXRlUHJvdmVuYW5jZRIMCgRuYW1lGAEgASgJEhgKEHJlc291cmNlX3ZlcnNpb24YAiABKAkingUKDVNhbmRib3hTdGF0dXMSEQoJYWdlbnRfcG9kGAIgASgJEhAKCGFnZW50X2ZkGAMgASgJEhIKCnNhbmRib3hfZmQYBCABKAkSMgoKY29uZGl0aW9ucxgFIAMoCzIeLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZGl0aW9uEikKBXBoYXNlGAYgASgOMhoub3BlbnNoZWxsLnYxLlNhbmRib3hQaGFzZRIeChZjdXJyZW50X3BvbGljeV92ZXJzaW9uGAcgASgNEiAKGG1haW5fcHJvY2Vzc19pbnN0YW5jZV9pZBgIIAEoCRIWCglleGl0X2NvZGUYCSABKAVIAIgBARI3ChFlbmRwb2ludF9zdGF0dXNlcxgKIAMoCzIcLm9wZW5zaGVsbC52MS5FbmRwb2ludFN0YXR1cxJMChdjb25maWd1cmF0aW9uX2FkbWlzc2lvbhgLIAEoCzIrLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhIkChdjb25maWd1cmF0aW9uX2FjdGl2YXRlZBgMIAEoCEgBiAEBEjcKDHByb3Zpc2lvbmluZxgNIAEoCzIhLm9wZW5zaGVsbC52MS5TYW5kYm94UHJvdmlzaW9uaW5nEhUKDXJlc3RhcnRfY291bnQYDiABKA0SNQoRbmV4dF9yZXN0YXJ0X3RpbWUYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj0KGW1haW5fcHJvY2Vzc19zdGFydGVkX3RpbWUYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9leGl0X2NvZGVCGgoYX2NvbmZpZ3VyYXRpb25fYWN0aXZhdGVkIqIBChBTYW5kYm94Q29uZGl0aW9uEgwKBHR5cGUYASABKAkSDgoGc3RhdHVzGAIgASgJEg4KBnJlYXNvbhgDIAEoCRIPCgdtZXNzYWdlGAQgASgJEjMKD3RyYW5zaXRpb25fdGltZRhpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgFEAZSFGxhc3RfdHJhbnNpdGlvbl90aW1lIoACCg1QbGF0Zm9ybUV2ZW50Ei4KCmV2ZW50X3RpbWUYZSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBnNvdXJjZRgCIAEoCRIMCgR0eXBlGAMgASgJEg4KBnJlYXNvbhgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEjsKCG1ldGFkYXRhGAYgAygLMikub3BlbnNoZWxsLnYxLlBsYXRmb3JtRXZlbnQuTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgBEAJSDHRpbWVzdGFtcF9tcyKVBAoUQ3JlYXRlU2FuZGJveFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAcgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchInCgRzcGVjGAEgASgLMhkub3BlbnNoZWxsLnYxLlNhbmRib3hTcGVjEgwKBG5hbWUYAiABKAkSPgoGbGFiZWxzGAMgAygLMi4ub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hSZXF1ZXN0LkxhYmVsc0VudHJ5EkgKC2Fubm90YXRpb25zGAQgAygLMjMub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hSZXF1ZXN0LkFubm90YXRpb25zRW50cnkSJQodYXdhaXRfbWFpbl9wcm9jZXNzX2F0dGFjaG1lbnQYBSABKAgSGQoRd29ya2xvYWRfdGVtcGxhdGUYBiABKAkSEgoKcmVxdWVzdF9pZBgIIAEoCRI/ChFzZXJ2aWNlX2V4cG9zdXJlcxgJIAMoCzIkLm9wZW5zaGVsbC52MS5TYW5kYm94U2VydmljZUV4cG9zdXJlGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIq8BChxDcmVhdGVTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISNwoIdGVtcGxhdGUYASABKAsyJS5vcGVuc2hlbGwudjEuU2FuZGJveFdvcmtsb2FkVGVtcGxhdGUSEgoKcmVxdWVzdF9pZBgDIAEoCSJtChlHZXRTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCSKgAQobTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimwEKHERlbGV0ZVNhbmRib3hUZW1wbGF0ZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAEgASgJEhUKDWFsbG93X21pc3NpbmcYAyABKAgSEgoKcmVxdWVzdF9pZBgEIAEoCSJSChdTYW5kYm94VGVtcGxhdGVSZXNwb25zZRI3Cgh0ZW1wbGF0ZRgBIAEoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZSJxChxMaXN0U2FuZGJveFRlbXBsYXRlc1Jlc3BvbnNlEjgKCXRlbXBsYXRlcxgBIAMoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiXgodRGVsZXRlU2FuZGJveFRlbXBsYXRlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQiiQEKHEJlZ2luUm9vdGZzVGFyU3RhZ2luZ1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglmaWxlX25hbWUYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoBCKoAQodQmVnaW5Sb290ZnNUYXJTdGFnaW5nUmVzcG9uc2USFQoNc3RhZ2luZ190b2tlbhgBIAEoCRITCgt1cGxvYWRfcGF0aBgCIAEoCRIRCgltYXhfYnl0ZXMYAyABKAQSMwoPZXhwaXJhdGlvbl90aW1lGGggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAQQBVINZXhwaXJlc19hdF9tcyJlChFHZXRTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkimQEKFExpc3RTYW5kYm94ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimQEKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEQoJcGFnZV9zaXplGAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkivAEKHEF0dGFjaFNhbmRib3hQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhAKCHByb3ZpZGVyGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEgoKcmVxdWVzdF9pZBgFIAEoCSK8AQocRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgDIAEoBBISCgpyZXF1ZXN0X2lkGAUgASgJIpMBChREZWxldGVTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSFQoNYWxsb3dfbWlzc2luZxgDIAEoCBISCgpyZXF1ZXN0X2lkGAQgASgJInoKElN0b3BTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSJ7ChNTdGFydFNhbmRib3hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCRISCgpyZXF1ZXN0X2lkGAMgASgJIrMBCg9TYW5kYm94UmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EkQKDHNlcnZpY2VfdXJscxgCIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UuU2VydmljZVVybHNFbnRyeRoyChBTZXJ2aWNlVXJsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiWgoVTGlzdFNhbmRib3hlc1Jlc3BvbnNlEigKCXNhbmRib3hlcxgBIAMoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSJsChxMaXN0U2FuZGJveFByb3ZpZGVyc1Jlc3BvbnNlEjMKCXByb3ZpZGVycxgBIAMoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIpEBCh1BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIYXR0YWNoZWQYAiABKAgSNgoHcmVjZWlwdBgDIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uUmVjZWlwdCKRAQodRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhAKCGRldGFjaGVkGAIgASgIEjYKB3JlY2VpcHQYAyABKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQi3QEKF1Byb3ZpZGVyRGVzaXJlZElkZW50aXR5EhIKCnNhbmRib3hfaWQYASABKAkSDwoHc2FuZGJveBgCIAEoCRIYChBhdHRhY2htZW50X2Vwb2NoGAMgASgJEhMKC3Byb3ZpZGVyX2lkGAQgASgJEiEKGXByb3ZpZGVyX3Jlc291cmNlX3ZlcnNpb24YBSABKAQSHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAYgASgEEhcKD2NvbmZpZ19yZXZpc2lvbhgHIAEoBBITCgtwb2xpY3lfaGFzaBgIIAEoCSLGAQoWQ29uZmlnU25hcHNob3RSZXZpc2lvbhI9Cg5zYW5kYm94X2NvbmZpZxgBIAEoCzIjLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlnUmV2aXNpb25IABIeChRwcm92aWRlcl9lbnZpcm9ubWVudBgCIAEoBEgAEkAKD3Byb3ZpZGVyX3RhcmdldBgDIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlckRlc2lyZWRJZGVudGl0eUgAQgsKCWNvbXBvbmVudCK9AQoVU2FuZGJveENvbmZpZ1JldmlzaW9uEhcKD2NvbmZpZ19yZXZpc2lvbhgBIAEoBBIWCg5wb2xpY3lfdmVyc2lvbhgCIAEoDRI5Cg1wb2xpY3lfc291cmNlGAMgASgOMiIub3BlbnNoZWxsLnNhbmRib3gudjEuUG9saWN5U291cmNlEh0KFWdsb2JhbF9wb2xpY3lfdmVyc2lvbhgEIAEoDRIZChFzZXR0aW5nc19yZXZpc2lvbhgFIAEoBCKQBAoVQ29uZmlnVXBkYXRlT3BlcmF0aW9uEhQKDG9wZXJhdGlvbl9pZBgBIAEoCRISCgpzYW5kYm94X2lkGAIgASgJEjAKCWNvbXBvbmVudBgDIAEoDjIdLm9wZW5zaGVsbC52MS5Db25maWdDb21wb25lbnQSPQoPdGFyZ2V0X3JldmlzaW9uGAQgASgLMiQub3BlbnNoZWxsLnYxLkNvbmZpZ1NuYXBzaG90UmV2aXNpb24SNwoFc3RhdGUYBSABKA4yKC5vcGVuc2hlbGwudjEuQ29uZmlnVXBkYXRlT3BlcmF0aW9uU3RhdGUSMQoHb3V0Y29tZRgGIAEoDjIgLm9wZW5zaGVsbC52MS5Db25maWdBcHBseU91dGNvbWUSFwoPc2FuaXRpemVkX2Vycm9yGAcgASgJEjAKDGNyZWF0ZWRfdGltZRhsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMdXBkYXRlZF90aW1lGG0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5jb21wbGV0ZWRfdGltZRhuIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgIEAlKBAgJEApKBAgKEAtSDWNyZWF0ZWRfYXRfbXNSDXVwZGF0ZWRfYXRfbXNSD2NvbXBsZXRlZF9hdF9tcyKcAgoXUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQSEgoKcmVjZWlwdF9pZBgBIAEoCRITCgttdXRhdGlvbl9pZBgCIAEoCRIQCghwcm92aWRlchgDIAEoCRIRCgl3b3Jrc3BhY2UYBCABKAkSMAoEa2luZBgFIAEoDjIiLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uS2luZBI2CgdkZXNpcmVkGAYgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyRGVzaXJlZElkZW50aXR5EjIKDnBlcnNpc3RlZF90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAcQCFIPcGVyc2lzdGVkX2F0X21zItsCChxQcm92aWRlclJlYWRpbmVzc09ic2VydmF0aW9uEhIKCnNlc3Npb25faWQYASABKAkSEAoIc2VxdWVuY2UYAiABKAQSGAoQYXR0YWNobWVudF9lcG9jaBgDIAEoCRIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YBCABKAQSFwoPY29uZmlnX3JldmlzaW9uGAUgASgEEhMKC3BvbGljeV9oYXNoGAYgASgJEh0KFWNyZWRlbnRpYWxzX2luc3RhbGxlZBgHIAEoCBIVCg1wb2xpY3lfYWN0aXZlGAggASgIEiQKHGxhdW5jaF9lbnZpcm9ubWVudF9pbnN0YWxsZWQYCSABKAgSGwoTcHJvY2Vzc19pbnN0YW5jZV9pZBgKIAEoCRI1CgZyZWFzb24YCyABKA4yJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NSZWFzb24i5AMKF1Byb3ZpZGVyUmVhZGluZXNzU3RhdHVzEjYKB3JlY2VpcHQYASABKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQSMwoFc3RhdGUYAiABKA4yJC5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NTdGF0ZRI1CgZyZWFzb24YAyABKA4yJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NSZWFzb24SPAoIb2JzZXJ2ZWQYBCABKAsyKi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NPYnNlcnZhdGlvbhIbChNuZXR3b3JrX2luc3RhbmNlX2lkGAUgASgJEjEKDW9ic2VydmVkX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmV2YWx1YXRlZF90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI2CglvcGVyYXRpb24YCCABKAsyIy5vcGVuc2hlbGwudjEuQ29uZmlnVXBkYXRlT3BlcmF0aW9uSgQIBhAHSgQIBxAIUg5vYnNlcnZlZF9hdF9tc1IPZXZhbHVhdGVkX2F0X21zIpwBCh9HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCRIQCghwcm92aWRlchgCIAEoCRISCgpyZWNlaXB0X2lkGAMgASgJIlkKIEdldFNhbmRib3hQcm92aWRlclN0YXR1c1Jlc3BvbnNlEjUKBnN0YXR1cxgBIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1N0YXR1cyJ1Ch5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRI/CgtvYnNlcnZhdGlvbhgCIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc09ic2VydmF0aW9uIuIBCh9SZXBvcnRQcm92aWRlclJlYWRpbmVzc1Jlc3BvbnNlEhkKEWFjY2VwdGVkX3NlcXVlbmNlGAEgASgEEjIKD3JlcG9ydF9pbnRlcnZhbBhmIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIyCg9vYnNlcnZhdGlvbl90dGwYZyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25KBAgCEANKBAgDEARSF3JlcG9ydF9pbnRlcnZhbF9zZWNvbmRzUhdvYnNlcnZhdGlvbl90dGxfc2Vjb25kcyJqChVEZWxldGVTYW5kYm94UmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWUSEgoKc2FuZGJveF9pZBgDIAEoCUoECAEQAlIHZGVsZXRlZCJuChdDcmVhdGVTc2hTZXNzaW9uUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAki7wEKGENyZWF0ZVNzaFNlc3Npb25SZXNwb25zZRISCgpzYW5kYm94X2lkGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhQKDGdhdGV3YXlfaG9zdBgDIAEoCRIUCgxnYXRld2F5X3BvcnQYBCABKA0SFgoOZ2F0ZXdheV9zY2hlbWUYBSABKAkSHAoUaG9zdF9rZXlfZmluZ2VycHJpbnQYByABKAkSMwoPZXhwaXJhdGlvbl90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAgQCVINZXhwaXJlc19hdF9tcyL2AQoURXhwb3NlU2VydmljZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAUgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAIgASgJEhMKC3RhcmdldF9wb3J0GAMgASgNEg4KBmRvbWFpbhgEIAEoCBIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBiABKAkSQgoSYXV0aG9yaXphdGlvbl9tb2RlGAcgASgOMiYub3BlbnNoZWxsLnYxLlNlcnZpY2VBdXRob3JpemF0aW9uTW9kZSJ2ChFHZXRTZXJ2aWNlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYAiABKAkSDwoHc2FuZGJveBgBIAEoCSKRAQoTTGlzdFNlcnZpY2VzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhEKCXBhZ2Vfc2l6ZRgCIAEoBRISCgpwYWdlX3Rva2VuGAMgASgJEg8KB3NhbmRib3gYASABKAkiaAoUTGlzdFNlcnZpY2VzUmVzcG9uc2USNwoIc2VydmljZXMYASADKAsyJS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50UmVzcG9uc2USFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIqQBChREZWxldGVTZXJ2aWNlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYAiABKAkSDwoHc2FuZGJveBgBIAEoCRIVCg1hbGxvd19taXNzaW5nGAQgASgIEhIKCnJlcXVlc3RfaWQYBSABKAkiVgoVRGVsZXRlU2VydmljZVJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkIuMBCg9TZXJ2aWNlRW5kcG9pbnQSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESEgoKc2FuZGJveF9pZBgCIAEoCRIPCgdzYW5kYm94GAMgASgJEgwKBG5hbWUYBCABKAkSEwoLdGFyZ2V0X3BvcnQYBSABKA0SDgoGZG9tYWluGAYgASgIEkIKEmF1dGhvcml6YXRpb25fbW9kZRgHIAEoDjImLm9wZW5zaGVsbC52MS5TZXJ2aWNlQXV0aG9yaXphdGlvbk1vZGUiVwoXU2VydmljZUVuZHBvaW50UmVzcG9uc2USLwoIZW5kcG9pbnQYASABKAsyHS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50EgsKA3VybBgCIAEoCSJFChdSZXZva2VTc2hTZXNzaW9uUmVxdWVzdBITCgV0b2tlbhgBIAEoCUIEiLUYARIVCg1hbGxvd19taXNzaW5nGAIgASgIIlkKGFJldm9rZVNzaFNlc3Npb25SZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHcmV2b2tlZCK4AwoSRXhlY1NhbmRib3hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgMIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCRIPCgdjb21tYW5kGAIgAygJEg8KB3dvcmtkaXIYAyABKAkSRgoLZW52aXJvbm1lbnQYBCADKAsyMS5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hSZXF1ZXN0LkVudmlyb25tZW50RW50cnkSNAoRZXhlY3V0aW9uX3RpbWVvdXQYaSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SDQoFc3RkaW4YBiABKAwSCwoDdHR5GAcgASgIEgwKBGNvbHMYCCABKA0SDAoEcm93cxgJIAEoDRIWCg5ub19sb2dpbl9zaGVsbBgKIAEoCBISCgpyZXF1ZXN0X2lkGAsgASgJGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAUQBlIPdGltZW91dF9zZWNvbmRzIiEKEUV4ZWNTYW5kYm94U3Rkb3V0EgwKBGRhdGEYASABKAwiIQoRRXhlY1NhbmRib3hTdGRlcnISDAoEZGF0YRgBIAEoDCIkCg9FeGVjU2FuZGJveEV4aXQSEQoJZXhpdF9jb2RlGAEgASgFIrIBChBFeGVjU2FuZGJveEV2ZW50EjEKBnN0ZG91dBgBIAEoCzIfLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFN0ZG91dEgAEjEKBnN0ZGVychgCIAEoCzIfLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFN0ZGVyckgAEi0KBGV4aXQYAyABKAsyHS5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hFeGl0SABCCQoHcGF5bG9hZCLPAQoOVGNwRm9yd2FyZEluaXQSDwoHc2FuZGJveBgBIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkSEgoKc2VydmljZV9pZBgEIAEoCRIrCgNzc2gYBSABKAsyHC5vcGVuc2hlbGwudjEuU3NoUmVsYXlUYXJnZXRIABIrCgN0Y3AYBiABKAsyHC5vcGVuc2hlbGwudjEuVGNwUmVsYXlUYXJnZXRIABIhChNhdXRob3JpemF0aW9uX3Rva2VuGAcgASgJQgSItRgBQggKBnRhcmdldCJaCg9UY3BGb3J3YXJkRnJhbWUSLAoEaW5pdBgBIAEoCzIcLm9wZW5zaGVsbC52MS5UY3BGb3J3YXJkSW5pdEgAEg4KBGRhdGEYAiABKAxIAEIJCgdwYXlsb2FkIpoBChBFeGVjU2FuZGJveElucHV0EjEKBXN0YXJ0GAEgASgLMiAub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94UmVxdWVzdEgAEg8KBXN0ZGluGAIgASgMSAASNwoGcmVzaXplGAMgASgLMiUub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94V2luZG93UmVzaXplSABCCQoHcGF5bG9hZCI1ChdFeGVjU2FuZGJveFdpbmRvd1Jlc2l6ZRIMCgRjb2xzGAEgASgNEgwKBHJvd3MYAiABKA0ixgEKClNzaFNlc3Npb24SNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESEgoKc2FuZGJveF9pZBgCIAEoCRITCgV0b2tlbhgDIAEoCUIEiLUYARIzCg9leHBpcmF0aW9uX3RpbWUYaCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3Jldm9rZWQYBSABKAhKBAgEEAVSDWV4cGlyZXNfYXRfbXMigAMKE1dhdGNoU2FuZGJveFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAsgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhUKDWZvbGxvd19zdGF0dXMYAiABKAgSEwoLZm9sbG93X2xvZ3MYAyABKAgSFQoNZm9sbG93X2V2ZW50cxgEIAEoCBIWCg5sb2dfdGFpbF9saW5lcxgFIAEoDRISCgpldmVudF90YWlsGAYgASgNEhgKEHN0b3Bfb25fdGVybWluYWwYByABKAgSLgoKc2luY2VfdGltZRhsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLbG9nX3NvdXJjZXMYCSADKAkSFQoNbG9nX21pbl9sZXZlbBgKIAEoCRIbChNyZXN1bWVfYWZ0ZXJfY3Vyc29yGAwgASgJSgQICBAJUgxsb2dfc2luY2VfbXMiqwIKElNhbmRib3hTdHJlYW1FdmVudBIoCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3hIABIrCgNsb2cYAiABKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmVIABIsCgVldmVudBgDIAEoCzIbLm9wZW5zaGVsbC52MS5QbGF0Zm9ybUV2ZW50SAASNQoHd2FybmluZxgEIAEoCzIiLm9wZW5zaGVsbC52MS5TYW5kYm94U3RyZWFtV2FybmluZ0gAEj4KE2RyYWZ0X3BvbGljeV91cGRhdGUYBSABKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRQb2xpY3lVcGRhdGVIABIOCgZjdXJzb3IYBiABKAlCCQoHcGF5bG9hZCKRAgoOU2FuZGJveExvZ0xpbmUSEgoKc2FuZGJveF9pZBgBIAEoCRIuCgpldmVudF90aW1lGGYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVsZXZlbBgDIAEoCRIOCgZ0YXJnZXQYBCABKAkSDwoHbWVzc2FnZRgFIAEoCRIOCgZzb3VyY2UYBiABKAkSOAoGZmllbGRzGAcgAygLMigub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgCEANSDHRpbWVzdGFtcF9tcyInChRTYW5kYm94U3RyZWFtV2FybmluZxIPCgdtZXNzYWdlGAEgASgJIqMBChVDcmVhdGVQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIyCghwcm92aWRlchgBIAEoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISEgoKcmVxdWVzdF9pZBgDIAEoCSJmChJHZXRQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAEgASgJIoEBChRMaXN0UHJvdmlkZXJzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhEKCXBhZ2Vfc2l6ZRgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJIrQDChVVcGRhdGVQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIyCghwcm92aWRlchgBIAEoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISZwobY3JlZGVudGlhbF9leHBpcmF0aW9uX3RpbWVzGGYgAygLMkIub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUmVxdWVzdC5DcmVkZW50aWFsRXhwaXJhdGlvblRpbWVzRW50cnkSKAogY2xlYXJfY3JlZGVudGlhbF9leHBpcmF0aW9uX2tleXMYZyADKAkSEgoKcmVxdWVzdF9pZBgEIAEoCRpcCh5DcmVkZW50aWFsRXhwaXJhdGlvblRpbWVzRW50cnkSCwoDa2V5GAEgASgJEikKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcDoCOAFKBAgCEANSGGNyZWRlbnRpYWxfZXhwaXJlc19hdF9tcyKUAQoVRGVsZXRlUHJvdmlkZXJSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCRIVCg1hbGxvd19taXNzaW5nGAQgASgIEhIKCnJlcXVlc3RfaWQYBSABKAkimwEKEFByb3ZpZGVyUmVzcG9uc2USMgoIcHJvdmlkZXIYASABKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEj4KD3RhcmdldF9yZWNlaXB0cxgCIAMoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uUmVjZWlwdBITCgttdXRhdGlvbl9pZBgDIAEoCSJlChVMaXN0UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiiAEKG0xpc3RQcm92aWRlclByb2ZpbGVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhEKCXBhZ2Vfc2l6ZRgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJImsKGUdldFByb3ZpZGVyUHJvZmlsZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIKCgJpZBgBIAEoCSJbChlQcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEi4KB3Byb2ZpbGUYASABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEg4KBnNvdXJjZRgCIAEoCSJxChlQcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEg4KBnNvdXJjZRgBIAEoCRISCgpwcm9maWxlX2lkGAIgASgJEg0KBWZpZWxkGAMgASgJEg8KB21lc3NhZ2UYBCABKAkSEAoIc2V2ZXJpdHkYBSABKAkiegosUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEgwKBHBhdGgYAyABKAkSEAoIYXVkaWVuY2UYBCABKAkSDgoGc2NvcGVzGAUgAygJImoKKFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRTdWJqZWN0VG9rZW4SDgoGc291cmNlGAEgASgJEhIKCmNyZWRlbnRpYWwYAiABKAkSGgoSc3ViamVjdF90b2tlbl90eXBlGAMgASgJIuIDChxQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50EhYKDnRva2VuX2VuZHBvaW50GAEgASgJEhAKCGF1ZGllbmNlGAIgASgJEhkKEWp3dF9zdmlkX2F1ZGllbmNlGAYgASgJEg4KBnNjb3BlcxgDIAMoCRIsCgljYWNoZV90dGwYaCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SVgoSYXVkaWVuY2Vfb3ZlcnJpZGVzGAUgAygLMjoub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRBdWRpZW5jZU92ZXJyaWRlEh0KFWNsaWVudF9hc3NlcnRpb25fdHlwZRgHIAEoCRJCCgpncmFudF90eXBlGAggASgOMi4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRUeXBlEk0KDXN1YmplY3RfdG9rZW4YCSABKAsyNi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudFN1YmplY3RUb2tlbhIcChRyZXF1ZXN0ZWRfdG9rZW5fdHlwZRgKIAEoCUoECAQQBVIRY2FjaGVfdHRsX3NlY29uZHMizgIKGVByb3ZpZGVyUHJvZmlsZUNyZWRlbnRpYWwSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIQCghlbnZfdmFycxgDIAMoCRIQCghyZXF1aXJlZBgEIAEoCBISCgphdXRoX3N0eWxlGAUgASgJEhMKC2hlYWRlcl9uYW1lGAYgASgJEhMKC3F1ZXJ5X3BhcmFtGAcgASgJEjgKB3JlZnJlc2gYCCABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaBIVCg1wYXRoX3RlbXBsYXRlGAkgASgJEj8KC3Rva2VuX2dyYW50GAogASgLMioub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnQSGgoSdG9rZW5fZ3JhbnRfb3duZXJzGAsgAygJImgKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hNYXRlcmlhbBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCHJlcXVpcmVkGAMgASgIEg4KBnNlY3JldBgEIAEoCCJFCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0Eg4KBm91dHB1dBgBIAEoCRISCgpjcmVkZW50aWFsGAIgASgJIq0DChlQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoEkEKCHN0cmF0ZWd5GAEgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRIRCgl0b2tlbl91cmwYAiABKAkSDgoGc2NvcGVzGAMgAygJEjEKDnJlZnJlc2hfYmVmb3JlGGggASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEi8KDG1heF9saWZldGltZRhpIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhJBCghtYXRlcmlhbBgGIAMoCzIvLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoTWF0ZXJpYWwSSQoSYWRkaXRpb25hbF9vdXRwdXRzGAcgAygLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hPdXRwdXRKBAgEEAVKBAgFEAZSFnJlZnJlc2hfYmVmb3JlX3NlY29uZHNSFG1heF9saWZldGltZV9zZWNvbmRzIoYFCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzEhAKCHByb3ZpZGVyGAEgASgJEhMKC3Byb3ZpZGVyX2lkGAIgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAMgASgJEkEKCHN0cmF0ZWd5GAQgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRIOCgZzdGF0dXMYBSABKAkSMwoPZXhwaXJhdGlvbl90aW1lGGogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1ChFuZXh0X3JlZnJlc2hfdGltZRhrIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoRbGFzdF9yZWZyZXNoX3RpbWUYbCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxhc3RfZXJyb3IYCSABKAkSTgoPcmVjb3ZlcnlfYWN0aW9uGAogASgOMjUub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hSZWNvdmVyeUFjdGlvbhIUCgxmYWlsdXJlX2NvZGUYCyABKAkSHgoWcHJvdmlkZXJfZXJyb3Jfc3VidHlwZRgMIAEoCRIzCg9sYXN0X2Vycm9yX3RpbWUYcSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIBhAHSgQIBxAISgQICBAJSgQIDRAOUg1leHBpcmVzX2F0X21zUhJuZXh0X3JlZnJlc2hfYXRfbXNSEmxhc3RfcmVmcmVzaF9hdF9tc1IQbGFzdF9lcnJvcl9hdF9tcyIvChhQcm92aWRlclByb2ZpbGVEaXNjb3ZlcnkSEwoLY3JlZGVudGlhbHMYASADKAkijwEKH0dldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghwcm92aWRlchgBIAEoCRIWCg5jcmVkZW50aWFsX2tleRgCIAEoCSJmCiBHZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXNwb25zZRJCCgtjcmVkZW50aWFscxgBIAMoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzItQDCh9Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgHIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSQQoIc3RyYXRlZ3kYAyABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5ElMKCG1hdGVyaWFsGAQgAygLMjsub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgFIAMoCRIzCg9leHBpcmF0aW9uX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnJlcXVlc3RfaWQYCCABKAkaLwoNTWF0ZXJpYWxFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBhAHUg1leHBpcmVzX2F0X21zImEKIENvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlEj0KBnN0YXR1cxgBIAEoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzIqMBCh9Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSEgoKcmVxdWVzdF9pZBgEIAEoCSJhCiBSb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyK3AQocRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhUKDWFsbG93X21pc3NpbmcYBSABKAgSEgoKcmVxdWVzdF9pZBgGIAEoCSJeCh1EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHZGVsZXRlZCLqBAoPUHJvdmlkZXJQcm9maWxlEgoKAmlkGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRI3CghjYXRlZ29yeRgEIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDYXRlZ29yeRI8CgtjcmVkZW50aWFscxgFIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDcmVkZW50aWFsEjgKCWVuZHBvaW50cxgGIAMoCzIlLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtFbmRwb2ludBI1CghiaW5hcmllcxgHIAMoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtCaW5hcnkSGQoRaW5mZXJlbmNlX2NhcGFibGUYCCABKAgSOQoJZGlzY292ZXJ5GAkgASgLMiYub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpc2NvdmVyeRIYChByZXNvdXJjZV92ZXJzaW9uGAogASgEEkMKC2Fubm90YXRpb25zGAsgAygLMi4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZS5Bbm5vdGF0aW9uc0VudHJ5Eg4KBnNvdXJjZRgMIAEoCRINCgVzY29wZRgNIAEoCRIwCgVmaWxlcxgOIAMoCzIhLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVGaWxlGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJFChNQcm92aWRlclByb2ZpbGVGaWxlEgwKBHBhdGgYASABKAkSDwoHY29udGVudBgCIAEoCRIPCgdlbnZfdmFyGAMgASgJIkkKF1Byb3ZpZGVyUHJvZmlsZVJlc3BvbnNlEi4KB3Byb2ZpbGUYASABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlImgKHExpc3RQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USLwoIcHJvZmlsZXMYASADKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKyAQodSW1wb3J0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEhIKCnJlcXVlc3RfaWQYAyABKAkioQEKHkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi8KCHByb2ZpbGVzGAIgAygLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIQCghpbXBvcnRlZBgDIAEoCCLgAQodVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchI4Cgdwcm9maWxlGAEgASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0SIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgCIAEoBBIKCgJpZBgDIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIp8BCh5VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxIuCgdwcm9maWxlGAIgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIPCgd1cGRhdGVkGAMgASgIIpwBChtMaW50UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtImsKHExpbnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxINCgV2YWxpZBgCIAEoCCJXChZEZWxldGVQcm92aWRlclJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkIpkBChxEZWxldGVQcm92aWRlclByb2ZpbGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISCgoCaWQYASABKAkSFQoNYWxsb3dfbWlzc2luZxgDIAEoCBISCgpyZXF1ZXN0X2lkGAQgASgJIl4KHURlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkImcKJEdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEisKI3N1cHBvcnRzX3N0YXRpY19jcmVkZW50aWFsX2JpbmRpbmdzGAIgASgIIksKH1N0YXRpY0NyZWRlbnRpYWxFbmRwb2ludEJpbmRpbmcSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEgwKBHBhdGgYAyABKAkinAEKF1N0YXRpY0NyZWRlbnRpYWxCaW5kaW5nEkAKCWVuZHBvaW50cxgBIAMoCzItLm9wZW5zaGVsbC52MS5TdGF0aWNDcmVkZW50aWFsRW5kcG9pbnRCaW5kaW5nEhsKE2NyZWRlbnRpYWxfaWRlbnRpdHkYAiABKAkSIgoad29ya2xvYWRfY3JlZGVudGlhbF9oYW5kbGUYAyABKAkimgkKJUdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2USXwoLZW52aXJvbm1lbnQYASADKAsyRC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5FbnZpcm9ubWVudEVudHJ5QgSItRgBEh0KFXByb3ZpZGVyX2Vudl9yZXZpc2lvbhgCIAEoBBJ3ChtjcmVkZW50aWFsX2V4cGlyYXRpb25fdGltZXMYZyADKAsyUi5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5DcmVkZW50aWFsRXhwaXJhdGlvblRpbWVzRW50cnkSaAoTZHluYW1pY19jcmVkZW50aWFscxgEIAMoCzJLLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkR5bmFtaWNDcmVkZW50aWFsc0VudHJ5EnUKGnN0YXRpY19jcmVkZW50aWFsX2JpbmRpbmdzGAUgAygLMlEub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSIwobbm9uX3NlY3JldF9lbnZpcm9ubWVudF9rZXlzGAYgAygJEiEKGXByb3ZpZGVyX2F0dGFjaG1lbnRfZXBvY2gYByABKAkSEwoLcG9saWN5X2hhc2gYCCABKAkSPwoQcmVhZGluZXNzX3JlYXNvbhgJIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1JlYXNvbhJNCgVmaWxlcxgKIAMoCzI+Lm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkZpbGVzRW50cnkaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGlwKHkNyZWRlbnRpYWxFeHBpcmF0aW9uVGltZXNFbnRyeRILCgNrZXkYASABKAkSKQoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wOgI4ARpiChdEeW5hbWljQ3JlZGVudGlhbHNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbDoCOAEaZgodU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSCwoDa2V5GAEgASgJEjQKBXZhbHVlGAIgASgLMiUub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nOgI4ARosCgpGaWxlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgDEARSGGNyZWRlbnRpYWxfZXhwaXJlc19hdF9tcyKGAQojRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIQCghwcm92aWRlchgCIAEoCRIWCg5jcmVkZW50aWFsX2tleRgDIAEoCRIhChNzdXBlcnZpc29yX2p3dF9zdmlkGAQgASgJQgSItRgBIpoBCiRFeGNoYW5nZVByb3ZpZGVyU3ViamVjdFRva2VuUmVzcG9uc2USGgoMYWNjZXNzX3Rva2VuGAEgASgJQgSItRgBEjAKDWV4cGlyZXNfYWZ0ZXIYZiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SEgoKdG9rZW5fdHlwZRgDIAEoCUoECAIQA1IKZXhwaXJlc19pbiKJBAoTVXBkYXRlQ29uZmlnUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYCiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjMKBnBvbGljeRgCIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSEwoLc2V0dGluZ19rZXkYAyABKAkSOQoNc2V0dGluZ192YWx1ZRgEIAEoCzIiLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNldHRpbmdWYWx1ZRIWCg5kZWxldGVfc2V0dGluZxgFIAEoCBIOCgZnbG9iYWwYBiABKAgSPAoQbWVyZ2Vfb3BlcmF0aW9ucxgHIAMoCzIiLm9wZW5zaGVsbC52MS5Qb2xpY3lNZXJnZU9wZXJhdGlvbhIhChlleHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uGAggASgEEkcKC2Fubm90YXRpb25zGAkgAygLMjIub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1JlcXVlc3QuQW5ub3RhdGlvbnNFbnRyeRIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYCyABKAkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvcCChRQb2xpY3lNZXJnZU9wZXJhdGlvbhIwCghhZGRfcnVsZRgBIAEoCzIcLm9wZW5zaGVsbC52MS5BZGROZXR3b3JrUnVsZUgAEj4KD3JlbW92ZV9lbmRwb2ludBgCIAEoCzIjLm9wZW5zaGVsbC52MS5SZW1vdmVOZXR3b3JrRW5kcG9pbnRIABI2CgtyZW1vdmVfcnVsZRgDIAEoCzIfLm9wZW5zaGVsbC52MS5SZW1vdmVOZXR3b3JrUnVsZUgAEjQKDmFkZF9kZW55X3J1bGVzGAQgASgLMhoub3BlbnNoZWxsLnYxLkFkZERlbnlSdWxlc0gAEjYKD2FkZF9hbGxvd19ydWxlcxgFIAEoCzIbLm9wZW5zaGVsbC52MS5BZGRBbGxvd1J1bGVzSAASOgoNcmVtb3ZlX2JpbmFyeRgGIAEoCzIhLm9wZW5zaGVsbC52MS5SZW1vdmVOZXR3b3JrQmluYXJ5SABCCwoJb3BlcmF0aW9uIloKDkFkZE5ldHdvcmtSdWxlEhEKCXJ1bGVfbmFtZRgBIAEoCRI1CgRydWxlGAIgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUiRgoVUmVtb3ZlTmV0d29ya0VuZHBvaW50EhEKCXJ1bGVfbmFtZRgBIAEoCRIMCgRob3N0GAIgASgJEgwKBHBvcnQYAyABKA0iJgoRUmVtb3ZlTmV0d29ya1J1bGUSEQoJcnVsZV9uYW1lGAEgASgJIqUBCgxMN1J1bGVUYXJnZXQSEQoJcnVsZV9uYW1lGAEgASgJEgwKBGhvc3QYAiABKAkSDQoFcG9ydHMYAyADKA0SEQoEcGF0aBgEIAEoCUgAiAEBEjUKCGJpbmFyaWVzGAUgAygLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0JpbmFyeRISCgphbnlfYmluYXJ5GAYgASgIQgcKBV9wYXRoIogBCgxBZGREZW55UnVsZXMSNAoKZGVueV9ydWxlcxgDIAMoCzIgLm9wZW5zaGVsbC5zYW5kYm94LnYxLkw3RGVueVJ1bGUSKgoGdGFyZ2V0GAQgASgLMhoub3BlbnNoZWxsLnYxLkw3UnVsZVRhcmdldEoECAEQAkoECAIQA1IEaG9zdFIEcG9ydCKAAQoNQWRkQWxsb3dSdWxlcxIrCgVydWxlcxgDIAMoCzIcLm9wZW5zaGVsbC5zYW5kYm94LnYxLkw3UnVsZRIqCgZ0YXJnZXQYBCABKAsyGi5vcGVuc2hlbGwudjEuTDdSdWxlVGFyZ2V0SgQIARACSgQIAhADUgRob3N0UgRwb3J0Ij0KE1JlbW92ZU5ldHdvcmtCaW5hcnkSEQoJcnVsZV9uYW1lGAEgASgJEhMKC2JpbmFyeV9wYXRoGAIgASgJIuYBChRVcGRhdGVDb25maWdSZXNwb25zZRIPCgd2ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJEhkKEXNldHRpbmdzX3JldmlzaW9uGAMgASgEEg8KB2RlbGV0ZWQYBCABKAgSSAoLYW5ub3RhdGlvbnMYBSADKAsyMy5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVzcG9uc2UuQW5ub3RhdGlvbnNFbnRyeRoyChBBbm5vdGF0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEilQEKHUdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHdmVyc2lvbhgCIAEoDRIOCgZnbG9iYWwYAyABKAgSDwoHc2FuZGJveBgBIAEoCSJvCh5HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVzcG9uc2USNQoIcmV2aXNpb24YASABKAsyIy5vcGVuc2hlbGwudjEuU2FuZGJveFBvbGljeVJldmlzaW9uEhYKDmFjdGl2ZV92ZXJzaW9uGAIgASgNIqgBChpMaXN0U2FuZGJveFBvbGljaWVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBSABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhEKCXBhZ2Vfc2l6ZRgCIAEoBRISCgpwYWdlX3Rva2VuGAMgASgJEg4KBmdsb2JhbBgEIAEoCBIPCgdzYW5kYm94GAEgASgJIm4KG0xpc3RTYW5kYm94UG9saWNpZXNSZXNwb25zZRI2CglyZXZpc2lvbnMYASADKAsyIy5vcGVuc2hlbGwudjEuU2FuZGJveFBvbGljeVJldmlzaW9uEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKAAQoZUmVwb3J0UG9saWN5U3RhdHVzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg8KB3ZlcnNpb24YAiABKA0SKgoGc3RhdHVzGAMgASgOMhoub3BlbnNoZWxsLnYxLlBvbGljeVN0YXR1cxISCgpsb2FkX2Vycm9yGAQgASgJIhwKGlJlcG9ydFBvbGljeVN0YXR1c1Jlc3BvbnNlIuIBCh1TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhITCgtpbnN0YW5jZV9pZBgBIAEoCRI4CgVzdGF0ZRgCIAEoDjIpLm9wZW5zaGVsbC52MS5Db25maWd1cmF0aW9uQWRtaXNzaW9uU3RhdGUSFgoOcG9saWN5X3ZlcnNpb24YAyABKA0SEwoLcG9saWN5X2hhc2gYBCABKAkSFwoPY29uZmlnX3JldmlzaW9uGAUgASgEEh0KFXByb3ZpZGVyX2Vudl9yZXZpc2lvbhgGIAEoBBINCgVlcnJvchgHIAEoCSKVAQohUmVwb3J0U2FuZGJveENvbmZpZ3VyYXRpb25SZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSPgoJYWRtaXNzaW9uGAIgASgLMisub3BlbnNoZWxsLnYxLlNhbmRib3hDb25maWd1cmF0aW9uQWRtaXNzaW9uEhwKFGV4cGVjdGVkX2luc3RhbmNlX2lkGAMgASgJIiQKIlJlcG9ydFNhbmRib3hDb25maWd1cmF0aW9uUmVzcG9uc2UiugMKFVNhbmRib3hQb2xpY3lSZXZpc2lvbhIPCgd2ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJEioKBnN0YXR1cxgDIAEoDjIaLm9wZW5zaGVsbC52MS5Qb2xpY3lTdGF0dXMSEgoKbG9hZF9lcnJvchgEIAEoCRIwCgxjcmVhdGVkX3RpbWUYaSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2xvYWRlZF90aW1lGGogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgZwb2xpY3kYByABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EkcKCnByb3ZlbmFuY2UYCCADKAsyMy5vcGVuc2hlbGwudjEuU2FuZGJveFBvbGljeVJldmlzaW9uLlByb3ZlbmFuY2VFbnRyeRoxCg9Qcm92ZW5hbmNlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAUQBkoECAYQB1INY3JlYXRlZF9hdF9tc1IMbG9hZGVkX2F0X21zIt8BChVHZXRTYW5kYm94TG9nc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAYgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEg0KBWxpbmVzGAIgASgNEi4KCnNpbmNlX3RpbWUYZyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3NvdXJjZXMYBCADKAkSEQoJbWluX2xldmVsGAUgASgJSgQIAxAEUghzaW5jZV9tcyJYChZQdXNoU2FuZGJveExvZ3NSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSKgoEbG9ncxgCIAMoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94TG9nTGluZSIZChdQdXNoU2FuZGJveExvZ3NSZXNwb25zZSJaChZHZXRTYW5kYm94TG9nc1Jlc3BvbnNlEioKBGxvZ3MYASADKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUSFAoMYnVmZmVyX3RvdGFsGAIgASgNIvMBChFTdXBlcnZpc29yTWVzc2FnZRIuCgVoZWxsbxgBIAEoCzIdLm9wZW5zaGVsbC52MS5TdXBlcnZpc29ySGVsbG9IABI2CgloZWFydGJlYXQYAiABKAsyIS5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvckhlYXJ0YmVhdEgAEjoKEXJlbGF5X29wZW5fcmVzdWx0GAMgASgLMh0ub3BlbnNoZWxsLnYxLlJlbGF5T3BlblJlc3VsdEgAEi8KC3JlbGF5X2Nsb3NlGAQgASgLMhgub3BlbnNoZWxsLnYxLlJlbGF5Q2xvc2VIAEIJCgdwYXlsb2FkIuECCg5HYXRld2F5TWVzc2FnZRI5ChBzZXNzaW9uX2FjY2VwdGVkGAEgASgLMh0ub3BlbnNoZWxsLnYxLlNlc3Npb25BY2NlcHRlZEgAEjkKEHNlc3Npb25fcmVqZWN0ZWQYAiABKAsyHS5vcGVuc2hlbGwudjEuU2Vzc2lvblJlamVjdGVkSAASMwoJaGVhcnRiZWF0GAMgASgLMh4ub3BlbnNoZWxsLnYxLkdhdGV3YXlIZWFydGJlYXRIABItCgpyZWxheV9vcGVuGAQgASgLMhcub3BlbnNoZWxsLnYxLlJlbGF5T3BlbkgAEi8KC3JlbGF5X2Nsb3NlGAUgASgLMhgub3BlbnNoZWxsLnYxLlJlbGF5Q2xvc2VIABI5ChBzZXNzaW9uX3JlZGlyZWN0GAYgASgLMh0ub3BlbnNoZWxsLnYxLlNlc3Npb25SZWRpcmVjdEgAQgkKB3BheWxvYWQisAEKD1N1cGVydmlzb3JIZWxsbxISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJEhgKEGNvbm5lY3Rpb25fZXBvY2gYAyABKAQSIwobc3VwcG9ydHNfcHJvdmlkZXJfcmVhZGluZXNzGAQgASgIEhIKCnJlZGlyZWN0ZWQYBSABKAgSIQoZc3VwcG9ydHNfc2Vzc2lvbl9yZWRpcmVjdBgGIAEoCCJ7Cg9TZXNzaW9uQWNjZXB0ZWQSEgoKc2Vzc2lvbl9pZBgBIAEoCRI1ChJoZWFydGJlYXRfaW50ZXJ2YWwYZiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25KBAgCEANSF2hlYXJ0YmVhdF9pbnRlcnZhbF9zZWNzIiEKD1Nlc3Npb25SZWplY3RlZBIOCgZyZWFzb24YASABKAkiQgoPU2Vzc2lvblJlZGlyZWN0EhUKDXBlZXJfZW5kcG9pbnQYASABKAkSGAoQb3duZXJfcmVwbGljYV9pZBgCIAEoCSIVChNTdXBlcnZpc29ySGVhcnRiZWF0IhIKEEdhdGV3YXlIZWFydGJlYXQiWgocUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJEhEKCWV4aXRfY29kZRgDIAEoBSIfCh1SZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXNwb25zZSJJCh5GaW5hbGl6ZU1haW5Qcm9jZXNzRXhpdFJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRITCgtpbnN0YW5jZV9pZBgCIAEoCSIhCh9GaW5hbGl6ZU1haW5Qcm9jZXNzRXhpdFJlc3BvbnNlIpcBCglSZWxheU9wZW4SEgoKY2hhbm5lbF9pZBgBIAEoCRIrCgNzc2gYAiABKAsyHC5vcGVuc2hlbGwudjEuU3NoUmVsYXlUYXJnZXRIABIrCgN0Y3AYAyABKAsyHC5vcGVuc2hlbGwudjEuVGNwUmVsYXlUYXJnZXRIABISCgpzZXJ2aWNlX2lkGAUgASgJQggKBnRhcmdldCIQCg5Tc2hSZWxheVRhcmdldCIsCg5UY3BSZWxheVRhcmdldBIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0iHwoJUmVsYXlJbml0EhIKCmNoYW5uZWxfaWQYASABKAkiUAoKUmVsYXlGcmFtZRInCgRpbml0GAEgASgLMhcub3BlbnNoZWxsLnYxLlJlbGF5SW5pdEgAEg4KBGRhdGEYAiABKAxIAEIJCgdwYXlsb2FkIm4KDVBlZXJSZWxheUluaXQSEgoKc2FuZGJveF9pZBgBIAEoCRIrCgpyZWxheV9vcGVuGAIgASgLMhcub3BlbnNoZWxsLnYxLlJlbGF5T3BlbhIcChRyZXF1ZXN0ZXJfcmVwbGljYV9pZBgDIAEoCSJYCg5QZWVyUmVsYXlGcmFtZRIrCgRpbml0GAEgASgLMhsub3BlbnNoZWxsLnYxLlBlZXJSZWxheUluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCJFCg9SZWxheU9wZW5SZXN1bHQSEgoKY2hhbm5lbF9pZBgBIAEoCRIPCgdzdWNjZXNzGAIgASgIEg0KBWVycm9yGAMgASgJIjAKClJlbGF5Q2xvc2USEgoKY2hhbm5lbF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkiUAoPTDdSZXF1ZXN0U2FtcGxlEg4KBm1ldGhvZBgBIAEoCRIMCgRwYXRoGAIgASgJEhAKCGRlY2lzaW9uGAMgASgJEg0KBWNvdW50GAQgASgNIvoDCg1EZW5pYWxTdW1tYXJ5EhIKCnNhbmRib3hfaWQYASABKAkSDAoEaG9zdBgCIAEoCRIMCgRwb3J0GAMgASgNEg4KBmJpbmFyeRgEIAEoCRIRCglhbmNlc3RvcnMYBSADKAkSEwoLZGVueV9yZWFzb24YBiABKAkSMwoPZmlyc3Rfc2Vlbl90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5sYXN0X3NlZW5fdGltZRhsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFY291bnQYCSABKA0SGAoQc3VwcHJlc3NlZF9jb3VudBgKIAEoDRITCgt0b3RhbF9jb3VudBgLIAEoDRIXCg9zYW1wbGVfY21kbGluZXMYDCADKAkSFQoNYmluYXJ5X3NoYTI1NhgNIAEoCRISCgpwZXJzaXN0ZW50GA4gASgIEhQKDGRlbmlhbF9zdGFnZRgPIAEoCRI5ChJsN19yZXF1ZXN0X3NhbXBsZXMYECADKAsyHS5vcGVuc2hlbGwudjEuTDdSZXF1ZXN0U2FtcGxlEhwKFGw3X2luc3BlY3Rpb25fYWN0aXZlGBEgASgISgQIBxAISgQICBAJUg1maXJzdF9zZWVuX21zUgxsYXN0X3NlZW5fbXMiPAoQRGVuaWFsR3JvdXBDb3VudBISCgpkZW55X2dyb3VwGAEgASgJEhQKDGRlbmllZF9jb3VudBgCIAEoDSKPAQoWTmV0d29ya0FjdGl2aXR5U3VtbWFyeRIeChZuZXR3b3JrX2FjdGl2aXR5X2NvdW50GAEgASgNEhsKE2RlbmllZF9hY3Rpb25fY291bnQYAiABKA0SOAoQZGVuaWFsc19ieV9ncm91cBgDIAMoCzIeLm9wZW5zaGVsbC52MS5EZW5pYWxHcm91cENvdW50IowHCgtQb2xpY3lDaHVuaxIKCgJpZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSEQoJcnVsZV9uYW1lGAMgASgJEj4KDXByb3Bvc2VkX3J1bGUYBCABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZRIRCglyYXRpb25hbGUYBSABKAkSFgoOc2VjdXJpdHlfbm90ZXMYBiABKAkSEgoKY29uZmlkZW5jZRgHIAEoAhIaChJkZW5pYWxfc3VtbWFyeV9pZHMYCCADKAkSMAoMY3JlYXRlZF90aW1lGG0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxkZWNpZGVkX3RpbWUYbiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXN0YWdlGAsgASgJEhsKE3N1cGVyc2VkZXNfY2h1bmtfaWQYDCABKAkSEQoJaGl0X2NvdW50GA0gASgFEjMKD2ZpcnN0X3NlZW5fdGltZRhyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoObGFzdF9zZWVuX3RpbWUYcyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBmJpbmFyeRgQIAEoCRIZChF2YWxpZGF0aW9uX3Jlc3VsdBgRIAEoCRIYChByZWplY3Rpb25fcmVhc29uGBIgASgJEhkKEWFwcGxpY2F0aW9uX2Vycm9yGBMgASgJEhQKDHJldmlld190b2tlbhgUIAEoCRIlCh1jdXJyZW50X2VmZmVjdGl2ZV9wb2xpY3lfaGFzaBgVIAEoCRInCh9jYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBYgASgJEkUKGGN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeRgXIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSRwoaY2FuZGlkYXRlX2VmZmVjdGl2ZV9wb2xpY3kYGCABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5SgQICRAKSgQIChALSgQIDhAPSgQIDxAQUg1jcmVhdGVkX2F0X21zUg1kZWNpZGVkX2F0X21zUg1maXJzdF9zZWVuX21zUgxsYXN0X3NlZW5fbXMiZgoRRHJhZnRQb2xpY3lVcGRhdGUSFQoNZHJhZnRfdmVyc2lvbhgBIAEoBBISCgpuZXdfY2h1bmtzGAIgASgNEhUKDXRvdGFsX3BlbmRpbmcYAyABKA0SDwoHc3VtbWFyeRgEIAEoCSK0AgobU3VibWl0UG9saWN5QW5hbHlzaXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgGIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISLgoJc3VtbWFyaWVzGAEgAygLMhsub3BlbnNoZWxsLnYxLkRlbmlhbFN1bW1hcnkSMgoPcHJvcG9zZWRfY2h1bmtzGAIgAygLMhkub3BlbnNoZWxsLnYxLlBvbGljeUNodW5rEhUKDWFuYWx5c2lzX21vZGUYAyABKAkSDAoEbmFtZRgEIAEoCRJIChpuZXR3b3JrX2FjdGl2aXR5X3N1bW1hcmllcxgFIAMoCzIkLm9wZW5zaGVsbC52MS5OZXR3b3JrQWN0aXZpdHlTdW1tYXJ5IocBChxTdWJtaXRQb2xpY3lBbmFseXNpc1Jlc3BvbnNlEhcKD2FjY2VwdGVkX2NodW5rcxgBIAEoDRIXCg9yZWplY3RlZF9jaHVua3MYAiABKA0SGQoRcmVqZWN0aW9uX3JlYXNvbnMYAyADKAkSGgoSYWNjZXB0ZWRfY2h1bmtfaWRzGAQgAygJIoMBChVHZXREcmFmdFBvbGljeVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIVCg1zdGF0dXNfZmlsdGVyGAIgASgJEg8KB3NhbmRib3gYASABKAkixgEKFkdldERyYWZ0UG9saWN5UmVzcG9uc2USKQoGY2h1bmtzGAEgAygLMhkub3BlbnNoZWxsLnYxLlBvbGljeUNodW5rEhcKD3JvbGxpbmdfc3VtbWFyeRgCIAEoCRIVCg1kcmFmdF92ZXJzaW9uGAMgASgEEjYKEmxhc3RfYW5hbHl6ZWRfdGltZRhoIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgEEAVSE2xhc3RfYW5hbHl6ZWRfYXRfbXMiqwEKGEFwcHJvdmVEcmFmdENodW5rUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCGNodW5rX2lkGAIgASgJEhQKDHJldmlld190b2tlbhgEIAEoCRIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBSABKAkiSAoZQXBwcm92ZURyYWZ0Q2h1bmtSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCSKkAQoXUmVqZWN0RHJhZnRDaHVua1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghjaHVua19pZBgCIAEoCRIOCgZyZWFzb24YAyABKAkSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIhoKGFJlamVjdERyYWZ0Q2h1bmtSZXNwb25zZSI8ChJEcmFmdENodW5rQXBwcm92YWwSEAoIY2h1bmtfaWQYASABKAkSFAoMcmV2aWV3X3Rva2VuGAIgASgJIt4BChxBcHByb3ZlQWxsRHJhZnRDaHVua3NSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISIAoYaW5jbHVkZV9zZWN1cml0eV9mbGFnZ2VkGAIgASgIEjMKCWFwcHJvdmFscxgDIAMoCzIgLm9wZW5zaGVsbC52MS5EcmFmdENodW5rQXBwcm92YWwSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIn0KHUFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJEhcKD2NodW5rc19hcHByb3ZlZBgDIAEoDRIWCg5jaHVua3Nfc2tpcHBlZBgEIAEoDSLSAQoVRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIY2h1bmtfaWQYAiABKAkSPgoNcHJvcG9zZWRfcnVsZRgDIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgFIAEoCSIYChZFZGl0RHJhZnRDaHVua1Jlc3BvbnNlIpIBChVVbmRvRHJhZnRDaHVua1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghjaHVua19pZBgCIAEoCRIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBCABKAkiRQoWVW5kb0RyYWZ0Q2h1bmtSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCSKCAQoXQ2xlYXJEcmFmdENodW5rc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYAyABKAkiMgoYQ2xlYXJEcmFmdENodW5rc1Jlc3BvbnNlEhYKDmNodW5rc19jbGVhcmVkGAEgASgNIm0KFkdldERyYWZ0SGlzdG9yeVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJIpIBChFEcmFmdEhpc3RvcnlFbnRyeRIuCgpldmVudF90aW1lGGUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpldmVudF90eXBlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhAKCGNodW5rX2lkGAQgASgJSgQIARACUgx0aW1lc3RhbXBfbXMiSwoXR2V0RHJhZnRIaXN0b3J5UmVzcG9uc2USMAoHZW50cmllcxgBIAMoCzIfLm9wZW5zaGVsbC52MS5EcmFmdEhpc3RvcnlFbnRyeSKrAQoWQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJEkAKBmxhYmVscxgCIAMoCzIwLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0LkxhYmVsc0VudHJ5EhIKCnJlcXVlc3RfaWQYAyABKAkaLQoLTGFiZWxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJPChdDcmVhdGVXb3Jrc3BhY2VSZXNwb25zZRI0Cgl3b3Jrc3BhY2UYASABKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSIjChNHZXRXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkiTAoUR2V0V29ya3NwYWNlUmVzcG9uc2USNAoJd29ya3NwYWNlGAEgASgLMiEub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2UiVgoVTGlzdFdvcmtzcGFjZXNSZXF1ZXN0EhEKCXBhZ2Vfc2l6ZRgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJEhYKDmxhYmVsX3NlbGVjdG9yGAMgASgJImgKFkxpc3RXb3Jrc3BhY2VzUmVzcG9uc2USNQoKd29ya3NwYWNlcxgBIAMoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSJRChZEZWxldGVXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkSFQoNYWxsb3dfbWlzc2luZxgCIAEoCBISCgpyZXF1ZXN0X2lkGAMgASgJIlgKF0RlbGV0ZVdvcmtzcGFjZVJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkIo0BCg9Xb3Jrc3BhY2VNZW1iZXISNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkSKQoEcm9sZRgDIAEoDjIbLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VSb2xlIrkBChlBZGRXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgBIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkSKQoEcm9sZRgDIAEoDjIbLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VSb2xlEhIKCnJlcXVlc3RfaWQYBCABKAkiSwoaQWRkV29ya3NwYWNlTWVtYmVyUmVzcG9uc2USLQoGbWVtYmVyGAEgASgLMh0ub3BlbnNoZWxsLnYxLldvcmtzcGFjZU1lbWJlciKoAQocUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYASABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJEhUKDWFsbG93X21pc3NpbmcYAyABKAgSEgoKcmVxdWVzdF9pZBgEIAEoCSJeCh1SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHcmVtb3ZlZCKIAQobTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgBIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAIgASgFEhIKCnBhZ2VfdG9rZW4YAyABKAkiZwocTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXNwb25zZRIuCgdtZW1iZXJzGAEgAygLMh0ub3BlbnNoZWxsLnYxLldvcmtzcGFjZU1lbWJlchIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkikQEKGkV4dGVuc2lvblNlcnZpY2VDcmVkZW50aWFsEhQKDHNlcnZpY2VfbmFtZRgBIAEoCRITCgV0b2tlbhgCIAEoCUIEiLUYARIzCg9leHBpcmF0aW9uX3RpbWUYZyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIAxAEUg1leHBpcmVzX2F0X21zIlgKE0VuZHBvaW50T2JzZXJ2YXRpb24SEwoLZW5kcG9pbnRfaWQYASABKAkSLAoGcmVzdWx0GAIgASgOMhwub3BlbnNoZWxsLnYxLkVuZHBvaW50UmVzdWx0IvUBChtSZXBvcnRFbmRwb2ludFN0YXR1c1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRITCgtwb2xpY3lfaGFzaBgCIAEoCRIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YAyABKAQSNwoMb2JzZXJ2YXRpb25zGAQgAygLMiEub3BlbnNoZWxsLnYxLkVuZHBvaW50T2JzZXJ2YXRpb24SHQoVb2JzZXJ2ZWRfZW5kcG9pbnRfaWRzGAUgAygJEh0KFXN1cGVydmlzb3Jfc2Vzc2lvbl9pZBgGIAEoCRIXCg9yZXBvcnRfc2VxdWVuY2UYByABKAQiHgocUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXNwb25zZSLTAQoORW5kcG9pbnRTdGF0dXMSEwoLZW5kcG9pbnRfaWQYASABKAkSDAoEaG9zdBgCIAEoCRINCgVwb3J0cxgDIAMoDRIMCgRwYXRoGAQgASgJEjEKC2xhc3RfcmVzdWx0GAUgASgOMhwub3BlbnNoZWxsLnYxLkVuZHBvaW50UmVzdWx0EjYKEmxhc3RfcmVwb3J0ZWRfdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgGEAdSEGxhc3RfcmVwb3J0ZWRfYXQiuwUKE1NhbmRib3hQcm92aXNpb25pbmcSEgoKYXR0ZW1wdF9pZBgBIAEoCRIfChdjb25maWd1cmF0aW9uX2NoYW5nZV9pZBgCIAEoCRI9Chljb25maWd1cmF0aW9uX2NoYW5nZV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4ChRmaXJzdF9yZWplY3Rpb25fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZGVhZGxpbmUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDHRpbWVvdXRfdGltZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoWY2xlYW51cF9jb21wbGV0ZWRfdGltZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNY2xlYW51cF9lcnJvchgIIAEoCRI2ChJjbGVhbnVwX3JldHJ5X3RpbWUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhwKFGF0dGFjaG1lbnRfY2hhbmdlX2lkGAogASgJEjoKFmF0dGFjaG1lbnRfY2hhbmdlX3RpbWUYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKFHByZXBhcmF0aW9uX2RlYWRsaW5lGAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4ChRhZG1pc3Npb25fc3RhcnRfdGltZRgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIAoYZHJpdmVyX29wZXJhdGlvbl9wZW5kaW5nGA4gASgIEhsKE2RyaXZlcl9vcGVyYXRpb25faWQYDyABKAkiggEKFlNhbmRib3hTZXJ2aWNlRXhwb3N1cmUSDwoHc2VydmljZRgBIAEoCRITCgt0YXJnZXRfcG9ydBgCIAEoDRJCChJhdXRob3JpemF0aW9uX21vZGUYAyABKA4yJi5vcGVuc2hlbGwudjEuU2VydmljZUF1dGhvcml6YXRpb25Nb2RlKsoBCg1FeHRlbnNpb25LaW5kEh4KGkVYVEVOU0lPTl9LSU5EX1VOU1BFQ0lGSUVEEAASIQodRVhURU5TSU9OX0tJTkRfQ09NUFVURV9EUklWRVIQARIkCiBFWFRFTlNJT05fS0lORF9DUkVERU5USUFMX0RSSVZFUhACEiYKIkVYVEVOU0lPTl9LSU5EX0dBVEVXQVlfSU5URVJDRVBUT1IQAxIoCiRFWFRFTlNJT05fS0lORF9TVVBFUlZJU09SX01JRERMRVdBUkUQBCrGAgoMU2FuZGJveFBoYXNlEh0KGVNBTkRCT1hfUEhBU0VfVU5TUEVDSUZJRUQQABIeChpTQU5EQk9YX1BIQVNFX1BST1ZJU0lPTklORxABEhcKE1NBTkRCT1hfUEhBU0VfUkVBRFkQAhIXChNTQU5EQk9YX1BIQVNFX0VSUk9SEAMSGgoWU0FOREJPWF9QSEFTRV9ERUxFVElORxAEEhkKFVNBTkRCT1hfUEhBU0VfVU5LTk9XThAFEhoKFlNBTkRCT1hfUEhBU0VfU1RPUFBJTkcQBhIZChVTQU5EQk9YX1BIQVNFX1NUT1BQRUQQBxIaChZTQU5EQk9YX1BIQVNFX1NUQVJUSU5HEAgSGwoXU0FOREJPWF9QSEFTRV9DT01QTEVURUQQCSIECAoQCioYU0FOREJPWF9QSEFTRV9SRVNUQVJUSU5HKssBChRQcm92aWRlck11dGF0aW9uS2luZBImCiJQUk9WSURFUl9NVVRBVElPTl9LSU5EX1VOU1BFQ0lGSUVEEAASIQodUFJPVklERVJfTVVUQVRJT05fS0lORF9BVFRBQ0gQARIhCh1QUk9WSURFUl9NVVRBVElPTl9LSU5EX0RFVEFDSBACEiEKHVBST1ZJREVSX01VVEFUSU9OX0tJTkRfVVBEQVRFEAMSIgoeUFJPVklERVJfTVVUQVRJT05fS0lORF9PQlNFUlZFEAQqzwIKFlByb3ZpZGVyUmVhZGluZXNzU3RhdGUSKAokUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1VOU1BFQ0lGSUVEEAASJgoiUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1BFUlNJU1RFRBABEiQKIFBST1ZJREVSX1JFQURJTkVTU19TVEFURV9QRU5ESU5HEAISIgoeUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1JFQURZEAMSJQohUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1dJVEhIRUxEEAQSJAogUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1JFVk9LRUQQBRIjCh9QUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfRkFJTEVEEAYSJwojUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1NVUEVSU0VERUQQByraBgoXUHJvdmlkZXJSZWFkaW5lc3NSZWFzb24SKQolUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9VTlNQRUNJRklFRBAAEjQKMFBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fV0FJVElOR19GT1JfU1VQRVJWSVNPUhABEjUKMVBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fV0FJVElOR19GT1JfQ1JFREVOVElBTFMQAhIwCixQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1dBSVRJTkdfRk9SX1BPTElDWRADEjEKLVBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fV0FJVElOR19GT1JfUFJPQ0VTUxAEEjQKMFBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fVU5TVVBQT1JURURfU1VQRVJWSVNPUhAFEjIKLlBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fQ1JFREVOVElBTFNfV0lUSEhFTEQQBhI3CjNQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX0NSRURFTlRJQUxfSU5TVEFMTF9GQUlMRUQQBxI2CjJQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1BPTElDWV9BQ1RJVkFUSU9OX0ZBSUxFRBAIEjQKMFBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fUFJPQ0VTU19JTlNUQUxMX0ZBSUxFRBAJEjUKMVBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fU1VQRVJWSVNPUl9ESVNDT05ORUNURUQQChI2CjJQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1NVUEVSVklTT1JfTEVBU0VfRVhQSVJFRBALEjMKL1BST1ZJREVSX1JFQURJTkVTU19SRUFTT05fREVTSVJFRF9TVEFURV9DSEFOR0VEEAwSMAosUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9DUkVERU5USUFMX0VYUElSRUQQDRIqCiZQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX0xPQ0FMX1BPTElDWRAOEi8KK1BST1ZJREVSX1JFQURJTkVTU19SRUFTT05fU05BUFNIT1RfTUlTTUFUQ0gQDyqDAQoPQ29uZmlnQ29tcG9uZW50EiAKHENPTkZJR19DT01QT05FTlRfVU5TUEVDSUZJRUQQABIjCh9DT05GSUdfQ09NUE9ORU5UX1NBTkRCT1hfQ09ORklHEAESKQolQ09ORklHX0NPTVBPTkVOVF9QUk9WSURFUl9FTlZJUk9OTUVOVBACKo0DChJDb25maWdBcHBseU91dGNvbWUSJAogQ09ORklHX0FQUExZX09VVENPTUVfVU5TUEVDSUZJRUQQABIgChxDT05GSUdfQVBQTFlfT1VUQ09NRV9BUFBMSUVEEAESKgomQ09ORklHX0FQUExZX09VVENPTUVfSUdOT1JFRF9EVVBMSUNBVEUQAhImCiJDT05GSUdfQVBQTFlfT1VUQ09NRV9JR05PUkVEX1NUQUxFEAMSMAosQ09ORklHX0FQUExZX09VVENPTUVfUkVUQUlORURfTE9DQUxfT1ZFUlJJREUQBBIhCh1DT05GSUdfQVBQTFlfT1VUQ09NRV9ERUdSQURFRBAFEjgKNENPTkZJR19BUFBMWV9PVVRDT01FX0ZBSUxFRF9SRVRBSU5FRF9MQVNUX0tOT1dOX0dPT0QQBhImCiJDT05GSUdfQVBQTFlfT1VUQ09NRV9GQUlMRURfQ0xPU0VEEAcSJAogQ09ORklHX0FQUExZX09VVENPTUVfVU5TVVBQT1JURUQQCCrSAgoaQ29uZmlnVXBkYXRlT3BlcmF0aW9uU3RhdGUSLQopQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfVU5TUEVDSUZJRUQQABIpCiVDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9QRU5ESU5HEAESKQolQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfQVBQTElFRBACEioKJkNPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX0lOQUNUSVZFEAMSKAokQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfRkFJTEVEEAQSLAooQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfU1VQRVJTRURFRBAFEisKJ0NPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX0NBTkNFTExFRBAGKs4BCiBQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50VHlwZRI0CjBQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfVU5TUEVDSUZJRUQQABI7CjdQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfQ0xJRU5UX0NSRURFTlRJQUxTEAESNwozUFJPVklERVJfQ1JFREVOVElBTF9UT0tFTl9HUkFOVF9UWVBFX1RPS0VOX0VYQ0hBTkdFEAIqwwMKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRI0CjBQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfVU5TUEVDSUZJRUQQABIvCitQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfU1RBVElDEAESMQotUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX0VYVEVSTkFMEAISPQo5UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9SRUZSRVNIX1RPS0VOEAMSQgo+UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9DTElFTlRfQ1JFREVOVElBTFMQBBJDCj9QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfR09PR0xFX1NFUlZJQ0VfQUNDT1VOVF9KV1QQBRI8CjhQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfQVdTX1NUU19BU1NVTUVfUk9MRRAGKtsCChdQcm92aWRlclByb2ZpbGVDYXRlZ29yeRIpCiVQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9PVEhFUhABEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfSU5GRVJFTkNFEAISIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9BR0VOVBADEiwKKFBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfU09VUkNFX0NPTlRST0wQBBInCiNQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX01FU1NBR0lORxAFEiIKHlBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfREFUQRAGEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfS05PV0xFREdFEAcqzwEKG0NvbmZpZ3VyYXRpb25BZG1pc3Npb25TdGF0ZRItCilDT05GSUdVUkFUSU9OX0FETUlTU0lPTl9TVEFURV9VTlNQRUNJRklFRBAAEikKJUNPTkZJR1VSQVRJT05fQURNSVNTSU9OX1NUQVRFX1BFTkRJTkcQARIqCiZDT05GSUdVUkFUSU9OX0FETUlTU0lPTl9TVEFURV9BQ0NFUFRFRBACEioKJkNPTkZJR1VSQVRJT05fQURNSVNTSU9OX1NUQVRFX1JFSkVDVEVEEAMqmgEKDFBvbGljeVN0YXR1cxIdChlQT0xJQ1lfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGQoVUE9MSUNZX1NUQVRVU19QRU5ESU5HEAESGAoUUE9MSUNZX1NUQVRVU19MT0FERUQQAhIYChRQT0xJQ1lfU1RBVFVTX0ZBSUxFRBADEhwKGFBPTElDWV9TVEFUVVNfU1VQRVJTRURFRBAEKoYBCg1TZXJ2aWNlU3RhdHVzEh4KGlNFUlZJQ0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWU0VSVklDRV9TVEFUVVNfSEVBTFRIWRABEhsKF1NFUlZJQ0VfU1RBVFVTX0RFR1JBREVEEAISHAoYU0VSVklDRV9TVEFUVVNfVU5IRUFMVEhZEAMqYgoNV29ya3NwYWNlUm9sZRIeChpXT1JLU1BBQ0VfUk9MRV9VTlNQRUNJRklFRBAAEhcKE1dPUktTUEFDRV9ST0xFX1VTRVIQARIYChRXT1JLU1BBQ0VfUk9MRV9BRE1JThACKtoCCidQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoUmVjb3ZlcnlBY3Rpb24SOwo3UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9VTlNQRUNJRklFRBAAEjUKMVBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9SRUNPVkVSWV9BQ1RJT05fUkVUUlkQARI7CjdQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX1JFQVVUSE9SSVpFEAISQQo9UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9GSVhfQ09ORklHVVJBVElPThADEjsKN1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9SRUNPVkVSWV9BQ1RJT05fSU5WRVNUSUdBVEUQBCqqAQoUU2FuZGJveFJlc3RhcnRQb2xpY3kSJgoiU0FOREJPWF9SRVNUQVJUX1BPTElDWV9VTlNQRUNJRklFRBAAEiAKHFNBTkRCT1hfUkVTVEFSVF9QT0xJQ1lfTkVWRVIQARIlCiFTQU5EQk9YX1JFU1RBUlRfUE9MSUNZX09OX0ZBSUxVUkUQAhIhCh1TQU5EQk9YX1JFU1RBUlRfUE9MSUNZX0FMV0FZUxADKpcBCg9EZWxldGlvbk91dGNvbWUSIAocREVMRVRJT05fT1VUQ09NRV9VTlNQRUNJRklFRBAAEh4KGkRFTEVUSU9OX09VVENPTUVfQ09NUExFVEVEEAESHQoZREVMRVRJT05fT1VUQ09NRV9BQ0NFUFRFRBACEiMKH0RFTEVUSU9OX09VVENPTUVfQUxSRUFEWV9BQlNFTlQQAyrDAgoORW5kcG9pbnRSZXN1bHQSHwobRU5EUE9JTlRfUkVTVUxUX1VOU1BFQ0lGSUVEEAASKAokRU5EUE9JTlRfUkVTVUxUX05PX09CU0VSVkVEX0VYQ0hBTkdFEAESKgomRU5EUE9JTlRfUkVTVUxUX0hUVFBfUkVTUE9OU0VfUkVDRUlWRUQQAhIhCh1FTkRQT0lOVF9SRVNVTFRfUE9MSUNZX0RFTklFRBADEioKJkVORFBPSU5UX1JFU1VMVF9DUkVERU5USUFMX1VOQVZBSUxBQkxFEAQSHgoaRU5EUE9JTlRfUkVTVUxUX1RMU19GQUlMRUQQBRIkCiBFTkRQT0lOVF9SRVNVTFRfVFJBTlNQT1JUX0ZBSUxFRBAGEiUKIUVORFBPSU5UX1JFU1VMVF9VUFNUUkVBTV9SRUpFQ1RFRBAHKp8BChhTZXJ2aWNlQXV0aG9yaXphdGlvbk1vZGUSKgomU0VSVklDRV9BVVRIT1JJWkFUSU9OX01PREVfVU5TUEVDSUZJRUQQABIkCiBTRVJWSUNFX0FVVEhPUklaQVRJT05fTU9ERV9TVFJJUBABEjEKLVNFUlZJQ0VfQVVUSE9SSVpBVElPTl9NT0RFX0JFQVJFUl9QQVNTVEhST1VHSBACMq9VCglPcGVuU2hlbGwSWgoGSGVhbHRoEhsub3BlbnNoZWxsLnYxLkhlYWx0aFJlcXVlc3QaHC5vcGVuc2hlbGwudjEuSGVhbHRoUmVzcG9uc2UiFYK1GBEKD3VuYXV0aGVudGljYXRlZBJpCg5HZXRDdXJyZW50VXNlchIjLm9wZW5zaGVsbC52MS5HZXRDdXJyZW50VXNlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0Q3VycmVudFVzZXJSZXNwb25zZSIMgrUYCAoGYmVhcmVyEoYBCg5HZXRHYXRld2F5SW5mbxIjLm9wZW5zaGVsbC52MS5HZXRHYXRld2F5SW5mb1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0R2F0ZXdheUluZm9SZXNwb25zZSIpgrUYJQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiILY29uZmlnOnJlYWQSdQoNQ3JlYXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRKTAQoVQmVnaW5Sb290ZnNUYXJTdGFnaW5nEioub3BlbnNoZWxsLnYxLkJlZ2luUm9vdGZzVGFyU3RhZ2luZ1JlcXVlc3QaKy5vcGVuc2hlbGwudjEuQmVnaW5Sb290ZnNUYXJTdGFnaW5nUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJuCgpHZXRTYW5kYm94Eh8ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hSZXF1ZXN0Gh0ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSegoNTGlzdFNhbmRib3hlcxIiLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEo4BChVDcmVhdGVTYW5kYm94VGVtcGxhdGUSKi5vcGVuc2hlbGwudjEuQ3JlYXRlU2FuZGJveFRlbXBsYXRlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGVSZXNwb25zZSIigrUYHgoGYmVhcmVyEgVhZG1pbiINc2FuZGJveDp3cml0ZRKGAQoSR2V0U2FuZGJveFRlbXBsYXRlEicub3BlbnNoZWxsLnYxLkdldFNhbmRib3hUZW1wbGF0ZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2FuZGJveFRlbXBsYXRlUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEo8BChRMaXN0U2FuZGJveFRlbXBsYXRlcxIpLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFRlbXBsYXRlc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSlAEKFURlbGV0ZVNhbmRib3hUZW1wbGF0ZRIqLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94VGVtcGxhdGVSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRlbGV0ZVNhbmRib3hUZW1wbGF0ZVJlc3BvbnNlIiKCtRgeCgZiZWFyZXISBWFkbWluIg1zYW5kYm94OndyaXRlEo8BChRMaXN0U2FuZGJveFByb3ZpZGVycxIpLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFByb3ZpZGVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQcm92aWRlcnNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSkwEKFUF0dGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkF0dGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSkwEKFURldGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRldGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSmwEKGEdldFNhbmRib3hQcm92aWRlclN0YXR1cxItLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlclN0YXR1c1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ7Cg1EZWxldGVTYW5kYm94EiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNhbmRib3hSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNhbmRib3hSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnEKC1N0b3BTYW5kYm94EiAub3BlbnNoZWxsLnYxLlN0b3BTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJzCgxTdGFydFNhbmRib3gSIS5vcGVuc2hlbGwudjEuU3RhcnRTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRKEAQoQQ3JlYXRlU3NoU2Vzc2lvbhIlLm9wZW5zaGVsbC52MS5DcmVhdGVTc2hTZXNzaW9uUmVxdWVzdBomLm9wZW5zaGVsbC52MS5DcmVhdGVTc2hTZXNzaW9uUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJ9Cg1FeHBvc2VTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkV4cG9zZVNlcnZpY2VSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSdgoKR2V0U2VydmljZRIfLm9wZW5zaGVsbC52MS5HZXRTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSdwoMTGlzdFNlcnZpY2VzEiEub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1JlcXVlc3QaIi5vcGVuc2hlbGwudjEuTGlzdFNlcnZpY2VzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnsKDURlbGV0ZVNlcnZpY2USIi5vcGVuc2hlbGwudjEuRGVsZXRlU2VydmljZVJlcXVlc3QaIy5vcGVuc2hlbGwudjEuRGVsZXRlU2VydmljZVJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEFJldm9rZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuUmV2b2tlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSdAoLRXhlY1NhbmRib3gSIC5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZTABEnEKCkZvcndhcmRUY3ASHS5vcGVuc2hlbGwudjEuVGNwRm9yd2FyZEZyYW1lGh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlKAEwARJ/ChZFeGVjU2FuZGJveEludGVyYWN0aXZlEh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94SW5wdXQaHi5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hFdmVudCIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlKAEwARJ6Cg5DcmVhdGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5DcmVhdGVQcm92aWRlclJlcXVlc3QaHi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUScgoLR2V0UHJvdmlkZXISIC5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBJ7Cg1MaXN0UHJvdmlkZXJzEiIub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlcnNSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlcnNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEpABChRMaXN0UHJvdmlkZXJQcm9maWxlcxIpLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEocBChJHZXRQcm92aWRlclByb2ZpbGUSJy5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJQcm9maWxlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEpgBChZJbXBvcnRQcm92aWRlclByb2ZpbGVzEisub3BlbnNoZWxsLnYxLkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSmAEKFlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXMSKy5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKQAQoUTGludFByb3ZpZGVyUHJvZmlsZXMSKS5vcGVuc2hlbGwudjEuTGludFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpbnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBJ6Cg5VcGRhdGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5VcGRhdGVQcm92aWRlclJlcXVlc3QaHi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSnAEKGEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1cxItLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSngEKGENvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaBItLm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKeAQoYUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsEi0ub3BlbnNoZWxsLnYxLlJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlcXVlc3QaLi5vcGVuc2hlbGwudjEuUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpUBChVEZWxldGVQcm92aWRlclJlZnJlc2gSKi5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSgAEKDkRlbGV0ZVByb3ZpZGVyEiMub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVxdWVzdBokLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKVAQoVRGVsZXRlUHJvdmlkZXJQcm9maWxlEioub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpABChBHZXRTYW5kYm94Q29uZmlnEi0ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0U2FuZGJveENvbmZpZ1JlcXVlc3QaLi5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRTYW5kYm94Q29uZmlnUmVzcG9uc2UiHYK1GBkKBGR1YWwSBHVzZXIiC2NvbmZpZzpyZWFkEowBChBHZXRHYXRld2F5Q29uZmlnEi0ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0R2F0ZXdheUNvbmZpZ1JlcXVlc3QaLi5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRHYXRld2F5Q29uZmlnUmVzcG9uc2UiGYK1GBUKBmJlYXJlciILY29uZmlnOnJlYWQSdgoMVXBkYXRlQ29uZmlnEiEub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1JlcXVlc3QaIi5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVzcG9uc2UiH4K1GBsKBGR1YWwSBWFkbWluIgxjb25maWc6d3JpdGUSlQEKFkdldFNhbmRib3hQb2xpY3lTdGF0dXMSKy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFBvbGljeVN0YXR1c1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFBvbGljeVN0YXR1c1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKMAQoTTGlzdFNhbmRib3hQb2xpY2llcxIoLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFBvbGljaWVzUmVxdWVzdBopLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFBvbGljaWVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnYKElJlcG9ydFBvbGljeVN0YXR1cxInLm9wZW5zaGVsbC52MS5SZXBvcnRQb2xpY3lTdGF0dXNSZXF1ZXN0Gigub3BlbnNoZWxsLnYxLlJlcG9ydFBvbGljeVN0YXR1c1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnwKFFJlcG9ydEVuZHBvaW50U3RhdHVzEikub3BlbnNoZWxsLnYxLlJlcG9ydEVuZHBvaW50U3RhdHVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5SZXBvcnRFbmRwb2ludFN0YXR1c1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94EoUBChdSZXBvcnRQcm92aWRlclJlYWRpbmVzcxIsLm9wZW5zaGVsbC52MS5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1JlcXVlc3QaLS5vcGVuc2hlbGwudjEuUmVwb3J0UHJvdmlkZXJSZWFkaW5lc3NSZXNwb25zZSINgrUYCQoHc2FuZGJveBKOAQoaUmVwb3J0U2FuZGJveENvbmZpZ3VyYXRpb24SLy5vcGVuc2hlbGwudjEuUmVwb3J0U2FuZGJveENvbmZpZ3VyYXRpb25SZXF1ZXN0GjAub3BlbnNoZWxsLnYxLlJlcG9ydFNhbmRib3hDb25maWd1cmF0aW9uUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSlwEKHUdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50EjIub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVxdWVzdBozLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EpQBChxFeGNoYW5nZVByb3ZpZGVyU3ViamVjdFRva2VuEjEub3BlbnNoZWxsLnYxLkV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXF1ZXN0GjIub3BlbnNoZWxsLnYxLkV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXNwb25zZSINgrUYCQoHc2FuZGJveBJ9Cg5HZXRTYW5kYm94TG9ncxIjLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94TG9nc1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveExvZ3NSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSbwoPUHVzaFNhbmRib3hMb2dzEiQub3BlbnNoZWxsLnYxLlB1c2hTYW5kYm94TG9nc1JlcXVlc3QaJS5vcGVuc2hlbGwudjEuUHVzaFNhbmRib3hMb2dzUmVzcG9uc2UiDYK1GAkKB3NhbmRib3goARJlChFDb25uZWN0U3VwZXJ2aXNvchIfLm9wZW5zaGVsbC52MS5TdXBlcnZpc29yTWVzc2FnZRocLm9wZW5zaGVsbC52MS5HYXRld2F5TWVzc2FnZSINgrUYCQoHc2FuZGJveCgBMAESfwoVUmVwb3J0TWFpblByb2Nlc3NFeGl0Eioub3BlbnNoZWxsLnYxLlJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlcXVlc3QaKy5vcGVuc2hlbGwudjEuUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gShQEKF0ZpbmFsaXplTWFpblByb2Nlc3NFeGl0Eiwub3BlbnNoZWxsLnYxLkZpbmFsaXplTWFpblByb2Nlc3NFeGl0UmVxdWVzdBotLm9wZW5zaGVsbC52MS5GaW5hbGl6ZU1haW5Qcm9jZXNzRXhpdFJlc3BvbnNlIg2CtRgJCgdzYW5kYm94ElQKC1JlbGF5U3RyZWFtEhgub3BlbnNoZWxsLnYxLlJlbGF5RnJhbWUaGC5vcGVuc2hlbGwudjEuUmVsYXlGcmFtZSINgrUYCQoHc2FuZGJveCgBMAESVwoJUGVlclJlbGF5Ehwub3BlbnNoZWxsLnYxLlBlZXJSZWxheUZyYW1lGhwub3BlbnNoZWxsLnYxLlBlZXJSZWxheUZyYW1lIgqCtRgGCgRwZWVyKAEwARKGAQobUGVlclJlcG9ydFByb3ZpZGVyUmVhZGluZXNzEiwub3BlbnNoZWxsLnYxLlJlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVxdWVzdBotLm9wZW5zaGVsbC52MS5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1Jlc3BvbnNlIgqCtRgGCgRwZWVyEn0KGFBlZXJSZXBvcnRFbmRwb2ludFN0YXR1cxIpLm9wZW5zaGVsbC52MS5SZXBvcnRFbmRwb2ludFN0YXR1c1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXNwb25zZSIKgrUYBgoEcGVlchKJAQocUGVlckdldFNhbmRib3hQcm92aWRlclN0YXR1cxItLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlclN0YXR1c1Jlc3BvbnNlIgqCtRgGCgRwZWVyEncKDFdhdGNoU2FuZGJveBIhLm9wZW5zaGVsbC52MS5XYXRjaFNhbmRib3hSZXF1ZXN0GiAub3BlbnNoZWxsLnYxLlNhbmRib3hTdHJlYW1FdmVudCIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQwARJ8ChRTdWJtaXRQb2xpY3lBbmFseXNpcxIpLm9wZW5zaGVsbC52MS5TdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuU3VibWl0UG9saWN5QW5hbHlzaXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBJ6Cg5HZXREcmFmdFBvbGljeRIjLm9wZW5zaGVsbC52MS5HZXREcmFmdFBvbGljeVJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0RHJhZnRQb2xpY3lSZXNwb25zZSIdgrUYGQoEZHVhbBIEdXNlciILY29uZmlnOnJlYWQShwEKEUFwcHJvdmVEcmFmdENodW5rEiYub3BlbnNoZWxsLnYxLkFwcHJvdmVEcmFmdENodW5rUmVxdWVzdBonLm9wZW5zaGVsbC52MS5BcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUShAEKEFJlamVjdERyYWZ0Q2h1bmsSJS5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1JlcXVlc3QaJi5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSkwEKFUFwcHJvdmVBbGxEcmFmdENodW5rcxIqLm9wZW5zaGVsbC52MS5BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfgoORWRpdERyYWZ0Q2h1bmsSIy5vcGVuc2hlbGwudjEuRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkVkaXREcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ+Cg5VbmRvRHJhZnRDaHVuaxIjLm9wZW5zaGVsbC52MS5VbmRvRHJhZnRDaHVua1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuVW5kb0RyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEoQBChBDbGVhckRyYWZ0Q2h1bmtzEiUub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXF1ZXN0GiYub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEn8KD0dldERyYWZ0SGlzdG9yeRIkLm9wZW5zaGVsbC52MS5HZXREcmFmdEhpc3RvcnlSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLkdldERyYWZ0SGlzdG9yeVJlc3BvbnNlIh+CtRgbCgZiZWFyZXISBHVzZXIiC2NvbmZpZzpyZWFkEnMKEUlzc3VlU2FuZGJveFRva2VuEiYub3BlbnNoZWxsLnYxLklzc3VlU2FuZGJveFRva2VuUmVxdWVzdBonLm9wZW5zaGVsbC52MS5Jc3N1ZVNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnkKE1JlZnJlc2hTYW5kYm94VG9rZW4SKC5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlcXVlc3QaKS5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94Eo0BCg9DcmVhdGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEnkKDEdldFdvcmtzcGFjZRIhLm9wZW5zaGVsbC52MS5HZXRXb3Jrc3BhY2VSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkdldFdvcmtzcGFjZVJlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEn8KDkxpc3RXb3Jrc3BhY2VzEiMub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VzUmVxdWVzdBokLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlc1Jlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEo0BCg9EZWxldGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuRGVsZXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5EZWxldGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEo0BChJBZGRXb3Jrc3BhY2VNZW1iZXISJy5vcGVuc2hlbGwudjEuQWRkV29ya3NwYWNlTWVtYmVyUmVxdWVzdBooLm9wZW5zaGVsbC52MS5BZGRXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpYBChVSZW1vdmVXb3Jrc3BhY2VNZW1iZXISKi5vcGVuc2hlbGwudjEuUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpEBChRMaXN0V29ya3NwYWNlTWVtYmVycxIpLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlTWVtYmVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXNwb25zZSIigrUYHgoGYmVhcmVyEgR1c2VyIg53b3Jrc3BhY2U6cmVhZGIGcHJvdG8z", [file_datamodel, file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp, file_options, file_sandbox]);
11
+ export const file_openshell = /*@__PURE__*/ fileDesc("Cg9vcGVuc2hlbGwucHJvdG8SDG9wZW5zaGVsbC52MSIaChhJc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QiegoZSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZRITCgV0b2tlbhgBIAEoCUIEiLUYARIzCg9leHBpcmF0aW9uX3RpbWUYZiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIAhADUg1leHBpcmVzX2F0X21zIj0KGlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Eh8KF2V4dGVuc2lvbl9zZXJ2aWNlX25hbWVzGAEgAygJIuoCChtSZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2USEwoFdG9rZW4YASABKAlCBIi1GAESMwoPZXhwaXJhdGlvbl90aW1lGGYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJHChVleHRlbnNpb25fY3JlZGVudGlhbHMYAyADKAsyKC5vcGVuc2hlbGwudjEuRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwSGwoNc2FuZGJveF90b2tlbhgEIAEoCUIEiLUYARI7ChdzYW5kYm94X2V4cGlyYXRpb25fdGltZRhpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKc2Vzc2lvbl9pZBgGIAEoCRIYChBjcmVkZW50aWFsX2Vwb2NoGAcgASgESgQIAhADSgQIBRAGUg1leHBpcmVzX2F0X21zUhVzYW5kYm94X2V4cGlyZXNfYXRfbXMiDwoNSGVhbHRoUmVxdWVzdCJOCg5IZWFsdGhSZXNwb25zZRIrCgZzdGF0dXMYASABKA4yGy5vcGVuc2hlbGwudjEuU2VydmljZVN0YXR1cxIPCgd2ZXJzaW9uGAIgASgJIhcKFUdldEN1cnJlbnRVc2VyUmVxdWVzdCJ5ChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg0KBXJvbGVzGAMgAygJEg4KBnNjb3BlcxgEIAMoCRIZChFpZGVudGl0eV9wcm92aWRlchgFIAEoCSIXChVHZXRHYXRld2F5SW5mb1JlcXVlc3Qi0wEKFkdldEdhdGV3YXlJbmZvUmVzcG9uc2USKwoGc3RhdHVzGAEgASgOMhsub3BlbnNoZWxsLnYxLlNlcnZpY2VTdGF0dXMSFwoPZ2F0ZXdheV92ZXJzaW9uGAIgASgJEjgKD2NvbXB1dGVfZHJpdmVycxgDIAMoCzIfLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVySW5mbxI5CgpleHRlbnNpb25zGAQgAygLMiUub3BlbnNoZWxsLnYxLk5lZ290aWF0ZWRFeHRlbnNpb25JbmZvIokCChdOZWdvdGlhdGVkRXh0ZW5zaW9uSW5mbxIpCgRraW5kGAEgASgOMhsub3BlbnNoZWxsLnYxLkV4dGVuc2lvbktpbmQSFwoPY29uZmlndXJlZF9uYW1lGAIgASgJEhsKE2ltcGxlbWVudGF0aW9uX25hbWUYAyABKAkSHgoWaW1wbGVtZW50YXRpb25fdmVyc2lvbhgEIAEoCRIWCg5wcm90b2NvbF9tYWpvchgFIAEoDRIWCg5wcm90b2NvbF9taW5vchgGIAEoDRIeChZzdXBwb3J0ZWRfY2FwYWJpbGl0aWVzGAcgAygJEh0KFXJlcXVpcmVkX2NhcGFiaWxpdGllcxgIIAMoCSJgChFDb21wdXRlRHJpdmVySW5mbxIMCgRuYW1lGAEgASgJEj0KDGNhcGFiaWxpdGllcxgCIAEoCzInLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzIosBChlDb21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzEhMKC2RyaXZlcl9uYW1lGAEgASgJEhYKDmRyaXZlcl92ZXJzaW9uGAIgASgJEkEKFXJlc291cmNlX2NhcGFiaWxpdGllcxgDIAEoCzIiLm9wZW5zaGVsbC52MS5SZXNvdXJjZUNhcGFiaWxpdGllcyK4AQoUUmVzb3VyY2VDYXBhYmlsaXRpZXMSMgoDY3B1GAEgASgLMiUub3BlbnNoZWxsLnYxLkNwdVJlc291cmNlQ2FwYWJpbGl0aWVzEjgKBm1lbW9yeRgCIAEoCzIoLm9wZW5zaGVsbC52MS5NZW1vcnlSZXNvdXJjZUNhcGFiaWxpdGllcxIyCgNncHUYAyABKAsyJS5vcGVuc2hlbGwudjEuR3B1UmVzb3VyY2VDYXBhYmlsaXRpZXMiMgoXQ3B1UmVzb3VyY2VDYXBhYmlsaXRpZXMSFwoPbGltaXRfc3VwcG9ydGVkGAEgASgIIjUKGk1lbW9yeVJlc291cmNlQ2FwYWJpbGl0aWVzEhcKD2xpbWl0X3N1cHBvcnRlZBgBIAEoCCJhChdHcHVSZXNvdXJjZUNhcGFiaWxpdGllcxIjChtkZWZhdWx0X3NlbGVjdGlvbl9zdXBwb3J0ZWQYASABKAgSIQoZY291bnRfc2VsZWN0aW9uX3N1cHBvcnRlZBgCIAEoCCK3AgoHU2FuZGJveBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRInCgRzcGVjGAIgASgLMhkub3BlbnNoZWxsLnYxLlNhbmRib3hTcGVjEisKBnN0YXR1cxgDIAEoCzIbLm9wZW5zaGVsbC52MS5TYW5kYm94U3RhdHVzEhwKFGhvc3Rfa2V5X2ZpbmdlcnByaW50GAYgASgJElcKHmNyZWF0ZWRfZnJvbV93b3JrbG9hZF90ZW1wbGF0ZRgUIAEoCzIvLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZVByb3ZlbmFuY2VKBAgEEAVKBAgFEAZSBXBoYXNlUhZjdXJyZW50X3BvbGljeV92ZXJzaW9uIv4DCgtTYW5kYm94U3BlYxIRCglsb2dfbGV2ZWwYASABKAkSPwoLZW52aXJvbm1lbnQYBSADKAsyKi5vcGVuc2hlbGwudjEuU2FuZGJveFNwZWMuRW52aXJvbm1lbnRFbnRyeRIvCgh0ZW1wbGF0ZRgGIAEoCzIdLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUSMwoGcG9saWN5GAcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRIRCglwcm92aWRlcnMYCCADKAkSQQoVcmVzb3VyY2VfcmVxdWlyZW1lbnRzGAkgASgLMiIub3BlbnNoZWxsLnYxLlJlc291cmNlUmVxdWlyZW1lbnRzEg8KB2NvbW1hbmQYDCADKAkSCwoDdHR5GA0gASgIEiEKGXByb3ZpZGVyX2F0dGFjaG1lbnRfZXBvY2gYDiABKAkSOgoOcmVzdGFydF9wb2xpY3kYDyABKA4yIi5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3RhcnRQb2xpY3kaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIChALSgQICxAMUgpncHVfZGV2aWNlUhZwcm9wb3NhbF9hcHByb3ZhbF9tb2RlIkoKFFJlc291cmNlUmVxdWlyZW1lbnRzEjIKA2dwdRgBIAEoCzIlLm9wZW5zaGVsbC52MS5HcHVSZXNvdXJjZVJlcXVpcmVtZW50cyI3ChdHcHVSZXNvdXJjZVJlcXVpcmVtZW50cxISCgVjb3VudBgBIAEoDUgAiAEBQggKBl9jb3VudCLaBAoPU2FuZGJveFRlbXBsYXRlEg0KBWltYWdlGAEgASgJEhoKEnJ1bnRpbWVfY2xhc3NfbmFtZRgCIAEoCRIUCgxhZ2VudF9zb2NrZXQYAyABKAkSOQoGbGFiZWxzGAQgAygLMikub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZS5MYWJlbHNFbnRyeRJDCgthbm5vdGF0aW9ucxgFIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuQW5ub3RhdGlvbnNFbnRyeRJDCgtlbnZpcm9ubWVudBgGIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuRW52aXJvbm1lbnRFbnRyeRIqCglyZXNvdXJjZXMYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhwKD3VzZXJfbmFtZXNwYWNlcxgKIAEoCEgAiAEBEi4KDWRyaXZlcl9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUISChBfdXNlcl9uYW1lc3BhY2VzSgQICRAKUhZ2b2x1bWVfY2xhaW1fdGVtcGxhdGVzIogBChdTYW5kYm94V29ya2xvYWRUZW1wbGF0ZRI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRI3CgRzcGVjGAIgASgLMikub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZFRlbXBsYXRlU3BlYyLGAQobU2FuZGJveFdvcmtsb2FkVGVtcGxhdGVTcGVjEjUKCHdvcmtsb2FkGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZENvbmZpZxIuCg1kcml2ZXJfY29uZmlnGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBJAChVkZXNpcmVkX3NlcnZpY2VfbGV2ZWwYAyABKAsyIS5vcGVuc2hlbGwudjEuU2FuZGJveFNlcnZpY2VMZXZlbCLYAQoVU2FuZGJveFdvcmtsb2FkQ29uZmlnEg0KBWltYWdlGAEgASgJEkkKC2Vudmlyb25tZW50GAIgAygLMjQub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZENvbmZpZy5FbnZpcm9ubWVudEVudHJ5EjEKCXJlc291cmNlcxgDIAEoCzIeLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzb3VyY2VzGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJjChBTYW5kYm94UmVzb3VyY2VzEgsKA2NwdRgBIAEoCRIOCgZtZW1vcnkYAiABKAkSMgoDZ3B1GAMgASgLMiUub3BlbnNoZWxsLnYxLkdwdVJlc291cmNlUmVxdWlyZW1lbnRzIkQKE1NhbmRib3hTZXJ2aWNlTGV2ZWwSLQoHc3RhcnR1cBgBIAEoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94U3RhcnR1cCJUCg5TYW5kYm94U3RhcnR1cBIvCgxyZWFkeV93aXRoaW4YASABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SEQoJbWF4X2J1cnN0GAIgASgNIksKIVNhbmRib3hXb3JrbG9hZFRlbXBsYXRlUHJvdmVuYW5jZRIMCgRuYW1lGAEgASgJEhgKEHJlc291cmNlX3ZlcnNpb24YAiABKAki7AUKDVNhbmRib3hTdGF0dXMSEQoJYWdlbnRfcG9kGAIgASgJEhAKCGFnZW50X2ZkGAMgASgJEhIKCnNhbmRib3hfZmQYBCABKAkSMgoKY29uZGl0aW9ucxgFIAMoCzIeLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZGl0aW9uEikKBXBoYXNlGAYgASgOMhoub3BlbnNoZWxsLnYxLlNhbmRib3hQaGFzZRIeChZjdXJyZW50X3BvbGljeV92ZXJzaW9uGAcgASgNEiAKGG1haW5fcHJvY2Vzc19pbnN0YW5jZV9pZBgIIAEoCRIWCglleGl0X2NvZGUYCSABKAVIAIgBARI3ChFlbmRwb2ludF9zdGF0dXNlcxgKIAMoCzIcLm9wZW5zaGVsbC52MS5FbmRwb2ludFN0YXR1cxJMChdjb25maWd1cmF0aW9uX2FkbWlzc2lvbhgLIAEoCzIrLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhIkChdjb25maWd1cmF0aW9uX2FjdGl2YXRlZBgMIAEoCEgBiAEBEjcKDHByb3Zpc2lvbmluZxgNIAEoCzIhLm9wZW5zaGVsbC52MS5TYW5kYm94UHJvdmlzaW9uaW5nEhUKDXJlc3RhcnRfY291bnQYDiABKA0SNQoRbmV4dF9yZXN0YXJ0X3RpbWUYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj0KGW1haW5fcHJvY2Vzc19zdGFydGVkX3RpbWUYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkwKGGxhc3RfdG9rZW5fZ3JhbnRfZmFpbHVyZRgRIAEoCzIqLm9wZW5zaGVsbC52MS5Ub2tlbkdyYW50RmFpbHVyZU9ic2VydmF0aW9uQgwKCl9leGl0X2NvZGVCGgoYX2NvbmZpZ3VyYXRpb25fYWN0aXZhdGVkIqIBChBTYW5kYm94Q29uZGl0aW9uEgwKBHR5cGUYASABKAkSDgoGc3RhdHVzGAIgASgJEg4KBnJlYXNvbhgDIAEoCRIPCgdtZXNzYWdlGAQgASgJEjMKD3RyYW5zaXRpb25fdGltZRhpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgFEAZSFGxhc3RfdHJhbnNpdGlvbl90aW1lIoACCg1QbGF0Zm9ybUV2ZW50Ei4KCmV2ZW50X3RpbWUYZSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBnNvdXJjZRgCIAEoCRIMCgR0eXBlGAMgASgJEg4KBnJlYXNvbhgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEjsKCG1ldGFkYXRhGAYgAygLMikub3BlbnNoZWxsLnYxLlBsYXRmb3JtRXZlbnQuTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgBEAJSDHRpbWVzdGFtcF9tcyKVBAoUQ3JlYXRlU2FuZGJveFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAcgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchInCgRzcGVjGAEgASgLMhkub3BlbnNoZWxsLnYxLlNhbmRib3hTcGVjEgwKBG5hbWUYAiABKAkSPgoGbGFiZWxzGAMgAygLMi4ub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hSZXF1ZXN0LkxhYmVsc0VudHJ5EkgKC2Fubm90YXRpb25zGAQgAygLMjMub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hSZXF1ZXN0LkFubm90YXRpb25zRW50cnkSJQodYXdhaXRfbWFpbl9wcm9jZXNzX2F0dGFjaG1lbnQYBSABKAgSGQoRd29ya2xvYWRfdGVtcGxhdGUYBiABKAkSEgoKcmVxdWVzdF9pZBgIIAEoCRI/ChFzZXJ2aWNlX2V4cG9zdXJlcxgJIAMoCzIkLm9wZW5zaGVsbC52MS5TYW5kYm94U2VydmljZUV4cG9zdXJlGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIq8BChxDcmVhdGVTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISNwoIdGVtcGxhdGUYASABKAsyJS5vcGVuc2hlbGwudjEuU2FuZGJveFdvcmtsb2FkVGVtcGxhdGUSEgoKcmVxdWVzdF9pZBgDIAEoCSJtChlHZXRTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCSKgAQobTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimwEKHERlbGV0ZVNhbmRib3hUZW1wbGF0ZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAEgASgJEhUKDWFsbG93X21pc3NpbmcYAyABKAgSEgoKcmVxdWVzdF9pZBgEIAEoCSJSChdTYW5kYm94VGVtcGxhdGVSZXNwb25zZRI3Cgh0ZW1wbGF0ZRgBIAEoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZSJxChxMaXN0U2FuZGJveFRlbXBsYXRlc1Jlc3BvbnNlEjgKCXRlbXBsYXRlcxgBIAMoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiXgodRGVsZXRlU2FuZGJveFRlbXBsYXRlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQiiQEKHEJlZ2luUm9vdGZzVGFyU3RhZ2luZ1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglmaWxlX25hbWUYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoBCKoAQodQmVnaW5Sb290ZnNUYXJTdGFnaW5nUmVzcG9uc2USFQoNc3RhZ2luZ190b2tlbhgBIAEoCRITCgt1cGxvYWRfcGF0aBgCIAEoCRIRCgltYXhfYnl0ZXMYAyABKAQSMwoPZXhwaXJhdGlvbl90aW1lGGggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAQQBVINZXhwaXJlc19hdF9tcyJlChFHZXRTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkimQEKFExpc3RTYW5kYm94ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimQEKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEQoJcGFnZV9zaXplGAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkivAEKHEF0dGFjaFNhbmRib3hQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhAKCHByb3ZpZGVyGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEgoKcmVxdWVzdF9pZBgFIAEoCSK8AQocRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgDIAEoBBISCgpyZXF1ZXN0X2lkGAUgASgJIpMBChREZWxldGVTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSFQoNYWxsb3dfbWlzc2luZxgDIAEoCBISCgpyZXF1ZXN0X2lkGAQgASgJInoKElN0b3BTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSJ7ChNTdGFydFNhbmRib3hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCRISCgpyZXF1ZXN0X2lkGAMgASgJIrMBCg9TYW5kYm94UmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EkQKDHNlcnZpY2VfdXJscxgCIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UuU2VydmljZVVybHNFbnRyeRoyChBTZXJ2aWNlVXJsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiWgoVTGlzdFNhbmRib3hlc1Jlc3BvbnNlEigKCXNhbmRib3hlcxgBIAMoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSJsChxMaXN0U2FuZGJveFByb3ZpZGVyc1Jlc3BvbnNlEjMKCXByb3ZpZGVycxgBIAMoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIpEBCh1BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIYXR0YWNoZWQYAiABKAgSNgoHcmVjZWlwdBgDIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uUmVjZWlwdCKRAQodRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhAKCGRldGFjaGVkGAIgASgIEjYKB3JlY2VpcHQYAyABKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQi3QEKF1Byb3ZpZGVyRGVzaXJlZElkZW50aXR5EhIKCnNhbmRib3hfaWQYASABKAkSDwoHc2FuZGJveBgCIAEoCRIYChBhdHRhY2htZW50X2Vwb2NoGAMgASgJEhMKC3Byb3ZpZGVyX2lkGAQgASgJEiEKGXByb3ZpZGVyX3Jlc291cmNlX3ZlcnNpb24YBSABKAQSHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAYgASgEEhcKD2NvbmZpZ19yZXZpc2lvbhgHIAEoBBITCgtwb2xpY3lfaGFzaBgIIAEoCSLGAQoWQ29uZmlnU25hcHNob3RSZXZpc2lvbhI9Cg5zYW5kYm94X2NvbmZpZxgBIAEoCzIjLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlnUmV2aXNpb25IABIeChRwcm92aWRlcl9lbnZpcm9ubWVudBgCIAEoBEgAEkAKD3Byb3ZpZGVyX3RhcmdldBgDIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlckRlc2lyZWRJZGVudGl0eUgAQgsKCWNvbXBvbmVudCK9AQoVU2FuZGJveENvbmZpZ1JldmlzaW9uEhcKD2NvbmZpZ19yZXZpc2lvbhgBIAEoBBIWCg5wb2xpY3lfdmVyc2lvbhgCIAEoDRI5Cg1wb2xpY3lfc291cmNlGAMgASgOMiIub3BlbnNoZWxsLnNhbmRib3gudjEuUG9saWN5U291cmNlEh0KFWdsb2JhbF9wb2xpY3lfdmVyc2lvbhgEIAEoDRIZChFzZXR0aW5nc19yZXZpc2lvbhgFIAEoBCKQBAoVQ29uZmlnVXBkYXRlT3BlcmF0aW9uEhQKDG9wZXJhdGlvbl9pZBgBIAEoCRISCgpzYW5kYm94X2lkGAIgASgJEjAKCWNvbXBvbmVudBgDIAEoDjIdLm9wZW5zaGVsbC52MS5Db25maWdDb21wb25lbnQSPQoPdGFyZ2V0X3JldmlzaW9uGAQgASgLMiQub3BlbnNoZWxsLnYxLkNvbmZpZ1NuYXBzaG90UmV2aXNpb24SNwoFc3RhdGUYBSABKA4yKC5vcGVuc2hlbGwudjEuQ29uZmlnVXBkYXRlT3BlcmF0aW9uU3RhdGUSMQoHb3V0Y29tZRgGIAEoDjIgLm9wZW5zaGVsbC52MS5Db25maWdBcHBseU91dGNvbWUSFwoPc2FuaXRpemVkX2Vycm9yGAcgASgJEjAKDGNyZWF0ZWRfdGltZRhsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMdXBkYXRlZF90aW1lGG0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5jb21wbGV0ZWRfdGltZRhuIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgIEAlKBAgJEApKBAgKEAtSDWNyZWF0ZWRfYXRfbXNSDXVwZGF0ZWRfYXRfbXNSD2NvbXBsZXRlZF9hdF9tcyKcAgoXUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQSEgoKcmVjZWlwdF9pZBgBIAEoCRITCgttdXRhdGlvbl9pZBgCIAEoCRIQCghwcm92aWRlchgDIAEoCRIRCgl3b3Jrc3BhY2UYBCABKAkSMAoEa2luZBgFIAEoDjIiLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uS2luZBI2CgdkZXNpcmVkGAYgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyRGVzaXJlZElkZW50aXR5EjIKDnBlcnNpc3RlZF90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAcQCFIPcGVyc2lzdGVkX2F0X21zItsCChxQcm92aWRlclJlYWRpbmVzc09ic2VydmF0aW9uEhIKCnNlc3Npb25faWQYASABKAkSEAoIc2VxdWVuY2UYAiABKAQSGAoQYXR0YWNobWVudF9lcG9jaBgDIAEoCRIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YBCABKAQSFwoPY29uZmlnX3JldmlzaW9uGAUgASgEEhMKC3BvbGljeV9oYXNoGAYgASgJEh0KFWNyZWRlbnRpYWxzX2luc3RhbGxlZBgHIAEoCBIVCg1wb2xpY3lfYWN0aXZlGAggASgIEiQKHGxhdW5jaF9lbnZpcm9ubWVudF9pbnN0YWxsZWQYCSABKAgSGwoTcHJvY2Vzc19pbnN0YW5jZV9pZBgKIAEoCRI1CgZyZWFzb24YCyABKA4yJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NSZWFzb24i5AMKF1Byb3ZpZGVyUmVhZGluZXNzU3RhdHVzEjYKB3JlY2VpcHQYASABKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQSMwoFc3RhdGUYAiABKA4yJC5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NTdGF0ZRI1CgZyZWFzb24YAyABKA4yJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NSZWFzb24SPAoIb2JzZXJ2ZWQYBCABKAsyKi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NPYnNlcnZhdGlvbhIbChNuZXR3b3JrX2luc3RhbmNlX2lkGAUgASgJEjEKDW9ic2VydmVkX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmV2YWx1YXRlZF90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI2CglvcGVyYXRpb24YCCABKAsyIy5vcGVuc2hlbGwudjEuQ29uZmlnVXBkYXRlT3BlcmF0aW9uSgQIBhAHSgQIBxAIUg5vYnNlcnZlZF9hdF9tc1IPZXZhbHVhdGVkX2F0X21zIpwBCh9HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCRIQCghwcm92aWRlchgCIAEoCRISCgpyZWNlaXB0X2lkGAMgASgJIlkKIEdldFNhbmRib3hQcm92aWRlclN0YXR1c1Jlc3BvbnNlEjUKBnN0YXR1cxgBIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1N0YXR1cyJ1Ch5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRI/CgtvYnNlcnZhdGlvbhgCIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc09ic2VydmF0aW9uIuIBCh9SZXBvcnRQcm92aWRlclJlYWRpbmVzc1Jlc3BvbnNlEhkKEWFjY2VwdGVkX3NlcXVlbmNlGAEgASgEEjIKD3JlcG9ydF9pbnRlcnZhbBhmIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIyCg9vYnNlcnZhdGlvbl90dGwYZyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25KBAgCEANKBAgDEARSF3JlcG9ydF9pbnRlcnZhbF9zZWNvbmRzUhdvYnNlcnZhdGlvbl90dGxfc2Vjb25kcyJqChVEZWxldGVTYW5kYm94UmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWUSEgoKc2FuZGJveF9pZBgDIAEoCUoECAEQAlIHZGVsZXRlZCJuChdDcmVhdGVTc2hTZXNzaW9uUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAki7wEKGENyZWF0ZVNzaFNlc3Npb25SZXNwb25zZRISCgpzYW5kYm94X2lkGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhQKDGdhdGV3YXlfaG9zdBgDIAEoCRIUCgxnYXRld2F5X3BvcnQYBCABKA0SFgoOZ2F0ZXdheV9zY2hlbWUYBSABKAkSHAoUaG9zdF9rZXlfZmluZ2VycHJpbnQYByABKAkSMwoPZXhwaXJhdGlvbl90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAgQCVINZXhwaXJlc19hdF9tcyL2AQoURXhwb3NlU2VydmljZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAUgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAIgASgJEhMKC3RhcmdldF9wb3J0GAMgASgNEg4KBmRvbWFpbhgEIAEoCBIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBiABKAkSQgoSYXV0aG9yaXphdGlvbl9tb2RlGAcgASgOMiYub3BlbnNoZWxsLnYxLlNlcnZpY2VBdXRob3JpemF0aW9uTW9kZSJ2ChFHZXRTZXJ2aWNlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYAiABKAkSDwoHc2FuZGJveBgBIAEoCSKRAQoTTGlzdFNlcnZpY2VzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhEKCXBhZ2Vfc2l6ZRgCIAEoBRISCgpwYWdlX3Rva2VuGAMgASgJEg8KB3NhbmRib3gYASABKAkiaAoUTGlzdFNlcnZpY2VzUmVzcG9uc2USNwoIc2VydmljZXMYASADKAsyJS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50UmVzcG9uc2USFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIqQBChREZWxldGVTZXJ2aWNlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYAiABKAkSDwoHc2FuZGJveBgBIAEoCRIVCg1hbGxvd19taXNzaW5nGAQgASgIEhIKCnJlcXVlc3RfaWQYBSABKAkiVgoVRGVsZXRlU2VydmljZVJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkIuMBCg9TZXJ2aWNlRW5kcG9pbnQSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESEgoKc2FuZGJveF9pZBgCIAEoCRIPCgdzYW5kYm94GAMgASgJEgwKBG5hbWUYBCABKAkSEwoLdGFyZ2V0X3BvcnQYBSABKA0SDgoGZG9tYWluGAYgASgIEkIKEmF1dGhvcml6YXRpb25fbW9kZRgHIAEoDjImLm9wZW5zaGVsbC52MS5TZXJ2aWNlQXV0aG9yaXphdGlvbk1vZGUiVwoXU2VydmljZUVuZHBvaW50UmVzcG9uc2USLwoIZW5kcG9pbnQYASABKAsyHS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50EgsKA3VybBgCIAEoCSJFChdSZXZva2VTc2hTZXNzaW9uUmVxdWVzdBITCgV0b2tlbhgBIAEoCUIEiLUYARIVCg1hbGxvd19taXNzaW5nGAIgASgIIlkKGFJldm9rZVNzaFNlc3Npb25SZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHcmV2b2tlZCK4AwoSRXhlY1NhbmRib3hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgMIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCRIPCgdjb21tYW5kGAIgAygJEg8KB3dvcmtkaXIYAyABKAkSRgoLZW52aXJvbm1lbnQYBCADKAsyMS5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hSZXF1ZXN0LkVudmlyb25tZW50RW50cnkSNAoRZXhlY3V0aW9uX3RpbWVvdXQYaSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SDQoFc3RkaW4YBiABKAwSCwoDdHR5GAcgASgIEgwKBGNvbHMYCCABKA0SDAoEcm93cxgJIAEoDRIWCg5ub19sb2dpbl9zaGVsbBgKIAEoCBISCgpyZXF1ZXN0X2lkGAsgASgJGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAUQBlIPdGltZW91dF9zZWNvbmRzIiEKEUV4ZWNTYW5kYm94U3Rkb3V0EgwKBGRhdGEYASABKAwiIQoRRXhlY1NhbmRib3hTdGRlcnISDAoEZGF0YRgBIAEoDCIkCg9FeGVjU2FuZGJveEV4aXQSEQoJZXhpdF9jb2RlGAEgASgFIrIBChBFeGVjU2FuZGJveEV2ZW50EjEKBnN0ZG91dBgBIAEoCzIfLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFN0ZG91dEgAEjEKBnN0ZGVychgCIAEoCzIfLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFN0ZGVyckgAEi0KBGV4aXQYAyABKAsyHS5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hFeGl0SABCCQoHcGF5bG9hZCLPAQoOVGNwRm9yd2FyZEluaXQSDwoHc2FuZGJveBgBIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkSEgoKc2VydmljZV9pZBgEIAEoCRIrCgNzc2gYBSABKAsyHC5vcGVuc2hlbGwudjEuU3NoUmVsYXlUYXJnZXRIABIrCgN0Y3AYBiABKAsyHC5vcGVuc2hlbGwudjEuVGNwUmVsYXlUYXJnZXRIABIhChNhdXRob3JpemF0aW9uX3Rva2VuGAcgASgJQgSItRgBQggKBnRhcmdldCJaCg9UY3BGb3J3YXJkRnJhbWUSLAoEaW5pdBgBIAEoCzIcLm9wZW5zaGVsbC52MS5UY3BGb3J3YXJkSW5pdEgAEg4KBGRhdGEYAiABKAxIAEIJCgdwYXlsb2FkIpoBChBFeGVjU2FuZGJveElucHV0EjEKBXN0YXJ0GAEgASgLMiAub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94UmVxdWVzdEgAEg8KBXN0ZGluGAIgASgMSAASNwoGcmVzaXplGAMgASgLMiUub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94V2luZG93UmVzaXplSABCCQoHcGF5bG9hZCI1ChdFeGVjU2FuZGJveFdpbmRvd1Jlc2l6ZRIMCgRjb2xzGAEgASgNEgwKBHJvd3MYAiABKA0ixgEKClNzaFNlc3Npb24SNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESEgoKc2FuZGJveF9pZBgCIAEoCRITCgV0b2tlbhgDIAEoCUIEiLUYARIzCg9leHBpcmF0aW9uX3RpbWUYaCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3Jldm9rZWQYBSABKAhKBAgEEAVSDWV4cGlyZXNfYXRfbXMigAMKE1dhdGNoU2FuZGJveFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAsgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhUKDWZvbGxvd19zdGF0dXMYAiABKAgSEwoLZm9sbG93X2xvZ3MYAyABKAgSFQoNZm9sbG93X2V2ZW50cxgEIAEoCBIWCg5sb2dfdGFpbF9saW5lcxgFIAEoDRISCgpldmVudF90YWlsGAYgASgNEhgKEHN0b3Bfb25fdGVybWluYWwYByABKAgSLgoKc2luY2VfdGltZRhsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLbG9nX3NvdXJjZXMYCSADKAkSFQoNbG9nX21pbl9sZXZlbBgKIAEoCRIbChNyZXN1bWVfYWZ0ZXJfY3Vyc29yGAwgASgJSgQICBAJUgxsb2dfc2luY2VfbXMiqwIKElNhbmRib3hTdHJlYW1FdmVudBIoCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3hIABIrCgNsb2cYAiABKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmVIABIsCgVldmVudBgDIAEoCzIbLm9wZW5zaGVsbC52MS5QbGF0Zm9ybUV2ZW50SAASNQoHd2FybmluZxgEIAEoCzIiLm9wZW5zaGVsbC52MS5TYW5kYm94U3RyZWFtV2FybmluZ0gAEj4KE2RyYWZ0X3BvbGljeV91cGRhdGUYBSABKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRQb2xpY3lVcGRhdGVIABIOCgZjdXJzb3IYBiABKAlCCQoHcGF5bG9hZCKRAgoOU2FuZGJveExvZ0xpbmUSEgoKc2FuZGJveF9pZBgBIAEoCRIuCgpldmVudF90aW1lGGYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVsZXZlbBgDIAEoCRIOCgZ0YXJnZXQYBCABKAkSDwoHbWVzc2FnZRgFIAEoCRIOCgZzb3VyY2UYBiABKAkSOAoGZmllbGRzGAcgAygLMigub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgCEANSDHRpbWVzdGFtcF9tcyInChRTYW5kYm94U3RyZWFtV2FybmluZxIPCgdtZXNzYWdlGAEgASgJIqMBChVDcmVhdGVQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIyCghwcm92aWRlchgBIAEoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISEgoKcmVxdWVzdF9pZBgDIAEoCSJmChJHZXRQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAEgASgJIskBCh1HZXRQcm92aWRlckNyZWRlbnRpYWxzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYASABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYAiABKAkSFwoPY3JlZGVudGlhbF9rZXlzGAMgAygJEj0KGm1pbmltdW1fcmVtYWluaW5nX2xpZmV0aW1lGAQgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uImMKF1Byb3ZpZGVyQ3JlZGVudGlhbFZhbHVlEhMKBXZhbHVlGAEgASgJQgSItRgBEjMKD2V4cGlyYXRpb25fdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAizwEKHkdldFByb3ZpZGVyQ3JlZGVudGlhbHNSZXNwb25zZRJSCgtjcmVkZW50aWFscxgBIAMoCzI9Lm9wZW5zaGVsbC52MS5HZXRQcm92aWRlckNyZWRlbnRpYWxzUmVzcG9uc2UuQ3JlZGVudGlhbHNFbnRyeRpZChBDcmVkZW50aWFsc0VudHJ5EgsKA2tleRgBIAEoCRI0CgV2YWx1ZRgCIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxWYWx1ZToCOAEimQEKFExpc3RQcm92aWRlcnNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYBCABKAkitAMKFVVwZGF0ZVByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchJnChtjcmVkZW50aWFsX2V4cGlyYXRpb25fdGltZXMYZiADKAsyQi5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0LkNyZWRlbnRpYWxFeHBpcmF0aW9uVGltZXNFbnRyeRIoCiBjbGVhcl9jcmVkZW50aWFsX2V4cGlyYXRpb25fa2V5cxhnIAMoCRISCgpyZXF1ZXN0X2lkGAQgASgJGlwKHkNyZWRlbnRpYWxFeHBpcmF0aW9uVGltZXNFbnRyeRILCgNrZXkYASABKAkSKQoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wOgI4AUoECAIQA1IYY3JlZGVudGlhbF9leHBpcmVzX2F0X21zIpQBChVEZWxldGVQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAEgASgJEhUKDWFsbG93X21pc3NpbmcYBCABKAgSEgoKcmVxdWVzdF9pZBgFIAEoCSKbAQoQUHJvdmlkZXJSZXNwb25zZRIyCghwcm92aWRlchgBIAEoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISPgoPdGFyZ2V0X3JlY2VpcHRzGAIgAygLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyTXV0YXRpb25SZWNlaXB0EhMKC211dGF0aW9uX2lkGAMgASgJImUKFUxpc3RQcm92aWRlcnNSZXNwb25zZRIzCglwcm92aWRlcnMYASADKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKIAQobTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkiawoZR2V0UHJvdmlkZXJQcm9maWxlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgoKAmlkGAEgASgJIlsKGVByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0SLgoHcHJvZmlsZRgBIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUSDgoGc291cmNlGAIgASgJInEKGVByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSDgoGc291cmNlGAEgASgJEhIKCnByb2ZpbGVfaWQYAiABKAkSDQoFZmllbGQYAyABKAkSDwoHbWVzc2FnZRgEIAEoCRIQCghzZXZlcml0eRgFIAEoCSJ6CixQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50QXVkaWVuY2VPdmVycmlkZRIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SDAoEcGF0aBgDIAEoCRIQCghhdWRpZW5jZRgEIAEoCRIOCgZzY29wZXMYBSADKAkiagooUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudFN1YmplY3RUb2tlbhIOCgZzb3VyY2UYASABKAkSEgoKY3JlZGVudGlhbBgCIAEoCRIaChJzdWJqZWN0X3Rva2VuX3R5cGUYAyABKAki4gMKHFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnQSFgoOdG9rZW5fZW5kcG9pbnQYASABKAkSEAoIYXVkaWVuY2UYAiABKAkSGQoRand0X3N2aWRfYXVkaWVuY2UYBiABKAkSDgoGc2NvcGVzGAMgAygJEiwKCWNhY2hlX3R0bBhoIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhJWChJhdWRpZW5jZV9vdmVycmlkZXMYBSADKAsyOi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSHQoVY2xpZW50X2Fzc2VydGlvbl90eXBlGAcgASgJEkIKCmdyYW50X3R5cGUYCCABKA4yLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudFR5cGUSTQoNc3ViamVjdF90b2tlbhgJIAEoCzI2Lm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50U3ViamVjdFRva2VuEhwKFHJlcXVlc3RlZF90b2tlbl90eXBlGAogASgJSgQIBBAFUhFjYWNoZV90dGxfc2Vjb25kcyLqAgoZUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCGVudl92YXJzGAMgAygJEhAKCHJlcXVpcmVkGAQgASgIEhIKCmF1dGhfc3R5bGUYBSABKAkSEwoLaGVhZGVyX25hbWUYBiABKAkSEwoLcXVlcnlfcGFyYW0YByABKAkSOAoHcmVmcmVzaBgIIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoEhUKDXBhdGhfdGVtcGxhdGUYCSABKAkSPwoLdG9rZW5fZ3JhbnQYCiABKAsyKi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudBIaChJ0b2tlbl9ncmFudF9vd25lcnMYCyADKAkSGgoSc3RhYmxlX3BsYWNlaG9sZGVyGAwgASgIImgKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hNYXRlcmlhbBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCHJlcXVpcmVkGAMgASgIEg4KBnNlY3JldBgEIAEoCCJFCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0Eg4KBm91dHB1dBgBIAEoCRISCgpjcmVkZW50aWFsGAIgASgJIq0DChlQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoEkEKCHN0cmF0ZWd5GAEgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRIRCgl0b2tlbl91cmwYAiABKAkSDgoGc2NvcGVzGAMgAygJEjEKDnJlZnJlc2hfYmVmb3JlGGggASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEi8KDG1heF9saWZldGltZRhpIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhJBCghtYXRlcmlhbBgGIAMoCzIvLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoTWF0ZXJpYWwSSQoSYWRkaXRpb25hbF9vdXRwdXRzGAcgAygLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hPdXRwdXRKBAgEEAVKBAgFEAZSFnJlZnJlc2hfYmVmb3JlX3NlY29uZHNSFG1heF9saWZldGltZV9zZWNvbmRzIoYFCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzEhAKCHByb3ZpZGVyGAEgASgJEhMKC3Byb3ZpZGVyX2lkGAIgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAMgASgJEkEKCHN0cmF0ZWd5GAQgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRIOCgZzdGF0dXMYBSABKAkSMwoPZXhwaXJhdGlvbl90aW1lGGogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1ChFuZXh0X3JlZnJlc2hfdGltZRhrIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoRbGFzdF9yZWZyZXNoX3RpbWUYbCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxhc3RfZXJyb3IYCSABKAkSTgoPcmVjb3ZlcnlfYWN0aW9uGAogASgOMjUub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hSZWNvdmVyeUFjdGlvbhIUCgxmYWlsdXJlX2NvZGUYCyABKAkSHgoWcHJvdmlkZXJfZXJyb3Jfc3VidHlwZRgMIAEoCRIzCg9sYXN0X2Vycm9yX3RpbWUYcSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIBhAHSgQIBxAISgQICBAJSgQIDRAOUg1leHBpcmVzX2F0X21zUhJuZXh0X3JlZnJlc2hfYXRfbXNSEmxhc3RfcmVmcmVzaF9hdF9tc1IQbGFzdF9lcnJvcl9hdF9tcyIvChhQcm92aWRlclByb2ZpbGVEaXNjb3ZlcnkSEwoLY3JlZGVudGlhbHMYASADKAkijwEKH0dldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghwcm92aWRlchgBIAEoCRIWCg5jcmVkZW50aWFsX2tleRgCIAEoCSJmCiBHZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXNwb25zZRJCCgtjcmVkZW50aWFscxgBIAMoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzItQDCh9Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgHIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSQQoIc3RyYXRlZ3kYAyABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5ElMKCG1hdGVyaWFsGAQgAygLMjsub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgFIAMoCRIzCg9leHBpcmF0aW9uX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnJlcXVlc3RfaWQYCCABKAkaLwoNTWF0ZXJpYWxFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBhAHUg1leHBpcmVzX2F0X21zImEKIENvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlEj0KBnN0YXR1cxgBIAEoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzIqMBCh9Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSEgoKcmVxdWVzdF9pZBgEIAEoCSJhCiBSb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyK3AQocRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhUKDWFsbG93X21pc3NpbmcYBSABKAgSEgoKcmVxdWVzdF9pZBgGIAEoCSJeCh1EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHZGVsZXRlZCLqBAoPUHJvdmlkZXJQcm9maWxlEgoKAmlkGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRI3CghjYXRlZ29yeRgEIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDYXRlZ29yeRI8CgtjcmVkZW50aWFscxgFIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDcmVkZW50aWFsEjgKCWVuZHBvaW50cxgGIAMoCzIlLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtFbmRwb2ludBI1CghiaW5hcmllcxgHIAMoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtCaW5hcnkSGQoRaW5mZXJlbmNlX2NhcGFibGUYCCABKAgSOQoJZGlzY292ZXJ5GAkgASgLMiYub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpc2NvdmVyeRIYChByZXNvdXJjZV92ZXJzaW9uGAogASgEEkMKC2Fubm90YXRpb25zGAsgAygLMi4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZS5Bbm5vdGF0aW9uc0VudHJ5Eg4KBnNvdXJjZRgMIAEoCRINCgVzY29wZRgNIAEoCRIwCgVmaWxlcxgOIAMoCzIhLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVGaWxlGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJFChNQcm92aWRlclByb2ZpbGVGaWxlEgwKBHBhdGgYASABKAkSDwoHY29udGVudBgCIAEoCRIPCgdlbnZfdmFyGAMgASgJIkkKF1Byb3ZpZGVyUHJvZmlsZVJlc3BvbnNlEi4KB3Byb2ZpbGUYASABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlImgKHExpc3RQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USLwoIcHJvZmlsZXMYASADKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKyAQodSW1wb3J0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEhIKCnJlcXVlc3RfaWQYAyABKAkioQEKHkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi8KCHByb2ZpbGVzGAIgAygLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIQCghpbXBvcnRlZBgDIAEoCCLgAQodVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchI4Cgdwcm9maWxlGAEgASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0SIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgCIAEoBBIKCgJpZBgDIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIp8BCh5VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxIuCgdwcm9maWxlGAIgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIPCgd1cGRhdGVkGAMgASgIIpwBChtMaW50UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtIpABChxMaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlEjwKC2RpYWdub3N0aWNzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSDQoFdmFsaWQYAiABKAgSIwobc3VwcG9ydHNfc3RhYmxlX3BsYWNlaG9sZGVyGAMgASgIIlcKFkRlbGV0ZVByb3ZpZGVyUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQimQEKHERlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIKCgJpZBgBIAEoCRIVCg1hbGxvd19taXNzaW5nGAMgASgIEhIKCnJlcXVlc3RfaWQYBCABKAkiXgodRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQinQEKJEdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEisKI3N1cHBvcnRzX3N0YXRpY19jcmVkZW50aWFsX2JpbmRpbmdzGAIgASgIEjQKLHN1cHBvcnRzX3N0YWJsZV9wbGFjZWhvbGRlcl9lbnZpcm9ubWVudF9rZXlzGAMgASgIIksKH1N0YXRpY0NyZWRlbnRpYWxFbmRwb2ludEJpbmRpbmcSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEgwKBHBhdGgYAyABKAkinAEKF1N0YXRpY0NyZWRlbnRpYWxCaW5kaW5nEkAKCWVuZHBvaW50cxgBIAMoCzItLm9wZW5zaGVsbC52MS5TdGF0aWNDcmVkZW50aWFsRW5kcG9pbnRCaW5kaW5nEhsKE2NyZWRlbnRpYWxfaWRlbnRpdHkYAiABKAkSIgoad29ya2xvYWRfY3JlZGVudGlhbF9oYW5kbGUYAyABKAki/QkKJUdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2USXwoLZW52aXJvbm1lbnQYASADKAsyRC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5FbnZpcm9ubWVudEVudHJ5QgSItRgBEh0KFXByb3ZpZGVyX2Vudl9yZXZpc2lvbhgCIAEoBBJ3ChtjcmVkZW50aWFsX2V4cGlyYXRpb25fdGltZXMYZyADKAsyUi5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5DcmVkZW50aWFsRXhwaXJhdGlvblRpbWVzRW50cnkSaAoTZHluYW1pY19jcmVkZW50aWFscxgEIAMoCzJLLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkR5bmFtaWNDcmVkZW50aWFsc0VudHJ5EnUKGnN0YXRpY19jcmVkZW50aWFsX2JpbmRpbmdzGAUgAygLMlEub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSIwobbm9uX3NlY3JldF9lbnZpcm9ubWVudF9rZXlzGAYgAygJEiEKGXByb3ZpZGVyX2F0dGFjaG1lbnRfZXBvY2gYByABKAkSEwoLcG9saWN5X2hhc2gYCCABKAkSPwoQcmVhZGluZXNzX3JlYXNvbhgJIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1JlYXNvbhJNCgVmaWxlcxgKIAMoCzI+Lm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkZpbGVzRW50cnkSKwojc3RhYmxlX3BsYWNlaG9sZGVyX2Vudmlyb25tZW50X2tleXMYCyADKAkSNAosc3VwcG9ydHNfc3RhYmxlX3BsYWNlaG9sZGVyX2Vudmlyb25tZW50X2tleXMYDCABKAgaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGlwKHkNyZWRlbnRpYWxFeHBpcmF0aW9uVGltZXNFbnRyeRILCgNrZXkYASABKAkSKQoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wOgI4ARpiChdEeW5hbWljQ3JlZGVudGlhbHNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbDoCOAEaZgodU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSCwoDa2V5GAEgASgJEjQKBXZhbHVlGAIgASgLMiUub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nOgI4ARosCgpGaWxlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgDEARSGGNyZWRlbnRpYWxfZXhwaXJlc19hdF9tcyKmAgoYUHJvdmlkZXJFbnZpcm9ubWVudFZhbHVlEgwKBG5hbWUYASABKAkSEwoFdmFsdWUYAiABKAlCBIi1GAESTAoOY2xhc3NpZmljYXRpb24YBCABKA4yNC5vcGVuc2hlbGwudjEuUHJvdmlkZXJFbnZpcm9ubWVudFZhbHVlQ2xhc3NpZmljYXRpb24SSAoZc3RhdGljX2NyZWRlbnRpYWxfYmluZGluZxgFIAEoCzIlLm9wZW5zaGVsbC52MS5TdGF0aWNDcmVkZW50aWFsQmluZGluZxIzCg9leHBpcmF0aW9uX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhoKEnN0YWJsZV9wbGFjZWhvbGRlchgGIAEoCCKkBAobUHJvdmlkZXJFbnZpcm9ubWVudFNuYXBzaG90Eh0KFXByb3ZpZGVyX2Vudl9yZXZpc2lvbhgBIAEoBBI2CgZ2YWx1ZXMYAiADKAsyJi5vcGVuc2hlbGwudjEuUHJvdmlkZXJFbnZpcm9ubWVudFZhbHVlEl4KE2R5bmFtaWNfY3JlZGVudGlhbHMYAyADKAsyQS5vcGVuc2hlbGwudjEuUHJvdmlkZXJFbnZpcm9ubWVudFNuYXBzaG90LkR5bmFtaWNDcmVkZW50aWFsc0VudHJ5EiEKGXByb3ZpZGVyX2F0dGFjaG1lbnRfZXBvY2gYBCABKAkSEwoLcG9saWN5X2hhc2gYBSABKAkSPwoQcmVhZGluZXNzX3JlYXNvbhgGIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1JlYXNvbhJDCgVmaWxlcxgHIAMoCzI0Lm9wZW5zaGVsbC52MS5Qcm92aWRlckVudmlyb25tZW50U25hcHNob3QuRmlsZXNFbnRyeRpiChdEeW5hbWljQ3JlZGVudGlhbHNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbDoCOAEaLAoKRmlsZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIoYBCiNFeGNoYW5nZVByb3ZpZGVyU3ViamVjdFRva2VuUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEhAKCHByb3ZpZGVyGAIgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAMgASgJEiEKE3N1cGVydmlzb3Jfand0X3N2aWQYBCABKAlCBIi1GAEimgEKJEV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXNwb25zZRIaCgxhY2Nlc3NfdG9rZW4YASABKAlCBIi1GAESMAoNZXhwaXJlc19hZnRlchhmIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhISCgp0b2tlbl90eXBlGAMgASgJSgQIAhADUgpleHBpcmVzX2luIokEChNVcGRhdGVDb25maWdSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgKIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISMwoGcG9saWN5GAIgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRITCgtzZXR0aW5nX2tleRgDIAEoCRI5Cg1zZXR0aW5nX3ZhbHVlGAQgASgLMiIub3BlbnNoZWxsLnNhbmRib3gudjEuU2V0dGluZ1ZhbHVlEhYKDmRlbGV0ZV9zZXR0aW5nGAUgASgIEg4KBmdsb2JhbBgGIAEoCBI8ChBtZXJnZV9vcGVyYXRpb25zGAcgAygLMiIub3BlbnNoZWxsLnYxLlBvbGljeU1lcmdlT3BlcmF0aW9uEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YCCABKAQSRwoLYW5ub3RhdGlvbnMYCSADKAsyMi5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVxdWVzdC5Bbm5vdGF0aW9uc0VudHJ5Eg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgLIAEoCRoyChBBbm5vdGF0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi9wIKFFBvbGljeU1lcmdlT3BlcmF0aW9uEjAKCGFkZF9ydWxlGAEgASgLMhwub3BlbnNoZWxsLnYxLkFkZE5ldHdvcmtSdWxlSAASPgoPcmVtb3ZlX2VuZHBvaW50GAIgASgLMiMub3BlbnNoZWxsLnYxLlJlbW92ZU5ldHdvcmtFbmRwb2ludEgAEjYKC3JlbW92ZV9ydWxlGAMgASgLMh8ub3BlbnNoZWxsLnYxLlJlbW92ZU5ldHdvcmtSdWxlSAASNAoOYWRkX2RlbnlfcnVsZXMYBCABKAsyGi5vcGVuc2hlbGwudjEuQWRkRGVueVJ1bGVzSAASNgoPYWRkX2FsbG93X3J1bGVzGAUgASgLMhsub3BlbnNoZWxsLnYxLkFkZEFsbG93UnVsZXNIABI6Cg1yZW1vdmVfYmluYXJ5GAYgASgLMiEub3BlbnNoZWxsLnYxLlJlbW92ZU5ldHdvcmtCaW5hcnlIAEILCglvcGVyYXRpb24iWgoOQWRkTmV0d29ya1J1bGUSEQoJcnVsZV9uYW1lGAEgASgJEjUKBHJ1bGUYAiABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZSJGChVSZW1vdmVOZXR3b3JrRW5kcG9pbnQSEQoJcnVsZV9uYW1lGAEgASgJEgwKBGhvc3QYAiABKAkSDAoEcG9ydBgDIAEoDSImChFSZW1vdmVOZXR3b3JrUnVsZRIRCglydWxlX25hbWUYASABKAkipQEKDEw3UnVsZVRhcmdldBIRCglydWxlX25hbWUYASABKAkSDAoEaG9zdBgCIAEoCRINCgVwb3J0cxgDIAMoDRIRCgRwYXRoGAQgASgJSACIAQESNQoIYmluYXJpZXMYBSADKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrQmluYXJ5EhIKCmFueV9iaW5hcnkYBiABKAhCBwoFX3BhdGgiiAEKDEFkZERlbnlSdWxlcxI0CgpkZW55X3J1bGVzGAMgAygLMiAub3BlbnNoZWxsLnNhbmRib3gudjEuTDdEZW55UnVsZRIqCgZ0YXJnZXQYBCABKAsyGi5vcGVuc2hlbGwudjEuTDdSdWxlVGFyZ2V0SgQIARACSgQIAhADUgRob3N0UgRwb3J0IoABCg1BZGRBbGxvd1J1bGVzEisKBXJ1bGVzGAMgAygLMhwub3BlbnNoZWxsLnNhbmRib3gudjEuTDdSdWxlEioKBnRhcmdldBgEIAEoCzIaLm9wZW5zaGVsbC52MS5MN1J1bGVUYXJnZXRKBAgBEAJKBAgCEANSBGhvc3RSBHBvcnQiPQoTUmVtb3ZlTmV0d29ya0JpbmFyeRIRCglydWxlX25hbWUYASABKAkSEwoLYmluYXJ5X3BhdGgYAiABKAki5gEKFFVwZGF0ZUNvbmZpZ1Jlc3BvbnNlEg8KB3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkSGQoRc2V0dGluZ3NfcmV2aXNpb24YAyABKAQSDwoHZGVsZXRlZBgEIAEoCBJICgthbm5vdGF0aW9ucxgFIAMoCzIzLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXNwb25zZS5Bbm5vdGF0aW9uc0VudHJ5GjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKVAQodR2V0U2FuZGJveFBvbGljeVN0YXR1c1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgd2ZXJzaW9uGAIgASgNEg4KBmdsb2JhbBgDIAEoCBIPCgdzYW5kYm94GAEgASgJIm8KHkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXNwb25zZRI1CghyZXZpc2lvbhgBIAEoCzIjLm9wZW5zaGVsbC52MS5TYW5kYm94UG9saWN5UmV2aXNpb24SFgoOYWN0aXZlX3ZlcnNpb24YAiABKA0iqAEKGkxpc3RTYW5kYm94UG9saWNpZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgFIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAIgASgFEhIKCnBhZ2VfdG9rZW4YAyABKAkSDgoGZ2xvYmFsGAQgASgIEg8KB3NhbmRib3gYASABKAkibgobTGlzdFNhbmRib3hQb2xpY2llc1Jlc3BvbnNlEjYKCXJldmlzaW9ucxgBIAMoCzIjLm9wZW5zaGVsbC52MS5TYW5kYm94UG9saWN5UmV2aXNpb24SFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIoABChlSZXBvcnRQb2xpY3lTdGF0dXNSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDRIqCgZzdGF0dXMYAyABKA4yGi5vcGVuc2hlbGwudjEuUG9saWN5U3RhdHVzEhIKCmxvYWRfZXJyb3IYBCABKAkiHAoaUmVwb3J0UG9saWN5U3RhdHVzUmVzcG9uc2Ui4gEKHVNhbmRib3hDb25maWd1cmF0aW9uQWRtaXNzaW9uEhMKC2luc3RhbmNlX2lkGAEgASgJEjgKBXN0YXRlGAIgASgOMikub3BlbnNoZWxsLnYxLkNvbmZpZ3VyYXRpb25BZG1pc3Npb25TdGF0ZRIWCg5wb2xpY3lfdmVyc2lvbhgDIAEoDRITCgtwb2xpY3lfaGFzaBgEIAEoCRIXCg9jb25maWdfcmV2aXNpb24YBSABKAQSHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAYgASgEEg0KBWVycm9yGAcgASgJIpUBCiFSZXBvcnRTYW5kYm94Q29uZmlndXJhdGlvblJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRI+CglhZG1pc3Npb24YAiABKAsyKy5vcGVuc2hlbGwudjEuU2FuZGJveENvbmZpZ3VyYXRpb25BZG1pc3Npb24SHAoUZXhwZWN0ZWRfaW5zdGFuY2VfaWQYAyABKAkiJAoiUmVwb3J0U2FuZGJveENvbmZpZ3VyYXRpb25SZXNwb25zZSK6AwoVU2FuZGJveFBvbGljeVJldmlzaW9uEg8KB3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkSKgoGc3RhdHVzGAMgASgOMhoub3BlbnNoZWxsLnYxLlBvbGljeVN0YXR1cxISCgpsb2FkX2Vycm9yGAQgASgJEjAKDGNyZWF0ZWRfdGltZRhpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLbG9hZGVkX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKBnBvbGljeRgHIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSRwoKcHJvdmVuYW5jZRgIIAMoCzIzLm9wZW5zaGVsbC52MS5TYW5kYm94UG9saWN5UmV2aXNpb24uUHJvdmVuYW5jZUVudHJ5GjEKD1Byb3ZlbmFuY2VFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBRAGSgQIBhAHUg1jcmVhdGVkX2F0X21zUgxsb2FkZWRfYXRfbXMi3wEKFUdldFNhbmRib3hMb2dzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSDQoFbGluZXMYAiABKA0SLgoKc2luY2VfdGltZRhnIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHc291cmNlcxgEIAMoCRIRCgltaW5fbGV2ZWwYBSABKAlKBAgDEARSCHNpbmNlX21zIlgKFlB1c2hTYW5kYm94TG9nc1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIqCgRsb2dzGAIgAygLMhwub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lIhkKF1B1c2hTYW5kYm94TG9nc1Jlc3BvbnNlIloKFkdldFNhbmRib3hMb2dzUmVzcG9uc2USKgoEbG9ncxgBIAMoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94TG9nTGluZRIUCgxidWZmZXJfdG90YWwYAiABKA0itQIKEVN1cGVydmlzb3JNZXNzYWdlEi4KBWhlbGxvGAEgASgLMh0ub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JIZWxsb0gAEjYKCWhlYXJ0YmVhdBgCIAEoCzIhLm9wZW5zaGVsbC52MS5TdXBlcnZpc29ySGVhcnRiZWF0SAASOgoRcmVsYXlfb3Blbl9yZXN1bHQYAyABKAsyHS5vcGVuc2hlbGwudjEuUmVsYXlPcGVuUmVzdWx0SAASLwoLcmVsYXlfY2xvc2UYBCABKAsyGC5vcGVuc2hlbGwudjEuUmVsYXlDbG9zZUgAEkAKFGNvbmZpZ191cGRhdGVfcmVzdWx0GAUgASgLMiAub3BlbnNoZWxsLnYxLkNvbmZpZ1VwZGF0ZVJlc3VsdEgAQgkKB3BheWxvYWQilgMKDkdhdGV3YXlNZXNzYWdlEjkKEHNlc3Npb25fYWNjZXB0ZWQYASABKAsyHS5vcGVuc2hlbGwudjEuU2Vzc2lvbkFjY2VwdGVkSAASOQoQc2Vzc2lvbl9yZWplY3RlZBgCIAEoCzIdLm9wZW5zaGVsbC52MS5TZXNzaW9uUmVqZWN0ZWRIABIzCgloZWFydGJlYXQYAyABKAsyHi5vcGVuc2hlbGwudjEuR2F0ZXdheUhlYXJ0YmVhdEgAEi0KCnJlbGF5X29wZW4YBCABKAsyFy5vcGVuc2hlbGwudjEuUmVsYXlPcGVuSAASLwoLcmVsYXlfY2xvc2UYBSABKAsyGC5vcGVuc2hlbGwudjEuUmVsYXlDbG9zZUgAEjkKEHNlc3Npb25fcmVkaXJlY3QYBiABKAsyHS5vcGVuc2hlbGwudjEuU2Vzc2lvblJlZGlyZWN0SAASMwoNY29uZmlnX3VwZGF0ZRgHIAEoCzIaLm9wZW5zaGVsbC52MS5Db25maWdVcGRhdGVIAEIJCgdwYXlsb2FkIs4BCg9TdXBlcnZpc29ySGVsbG8SEgoKc2FuZGJveF9pZBgBIAEoCRITCgtpbnN0YW5jZV9pZBgCIAEoCRIYChBjb25uZWN0aW9uX2Vwb2NoGAMgASgEEiMKG3N1cHBvcnRzX3Byb3ZpZGVyX3JlYWRpbmVzcxgEIAEoCBISCgpyZWRpcmVjdGVkGAUgASgIEiEKGXN1cHBvcnRzX3Nlc3Npb25fcmVkaXJlY3QYBiABKAgSHAoUc3VwcG9ydHNfY29uZmlnX3B1c2gYByABKAgixwEKD1Nlc3Npb25BY2NlcHRlZBISCgpzZXNzaW9uX2lkGAEgASgJEi0KCWJvb3RzdHJhcBgDIAEoCzIaLm9wZW5zaGVsbC52MS5Db25maWdVcGRhdGUSGwoTY29uZmlnX3B1c2hfZW5hYmxlZBgEIAEoCBI1ChJoZWFydGJlYXRfaW50ZXJ2YWwYZiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25KBAgCEANSF2hlYXJ0YmVhdF9pbnRlcnZhbF9zZWNzIq8BCgxDb25maWdVcGRhdGUSEQoJdXBkYXRlX2lkGAEgASgJEkMKDnNhbmRib3hfY29uZmlnGAIgASgLMisub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveENvbmZpZ1NuYXBzaG90EkcKFHByb3ZpZGVyX2Vudmlyb25tZW50GAMgASgLMikub3BlbnNoZWxsLnYxLlByb3ZpZGVyRW52aXJvbm1lbnRTbmFwc2hvdCJGChJDb25maWdBcHBseUZhaWx1cmUSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEhEKCXJldHJ5YWJsZRgDIAEoCCKCAgoSQ29uZmlnVXBkYXRlUmVzdWx0EhEKCXVwZGF0ZV9pZBgBIAEoCRIxCgdvdXRjb21lGAIgASgOMiAub3BlbnNoZWxsLnYxLkNvbmZpZ0FwcGx5T3V0Y29tZRIxCgdmYWlsdXJlGAMgASgLMiAub3BlbnNoZWxsLnYxLkNvbmZpZ0FwcGx5RmFpbHVyZRI+CglhZG1pc3Npb24YBCABKAsyKy5vcGVuc2hlbGwudjEuU2FuZGJveENvbmZpZ3VyYXRpb25BZG1pc3Npb24SMwoLcG9saWN5X2xvYWQYBSABKAsyHi5vcGVuc2hlbGwudjEuUG9saWN5TG9hZFJlc3VsdCJCChBQb2xpY3lMb2FkUmVzdWx0Eg8KB3ZlcnNpb24YASABKA0SDgoGbG9hZGVkGAIgASgIEg0KBWVycm9yGAMgASgJIiEKD1Nlc3Npb25SZWplY3RlZBIOCgZyZWFzb24YASABKAkiQgoPU2Vzc2lvblJlZGlyZWN0EhUKDXBlZXJfZW5kcG9pbnQYASABKAkSGAoQb3duZXJfcmVwbGljYV9pZBgCIAEoCSIVChNTdXBlcnZpc29ySGVhcnRiZWF0IhIKEEdhdGV3YXlIZWFydGJlYXQiWgocUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJEhEKCWV4aXRfY29kZRgDIAEoBSIfCh1SZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXNwb25zZSJJCh5GaW5hbGl6ZU1haW5Qcm9jZXNzRXhpdFJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRITCgtpbnN0YW5jZV9pZBgCIAEoCSIhCh9GaW5hbGl6ZU1haW5Qcm9jZXNzRXhpdFJlc3BvbnNlIpcBCglSZWxheU9wZW4SEgoKY2hhbm5lbF9pZBgBIAEoCRIrCgNzc2gYAiABKAsyHC5vcGVuc2hlbGwudjEuU3NoUmVsYXlUYXJnZXRIABIrCgN0Y3AYAyABKAsyHC5vcGVuc2hlbGwudjEuVGNwUmVsYXlUYXJnZXRIABISCgpzZXJ2aWNlX2lkGAUgASgJQggKBnRhcmdldCIQCg5Tc2hSZWxheVRhcmdldCIsCg5UY3BSZWxheVRhcmdldBIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0iHwoJUmVsYXlJbml0EhIKCmNoYW5uZWxfaWQYASABKAkiUAoKUmVsYXlGcmFtZRInCgRpbml0GAEgASgLMhcub3BlbnNoZWxsLnYxLlJlbGF5SW5pdEgAEg4KBGRhdGEYAiABKAxIAEIJCgdwYXlsb2FkIm4KDVBlZXJSZWxheUluaXQSEgoKc2FuZGJveF9pZBgBIAEoCRIrCgpyZWxheV9vcGVuGAIgASgLMhcub3BlbnNoZWxsLnYxLlJlbGF5T3BlbhIcChRyZXF1ZXN0ZXJfcmVwbGljYV9pZBgDIAEoCSJYCg5QZWVyUmVsYXlGcmFtZRIrCgRpbml0GAEgASgLMhsub3BlbnNoZWxsLnYxLlBlZXJSZWxheUluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCJBChdQZWVyQ29uZmlnU2FuZGJveFRhcmdldBISCgpzYW5kYm94X2lkGAEgASgJEhIKCnNlc3Npb25faWQYAiABKAkiOwoYUGVlckNvbmZpZ1Byb3ZpZGVyVGFyZ2V0EhEKCXdvcmtzcGFjZRgBIAEoCRIMCgRuYW1lGAIgASgJIswBCh1QZWVyTm90aWZ5Q29uZmlnVXBkYXRlUmVxdWVzdBI4CgdzYW5kYm94GAEgASgLMiUub3BlbnNoZWxsLnYxLlBlZXJDb25maWdTYW5kYm94VGFyZ2V0SAASEwoJd29ya3NwYWNlGAIgASgJSAASFwoNYWxsX2Nvbm5lY3RlZBgDIAEoCEgAEjoKCHByb3ZpZGVyGAQgASgLMiYub3BlbnNoZWxsLnYxLlBlZXJDb25maWdQcm92aWRlclRhcmdldEgAQgcKBXNjb3BlIjUKHlBlZXJOb3RpZnlDb25maWdVcGRhdGVSZXNwb25zZRITCgtzdGFsZV9vd25lchgBIAEoCCJFCg9SZWxheU9wZW5SZXN1bHQSEgoKY2hhbm5lbF9pZBgBIAEoCRIPCgdzdWNjZXNzGAIgASgIEg0KBWVycm9yGAMgASgJIjAKClJlbGF5Q2xvc2USEgoKY2hhbm5lbF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkiUAoPTDdSZXF1ZXN0U2FtcGxlEg4KBm1ldGhvZBgBIAEoCRIMCgRwYXRoGAIgASgJEhAKCGRlY2lzaW9uGAMgASgJEg0KBWNvdW50GAQgASgNIvoDCg1EZW5pYWxTdW1tYXJ5EhIKCnNhbmRib3hfaWQYASABKAkSDAoEaG9zdBgCIAEoCRIMCgRwb3J0GAMgASgNEg4KBmJpbmFyeRgEIAEoCRIRCglhbmNlc3RvcnMYBSADKAkSEwoLZGVueV9yZWFzb24YBiABKAkSMwoPZmlyc3Rfc2Vlbl90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5sYXN0X3NlZW5fdGltZRhsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFY291bnQYCSABKA0SGAoQc3VwcHJlc3NlZF9jb3VudBgKIAEoDRITCgt0b3RhbF9jb3VudBgLIAEoDRIXCg9zYW1wbGVfY21kbGluZXMYDCADKAkSFQoNYmluYXJ5X3NoYTI1NhgNIAEoCRISCgpwZXJzaXN0ZW50GA4gASgIEhQKDGRlbmlhbF9zdGFnZRgPIAEoCRI5ChJsN19yZXF1ZXN0X3NhbXBsZXMYECADKAsyHS5vcGVuc2hlbGwudjEuTDdSZXF1ZXN0U2FtcGxlEhwKFGw3X2luc3BlY3Rpb25fYWN0aXZlGBEgASgISgQIBxAISgQICBAJUg1maXJzdF9zZWVuX21zUgxsYXN0X3NlZW5fbXMiPAoQRGVuaWFsR3JvdXBDb3VudBISCgpkZW55X2dyb3VwGAEgASgJEhQKDGRlbmllZF9jb3VudBgCIAEoDSKPAQoWTmV0d29ya0FjdGl2aXR5U3VtbWFyeRIeChZuZXR3b3JrX2FjdGl2aXR5X2NvdW50GAEgASgNEhsKE2RlbmllZF9hY3Rpb25fY291bnQYAiABKA0SOAoQZGVuaWFsc19ieV9ncm91cBgDIAMoCzIeLm9wZW5zaGVsbC52MS5EZW5pYWxHcm91cENvdW50IowHCgtQb2xpY3lDaHVuaxIKCgJpZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSEQoJcnVsZV9uYW1lGAMgASgJEj4KDXByb3Bvc2VkX3J1bGUYBCABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZRIRCglyYXRpb25hbGUYBSABKAkSFgoOc2VjdXJpdHlfbm90ZXMYBiABKAkSEgoKY29uZmlkZW5jZRgHIAEoAhIaChJkZW5pYWxfc3VtbWFyeV9pZHMYCCADKAkSMAoMY3JlYXRlZF90aW1lGG0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxkZWNpZGVkX3RpbWUYbiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXN0YWdlGAsgASgJEhsKE3N1cGVyc2VkZXNfY2h1bmtfaWQYDCABKAkSEQoJaGl0X2NvdW50GA0gASgFEjMKD2ZpcnN0X3NlZW5fdGltZRhyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoObGFzdF9zZWVuX3RpbWUYcyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBmJpbmFyeRgQIAEoCRIZChF2YWxpZGF0aW9uX3Jlc3VsdBgRIAEoCRIYChByZWplY3Rpb25fcmVhc29uGBIgASgJEhkKEWFwcGxpY2F0aW9uX2Vycm9yGBMgASgJEhQKDHJldmlld190b2tlbhgUIAEoCRIlCh1jdXJyZW50X2VmZmVjdGl2ZV9wb2xpY3lfaGFzaBgVIAEoCRInCh9jYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBYgASgJEkUKGGN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeRgXIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSRwoaY2FuZGlkYXRlX2VmZmVjdGl2ZV9wb2xpY3kYGCABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5SgQICRAKSgQIChALSgQIDhAPSgQIDxAQUg1jcmVhdGVkX2F0X21zUg1kZWNpZGVkX2F0X21zUg1maXJzdF9zZWVuX21zUgxsYXN0X3NlZW5fbXMiZgoRRHJhZnRQb2xpY3lVcGRhdGUSFQoNZHJhZnRfdmVyc2lvbhgBIAEoBBISCgpuZXdfY2h1bmtzGAIgASgNEhUKDXRvdGFsX3BlbmRpbmcYAyABKA0SDwoHc3VtbWFyeRgEIAEoCSK0AgobU3VibWl0UG9saWN5QW5hbHlzaXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgGIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISLgoJc3VtbWFyaWVzGAEgAygLMhsub3BlbnNoZWxsLnYxLkRlbmlhbFN1bW1hcnkSMgoPcHJvcG9zZWRfY2h1bmtzGAIgAygLMhkub3BlbnNoZWxsLnYxLlBvbGljeUNodW5rEhUKDWFuYWx5c2lzX21vZGUYAyABKAkSDAoEbmFtZRgEIAEoCRJIChpuZXR3b3JrX2FjdGl2aXR5X3N1bW1hcmllcxgFIAMoCzIkLm9wZW5zaGVsbC52MS5OZXR3b3JrQWN0aXZpdHlTdW1tYXJ5IocBChxTdWJtaXRQb2xpY3lBbmFseXNpc1Jlc3BvbnNlEhcKD2FjY2VwdGVkX2NodW5rcxgBIAEoDRIXCg9yZWplY3RlZF9jaHVua3MYAiABKA0SGQoRcmVqZWN0aW9uX3JlYXNvbnMYAyADKAkSGgoSYWNjZXB0ZWRfY2h1bmtfaWRzGAQgAygJIoMBChVHZXREcmFmdFBvbGljeVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIVCg1zdGF0dXNfZmlsdGVyGAIgASgJEg8KB3NhbmRib3gYASABKAkixgEKFkdldERyYWZ0UG9saWN5UmVzcG9uc2USKQoGY2h1bmtzGAEgAygLMhkub3BlbnNoZWxsLnYxLlBvbGljeUNodW5rEhcKD3JvbGxpbmdfc3VtbWFyeRgCIAEoCRIVCg1kcmFmdF92ZXJzaW9uGAMgASgEEjYKEmxhc3RfYW5hbHl6ZWRfdGltZRhoIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgEEAVSE2xhc3RfYW5hbHl6ZWRfYXRfbXMiqwEKGEFwcHJvdmVEcmFmdENodW5rUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCGNodW5rX2lkGAIgASgJEhQKDHJldmlld190b2tlbhgEIAEoCRIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBSABKAkiSAoZQXBwcm92ZURyYWZ0Q2h1bmtSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCSKkAQoXUmVqZWN0RHJhZnRDaHVua1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghjaHVua19pZBgCIAEoCRIOCgZyZWFzb24YAyABKAkSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIhoKGFJlamVjdERyYWZ0Q2h1bmtSZXNwb25zZSI8ChJEcmFmdENodW5rQXBwcm92YWwSEAoIY2h1bmtfaWQYASABKAkSFAoMcmV2aWV3X3Rva2VuGAIgASgJIt4BChxBcHByb3ZlQWxsRHJhZnRDaHVua3NSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISIAoYaW5jbHVkZV9zZWN1cml0eV9mbGFnZ2VkGAIgASgIEjMKCWFwcHJvdmFscxgDIAMoCzIgLm9wZW5zaGVsbC52MS5EcmFmdENodW5rQXBwcm92YWwSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIn0KHUFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJEhcKD2NodW5rc19hcHByb3ZlZBgDIAEoDRIWCg5jaHVua3Nfc2tpcHBlZBgEIAEoDSLSAQoVRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIY2h1bmtfaWQYAiABKAkSPgoNcHJvcG9zZWRfcnVsZRgDIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgFIAEoCSIYChZFZGl0RHJhZnRDaHVua1Jlc3BvbnNlIpIBChVVbmRvRHJhZnRDaHVua1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghjaHVua19pZBgCIAEoCRIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBCABKAkiRQoWVW5kb0RyYWZ0Q2h1bmtSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCSKCAQoXQ2xlYXJEcmFmdENodW5rc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYAyABKAkiMgoYQ2xlYXJEcmFmdENodW5rc1Jlc3BvbnNlEhYKDmNodW5rc19jbGVhcmVkGAEgASgNIm0KFkdldERyYWZ0SGlzdG9yeVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJIpIBChFEcmFmdEhpc3RvcnlFbnRyeRIuCgpldmVudF90aW1lGGUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpldmVudF90eXBlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhAKCGNodW5rX2lkGAQgASgJSgQIARACUgx0aW1lc3RhbXBfbXMiSwoXR2V0RHJhZnRIaXN0b3J5UmVzcG9uc2USMAoHZW50cmllcxgBIAMoCzIfLm9wZW5zaGVsbC52MS5EcmFmdEhpc3RvcnlFbnRyeSKrAQoWQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJEkAKBmxhYmVscxgCIAMoCzIwLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0LkxhYmVsc0VudHJ5EhIKCnJlcXVlc3RfaWQYAyABKAkaLQoLTGFiZWxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJPChdDcmVhdGVXb3Jrc3BhY2VSZXNwb25zZRI0Cgl3b3Jrc3BhY2UYASABKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSIjChNHZXRXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkiTAoUR2V0V29ya3NwYWNlUmVzcG9uc2USNAoJd29ya3NwYWNlGAEgASgLMiEub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2UiVgoVTGlzdFdvcmtzcGFjZXNSZXF1ZXN0EhEKCXBhZ2Vfc2l6ZRgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJEhYKDmxhYmVsX3NlbGVjdG9yGAMgASgJImgKFkxpc3RXb3Jrc3BhY2VzUmVzcG9uc2USNQoKd29ya3NwYWNlcxgBIAMoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSJRChZEZWxldGVXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkSFQoNYWxsb3dfbWlzc2luZxgCIAEoCBISCgpyZXF1ZXN0X2lkGAMgASgJIlgKF0RlbGV0ZVdvcmtzcGFjZVJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkIo0BCg9Xb3Jrc3BhY2VNZW1iZXISNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkSKQoEcm9sZRgDIAEoDjIbLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VSb2xlIrkBChlBZGRXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgBIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkSKQoEcm9sZRgDIAEoDjIbLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VSb2xlEhIKCnJlcXVlc3RfaWQYBCABKAkiSwoaQWRkV29ya3NwYWNlTWVtYmVyUmVzcG9uc2USLQoGbWVtYmVyGAEgASgLMh0ub3BlbnNoZWxsLnYxLldvcmtzcGFjZU1lbWJlciKoAQocUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYASABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJEhUKDWFsbG93X21pc3NpbmcYAyABKAgSEgoKcmVxdWVzdF9pZBgEIAEoCSJeCh1SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHcmVtb3ZlZCKIAQobTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgBIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAIgASgFEhIKCnBhZ2VfdG9rZW4YAyABKAkiZwocTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXNwb25zZRIuCgdtZW1iZXJzGAEgAygLMh0ub3BlbnNoZWxsLnYxLldvcmtzcGFjZU1lbWJlchIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkikQEKGkV4dGVuc2lvblNlcnZpY2VDcmVkZW50aWFsEhQKDHNlcnZpY2VfbmFtZRgBIAEoCRITCgV0b2tlbhgCIAEoCUIEiLUYARIzCg9leHBpcmF0aW9uX3RpbWUYZyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIAxAEUg1leHBpcmVzX2F0X21zIogBChNFbmRwb2ludE9ic2VydmF0aW9uEhMKC2VuZHBvaW50X2lkGAEgASgJEiwKBnJlc3VsdBgCIAEoDjIcLm9wZW5zaGVsbC52MS5FbmRwb2ludFJlc3VsdBIuCgdmYWlsdXJlGAMgASgLMh0ub3BlbnNoZWxsLnYxLkVuZHBvaW50RmFpbHVyZSKxAgobUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSEwoLcG9saWN5X2hhc2gYAiABKAkSHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAMgASgEEjcKDG9ic2VydmF0aW9ucxgEIAMoCzIhLm9wZW5zaGVsbC52MS5FbmRwb2ludE9ic2VydmF0aW9uEh0KFW9ic2VydmVkX2VuZHBvaW50X2lkcxgFIAMoCRIdChVzdXBlcnZpc29yX3Nlc3Npb25faWQYBiABKAkSFwoPcmVwb3J0X3NlcXVlbmNlGAcgASgEEjoKEnRva2VuX2dyYW50X3N0YXR1cxgIIAEoCzIeLm9wZW5zaGVsbC52MS5Ub2tlbkdyYW50U3RhdHVzIlQKEFRva2VuR3JhbnRTdGF0dXMSQAoMbGFzdF9mYWlsdXJlGAEgASgLMioub3BlbnNoZWxsLnYxLlRva2VuR3JhbnRGYWlsdXJlT2JzZXJ2YXRpb24iggEKHFRva2VuR3JhbnRGYWlsdXJlT2JzZXJ2YXRpb24SGAoQZGVzdGluYXRpb25faG9zdBgBIAEoCRIYChBkZXN0aW5hdGlvbl9wb3J0GAIgASgNEi4KB2ZhaWx1cmUYAyABKAsyHS5vcGVuc2hlbGwudjEuRW5kcG9pbnRGYWlsdXJlIh4KHFJlcG9ydEVuZHBvaW50U3RhdHVzUmVzcG9uc2UiiAIKDkVuZHBvaW50U3RhdHVzEhMKC2VuZHBvaW50X2lkGAEgASgJEgwKBGhvc3QYAiABKAkSDQoFcG9ydHMYAyADKA0SDAoEcGF0aBgEIAEoCRIxCgtsYXN0X3Jlc3VsdBgFIAEoDjIcLm9wZW5zaGVsbC52MS5FbmRwb2ludFJlc3VsdBI2ChJsYXN0X3JlcG9ydGVkX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKDGxhc3RfZmFpbHVyZRgHIAEoCzIdLm9wZW5zaGVsbC52MS5FbmRwb2ludEZhaWx1cmVKBAgGEAdSEGxhc3RfcmVwb3J0ZWRfYXQiuwUKE1NhbmRib3hQcm92aXNpb25pbmcSEgoKYXR0ZW1wdF9pZBgBIAEoCRIfChdjb25maWd1cmF0aW9uX2NoYW5nZV9pZBgCIAEoCRI9Chljb25maWd1cmF0aW9uX2NoYW5nZV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4ChRmaXJzdF9yZWplY3Rpb25fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZGVhZGxpbmUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDHRpbWVvdXRfdGltZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoWY2xlYW51cF9jb21wbGV0ZWRfdGltZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNY2xlYW51cF9lcnJvchgIIAEoCRI2ChJjbGVhbnVwX3JldHJ5X3RpbWUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhwKFGF0dGFjaG1lbnRfY2hhbmdlX2lkGAogASgJEjoKFmF0dGFjaG1lbnRfY2hhbmdlX3RpbWUYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKFHByZXBhcmF0aW9uX2RlYWRsaW5lGAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4ChRhZG1pc3Npb25fc3RhcnRfdGltZRgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIAoYZHJpdmVyX29wZXJhdGlvbl9wZW5kaW5nGA4gASgIEhsKE2RyaXZlcl9vcGVyYXRpb25faWQYDyABKAkiggEKFlNhbmRib3hTZXJ2aWNlRXhwb3N1cmUSDwoHc2VydmljZRgBIAEoCRITCgt0YXJnZXRfcG9ydBgCIAEoDRJCChJhdXRob3JpemF0aW9uX21vZGUYAyABKA4yJi5vcGVuc2hlbGwudjEuU2VydmljZUF1dGhvcml6YXRpb25Nb2RlIq0CCg9FbmRwb2ludEZhaWx1cmUSMwoGZG9tYWluGAEgASgOMiMub3BlbnNoZWxsLnYxLkVuZHBvaW50RmFpbHVyZURvbWFpbhIMCgRjb2RlGAIgASgJEk4KD3JlY292ZXJ5X2FjdGlvbhgDIAEoDjI1Lm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoUmVjb3ZlcnlBY3Rpb24SEAoIcHJvdmlkZXIYBCABKAkSFgoOY3JlZGVudGlhbF9rZXkYBSABKAkSDQoFc3RhZ2UYBiABKAkSIQoUdXBzdHJlYW1faHR0cF9zdGF0dXMYByABKA1IAIgBARISCgpyZXF1ZXN0X2lkGAggASgJQhcKFV91cHN0cmVhbV9odHRwX3N0YXR1cyrKAQoNRXh0ZW5zaW9uS2luZBIeChpFWFRFTlNJT05fS0lORF9VTlNQRUNJRklFRBAAEiEKHUVYVEVOU0lPTl9LSU5EX0NPTVBVVEVfRFJJVkVSEAESJAogRVhURU5TSU9OX0tJTkRfQ1JFREVOVElBTF9EUklWRVIQAhImCiJFWFRFTlNJT05fS0lORF9HQVRFV0FZX0lOVEVSQ0VQVE9SEAMSKAokRVhURU5TSU9OX0tJTkRfU1VQRVJWSVNPUl9NSURETEVXQVJFEAQqxgIKDFNhbmRib3hQaGFzZRIdChlTQU5EQk9YX1BIQVNFX1VOU1BFQ0lGSUVEEAASHgoaU0FOREJPWF9QSEFTRV9QUk9WSVNJT05JTkcQARIXChNTQU5EQk9YX1BIQVNFX1JFQURZEAISFwoTU0FOREJPWF9QSEFTRV9FUlJPUhADEhoKFlNBTkRCT1hfUEhBU0VfREVMRVRJTkcQBBIZChVTQU5EQk9YX1BIQVNFX1VOS05PV04QBRIaChZTQU5EQk9YX1BIQVNFX1NUT1BQSU5HEAYSGQoVU0FOREJPWF9QSEFTRV9TVE9QUEVEEAcSGgoWU0FOREJPWF9QSEFTRV9TVEFSVElORxAIEhsKF1NBTkRCT1hfUEhBU0VfQ09NUExFVEVEEAkiBAgKEAoqGFNBTkRCT1hfUEhBU0VfUkVTVEFSVElORyrLAQoUUHJvdmlkZXJNdXRhdGlvbktpbmQSJgoiUFJPVklERVJfTVVUQVRJT05fS0lORF9VTlNQRUNJRklFRBAAEiEKHVBST1ZJREVSX01VVEFUSU9OX0tJTkRfQVRUQUNIEAESIQodUFJPVklERVJfTVVUQVRJT05fS0lORF9ERVRBQ0gQAhIhCh1QUk9WSURFUl9NVVRBVElPTl9LSU5EX1VQREFURRADEiIKHlBST1ZJREVSX01VVEFUSU9OX0tJTkRfT0JTRVJWRRAEKs8CChZQcm92aWRlclJlYWRpbmVzc1N0YXRlEigKJFBST1ZJREVSX1JFQURJTkVTU19TVEFURV9VTlNQRUNJRklFRBAAEiYKIlBST1ZJREVSX1JFQURJTkVTU19TVEFURV9QRVJTSVNURUQQARIkCiBQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfUEVORElORxACEiIKHlBST1ZJREVSX1JFQURJTkVTU19TVEFURV9SRUFEWRADEiUKIVBST1ZJREVSX1JFQURJTkVTU19TVEFURV9XSVRISEVMRBAEEiQKIFBST1ZJREVSX1JFQURJTkVTU19TVEFURV9SRVZPS0VEEAUSIwofUFJPVklERVJfUkVBRElORVNTX1NUQVRFX0ZBSUxFRBAGEicKI1BST1ZJREVSX1JFQURJTkVTU19TVEFURV9TVVBFUlNFREVEEAcq2gYKF1Byb3ZpZGVyUmVhZGluZXNzUmVhc29uEikKJVBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fVU5TUEVDSUZJRUQQABI0CjBQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1dBSVRJTkdfRk9SX1NVUEVSVklTT1IQARI1CjFQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1dBSVRJTkdfRk9SX0NSRURFTlRJQUxTEAISMAosUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9XQUlUSU5HX0ZPUl9QT0xJQ1kQAxIxCi1QUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1dBSVRJTkdfRk9SX1BST0NFU1MQBBI0CjBQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1VOU1VQUE9SVEVEX1NVUEVSVklTT1IQBRIyCi5QUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX0NSRURFTlRJQUxTX1dJVEhIRUxEEAYSNwozUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9DUkVERU5USUFMX0lOU1RBTExfRkFJTEVEEAcSNgoyUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9QT0xJQ1lfQUNUSVZBVElPTl9GQUlMRUQQCBI0CjBQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1BST0NFU1NfSU5TVEFMTF9GQUlMRUQQCRI1CjFQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1NVUEVSVklTT1JfRElTQ09OTkVDVEVEEAoSNgoyUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9TVVBFUlZJU09SX0xFQVNFX0VYUElSRUQQCxIzCi9QUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX0RFU0lSRURfU1RBVEVfQ0hBTkdFRBAMEjAKLFBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fQ1JFREVOVElBTF9FWFBJUkVEEA0SKgomUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9MT0NBTF9QT0xJQ1kQDhIvCitQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1NOQVBTSE9UX01JU01BVENIEA8qgwEKD0NvbmZpZ0NvbXBvbmVudBIgChxDT05GSUdfQ09NUE9ORU5UX1VOU1BFQ0lGSUVEEAASIwofQ09ORklHX0NPTVBPTkVOVF9TQU5EQk9YX0NPTkZJRxABEikKJUNPTkZJR19DT01QT05FTlRfUFJPVklERVJfRU5WSVJPTk1FTlQQAiqNAwoSQ29uZmlnQXBwbHlPdXRjb21lEiQKIENPTkZJR19BUFBMWV9PVVRDT01FX1VOU1BFQ0lGSUVEEAASIAocQ09ORklHX0FQUExZX09VVENPTUVfQVBQTElFRBABEioKJkNPTkZJR19BUFBMWV9PVVRDT01FX0lHTk9SRURfRFVQTElDQVRFEAISJgoiQ09ORklHX0FQUExZX09VVENPTUVfSUdOT1JFRF9TVEFMRRADEjAKLENPTkZJR19BUFBMWV9PVVRDT01FX1JFVEFJTkVEX0xPQ0FMX09WRVJSSURFEAQSIQodQ09ORklHX0FQUExZX09VVENPTUVfREVHUkFERUQQBRI4CjRDT05GSUdfQVBQTFlfT1VUQ09NRV9GQUlMRURfUkVUQUlORURfTEFTVF9LTk9XTl9HT09EEAYSJgoiQ09ORklHX0FQUExZX09VVENPTUVfRkFJTEVEX0NMT1NFRBAHEiQKIENPTkZJR19BUFBMWV9PVVRDT01FX1VOU1VQUE9SVEVEEAgq0gIKGkNvbmZpZ1VwZGF0ZU9wZXJhdGlvblN0YXRlEi0KKUNPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX1VOU1BFQ0lGSUVEEAASKQolQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfUEVORElORxABEikKJUNPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX0FQUExJRUQQAhIqCiZDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9JTkFDVElWRRADEigKJENPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX0ZBSUxFRBAEEiwKKENPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX1NVUEVSU0VERUQQBRIrCidDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9DQU5DRUxMRUQQBirOAQogUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudFR5cGUSNAowUFJPVklERVJfQ1JFREVOVElBTF9UT0tFTl9HUkFOVF9UWVBFX1VOU1BFQ0lGSUVEEAASOwo3UFJPVklERVJfQ1JFREVOVElBTF9UT0tFTl9HUkFOVF9UWVBFX0NMSUVOVF9DUkVERU5USUFMUxABEjcKM1BST1ZJREVSX0NSRURFTlRJQUxfVE9LRU5fR1JBTlRfVFlQRV9UT0tFTl9FWENIQU5HRRACKsMDCiFQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RyYXRlZ3kSNAowUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX1VOU1BFQ0lGSUVEEAASLworUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX1NUQVRJQxABEjEKLVBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9FWFRFUk5BTBACEj0KOVBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9PQVVUSDJfUkVGUkVTSF9UT0tFThADEkIKPlBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9PQVVUSDJfQ0xJRU5UX0NSRURFTlRJQUxTEAQSQwo/UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX0dPT0dMRV9TRVJWSUNFX0FDQ09VTlRfSldUEAUSPAo4UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX0FXU19TVFNfQVNTVU1FX1JPTEUQBirbAgoXUHJvdmlkZXJQcm9maWxlQ2F0ZWdvcnkSKQolUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9VTlNQRUNJRklFRBAAEiMKH1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfT1RIRVIQARInCiNQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX0lORkVSRU5DRRACEiMKH1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfQUdFTlQQAxIsCihQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX1NPVVJDRV9DT05UUk9MEAQSJwojUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9NRVNTQUdJTkcQBRIiCh5QUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX0RBVEEQBhInCiNQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX0tOT1dMRURHRRAHKt4BCiZQcm92aWRlckVudmlyb25tZW50VmFsdWVDbGFzc2lmaWNhdGlvbhI5CjVQUk9WSURFUl9FTlZJUk9OTUVOVF9WQUxVRV9DTEFTU0lGSUNBVElPTl9VTlNQRUNJRklFRBAAEjgKNFBST1ZJREVSX0VOVklST05NRU5UX1ZBTFVFX0NMQVNTSUZJQ0FUSU9OX05PTl9TRUNSRVQQARI/CjtQUk9WSURFUl9FTlZJUk9OTUVOVF9WQUxVRV9DTEFTU0lGSUNBVElPTl9TVEFUSUNfQ1JFREVOVElBTBACKs8BChtDb25maWd1cmF0aW9uQWRtaXNzaW9uU3RhdGUSLQopQ09ORklHVVJBVElPTl9BRE1JU1NJT05fU1RBVEVfVU5TUEVDSUZJRUQQABIpCiVDT05GSUdVUkFUSU9OX0FETUlTU0lPTl9TVEFURV9QRU5ESU5HEAESKgomQ09ORklHVVJBVElPTl9BRE1JU1NJT05fU1RBVEVfQUNDRVBURUQQAhIqCiZDT05GSUdVUkFUSU9OX0FETUlTU0lPTl9TVEFURV9SRUpFQ1RFRBADKpoBCgxQb2xpY3lTdGF0dXMSHQoZUE9MSUNZX1NUQVRVU19VTlNQRUNJRklFRBAAEhkKFVBPTElDWV9TVEFUVVNfUEVORElORxABEhgKFFBPTElDWV9TVEFUVVNfTE9BREVEEAISGAoUUE9MSUNZX1NUQVRVU19GQUlMRUQQAxIcChhQT0xJQ1lfU1RBVFVTX1NVUEVSU0VERUQQBCqGAQoNU2VydmljZVN0YXR1cxIeChpTRVJWSUNFX1NUQVRVU19VTlNQRUNJRklFRBAAEhoKFlNFUlZJQ0VfU1RBVFVTX0hFQUxUSFkQARIbChdTRVJWSUNFX1NUQVRVU19ERUdSQURFRBACEhwKGFNFUlZJQ0VfU1RBVFVTX1VOSEVBTFRIWRADKmIKDVdvcmtzcGFjZVJvbGUSHgoaV09SS1NQQUNFX1JPTEVfVU5TUEVDSUZJRUQQABIXChNXT1JLU1BBQ0VfUk9MRV9VU0VSEAESGAoUV09SS1NQQUNFX1JPTEVfQURNSU4QAiraAgonUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFJlY292ZXJ5QWN0aW9uEjsKN1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9SRUNPVkVSWV9BQ1RJT05fVU5TUEVDSUZJRUQQABI1CjFQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX1JFVFJZEAESOwo3UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9SRUFVVEhPUklaRRACEkEKPVBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9SRUNPVkVSWV9BQ1RJT05fRklYX0NPTkZJR1VSQVRJT04QAxI7CjdQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX0lOVkVTVElHQVRFEAQqqgEKFFNhbmRib3hSZXN0YXJ0UG9saWN5EiYKIlNBTkRCT1hfUkVTVEFSVF9QT0xJQ1lfVU5TUEVDSUZJRUQQABIgChxTQU5EQk9YX1JFU1RBUlRfUE9MSUNZX05FVkVSEAESJQohU0FOREJPWF9SRVNUQVJUX1BPTElDWV9PTl9GQUlMVVJFEAISIQodU0FOREJPWF9SRVNUQVJUX1BPTElDWV9BTFdBWVMQAyqXAQoPRGVsZXRpb25PdXRjb21lEiAKHERFTEVUSU9OX09VVENPTUVfVU5TUEVDSUZJRUQQABIeChpERUxFVElPTl9PVVRDT01FX0NPTVBMRVRFRBABEh0KGURFTEVUSU9OX09VVENPTUVfQUNDRVBURUQQAhIjCh9ERUxFVElPTl9PVVRDT01FX0FMUkVBRFlfQUJTRU5UEAMqwwIKDkVuZHBvaW50UmVzdWx0Eh8KG0VORFBPSU5UX1JFU1VMVF9VTlNQRUNJRklFRBAAEigKJEVORFBPSU5UX1JFU1VMVF9OT19PQlNFUlZFRF9FWENIQU5HRRABEioKJkVORFBPSU5UX1JFU1VMVF9IVFRQX1JFU1BPTlNFX1JFQ0VJVkVEEAISIQodRU5EUE9JTlRfUkVTVUxUX1BPTElDWV9ERU5JRUQQAxIqCiZFTkRQT0lOVF9SRVNVTFRfQ1JFREVOVElBTF9VTkFWQUlMQUJMRRAEEh4KGkVORFBPSU5UX1JFU1VMVF9UTFNfRkFJTEVEEAUSJAogRU5EUE9JTlRfUkVTVUxUX1RSQU5TUE9SVF9GQUlMRUQQBhIlCiFFTkRQT0lOVF9SRVNVTFRfVVBTVFJFQU1fUkVKRUNURUQQByqfAQoYU2VydmljZUF1dGhvcml6YXRpb25Nb2RlEioKJlNFUlZJQ0VfQVVUSE9SSVpBVElPTl9NT0RFX1VOU1BFQ0lGSUVEEAASJAogU0VSVklDRV9BVVRIT1JJWkFUSU9OX01PREVfU1RSSVAQARIxCi1TRVJWSUNFX0FVVEhPUklaQVRJT05fTU9ERV9CRUFSRVJfUEFTU1RIUk9VR0gQAippChVFbmRwb2ludEZhaWx1cmVEb21haW4SJwojRU5EUE9JTlRfRkFJTFVSRV9ET01BSU5fVU5TUEVDSUZJRUQQABInCiNFTkRQT0lOVF9GQUlMVVJFX0RPTUFJTl9UT0tFTl9HUkFOVBABMrZXCglPcGVuU2hlbGwSWgoGSGVhbHRoEhsub3BlbnNoZWxsLnYxLkhlYWx0aFJlcXVlc3QaHC5vcGVuc2hlbGwudjEuSGVhbHRoUmVzcG9uc2UiFYK1GBEKD3VuYXV0aGVudGljYXRlZBJpCg5HZXRDdXJyZW50VXNlchIjLm9wZW5zaGVsbC52MS5HZXRDdXJyZW50VXNlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0Q3VycmVudFVzZXJSZXNwb25zZSIMgrUYCAoGYmVhcmVyEoYBCg5HZXRHYXRld2F5SW5mbxIjLm9wZW5zaGVsbC52MS5HZXRHYXRld2F5SW5mb1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0R2F0ZXdheUluZm9SZXNwb25zZSIpgrUYJQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiILY29uZmlnOnJlYWQSdQoNQ3JlYXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRKTAQoVQmVnaW5Sb290ZnNUYXJTdGFnaW5nEioub3BlbnNoZWxsLnYxLkJlZ2luUm9vdGZzVGFyU3RhZ2luZ1JlcXVlc3QaKy5vcGVuc2hlbGwudjEuQmVnaW5Sb290ZnNUYXJTdGFnaW5nUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJuCgpHZXRTYW5kYm94Eh8ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hSZXF1ZXN0Gh0ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSegoNTGlzdFNhbmRib3hlcxIiLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEo4BChVDcmVhdGVTYW5kYm94VGVtcGxhdGUSKi5vcGVuc2hlbGwudjEuQ3JlYXRlU2FuZGJveFRlbXBsYXRlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGVSZXNwb25zZSIigrUYHgoGYmVhcmVyEgVhZG1pbiINc2FuZGJveDp3cml0ZRKGAQoSR2V0U2FuZGJveFRlbXBsYXRlEicub3BlbnNoZWxsLnYxLkdldFNhbmRib3hUZW1wbGF0ZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2FuZGJveFRlbXBsYXRlUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEo8BChRMaXN0U2FuZGJveFRlbXBsYXRlcxIpLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFRlbXBsYXRlc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSlAEKFURlbGV0ZVNhbmRib3hUZW1wbGF0ZRIqLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94VGVtcGxhdGVSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRlbGV0ZVNhbmRib3hUZW1wbGF0ZVJlc3BvbnNlIiKCtRgeCgZiZWFyZXISBWFkbWluIg1zYW5kYm94OndyaXRlEo8BChRMaXN0U2FuZGJveFByb3ZpZGVycxIpLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFByb3ZpZGVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQcm92aWRlcnNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSkwEKFUF0dGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkF0dGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSkwEKFURldGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRldGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSmwEKGEdldFNhbmRib3hQcm92aWRlclN0YXR1cxItLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlclN0YXR1c1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ7Cg1EZWxldGVTYW5kYm94EiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNhbmRib3hSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNhbmRib3hSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnEKC1N0b3BTYW5kYm94EiAub3BlbnNoZWxsLnYxLlN0b3BTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJzCgxTdGFydFNhbmRib3gSIS5vcGVuc2hlbGwudjEuU3RhcnRTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRKEAQoQQ3JlYXRlU3NoU2Vzc2lvbhIlLm9wZW5zaGVsbC52MS5DcmVhdGVTc2hTZXNzaW9uUmVxdWVzdBomLm9wZW5zaGVsbC52MS5DcmVhdGVTc2hTZXNzaW9uUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJ9Cg1FeHBvc2VTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkV4cG9zZVNlcnZpY2VSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSdgoKR2V0U2VydmljZRIfLm9wZW5zaGVsbC52MS5HZXRTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSdwoMTGlzdFNlcnZpY2VzEiEub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1JlcXVlc3QaIi5vcGVuc2hlbGwudjEuTGlzdFNlcnZpY2VzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnsKDURlbGV0ZVNlcnZpY2USIi5vcGVuc2hlbGwudjEuRGVsZXRlU2VydmljZVJlcXVlc3QaIy5vcGVuc2hlbGwudjEuRGVsZXRlU2VydmljZVJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEFJldm9rZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuUmV2b2tlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSdAoLRXhlY1NhbmRib3gSIC5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZTABEnEKCkZvcndhcmRUY3ASHS5vcGVuc2hlbGwudjEuVGNwRm9yd2FyZEZyYW1lGh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlKAEwARJ/ChZFeGVjU2FuZGJveEludGVyYWN0aXZlEh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94SW5wdXQaHi5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hFdmVudCIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlKAEwARJ6Cg5DcmVhdGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5DcmVhdGVQcm92aWRlclJlcXVlc3QaHi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUScgoLR2V0UHJvdmlkZXISIC5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKDAQoWR2V0UHJvdmlkZXJDcmVkZW50aWFscxIrLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlckNyZWRlbnRpYWxzUmVxdWVzdBosLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlckNyZWRlbnRpYWxzUmVzcG9uc2UiDoK1GAoKCG9wZXJhdG9yEnsKDUxpc3RQcm92aWRlcnMSIi5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyc1JlcXVlc3QaIy5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSkAEKFExpc3RQcm92aWRlclByb2ZpbGVzEikub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlclByb2ZpbGVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQShwEKEkdldFByb3ZpZGVyUHJvZmlsZRInLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclByb2ZpbGVSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSmAEKFkltcG9ydFByb3ZpZGVyUHJvZmlsZXMSKy5vcGVuc2hlbGwudjEuSW1wb3J0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuSW1wb3J0UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKYAQoWVXBkYXRlUHJvdmlkZXJQcm9maWxlcxIrLm9wZW5zaGVsbC52MS5VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVxdWVzdBosLm9wZW5zaGVsbC52MS5VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpABChRMaW50UHJvdmlkZXJQcm9maWxlcxIpLm9wZW5zaGVsbC52MS5MaW50UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGludFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEnoKDlVwZGF0ZVByb3ZpZGVyEiMub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUmVxdWVzdBoeLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKcAQoYR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzEi0ub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1JlcXVlc3QaLi5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKeAQoYQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoEi0ub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QaLi5vcGVuc2hlbGwudjEuQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEp4BChhSb3RhdGVQcm92aWRlckNyZWRlbnRpYWwSLS5vcGVuc2hlbGwudjEuUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsUmVxdWVzdBouLm9wZW5zaGVsbC52MS5Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSlQEKFURlbGV0ZVByb3ZpZGVyUmVmcmVzaBIqLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlZnJlc2hSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKAAQoORGVsZXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpUBChVEZWxldGVQcm92aWRlclByb2ZpbGUSKi5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclByb2ZpbGVSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSkAEKEEdldFNhbmRib3hDb25maWcSLS5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRTYW5kYm94Q29uZmlnUmVxdWVzdBouLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldFNhbmRib3hDb25maWdSZXNwb25zZSIdgrUYGQoEZHVhbBIEdXNlciILY29uZmlnOnJlYWQSjAEKEEdldEdhdGV3YXlDb25maWcSLS5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRHYXRld2F5Q29uZmlnUmVxdWVzdBouLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldEdhdGV3YXlDb25maWdSZXNwb25zZSIZgrUYFQoGYmVhcmVyIgtjb25maWc6cmVhZBJ2CgxVcGRhdGVDb25maWcSIS5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVxdWVzdBoiLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXNwb25zZSIfgrUYGwoEZHVhbBIFYWRtaW4iDGNvbmZpZzp3cml0ZRKVAQoWR2V0U2FuZGJveFBvbGljeVN0YXR1cxIrLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVxdWVzdBosLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEowBChNMaXN0U2FuZGJveFBvbGljaWVzEigub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94UG9saWNpZXNSZXF1ZXN0Gikub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94UG9saWNpZXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSdgoSUmVwb3J0UG9saWN5U3RhdHVzEicub3BlbnNoZWxsLnYxLlJlcG9ydFBvbGljeVN0YXR1c1JlcXVlc3QaKC5vcGVuc2hlbGwudjEuUmVwb3J0UG9saWN5U3RhdHVzUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSfAoUUmVwb3J0RW5kcG9pbnRTdGF0dXMSKS5vcGVuc2hlbGwudjEuUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLlJlcG9ydEVuZHBvaW50U3RhdHVzUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gShQEKF1JlcG9ydFByb3ZpZGVyUmVhZGluZXNzEiwub3BlbnNoZWxsLnYxLlJlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVxdWVzdBotLm9wZW5zaGVsbC52MS5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94Eo4BChpSZXBvcnRTYW5kYm94Q29uZmlndXJhdGlvbhIvLm9wZW5zaGVsbC52MS5SZXBvcnRTYW5kYm94Q29uZmlndXJhdGlvblJlcXVlc3QaMC5vcGVuc2hlbGwudjEuUmVwb3J0U2FuZGJveENvbmZpZ3VyYXRpb25SZXNwb25zZSINgrUYCQoHc2FuZGJveBKXAQodR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnQSMi5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0GjMub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSlAEKHEV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW4SMS5vcGVuc2hlbGwudjEuRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlcXVlc3QaMi5vcGVuc2hlbGwudjEuRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94En0KDkdldFNhbmRib3hMb2dzEiMub3BlbnNoZWxsLnYxLkdldFNhbmRib3hMb2dzUmVxdWVzdBokLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94TG9nc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJvCg9QdXNoU2FuZGJveExvZ3MSJC5vcGVuc2hlbGwudjEuUHVzaFNhbmRib3hMb2dzUmVxdWVzdBolLm9wZW5zaGVsbC52MS5QdXNoU2FuZGJveExvZ3NSZXNwb25zZSINgrUYCQoHc2FuZGJveCgBEmUKEUNvbm5lY3RTdXBlcnZpc29yEh8ub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JNZXNzYWdlGhwub3BlbnNoZWxsLnYxLkdhdGV3YXlNZXNzYWdlIg2CtRgJCgdzYW5kYm94KAEwARJ/ChVSZXBvcnRNYWluUHJvY2Vzc0V4aXQSKi5vcGVuc2hlbGwudjEuUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVxdWVzdBorLm9wZW5zaGVsbC52MS5SZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXNwb25zZSINgrUYCQoHc2FuZGJveBKFAQoXRmluYWxpemVNYWluUHJvY2Vzc0V4aXQSLC5vcGVuc2hlbGwudjEuRmluYWxpemVNYWluUHJvY2Vzc0V4aXRSZXF1ZXN0Gi0ub3BlbnNoZWxsLnYxLkZpbmFsaXplTWFpblByb2Nlc3NFeGl0UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSVAoLUmVsYXlTdHJlYW0SGC5vcGVuc2hlbGwudjEuUmVsYXlGcmFtZRoYLm9wZW5zaGVsbC52MS5SZWxheUZyYW1lIg2CtRgJCgdzYW5kYm94KAEwARJXCglQZWVyUmVsYXkSHC5vcGVuc2hlbGwudjEuUGVlclJlbGF5RnJhbWUaHC5vcGVuc2hlbGwudjEuUGVlclJlbGF5RnJhbWUiCoK1GAYKBHBlZXIoATABEoYBChtQZWVyUmVwb3J0UHJvdmlkZXJSZWFkaW5lc3MSLC5vcGVuc2hlbGwudjEuUmVwb3J0UHJvdmlkZXJSZWFkaW5lc3NSZXF1ZXN0Gi0ub3BlbnNoZWxsLnYxLlJlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVzcG9uc2UiCoK1GAYKBHBlZXISfQoYUGVlclJlcG9ydEVuZHBvaW50U3RhdHVzEikub3BlbnNoZWxsLnYxLlJlcG9ydEVuZHBvaW50U3RhdHVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5SZXBvcnRFbmRwb2ludFN0YXR1c1Jlc3BvbnNlIgqCtRgGCgRwZWVyEokBChxQZWVyR2V0U2FuZGJveFByb3ZpZGVyU3RhdHVzEi0ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlclN0YXR1c1JlcXVlc3QaLi5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyU3RhdHVzUmVzcG9uc2UiCoK1GAYKBHBlZXISfwoWUGVlck5vdGlmeUNvbmZpZ1VwZGF0ZRIrLm9wZW5zaGVsbC52MS5QZWVyTm90aWZ5Q29uZmlnVXBkYXRlUmVxdWVzdBosLm9wZW5zaGVsbC52MS5QZWVyTm90aWZ5Q29uZmlnVXBkYXRlUmVzcG9uc2UiCoK1GAYKBHBlZXISdwoMV2F0Y2hTYW5kYm94EiEub3BlbnNoZWxsLnYxLldhdGNoU2FuZGJveFJlcXVlc3QaIC5vcGVuc2hlbGwudjEuU2FuZGJveFN0cmVhbUV2ZW50IiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZDABEnwKFFN1Ym1pdFBvbGljeUFuYWx5c2lzEikub3BlbnNoZWxsLnYxLlN1Ym1pdFBvbGljeUFuYWx5c2lzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5TdWJtaXRQb2xpY3lBbmFseXNpc1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnoKDkdldERyYWZ0UG9saWN5EiMub3BlbnNoZWxsLnYxLkdldERyYWZ0UG9saWN5UmVxdWVzdBokLm9wZW5zaGVsbC52MS5HZXREcmFmdFBvbGljeVJlc3BvbnNlIh2CtRgZCgRkdWFsEgR1c2VyIgtjb25maWc6cmVhZBKHAQoRQXBwcm92ZURyYWZ0Q2h1bmsSJi5vcGVuc2hlbGwudjEuQXBwcm92ZURyYWZ0Q2h1bmtSZXF1ZXN0Gicub3BlbnNoZWxsLnYxLkFwcHJvdmVEcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRKEAQoQUmVqZWN0RHJhZnRDaHVuaxIlLm9wZW5zaGVsbC52MS5SZWplY3REcmFmdENodW5rUmVxdWVzdBomLm9wZW5zaGVsbC52MS5SZWplY3REcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRKTAQoVQXBwcm92ZUFsbERyYWZ0Q2h1bmtzEioub3BlbnNoZWxsLnYxLkFwcHJvdmVBbGxEcmFmdENodW5rc1JlcXVlc3QaKy5vcGVuc2hlbGwudjEuQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ+Cg5FZGl0RHJhZnRDaHVuaxIjLm9wZW5zaGVsbC52MS5FZGl0RHJhZnRDaHVua1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuRWRpdERyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEn4KDlVuZG9EcmFmdENodW5rEiMub3BlbnNoZWxsLnYxLlVuZG9EcmFmdENodW5rUmVxdWVzdBokLm9wZW5zaGVsbC52MS5VbmRvRHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUShAEKEENsZWFyRHJhZnRDaHVua3MSJS5vcGVuc2hlbGwudjEuQ2xlYXJEcmFmdENodW5rc1JlcXVlc3QaJi5vcGVuc2hlbGwudjEuQ2xlYXJEcmFmdENodW5rc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfwoPR2V0RHJhZnRIaXN0b3J5EiQub3BlbnNoZWxsLnYxLkdldERyYWZ0SGlzdG9yeVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuR2V0RHJhZnRIaXN0b3J5UmVzcG9uc2UiH4K1GBsKBmJlYXJlchIEdXNlciILY29uZmlnOnJlYWQScwoRSXNzdWVTYW5kYm94VG9rZW4SJi5vcGVuc2hlbGwudjEuSXNzdWVTYW5kYm94VG9rZW5SZXF1ZXN0Gicub3BlbnNoZWxsLnYxLklzc3VlU2FuZGJveFRva2VuUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSeQoTUmVmcmVzaFNhbmRib3hUb2tlbhIoLm9wZW5zaGVsbC52MS5SZWZyZXNoU2FuZGJveFRva2VuUmVxdWVzdBopLm9wZW5zaGVsbC52MS5SZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSjQEKD0NyZWF0ZVdvcmtzcGFjZRIkLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLkNyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlIi2CtRgpCgZiZWFyZXIaDnBsYXRmb3JtX2FkbWluIg93b3Jrc3BhY2U6d3JpdGUSeQoMR2V0V29ya3NwYWNlEiEub3BlbnNoZWxsLnYxLkdldFdvcmtzcGFjZVJlcXVlc3QaIi5vcGVuc2hlbGwudjEuR2V0V29ya3NwYWNlUmVzcG9uc2UiIoK1GB4KBmJlYXJlchIEdXNlciIOd29ya3NwYWNlOnJlYWQSfwoOTGlzdFdvcmtzcGFjZXMSIy5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZXNSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VzUmVzcG9uc2UiIoK1GB4KBmJlYXJlchIEdXNlciIOd29ya3NwYWNlOnJlYWQSjQEKD0RlbGV0ZVdvcmtzcGFjZRIkLm9wZW5zaGVsbC52MS5EZWxldGVXb3Jrc3BhY2VSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLkRlbGV0ZVdvcmtzcGFjZVJlc3BvbnNlIi2CtRgpCgZiZWFyZXIaDnBsYXRmb3JtX2FkbWluIg93b3Jrc3BhY2U6d3JpdGUSjQEKEkFkZFdvcmtzcGFjZU1lbWJlchInLm9wZW5zaGVsbC52MS5BZGRXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0Gigub3BlbnNoZWxsLnYxLkFkZFdvcmtzcGFjZU1lbWJlclJlc3BvbnNlIiSCtRggCgZiZWFyZXISBWFkbWluIg93b3Jrc3BhY2U6d3JpdGUSlgEKFVJlbW92ZVdvcmtzcGFjZU1lbWJlchIqLm9wZW5zaGVsbC52MS5SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLlJlbW92ZVdvcmtzcGFjZU1lbWJlclJlc3BvbnNlIiSCtRggCgZiZWFyZXISBWFkbWluIg93b3Jrc3BhY2U6d3JpdGUSkQEKFExpc3RXb3Jrc3BhY2VNZW1iZXJzEikub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VNZW1iZXJzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlTWVtYmVyc1Jlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkYgZwcm90bzM", [file_datamodel, file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp, file_options, file_sandbox]);
12
12
  /**
13
13
  * Describes the message openshell.v1.IssueSandboxTokenRequest.
14
14
  * Use `create(IssueSandboxTokenRequestSchema)` to create a new message.
@@ -484,696 +484,776 @@ export const CreateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_opensh
484
484
  * Use `create(GetProviderRequestSchema)` to create a new message.
485
485
  */
486
486
  export const GetProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 94);
487
+ /**
488
+ * Describes the message openshell.v1.GetProviderCredentialsRequest.
489
+ * Use `create(GetProviderCredentialsRequestSchema)` to create a new message.
490
+ */
491
+ export const GetProviderCredentialsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
492
+ /**
493
+ * Describes the message openshell.v1.ProviderCredentialValue.
494
+ * Use `create(ProviderCredentialValueSchema)` to create a new message.
495
+ */
496
+ export const ProviderCredentialValueSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
497
+ /**
498
+ * Describes the message openshell.v1.GetProviderCredentialsResponse.
499
+ * Use `create(GetProviderCredentialsResponseSchema)` to create a new message.
500
+ */
501
+ export const GetProviderCredentialsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
487
502
  /**
488
503
  * Describes the message openshell.v1.ListProvidersRequest.
489
504
  * Use `create(ListProvidersRequestSchema)` to create a new message.
490
505
  */
491
- export const ListProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
506
+ export const ListProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
492
507
  /**
493
508
  * Describes the message openshell.v1.UpdateProviderRequest.
494
509
  * Use `create(UpdateProviderRequestSchema)` to create a new message.
495
510
  */
496
- export const UpdateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
511
+ export const UpdateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
497
512
  /**
498
513
  * Describes the message openshell.v1.DeleteProviderRequest.
499
514
  * Use `create(DeleteProviderRequestSchema)` to create a new message.
500
515
  */
501
- export const DeleteProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
516
+ export const DeleteProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
502
517
  /**
503
518
  * Describes the message openshell.v1.ProviderResponse.
504
519
  * Use `create(ProviderResponseSchema)` to create a new message.
505
520
  */
506
- export const ProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
521
+ export const ProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
507
522
  /**
508
523
  * Describes the message openshell.v1.ListProvidersResponse.
509
524
  * Use `create(ListProvidersResponseSchema)` to create a new message.
510
525
  */
511
- export const ListProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
526
+ export const ListProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
512
527
  /**
513
528
  * Describes the message openshell.v1.ListProviderProfilesRequest.
514
529
  * Use `create(ListProviderProfilesRequestSchema)` to create a new message.
515
530
  */
516
- export const ListProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
531
+ export const ListProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
517
532
  /**
518
533
  * Describes the message openshell.v1.GetProviderProfileRequest.
519
534
  * Use `create(GetProviderProfileRequestSchema)` to create a new message.
520
535
  */
521
- export const GetProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
536
+ export const GetProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
522
537
  /**
523
538
  * Describes the message openshell.v1.ProviderProfileImportItem.
524
539
  * Use `create(ProviderProfileImportItemSchema)` to create a new message.
525
540
  */
526
- export const ProviderProfileImportItemSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
541
+ export const ProviderProfileImportItemSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
527
542
  /**
528
543
  * Describes the message openshell.v1.ProviderProfileDiagnostic.
529
544
  * Use `create(ProviderProfileDiagnosticSchema)` to create a new message.
530
545
  */
531
- export const ProviderProfileDiagnosticSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
546
+ export const ProviderProfileDiagnosticSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
532
547
  /**
533
548
  * Describes the message openshell.v1.ProviderCredentialTokenGrantAudienceOverride.
534
549
  * Use `create(ProviderCredentialTokenGrantAudienceOverrideSchema)` to create a new message.
535
550
  */
536
- export const ProviderCredentialTokenGrantAudienceOverrideSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
551
+ export const ProviderCredentialTokenGrantAudienceOverrideSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
537
552
  /**
538
553
  * Describes the message openshell.v1.ProviderCredentialTokenGrantSubjectToken.
539
554
  * Use `create(ProviderCredentialTokenGrantSubjectTokenSchema)` to create a new message.
540
555
  */
541
- export const ProviderCredentialTokenGrantSubjectTokenSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
556
+ export const ProviderCredentialTokenGrantSubjectTokenSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
542
557
  /**
543
558
  * Describes the message openshell.v1.ProviderCredentialTokenGrant.
544
559
  * Use `create(ProviderCredentialTokenGrantSchema)` to create a new message.
545
560
  */
546
- export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
561
+ export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
547
562
  /**
548
563
  * Describes the message openshell.v1.ProviderProfileCredential.
549
564
  * Use `create(ProviderProfileCredentialSchema)` to create a new message.
550
565
  */
551
- export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
566
+ export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
552
567
  /**
553
568
  * Describes the message openshell.v1.ProviderCredentialRefreshMaterial.
554
569
  * Use `create(ProviderCredentialRefreshMaterialSchema)` to create a new message.
555
570
  */
556
- export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
571
+ export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
557
572
  /**
558
573
  * Describes the message openshell.v1.ProviderCredentialRefreshOutput.
559
574
  * Use `create(ProviderCredentialRefreshOutputSchema)` to create a new message.
560
575
  */
561
- export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
576
+ export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
562
577
  /**
563
578
  * Describes the message openshell.v1.ProviderCredentialRefresh.
564
579
  * Use `create(ProviderCredentialRefreshSchema)` to create a new message.
565
580
  */
566
- export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
581
+ export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
567
582
  /**
568
583
  * Describes the message openshell.v1.ProviderCredentialRefreshStatus.
569
584
  * Use `create(ProviderCredentialRefreshStatusSchema)` to create a new message.
570
585
  */
571
- export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
586
+ export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
572
587
  /**
573
588
  * Describes the message openshell.v1.ProviderProfileDiscovery.
574
589
  * Use `create(ProviderProfileDiscoverySchema)` to create a new message.
575
590
  */
576
- export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
591
+ export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
577
592
  /**
578
593
  * Describes the message openshell.v1.GetProviderRefreshStatusRequest.
579
594
  * Use `create(GetProviderRefreshStatusRequestSchema)` to create a new message.
580
595
  */
581
- export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
596
+ export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
582
597
  /**
583
598
  * Describes the message openshell.v1.GetProviderRefreshStatusResponse.
584
599
  * Use `create(GetProviderRefreshStatusResponseSchema)` to create a new message.
585
600
  */
586
- export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
601
+ export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
587
602
  /**
588
603
  * Describes the message openshell.v1.ConfigureProviderRefreshRequest.
589
604
  * Use `create(ConfigureProviderRefreshRequestSchema)` to create a new message.
590
605
  */
591
- export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
606
+ export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
592
607
  /**
593
608
  * Describes the message openshell.v1.ConfigureProviderRefreshResponse.
594
609
  * Use `create(ConfigureProviderRefreshResponseSchema)` to create a new message.
595
610
  */
596
- export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
611
+ export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
597
612
  /**
598
613
  * Describes the message openshell.v1.RotateProviderCredentialRequest.
599
614
  * Use `create(RotateProviderCredentialRequestSchema)` to create a new message.
600
615
  */
601
- export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
616
+ export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
602
617
  /**
603
618
  * Describes the message openshell.v1.RotateProviderCredentialResponse.
604
619
  * Use `create(RotateProviderCredentialResponseSchema)` to create a new message.
605
620
  */
606
- export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
621
+ export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
607
622
  /**
608
623
  * Describes the message openshell.v1.DeleteProviderRefreshRequest.
609
624
  * Use `create(DeleteProviderRefreshRequestSchema)` to create a new message.
610
625
  */
611
- export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
626
+ export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
612
627
  /**
613
628
  * Describes the message openshell.v1.DeleteProviderRefreshResponse.
614
629
  * Use `create(DeleteProviderRefreshResponseSchema)` to create a new message.
615
630
  */
616
- export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
631
+ export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
617
632
  /**
618
633
  * Describes the message openshell.v1.ProviderProfile.
619
634
  * Use `create(ProviderProfileSchema)` to create a new message.
620
635
  */
621
- export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
636
+ export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
622
637
  /**
623
638
  * Describes the message openshell.v1.ProviderProfileFile.
624
639
  * Use `create(ProviderProfileFileSchema)` to create a new message.
625
640
  */
626
- export const ProviderProfileFileSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
641
+ export const ProviderProfileFileSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
627
642
  /**
628
643
  * Describes the message openshell.v1.ProviderProfileResponse.
629
644
  * Use `create(ProviderProfileResponseSchema)` to create a new message.
630
645
  */
631
- export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
646
+ export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
632
647
  /**
633
648
  * Describes the message openshell.v1.ListProviderProfilesResponse.
634
649
  * Use `create(ListProviderProfilesResponseSchema)` to create a new message.
635
650
  */
636
- export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
651
+ export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
637
652
  /**
638
653
  * Describes the message openshell.v1.ImportProviderProfilesRequest.
639
654
  * Use `create(ImportProviderProfilesRequestSchema)` to create a new message.
640
655
  */
641
- export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
656
+ export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
642
657
  /**
643
658
  * Describes the message openshell.v1.ImportProviderProfilesResponse.
644
659
  * Use `create(ImportProviderProfilesResponseSchema)` to create a new message.
645
660
  */
646
- export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
661
+ export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
647
662
  /**
648
663
  * Describes the message openshell.v1.UpdateProviderProfilesRequest.
649
664
  * Use `create(UpdateProviderProfilesRequestSchema)` to create a new message.
650
665
  */
651
- export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
666
+ export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
652
667
  /**
653
668
  * Describes the message openshell.v1.UpdateProviderProfilesResponse.
654
669
  * Use `create(UpdateProviderProfilesResponseSchema)` to create a new message.
655
670
  */
656
- export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
671
+ export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
657
672
  /**
658
673
  * Describes the message openshell.v1.LintProviderProfilesRequest.
659
674
  * Use `create(LintProviderProfilesRequestSchema)` to create a new message.
660
675
  */
661
- export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
676
+ export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
662
677
  /**
663
678
  * Describes the message openshell.v1.LintProviderProfilesResponse.
664
679
  * Use `create(LintProviderProfilesResponseSchema)` to create a new message.
665
680
  */
666
- export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
681
+ export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
667
682
  /**
668
683
  * Describes the message openshell.v1.DeleteProviderResponse.
669
684
  * Use `create(DeleteProviderResponseSchema)` to create a new message.
670
685
  */
671
- export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
686
+ export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
672
687
  /**
673
688
  * Describes the message openshell.v1.DeleteProviderProfileRequest.
674
689
  * Use `create(DeleteProviderProfileRequestSchema)` to create a new message.
675
690
  */
676
- export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
691
+ export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
677
692
  /**
678
693
  * Describes the message openshell.v1.DeleteProviderProfileResponse.
679
694
  * Use `create(DeleteProviderProfileResponseSchema)` to create a new message.
680
695
  */
681
- export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
696
+ export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
682
697
  /**
683
698
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentRequest.
684
699
  * Use `create(GetSandboxProviderEnvironmentRequestSchema)` to create a new message.
685
700
  */
686
- export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
701
+ export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
687
702
  /**
688
703
  * Describes the message openshell.v1.StaticCredentialEndpointBinding.
689
704
  * Use `create(StaticCredentialEndpointBindingSchema)` to create a new message.
690
705
  */
691
- export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
706
+ export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
692
707
  /**
693
708
  * Describes the message openshell.v1.StaticCredentialBinding.
694
709
  * Use `create(StaticCredentialBindingSchema)` to create a new message.
695
710
  */
696
- export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
711
+ export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
697
712
  /**
698
713
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentResponse.
699
714
  * Use `create(GetSandboxProviderEnvironmentResponseSchema)` to create a new message.
700
715
  */
701
- export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
716
+ export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
717
+ /**
718
+ * Describes the message openshell.v1.ProviderEnvironmentValue.
719
+ * Use `create(ProviderEnvironmentValueSchema)` to create a new message.
720
+ */
721
+ export const ProviderEnvironmentValueSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
722
+ /**
723
+ * Describes the message openshell.v1.ProviderEnvironmentSnapshot.
724
+ * Use `create(ProviderEnvironmentSnapshotSchema)` to create a new message.
725
+ */
726
+ export const ProviderEnvironmentSnapshotSchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
702
727
  /**
703
728
  * Describes the message openshell.v1.ExchangeProviderSubjectTokenRequest.
704
729
  * Use `create(ExchangeProviderSubjectTokenRequestSchema)` to create a new message.
705
730
  */
706
- export const ExchangeProviderSubjectTokenRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
731
+ export const ExchangeProviderSubjectTokenRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
707
732
  /**
708
733
  * Describes the message openshell.v1.ExchangeProviderSubjectTokenResponse.
709
734
  * Use `create(ExchangeProviderSubjectTokenResponseSchema)` to create a new message.
710
735
  */
711
- export const ExchangeProviderSubjectTokenResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
736
+ export const ExchangeProviderSubjectTokenResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
712
737
  /**
713
738
  * Describes the message openshell.v1.UpdateConfigRequest.
714
739
  * Use `create(UpdateConfigRequestSchema)` to create a new message.
715
740
  */
716
- export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
741
+ export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
717
742
  /**
718
743
  * Describes the message openshell.v1.PolicyMergeOperation.
719
744
  * Use `create(PolicyMergeOperationSchema)` to create a new message.
720
745
  */
721
- export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
746
+ export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
722
747
  /**
723
748
  * Describes the message openshell.v1.AddNetworkRule.
724
749
  * Use `create(AddNetworkRuleSchema)` to create a new message.
725
750
  */
726
- export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
751
+ export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
727
752
  /**
728
753
  * Describes the message openshell.v1.RemoveNetworkEndpoint.
729
754
  * Use `create(RemoveNetworkEndpointSchema)` to create a new message.
730
755
  */
731
- export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
756
+ export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
732
757
  /**
733
758
  * Describes the message openshell.v1.RemoveNetworkRule.
734
759
  * Use `create(RemoveNetworkRuleSchema)` to create a new message.
735
760
  */
736
- export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
761
+ export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
737
762
  /**
738
763
  * Describes the message openshell.v1.L7RuleTarget.
739
764
  * Use `create(L7RuleTargetSchema)` to create a new message.
740
765
  */
741
- export const L7RuleTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
766
+ export const L7RuleTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
742
767
  /**
743
768
  * Describes the message openshell.v1.AddDenyRules.
744
769
  * Use `create(AddDenyRulesSchema)` to create a new message.
745
770
  */
746
- export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
771
+ export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
747
772
  /**
748
773
  * Describes the message openshell.v1.AddAllowRules.
749
774
  * Use `create(AddAllowRulesSchema)` to create a new message.
750
775
  */
751
- export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
776
+ export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
752
777
  /**
753
778
  * Describes the message openshell.v1.RemoveNetworkBinary.
754
779
  * Use `create(RemoveNetworkBinarySchema)` to create a new message.
755
780
  */
756
- export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
781
+ export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
757
782
  /**
758
783
  * Describes the message openshell.v1.UpdateConfigResponse.
759
784
  * Use `create(UpdateConfigResponseSchema)` to create a new message.
760
785
  */
761
- export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
786
+ export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
762
787
  /**
763
788
  * Describes the message openshell.v1.GetSandboxPolicyStatusRequest.
764
789
  * Use `create(GetSandboxPolicyStatusRequestSchema)` to create a new message.
765
790
  */
766
- export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
791
+ export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
767
792
  /**
768
793
  * Describes the message openshell.v1.GetSandboxPolicyStatusResponse.
769
794
  * Use `create(GetSandboxPolicyStatusResponseSchema)` to create a new message.
770
795
  */
771
- export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
796
+ export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
772
797
  /**
773
798
  * Describes the message openshell.v1.ListSandboxPoliciesRequest.
774
799
  * Use `create(ListSandboxPoliciesRequestSchema)` to create a new message.
775
800
  */
776
- export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
801
+ export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
777
802
  /**
778
803
  * Describes the message openshell.v1.ListSandboxPoliciesResponse.
779
804
  * Use `create(ListSandboxPoliciesResponseSchema)` to create a new message.
780
805
  */
781
- export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
806
+ export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
782
807
  /**
783
808
  * Describes the message openshell.v1.ReportPolicyStatusRequest.
784
809
  * Use `create(ReportPolicyStatusRequestSchema)` to create a new message.
785
810
  */
786
- export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
811
+ export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
787
812
  /**
788
813
  * Describes the message openshell.v1.ReportPolicyStatusResponse.
789
814
  * Use `create(ReportPolicyStatusResponseSchema)` to create a new message.
790
815
  */
791
- export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
816
+ export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
792
817
  /**
793
818
  * Describes the message openshell.v1.SandboxConfigurationAdmission.
794
819
  * Use `create(SandboxConfigurationAdmissionSchema)` to create a new message.
795
820
  */
796
- export const SandboxConfigurationAdmissionSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
821
+ export const SandboxConfigurationAdmissionSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
797
822
  /**
798
823
  * Describes the message openshell.v1.ReportSandboxConfigurationRequest.
799
824
  * Use `create(ReportSandboxConfigurationRequestSchema)` to create a new message.
800
825
  */
801
- export const ReportSandboxConfigurationRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
826
+ export const ReportSandboxConfigurationRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
802
827
  /**
803
828
  * Describes the message openshell.v1.ReportSandboxConfigurationResponse.
804
829
  * Use `create(ReportSandboxConfigurationResponseSchema)` to create a new message.
805
830
  */
806
- export const ReportSandboxConfigurationResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
831
+ export const ReportSandboxConfigurationResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
807
832
  /**
808
833
  * Describes the message openshell.v1.SandboxPolicyRevision.
809
834
  * Use `create(SandboxPolicyRevisionSchema)` to create a new message.
810
835
  */
811
- export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
836
+ export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
812
837
  /**
813
838
  * Describes the message openshell.v1.GetSandboxLogsRequest.
814
839
  * Use `create(GetSandboxLogsRequestSchema)` to create a new message.
815
840
  */
816
- export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
841
+ export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
817
842
  /**
818
843
  * Describes the message openshell.v1.PushSandboxLogsRequest.
819
844
  * Use `create(PushSandboxLogsRequestSchema)` to create a new message.
820
845
  */
821
- export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
846
+ export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
822
847
  /**
823
848
  * Describes the message openshell.v1.PushSandboxLogsResponse.
824
849
  * Use `create(PushSandboxLogsResponseSchema)` to create a new message.
825
850
  */
826
- export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
851
+ export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
827
852
  /**
828
853
  * Describes the message openshell.v1.GetSandboxLogsResponse.
829
854
  * Use `create(GetSandboxLogsResponseSchema)` to create a new message.
830
855
  */
831
- export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
856
+ export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
832
857
  /**
833
858
  * Describes the message openshell.v1.SupervisorMessage.
834
859
  * Use `create(SupervisorMessageSchema)` to create a new message.
835
860
  */
836
- export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
861
+ export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
837
862
  /**
838
863
  * Describes the message openshell.v1.GatewayMessage.
839
864
  * Use `create(GatewayMessageSchema)` to create a new message.
840
865
  */
841
- export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
866
+ export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
842
867
  /**
843
868
  * Describes the message openshell.v1.SupervisorHello.
844
869
  * Use `create(SupervisorHelloSchema)` to create a new message.
845
870
  */
846
- export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
871
+ export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
847
872
  /**
848
873
  * Describes the message openshell.v1.SessionAccepted.
849
874
  * Use `create(SessionAcceptedSchema)` to create a new message.
850
875
  */
851
- export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
876
+ export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
877
+ /**
878
+ * Describes the message openshell.v1.ConfigUpdate.
879
+ * Use `create(ConfigUpdateSchema)` to create a new message.
880
+ */
881
+ export const ConfigUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
882
+ /**
883
+ * Describes the message openshell.v1.ConfigApplyFailure.
884
+ * Use `create(ConfigApplyFailureSchema)` to create a new message.
885
+ */
886
+ export const ConfigApplyFailureSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
887
+ /**
888
+ * Describes the message openshell.v1.ConfigUpdateResult.
889
+ * Use `create(ConfigUpdateResultSchema)` to create a new message.
890
+ */
891
+ export const ConfigUpdateResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
892
+ /**
893
+ * Describes the message openshell.v1.PolicyLoadResult.
894
+ * Use `create(PolicyLoadResultSchema)` to create a new message.
895
+ */
896
+ export const PolicyLoadResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
852
897
  /**
853
898
  * Describes the message openshell.v1.SessionRejected.
854
899
  * Use `create(SessionRejectedSchema)` to create a new message.
855
900
  */
856
- export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
901
+ export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
857
902
  /**
858
903
  * Describes the message openshell.v1.SessionRedirect.
859
904
  * Use `create(SessionRedirectSchema)` to create a new message.
860
905
  */
861
- export const SessionRedirectSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
906
+ export const SessionRedirectSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
862
907
  /**
863
908
  * Describes the message openshell.v1.SupervisorHeartbeat.
864
909
  * Use `create(SupervisorHeartbeatSchema)` to create a new message.
865
910
  */
866
- export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
911
+ export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
867
912
  /**
868
913
  * Describes the message openshell.v1.GatewayHeartbeat.
869
914
  * Use `create(GatewayHeartbeatSchema)` to create a new message.
870
915
  */
871
- export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
916
+ export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
872
917
  /**
873
918
  * Describes the message openshell.v1.ReportMainProcessExitRequest.
874
919
  * Use `create(ReportMainProcessExitRequestSchema)` to create a new message.
875
920
  */
876
- export const ReportMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
921
+ export const ReportMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
877
922
  /**
878
923
  * Describes the message openshell.v1.ReportMainProcessExitResponse.
879
924
  * Use `create(ReportMainProcessExitResponseSchema)` to create a new message.
880
925
  */
881
- export const ReportMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
926
+ export const ReportMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
882
927
  /**
883
928
  * Describes the message openshell.v1.FinalizeMainProcessExitRequest.
884
929
  * Use `create(FinalizeMainProcessExitRequestSchema)` to create a new message.
885
930
  */
886
- export const FinalizeMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
931
+ export const FinalizeMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
887
932
  /**
888
933
  * Describes the message openshell.v1.FinalizeMainProcessExitResponse.
889
934
  * Use `create(FinalizeMainProcessExitResponseSchema)` to create a new message.
890
935
  */
891
- export const FinalizeMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
936
+ export const FinalizeMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
892
937
  /**
893
938
  * Describes the message openshell.v1.RelayOpen.
894
939
  * Use `create(RelayOpenSchema)` to create a new message.
895
940
  */
896
- export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
941
+ export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
897
942
  /**
898
943
  * Describes the message openshell.v1.SshRelayTarget.
899
944
  * Use `create(SshRelayTargetSchema)` to create a new message.
900
945
  */
901
- export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
946
+ export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 186);
902
947
  /**
903
948
  * Describes the message openshell.v1.TcpRelayTarget.
904
949
  * Use `create(TcpRelayTargetSchema)` to create a new message.
905
950
  */
906
- export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
951
+ export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 187);
907
952
  /**
908
953
  * Describes the message openshell.v1.RelayInit.
909
954
  * Use `create(RelayInitSchema)` to create a new message.
910
955
  */
911
- export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
956
+ export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 188);
912
957
  /**
913
958
  * Describes the message openshell.v1.RelayFrame.
914
959
  * Use `create(RelayFrameSchema)` to create a new message.
915
960
  */
916
- export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
961
+ export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 189);
917
962
  /**
918
963
  * Describes the message openshell.v1.PeerRelayInit.
919
964
  * Use `create(PeerRelayInitSchema)` to create a new message.
920
965
  */
921
- export const PeerRelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
966
+ export const PeerRelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 190);
922
967
  /**
923
968
  * Describes the message openshell.v1.PeerRelayFrame.
924
969
  * Use `create(PeerRelayFrameSchema)` to create a new message.
925
970
  */
926
- export const PeerRelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
971
+ export const PeerRelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 191);
972
+ /**
973
+ * Describes the message openshell.v1.PeerConfigSandboxTarget.
974
+ * Use `create(PeerConfigSandboxTargetSchema)` to create a new message.
975
+ */
976
+ export const PeerConfigSandboxTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 192);
977
+ /**
978
+ * Describes the message openshell.v1.PeerConfigProviderTarget.
979
+ * Use `create(PeerConfigProviderTargetSchema)` to create a new message.
980
+ */
981
+ export const PeerConfigProviderTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 193);
982
+ /**
983
+ * Describes the message openshell.v1.PeerNotifyConfigUpdateRequest.
984
+ * Use `create(PeerNotifyConfigUpdateRequestSchema)` to create a new message.
985
+ */
986
+ export const PeerNotifyConfigUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 194);
987
+ /**
988
+ * Describes the message openshell.v1.PeerNotifyConfigUpdateResponse.
989
+ * Use `create(PeerNotifyConfigUpdateResponseSchema)` to create a new message.
990
+ */
991
+ export const PeerNotifyConfigUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 195);
927
992
  /**
928
993
  * Describes the message openshell.v1.RelayOpenResult.
929
994
  * Use `create(RelayOpenResultSchema)` to create a new message.
930
995
  */
931
- export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
996
+ export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 196);
932
997
  /**
933
998
  * Describes the message openshell.v1.RelayClose.
934
999
  * Use `create(RelayCloseSchema)` to create a new message.
935
1000
  */
936
- export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
1001
+ export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 197);
937
1002
  /**
938
1003
  * Describes the message openshell.v1.L7RequestSample.
939
1004
  * Use `create(L7RequestSampleSchema)` to create a new message.
940
1005
  */
941
- export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
1006
+ export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 198);
942
1007
  /**
943
1008
  * Describes the message openshell.v1.DenialSummary.
944
1009
  * Use `create(DenialSummarySchema)` to create a new message.
945
1010
  */
946
- export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 186);
1011
+ export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 199);
947
1012
  /**
948
1013
  * Describes the message openshell.v1.DenialGroupCount.
949
1014
  * Use `create(DenialGroupCountSchema)` to create a new message.
950
1015
  */
951
- export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 187);
1016
+ export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 200);
952
1017
  /**
953
1018
  * Describes the message openshell.v1.NetworkActivitySummary.
954
1019
  * Use `create(NetworkActivitySummarySchema)` to create a new message.
955
1020
  */
956
- export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 188);
1021
+ export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 201);
957
1022
  /**
958
1023
  * Describes the message openshell.v1.PolicyChunk.
959
1024
  * Use `create(PolicyChunkSchema)` to create a new message.
960
1025
  */
961
- export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 189);
1026
+ export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 202);
962
1027
  /**
963
1028
  * Describes the message openshell.v1.DraftPolicyUpdate.
964
1029
  * Use `create(DraftPolicyUpdateSchema)` to create a new message.
965
1030
  */
966
- export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 190);
1031
+ export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 203);
967
1032
  /**
968
1033
  * Describes the message openshell.v1.SubmitPolicyAnalysisRequest.
969
1034
  * Use `create(SubmitPolicyAnalysisRequestSchema)` to create a new message.
970
1035
  */
971
- export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 191);
1036
+ export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 204);
972
1037
  /**
973
1038
  * Describes the message openshell.v1.SubmitPolicyAnalysisResponse.
974
1039
  * Use `create(SubmitPolicyAnalysisResponseSchema)` to create a new message.
975
1040
  */
976
- export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 192);
1041
+ export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 205);
977
1042
  /**
978
1043
  * Describes the message openshell.v1.GetDraftPolicyRequest.
979
1044
  * Use `create(GetDraftPolicyRequestSchema)` to create a new message.
980
1045
  */
981
- export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 193);
1046
+ export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 206);
982
1047
  /**
983
1048
  * Describes the message openshell.v1.GetDraftPolicyResponse.
984
1049
  * Use `create(GetDraftPolicyResponseSchema)` to create a new message.
985
1050
  */
986
- export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 194);
1051
+ export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 207);
987
1052
  /**
988
1053
  * Describes the message openshell.v1.ApproveDraftChunkRequest.
989
1054
  * Use `create(ApproveDraftChunkRequestSchema)` to create a new message.
990
1055
  */
991
- export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 195);
1056
+ export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 208);
992
1057
  /**
993
1058
  * Describes the message openshell.v1.ApproveDraftChunkResponse.
994
1059
  * Use `create(ApproveDraftChunkResponseSchema)` to create a new message.
995
1060
  */
996
- export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 196);
1061
+ export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 209);
997
1062
  /**
998
1063
  * Describes the message openshell.v1.RejectDraftChunkRequest.
999
1064
  * Use `create(RejectDraftChunkRequestSchema)` to create a new message.
1000
1065
  */
1001
- export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 197);
1066
+ export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 210);
1002
1067
  /**
1003
1068
  * Describes the message openshell.v1.RejectDraftChunkResponse.
1004
1069
  * Use `create(RejectDraftChunkResponseSchema)` to create a new message.
1005
1070
  */
1006
- export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 198);
1071
+ export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 211);
1007
1072
  /**
1008
1073
  * Describes the message openshell.v1.DraftChunkApproval.
1009
1074
  * Use `create(DraftChunkApprovalSchema)` to create a new message.
1010
1075
  */
1011
- export const DraftChunkApprovalSchema = /*@__PURE__*/ messageDesc(file_openshell, 199);
1076
+ export const DraftChunkApprovalSchema = /*@__PURE__*/ messageDesc(file_openshell, 212);
1012
1077
  /**
1013
1078
  * Describes the message openshell.v1.ApproveAllDraftChunksRequest.
1014
1079
  * Use `create(ApproveAllDraftChunksRequestSchema)` to create a new message.
1015
1080
  */
1016
- export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 200);
1081
+ export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 213);
1017
1082
  /**
1018
1083
  * Describes the message openshell.v1.ApproveAllDraftChunksResponse.
1019
1084
  * Use `create(ApproveAllDraftChunksResponseSchema)` to create a new message.
1020
1085
  */
1021
- export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 201);
1086
+ export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 214);
1022
1087
  /**
1023
1088
  * Describes the message openshell.v1.EditDraftChunkRequest.
1024
1089
  * Use `create(EditDraftChunkRequestSchema)` to create a new message.
1025
1090
  */
1026
- export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 202);
1091
+ export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 215);
1027
1092
  /**
1028
1093
  * Describes the message openshell.v1.EditDraftChunkResponse.
1029
1094
  * Use `create(EditDraftChunkResponseSchema)` to create a new message.
1030
1095
  */
1031
- export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 203);
1096
+ export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 216);
1032
1097
  /**
1033
1098
  * Describes the message openshell.v1.UndoDraftChunkRequest.
1034
1099
  * Use `create(UndoDraftChunkRequestSchema)` to create a new message.
1035
1100
  */
1036
- export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 204);
1101
+ export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 217);
1037
1102
  /**
1038
1103
  * Describes the message openshell.v1.UndoDraftChunkResponse.
1039
1104
  * Use `create(UndoDraftChunkResponseSchema)` to create a new message.
1040
1105
  */
1041
- export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 205);
1106
+ export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 218);
1042
1107
  /**
1043
1108
  * Describes the message openshell.v1.ClearDraftChunksRequest.
1044
1109
  * Use `create(ClearDraftChunksRequestSchema)` to create a new message.
1045
1110
  */
1046
- export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 206);
1111
+ export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 219);
1047
1112
  /**
1048
1113
  * Describes the message openshell.v1.ClearDraftChunksResponse.
1049
1114
  * Use `create(ClearDraftChunksResponseSchema)` to create a new message.
1050
1115
  */
1051
- export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 207);
1116
+ export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 220);
1052
1117
  /**
1053
1118
  * Describes the message openshell.v1.GetDraftHistoryRequest.
1054
1119
  * Use `create(GetDraftHistoryRequestSchema)` to create a new message.
1055
1120
  */
1056
- export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 208);
1121
+ export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 221);
1057
1122
  /**
1058
1123
  * Describes the message openshell.v1.DraftHistoryEntry.
1059
1124
  * Use `create(DraftHistoryEntrySchema)` to create a new message.
1060
1125
  */
1061
- export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 209);
1126
+ export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 222);
1062
1127
  /**
1063
1128
  * Describes the message openshell.v1.GetDraftHistoryResponse.
1064
1129
  * Use `create(GetDraftHistoryResponseSchema)` to create a new message.
1065
1130
  */
1066
- export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 210);
1131
+ export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 223);
1067
1132
  /**
1068
1133
  * Describes the message openshell.v1.CreateWorkspaceRequest.
1069
1134
  * Use `create(CreateWorkspaceRequestSchema)` to create a new message.
1070
1135
  */
1071
- export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 211);
1136
+ export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 224);
1072
1137
  /**
1073
1138
  * Describes the message openshell.v1.CreateWorkspaceResponse.
1074
1139
  * Use `create(CreateWorkspaceResponseSchema)` to create a new message.
1075
1140
  */
1076
- export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 212);
1141
+ export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 225);
1077
1142
  /**
1078
1143
  * Describes the message openshell.v1.GetWorkspaceRequest.
1079
1144
  * Use `create(GetWorkspaceRequestSchema)` to create a new message.
1080
1145
  */
1081
- export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 213);
1146
+ export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 226);
1082
1147
  /**
1083
1148
  * Describes the message openshell.v1.GetWorkspaceResponse.
1084
1149
  * Use `create(GetWorkspaceResponseSchema)` to create a new message.
1085
1150
  */
1086
- export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 214);
1151
+ export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 227);
1087
1152
  /**
1088
1153
  * Describes the message openshell.v1.ListWorkspacesRequest.
1089
1154
  * Use `create(ListWorkspacesRequestSchema)` to create a new message.
1090
1155
  */
1091
- export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 215);
1156
+ export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 228);
1092
1157
  /**
1093
1158
  * Describes the message openshell.v1.ListWorkspacesResponse.
1094
1159
  * Use `create(ListWorkspacesResponseSchema)` to create a new message.
1095
1160
  */
1096
- export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 216);
1161
+ export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 229);
1097
1162
  /**
1098
1163
  * Describes the message openshell.v1.DeleteWorkspaceRequest.
1099
1164
  * Use `create(DeleteWorkspaceRequestSchema)` to create a new message.
1100
1165
  */
1101
- export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 217);
1166
+ export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 230);
1102
1167
  /**
1103
1168
  * Describes the message openshell.v1.DeleteWorkspaceResponse.
1104
1169
  * Use `create(DeleteWorkspaceResponseSchema)` to create a new message.
1105
1170
  */
1106
- export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 218);
1171
+ export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 231);
1107
1172
  /**
1108
1173
  * Describes the message openshell.v1.WorkspaceMember.
1109
1174
  * Use `create(WorkspaceMemberSchema)` to create a new message.
1110
1175
  */
1111
- export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 219);
1176
+ export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 232);
1112
1177
  /**
1113
1178
  * Describes the message openshell.v1.AddWorkspaceMemberRequest.
1114
1179
  * Use `create(AddWorkspaceMemberRequestSchema)` to create a new message.
1115
1180
  */
1116
- export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 220);
1181
+ export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 233);
1117
1182
  /**
1118
1183
  * Describes the message openshell.v1.AddWorkspaceMemberResponse.
1119
1184
  * Use `create(AddWorkspaceMemberResponseSchema)` to create a new message.
1120
1185
  */
1121
- export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 221);
1186
+ export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 234);
1122
1187
  /**
1123
1188
  * Describes the message openshell.v1.RemoveWorkspaceMemberRequest.
1124
1189
  * Use `create(RemoveWorkspaceMemberRequestSchema)` to create a new message.
1125
1190
  */
1126
- export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 222);
1191
+ export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 235);
1127
1192
  /**
1128
1193
  * Describes the message openshell.v1.RemoveWorkspaceMemberResponse.
1129
1194
  * Use `create(RemoveWorkspaceMemberResponseSchema)` to create a new message.
1130
1195
  */
1131
- export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 223);
1196
+ export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 236);
1132
1197
  /**
1133
1198
  * Describes the message openshell.v1.ListWorkspaceMembersRequest.
1134
1199
  * Use `create(ListWorkspaceMembersRequestSchema)` to create a new message.
1135
1200
  */
1136
- export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 224);
1201
+ export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 237);
1137
1202
  /**
1138
1203
  * Describes the message openshell.v1.ListWorkspaceMembersResponse.
1139
1204
  * Use `create(ListWorkspaceMembersResponseSchema)` to create a new message.
1140
1205
  */
1141
- export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 225);
1206
+ export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 238);
1142
1207
  /**
1143
1208
  * Describes the message openshell.v1.ExtensionServiceCredential.
1144
1209
  * Use `create(ExtensionServiceCredentialSchema)` to create a new message.
1145
1210
  */
1146
- export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 226);
1211
+ export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 239);
1147
1212
  /**
1148
1213
  * Describes the message openshell.v1.EndpointObservation.
1149
1214
  * Use `create(EndpointObservationSchema)` to create a new message.
1150
1215
  */
1151
- export const EndpointObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 227);
1216
+ export const EndpointObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 240);
1152
1217
  /**
1153
1218
  * Describes the message openshell.v1.ReportEndpointStatusRequest.
1154
1219
  * Use `create(ReportEndpointStatusRequestSchema)` to create a new message.
1155
1220
  */
1156
- export const ReportEndpointStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 228);
1221
+ export const ReportEndpointStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 241);
1222
+ /**
1223
+ * Describes the message openshell.v1.TokenGrantStatus.
1224
+ * Use `create(TokenGrantStatusSchema)` to create a new message.
1225
+ */
1226
+ export const TokenGrantStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 242);
1227
+ /**
1228
+ * Describes the message openshell.v1.TokenGrantFailureObservation.
1229
+ * Use `create(TokenGrantFailureObservationSchema)` to create a new message.
1230
+ */
1231
+ export const TokenGrantFailureObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 243);
1157
1232
  /**
1158
1233
  * Describes the message openshell.v1.ReportEndpointStatusResponse.
1159
1234
  * Use `create(ReportEndpointStatusResponseSchema)` to create a new message.
1160
1235
  */
1161
- export const ReportEndpointStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 229);
1236
+ export const ReportEndpointStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 244);
1162
1237
  /**
1163
1238
  * Describes the message openshell.v1.EndpointStatus.
1164
1239
  * Use `create(EndpointStatusSchema)` to create a new message.
1165
1240
  */
1166
- export const EndpointStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 230);
1241
+ export const EndpointStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 245);
1167
1242
  /**
1168
1243
  * Describes the message openshell.v1.SandboxProvisioning.
1169
1244
  * Use `create(SandboxProvisioningSchema)` to create a new message.
1170
1245
  */
1171
- export const SandboxProvisioningSchema = /*@__PURE__*/ messageDesc(file_openshell, 231);
1246
+ export const SandboxProvisioningSchema = /*@__PURE__*/ messageDesc(file_openshell, 246);
1172
1247
  /**
1173
1248
  * Describes the message openshell.v1.SandboxServiceExposure.
1174
1249
  * Use `create(SandboxServiceExposureSchema)` to create a new message.
1175
1250
  */
1176
- export const SandboxServiceExposureSchema = /*@__PURE__*/ messageDesc(file_openshell, 232);
1251
+ export const SandboxServiceExposureSchema = /*@__PURE__*/ messageDesc(file_openshell, 247);
1252
+ /**
1253
+ * Describes the message openshell.v1.EndpointFailure.
1254
+ * Use `create(EndpointFailureSchema)` to create a new message.
1255
+ */
1256
+ export const EndpointFailureSchema = /*@__PURE__*/ messageDesc(file_openshell, 248);
1177
1257
  /**
1178
1258
  * @generated from enum openshell.v1.ExtensionKind
1179
1259
  */
@@ -1635,6 +1715,30 @@ export var ProviderProfileCategory;
1635
1715
  * Describes the enum openshell.v1.ProviderProfileCategory.
1636
1716
  */
1637
1717
  export const ProviderProfileCategorySchema = /*@__PURE__*/ enumDesc(file_openshell, 10);
1718
+ /**
1719
+ * Receivers treat UNSPECIFIED and unknown values as secret.
1720
+ *
1721
+ * @generated from enum openshell.v1.ProviderEnvironmentValueClassification
1722
+ */
1723
+ export var ProviderEnvironmentValueClassification;
1724
+ (function (ProviderEnvironmentValueClassification) {
1725
+ /**
1726
+ * @generated from enum value: PROVIDER_ENVIRONMENT_VALUE_CLASSIFICATION_UNSPECIFIED = 0;
1727
+ */
1728
+ ProviderEnvironmentValueClassification[ProviderEnvironmentValueClassification["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1729
+ /**
1730
+ * @generated from enum value: PROVIDER_ENVIRONMENT_VALUE_CLASSIFICATION_NON_SECRET = 1;
1731
+ */
1732
+ ProviderEnvironmentValueClassification[ProviderEnvironmentValueClassification["NON_SECRET"] = 1] = "NON_SECRET";
1733
+ /**
1734
+ * @generated from enum value: PROVIDER_ENVIRONMENT_VALUE_CLASSIFICATION_STATIC_CREDENTIAL = 2;
1735
+ */
1736
+ ProviderEnvironmentValueClassification[ProviderEnvironmentValueClassification["STATIC_CREDENTIAL"] = 2] = "STATIC_CREDENTIAL";
1737
+ })(ProviderEnvironmentValueClassification || (ProviderEnvironmentValueClassification = {}));
1738
+ /**
1739
+ * Describes the enum openshell.v1.ProviderEnvironmentValueClassification.
1740
+ */
1741
+ export const ProviderEnvironmentValueClassificationSchema = /*@__PURE__*/ enumDesc(file_openshell, 11);
1638
1742
  /**
1639
1743
  * @generated from enum openshell.v1.ConfigurationAdmissionState
1640
1744
  */
@@ -1660,7 +1764,7 @@ export var ConfigurationAdmissionState;
1660
1764
  /**
1661
1765
  * Describes the enum openshell.v1.ConfigurationAdmissionState.
1662
1766
  */
1663
- export const ConfigurationAdmissionStateSchema = /*@__PURE__*/ enumDesc(file_openshell, 11);
1767
+ export const ConfigurationAdmissionStateSchema = /*@__PURE__*/ enumDesc(file_openshell, 12);
1664
1768
  /**
1665
1769
  * Policy load status.
1666
1770
  *
@@ -1702,7 +1806,7 @@ export var PolicyStatus;
1702
1806
  /**
1703
1807
  * Describes the enum openshell.v1.PolicyStatus.
1704
1808
  */
1705
- export const PolicyStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 12);
1809
+ export const PolicyStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 13);
1706
1810
  /**
1707
1811
  * Service status enum.
1708
1812
  *
@@ -1730,7 +1834,7 @@ export var ServiceStatus;
1730
1834
  /**
1731
1835
  * Describes the enum openshell.v1.ServiceStatus.
1732
1836
  */
1733
- export const ServiceStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 13);
1837
+ export const ServiceStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 14);
1734
1838
  /**
1735
1839
  * Workspace-scoped role for members.
1736
1840
  *
@@ -1754,7 +1858,7 @@ export var WorkspaceRole;
1754
1858
  /**
1755
1859
  * Describes the enum openshell.v1.WorkspaceRole.
1756
1860
  */
1757
- export const WorkspaceRoleSchema = /*@__PURE__*/ enumDesc(file_openshell, 14);
1861
+ export const WorkspaceRoleSchema = /*@__PURE__*/ enumDesc(file_openshell, 15);
1758
1862
  /**
1759
1863
  * Stable recovery action for the most recent provider credential refresh
1760
1864
  * failure. Kept after the pre-existing enums so adding it does not renumber
@@ -1789,7 +1893,7 @@ export var ProviderCredentialRefreshRecoveryAction;
1789
1893
  /**
1790
1894
  * Describes the enum openshell.v1.ProviderCredentialRefreshRecoveryAction.
1791
1895
  */
1792
- export const ProviderCredentialRefreshRecoveryActionSchema = /*@__PURE__*/ enumDesc(file_openshell, 15);
1896
+ export const ProviderCredentialRefreshRecoveryActionSchema = /*@__PURE__*/ enumDesc(file_openshell, 16);
1793
1897
  /**
1794
1898
  * Policy applied when the canonical main process exits outside an intentional
1795
1899
  * stop or delete operation. Kept after existing enums so generated enum
@@ -1819,7 +1923,7 @@ export var SandboxRestartPolicy;
1819
1923
  /**
1820
1924
  * Describes the enum openshell.v1.SandboxRestartPolicy.
1821
1925
  */
1822
- export const SandboxRestartPolicySchema = /*@__PURE__*/ enumDesc(file_openshell, 16);
1926
+ export const SandboxRestartPolicySchema = /*@__PURE__*/ enumDesc(file_openshell, 17);
1823
1927
  /**
1824
1928
  * Result of a public delete, membership removal, or session revocation.
1825
1929
  * Default requests return NOT_FOUND for a missing target. With allow_missing,
@@ -1861,7 +1965,7 @@ export var DeletionOutcome;
1861
1965
  /**
1862
1966
  * Describes the enum openshell.v1.DeletionOutcome.
1863
1967
  */
1864
- export const DeletionOutcomeSchema = /*@__PURE__*/ enumDesc(file_openshell, 17);
1968
+ export const DeletionOutcomeSchema = /*@__PURE__*/ enumDesc(file_openshell, 18);
1865
1969
  /**
1866
1970
  * Last observed network result for a configured external tool endpoint.
1867
1971
  * Results describe accepted traffic observations, not present availability.
@@ -1921,7 +2025,7 @@ export var EndpointResult;
1921
2025
  /**
1922
2026
  * Describes the enum openshell.v1.EndpointResult.
1923
2027
  */
1924
- export const EndpointResultSchema = /*@__PURE__*/ enumDesc(file_openshell, 18);
2028
+ export const EndpointResultSchema = /*@__PURE__*/ enumDesc(file_openshell, 19);
1925
2029
  /**
1926
2030
  * Controls whether an exposed service receives the request's application
1927
2031
  * Authorization header.
@@ -1952,7 +2056,34 @@ export var ServiceAuthorizationMode;
1952
2056
  /**
1953
2057
  * Describes the enum openshell.v1.ServiceAuthorizationMode.
1954
2058
  */
1955
- export const ServiceAuthorizationModeSchema = /*@__PURE__*/ enumDesc(file_openshell, 19);
2059
+ export const ServiceAuthorizationModeSchema = /*@__PURE__*/ enumDesc(file_openshell, 20);
2060
+ /**
2061
+ * Subsystem whose closed code set explains an endpoint failure. Each domain
2062
+ * defines its codes, stages, recovery actions, and the endpoint results it
2063
+ * can explain. Kept at the end of the file so adding it does not renumber
2064
+ * existing generated descriptors.
2065
+ *
2066
+ * @generated from enum openshell.v1.EndpointFailureDomain
2067
+ */
2068
+ export var EndpointFailureDomain;
2069
+ (function (EndpointFailureDomain) {
2070
+ /**
2071
+ * @generated from enum value: ENDPOINT_FAILURE_DOMAIN_UNSPECIFIED = 0;
2072
+ */
2073
+ EndpointFailureDomain[EndpointFailureDomain["UNSPECIFIED"] = 0] = "UNSPECIFIED";
2074
+ /**
2075
+ * A dynamic token grant for a provider credential failed, so OpenShell
2076
+ * refused the request before any of it reached the endpoint. Explains
2077
+ * ENDPOINT_RESULT_CREDENTIAL_UNAVAILABLE.
2078
+ *
2079
+ * @generated from enum value: ENDPOINT_FAILURE_DOMAIN_TOKEN_GRANT = 1;
2080
+ */
2081
+ EndpointFailureDomain[EndpointFailureDomain["TOKEN_GRANT"] = 1] = "TOKEN_GRANT";
2082
+ })(EndpointFailureDomain || (EndpointFailureDomain = {}));
2083
+ /**
2084
+ * Describes the enum openshell.v1.EndpointFailureDomain.
2085
+ */
2086
+ export const EndpointFailureDomainSchema = /*@__PURE__*/ enumDesc(file_openshell, 21);
1956
2087
  /**
1957
2088
  * OpenShell service provides sandbox, provider, and runtime management capabilities.
1958
2089
  *