@openkaiden/opnshll-sdk 0.1.6 → 0.1.7

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("Cg9vcGVuc2hlbGwucHJvdG8SDG9wZW5zaGVsbC52MSIaChhJc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QiegoZSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZRITCgV0b2tlbhgBIAEoCUIEiLUYARIzCg9leHBpcmF0aW9uX3RpbWUYZiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIAhADUg1leHBpcmVzX2F0X21zIj0KGlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Eh8KF2V4dGVuc2lvbl9zZXJ2aWNlX25hbWVzGAEgAygJIuoCChtSZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2USEwoFdG9rZW4YASABKAlCBIi1GAESMwoPZXhwaXJhdGlvbl90aW1lGGYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJHChVleHRlbnNpb25fY3JlZGVudGlhbHMYAyADKAsyKC5vcGVuc2hlbGwudjEuRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwSGwoNc2FuZGJveF90b2tlbhgEIAEoCUIEiLUYARI7ChdzYW5kYm94X2V4cGlyYXRpb25fdGltZRhpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKc2Vzc2lvbl9pZBgGIAEoCRIYChBjcmVkZW50aWFsX2Vwb2NoGAcgASgESgQIAhADSgQIBRAGUg1leHBpcmVzX2F0X21zUhVzYW5kYm94X2V4cGlyZXNfYXRfbXMiDwoNSGVhbHRoUmVxdWVzdCJOCg5IZWFsdGhSZXNwb25zZRIrCgZzdGF0dXMYASABKA4yGy5vcGVuc2hlbGwudjEuU2VydmljZVN0YXR1cxIPCgd2ZXJzaW9uGAIgASgJIhcKFUdldEN1cnJlbnRVc2VyUmVxdWVzdCJ5ChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg0KBXJvbGVzGAMgAygJEg4KBnNjb3BlcxgEIAMoCRIZChFpZGVudGl0eV9wcm92aWRlchgFIAEoCSIXChVHZXRHYXRld2F5SW5mb1JlcXVlc3Qi0wEKFkdldEdhdGV3YXlJbmZvUmVzcG9uc2USKwoGc3RhdHVzGAEgASgOMhsub3BlbnNoZWxsLnYxLlNlcnZpY2VTdGF0dXMSFwoPZ2F0ZXdheV92ZXJzaW9uGAIgASgJEjgKD2NvbXB1dGVfZHJpdmVycxgDIAMoCzIfLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVySW5mbxI5CgpleHRlbnNpb25zGAQgAygLMiUub3BlbnNoZWxsLnYxLk5lZ290aWF0ZWRFeHRlbnNpb25JbmZvIokCChdOZWdvdGlhdGVkRXh0ZW5zaW9uSW5mbxIpCgRraW5kGAEgASgOMhsub3BlbnNoZWxsLnYxLkV4dGVuc2lvbktpbmQSFwoPY29uZmlndXJlZF9uYW1lGAIgASgJEhsKE2ltcGxlbWVudGF0aW9uX25hbWUYAyABKAkSHgoWaW1wbGVtZW50YXRpb25fdmVyc2lvbhgEIAEoCRIWCg5wcm90b2NvbF9tYWpvchgFIAEoDRIWCg5wcm90b2NvbF9taW5vchgGIAEoDRIeChZzdXBwb3J0ZWRfY2FwYWJpbGl0aWVzGAcgAygJEh0KFXJlcXVpcmVkX2NhcGFiaWxpdGllcxgIIAMoCSJgChFDb21wdXRlRHJpdmVySW5mbxIMCgRuYW1lGAEgASgJEj0KDGNhcGFiaWxpdGllcxgCIAEoCzInLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzIosBChlDb21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzEhMKC2RyaXZlcl9uYW1lGAEgASgJEhYKDmRyaXZlcl92ZXJzaW9uGAIgASgJEkEKFXJlc291cmNlX2NhcGFiaWxpdGllcxgDIAEoCzIiLm9wZW5zaGVsbC52MS5SZXNvdXJjZUNhcGFiaWxpdGllcyK4AQoUUmVzb3VyY2VDYXBhYmlsaXRpZXMSMgoDY3B1GAEgASgLMiUub3BlbnNoZWxsLnYxLkNwdVJlc291cmNlQ2FwYWJpbGl0aWVzEjgKBm1lbW9yeRgCIAEoCzIoLm9wZW5zaGVsbC52MS5NZW1vcnlSZXNvdXJjZUNhcGFiaWxpdGllcxIyCgNncHUYAyABKAsyJS5vcGVuc2hlbGwudjEuR3B1UmVzb3VyY2VDYXBhYmlsaXRpZXMiMgoXQ3B1UmVzb3VyY2VDYXBhYmlsaXRpZXMSFwoPbGltaXRfc3VwcG9ydGVkGAEgASgIIjUKGk1lbW9yeVJlc291cmNlQ2FwYWJpbGl0aWVzEhcKD2xpbWl0X3N1cHBvcnRlZBgBIAEoCCJhChdHcHVSZXNvdXJjZUNhcGFiaWxpdGllcxIjChtkZWZhdWx0X3NlbGVjdGlvbl9zdXBwb3J0ZWQYASABKAgSIQoZY291bnRfc2VsZWN0aW9uX3N1cHBvcnRlZBgCIAEoCCK3AgoHU2FuZGJveBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRInCgRzcGVjGAIgASgLMhkub3BlbnNoZWxsLnYxLlNhbmRib3hTcGVjEisKBnN0YXR1cxgDIAEoCzIbLm9wZW5zaGVsbC52MS5TYW5kYm94U3RhdHVzEhwKFGhvc3Rfa2V5X2ZpbmdlcnByaW50GAYgASgJElcKHmNyZWF0ZWRfZnJvbV93b3JrbG9hZF90ZW1wbGF0ZRgUIAEoCzIvLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZVByb3ZlbmFuY2VKBAgEEAVKBAgFEAZSBXBoYXNlUhZjdXJyZW50X3BvbGljeV92ZXJzaW9uIv4DCgtTYW5kYm94U3BlYxIRCglsb2dfbGV2ZWwYASABKAkSPwoLZW52aXJvbm1lbnQYBSADKAsyKi5vcGVuc2hlbGwudjEuU2FuZGJveFNwZWMuRW52aXJvbm1lbnRFbnRyeRIvCgh0ZW1wbGF0ZRgGIAEoCzIdLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUSMwoGcG9saWN5GAcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRIRCglwcm92aWRlcnMYCCADKAkSQQoVcmVzb3VyY2VfcmVxdWlyZW1lbnRzGAkgASgLMiIub3BlbnNoZWxsLnYxLlJlc291cmNlUmVxdWlyZW1lbnRzEg8KB2NvbW1hbmQYDCADKAkSCwoDdHR5GA0gASgIEiEKGXByb3ZpZGVyX2F0dGFjaG1lbnRfZXBvY2gYDiABKAkSOgoOcmVzdGFydF9wb2xpY3kYDyABKA4yIi5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3RhcnRQb2xpY3kaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIChALSgQICxAMUgpncHVfZGV2aWNlUhZwcm9wb3NhbF9hcHByb3ZhbF9tb2RlIkoKFFJlc291cmNlUmVxdWlyZW1lbnRzEjIKA2dwdRgBIAEoCzIlLm9wZW5zaGVsbC52MS5HcHVSZXNvdXJjZVJlcXVpcmVtZW50cyI3ChdHcHVSZXNvdXJjZVJlcXVpcmVtZW50cxISCgVjb3VudBgBIAEoDUgAiAEBQggKBl9jb3VudCLaBAoPU2FuZGJveFRlbXBsYXRlEg0KBWltYWdlGAEgASgJEhoKEnJ1bnRpbWVfY2xhc3NfbmFtZRgCIAEoCRIUCgxhZ2VudF9zb2NrZXQYAyABKAkSOQoGbGFiZWxzGAQgAygLMikub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZS5MYWJlbHNFbnRyeRJDCgthbm5vdGF0aW9ucxgFIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuQW5ub3RhdGlvbnNFbnRyeRJDCgtlbnZpcm9ubWVudBgGIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuRW52aXJvbm1lbnRFbnRyeRIqCglyZXNvdXJjZXMYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhwKD3VzZXJfbmFtZXNwYWNlcxgKIAEoCEgAiAEBEi4KDWRyaXZlcl9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUISChBfdXNlcl9uYW1lc3BhY2VzSgQICRAKUhZ2b2x1bWVfY2xhaW1fdGVtcGxhdGVzIogBChdTYW5kYm94V29ya2xvYWRUZW1wbGF0ZRI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRI3CgRzcGVjGAIgASgLMikub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZFRlbXBsYXRlU3BlYyLGAQobU2FuZGJveFdvcmtsb2FkVGVtcGxhdGVTcGVjEjUKCHdvcmtsb2FkGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZENvbmZpZxIuCg1kcml2ZXJfY29uZmlnGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBJAChVkZXNpcmVkX3NlcnZpY2VfbGV2ZWwYAyABKAsyIS5vcGVuc2hlbGwudjEuU2FuZGJveFNlcnZpY2VMZXZlbCLYAQoVU2FuZGJveFdvcmtsb2FkQ29uZmlnEg0KBWltYWdlGAEgASgJEkkKC2Vudmlyb25tZW50GAIgAygLMjQub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZENvbmZpZy5FbnZpcm9ubWVudEVudHJ5EjEKCXJlc291cmNlcxgDIAEoCzIeLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzb3VyY2VzGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJjChBTYW5kYm94UmVzb3VyY2VzEgsKA2NwdRgBIAEoCRIOCgZtZW1vcnkYAiABKAkSMgoDZ3B1GAMgASgLMiUub3BlbnNoZWxsLnYxLkdwdVJlc291cmNlUmVxdWlyZW1lbnRzIkQKE1NhbmRib3hTZXJ2aWNlTGV2ZWwSLQoHc3RhcnR1cBgBIAEoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94U3RhcnR1cCJUCg5TYW5kYm94U3RhcnR1cBIvCgxyZWFkeV93aXRoaW4YASABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SEQoJbWF4X2J1cnN0GAIgASgNIksKIVNhbmRib3hXb3JrbG9hZFRlbXBsYXRlUHJvdmVuYW5jZRIMCgRuYW1lGAEgASgJEhgKEHJlc291cmNlX3ZlcnNpb24YAiABKAki7AUKDVNhbmRib3hTdGF0dXMSEQoJYWdlbnRfcG9kGAIgASgJEhAKCGFnZW50X2ZkGAMgASgJEhIKCnNhbmRib3hfZmQYBCABKAkSMgoKY29uZGl0aW9ucxgFIAMoCzIeLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZGl0aW9uEikKBXBoYXNlGAYgASgOMhoub3BlbnNoZWxsLnYxLlNhbmRib3hQaGFzZRIeChZjdXJyZW50X3BvbGljeV92ZXJzaW9uGAcgASgNEiAKGG1haW5fcHJvY2Vzc19pbnN0YW5jZV9pZBgIIAEoCRIWCglleGl0X2NvZGUYCSABKAVIAIgBARI3ChFlbmRwb2ludF9zdGF0dXNlcxgKIAMoCzIcLm9wZW5zaGVsbC52MS5FbmRwb2ludFN0YXR1cxJMChdjb25maWd1cmF0aW9uX2FkbWlzc2lvbhgLIAEoCzIrLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhIkChdjb25maWd1cmF0aW9uX2FjdGl2YXRlZBgMIAEoCEgBiAEBEjcKDHByb3Zpc2lvbmluZxgNIAEoCzIhLm9wZW5zaGVsbC52MS5TYW5kYm94UHJvdmlzaW9uaW5nEhUKDXJlc3RhcnRfY291bnQYDiABKA0SNQoRbmV4dF9yZXN0YXJ0X3RpbWUYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj0KGW1haW5fcHJvY2Vzc19zdGFydGVkX3RpbWUYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkwKGGxhc3RfdG9rZW5fZ3JhbnRfZmFpbHVyZRgRIAEoCzIqLm9wZW5zaGVsbC52MS5Ub2tlbkdyYW50RmFpbHVyZU9ic2VydmF0aW9uQgwKCl9leGl0X2NvZGVCGgoYX2NvbmZpZ3VyYXRpb25fYWN0aXZhdGVkIqIBChBTYW5kYm94Q29uZGl0aW9uEgwKBHR5cGUYASABKAkSDgoGc3RhdHVzGAIgASgJEg4KBnJlYXNvbhgDIAEoCRIPCgdtZXNzYWdlGAQgASgJEjMKD3RyYW5zaXRpb25fdGltZRhpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgFEAZSFGxhc3RfdHJhbnNpdGlvbl90aW1lIoACCg1QbGF0Zm9ybUV2ZW50Ei4KCmV2ZW50X3RpbWUYZSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBnNvdXJjZRgCIAEoCRIMCgR0eXBlGAMgASgJEg4KBnJlYXNvbhgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEjsKCG1ldGFkYXRhGAYgAygLMikub3BlbnNoZWxsLnYxLlBsYXRmb3JtRXZlbnQuTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgBEAJSDHRpbWVzdGFtcF9tcyKVBAoUQ3JlYXRlU2FuZGJveFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAcgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchInCgRzcGVjGAEgASgLMhkub3BlbnNoZWxsLnYxLlNhbmRib3hTcGVjEgwKBG5hbWUYAiABKAkSPgoGbGFiZWxzGAMgAygLMi4ub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hSZXF1ZXN0LkxhYmVsc0VudHJ5EkgKC2Fubm90YXRpb25zGAQgAygLMjMub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hSZXF1ZXN0LkFubm90YXRpb25zRW50cnkSJQodYXdhaXRfbWFpbl9wcm9jZXNzX2F0dGFjaG1lbnQYBSABKAgSGQoRd29ya2xvYWRfdGVtcGxhdGUYBiABKAkSEgoKcmVxdWVzdF9pZBgIIAEoCRI/ChFzZXJ2aWNlX2V4cG9zdXJlcxgJIAMoCzIkLm9wZW5zaGVsbC52MS5TYW5kYm94U2VydmljZUV4cG9zdXJlGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIq8BChxDcmVhdGVTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISNwoIdGVtcGxhdGUYASABKAsyJS5vcGVuc2hlbGwudjEuU2FuZGJveFdvcmtsb2FkVGVtcGxhdGUSEgoKcmVxdWVzdF9pZBgDIAEoCSJtChlHZXRTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCSKgAQobTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimwEKHERlbGV0ZVNhbmRib3hUZW1wbGF0ZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAEgASgJEhUKDWFsbG93X21pc3NpbmcYAyABKAgSEgoKcmVxdWVzdF9pZBgEIAEoCSJSChdTYW5kYm94VGVtcGxhdGVSZXNwb25zZRI3Cgh0ZW1wbGF0ZRgBIAEoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZSJxChxMaXN0U2FuZGJveFRlbXBsYXRlc1Jlc3BvbnNlEjgKCXRlbXBsYXRlcxgBIAMoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiXgodRGVsZXRlU2FuZGJveFRlbXBsYXRlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQiiQEKHEJlZ2luUm9vdGZzVGFyU3RhZ2luZ1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglmaWxlX25hbWUYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoBCKoAQodQmVnaW5Sb290ZnNUYXJTdGFnaW5nUmVzcG9uc2USFQoNc3RhZ2luZ190b2tlbhgBIAEoCRITCgt1cGxvYWRfcGF0aBgCIAEoCRIRCgltYXhfYnl0ZXMYAyABKAQSMwoPZXhwaXJhdGlvbl90aW1lGGggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAQQBVINZXhwaXJlc19hdF9tcyJlChFHZXRTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkimQEKFExpc3RTYW5kYm94ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimQEKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEQoJcGFnZV9zaXplGAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkivAEKHEF0dGFjaFNhbmRib3hQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhAKCHByb3ZpZGVyGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEgoKcmVxdWVzdF9pZBgFIAEoCSK8AQocRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgDIAEoBBISCgpyZXF1ZXN0X2lkGAUgASgJIpMBChREZWxldGVTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSFQoNYWxsb3dfbWlzc2luZxgDIAEoCBISCgpyZXF1ZXN0X2lkGAQgASgJInoKElN0b3BTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSJ7ChNTdGFydFNhbmRib3hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCRISCgpyZXF1ZXN0X2lkGAMgASgJImkKFVN1c3BlbmRTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkiigEKFFJlc3VtZVNhbmRib3hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCRIgChhyZXN0YXJ0X2lmX3Jlc3RvcmVfZmFpbHMYAyABKAgiswEKD1NhbmRib3hSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSRAoMc2VydmljZV91cmxzGAIgAygLMi4ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZS5TZXJ2aWNlVXJsc0VudHJ5GjIKEFNlcnZpY2VVcmxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJaChVMaXN0U2FuZGJveGVzUmVzcG9uc2USKAoJc2FuZGJveGVzGAEgAygLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJImwKHExpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkikQEKHUF0dGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlEiYKB3NhbmRib3gYASABKAsyFS5vcGVuc2hlbGwudjEuU2FuZGJveBIQCghhdHRhY2hlZBgCIAEoCBI2CgdyZWNlaXB0GAMgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyTXV0YXRpb25SZWNlaXB0IpEBCh1EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIZGV0YWNoZWQYAiABKAgSNgoHcmVjZWlwdBgDIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uUmVjZWlwdCLdAQoXUHJvdmlkZXJEZXNpcmVkSWRlbnRpdHkSEgoKc2FuZGJveF9pZBgBIAEoCRIPCgdzYW5kYm94GAIgASgJEhgKEGF0dGFjaG1lbnRfZXBvY2gYAyABKAkSEwoLcHJvdmlkZXJfaWQYBCABKAkSIQoZcHJvdmlkZXJfcmVzb3VyY2VfdmVyc2lvbhgFIAEoBBIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YBiABKAQSFwoPY29uZmlnX3JldmlzaW9uGAcgASgEEhMKC3BvbGljeV9oYXNoGAggASgJIsYBChZDb25maWdTbmFwc2hvdFJldmlzaW9uEj0KDnNhbmRib3hfY29uZmlnGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hDb25maWdSZXZpc2lvbkgAEh4KFHByb3ZpZGVyX2Vudmlyb25tZW50GAIgASgESAASQAoPcHJvdmlkZXJfdGFyZ2V0GAMgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyRGVzaXJlZElkZW50aXR5SABCCwoJY29tcG9uZW50Ir0BChVTYW5kYm94Q29uZmlnUmV2aXNpb24SFwoPY29uZmlnX3JldmlzaW9uGAEgASgEEhYKDnBvbGljeV92ZXJzaW9uGAIgASgNEjkKDXBvbGljeV9zb3VyY2UYAyABKA4yIi5vcGVuc2hlbGwuc2FuZGJveC52MS5Qb2xpY3lTb3VyY2USHQoVZ2xvYmFsX3BvbGljeV92ZXJzaW9uGAQgASgNEhkKEXNldHRpbmdzX3JldmlzaW9uGAUgASgEIpAEChVDb25maWdVcGRhdGVPcGVyYXRpb24SFAoMb3BlcmF0aW9uX2lkGAEgASgJEhIKCnNhbmRib3hfaWQYAiABKAkSMAoJY29tcG9uZW50GAMgASgOMh0ub3BlbnNoZWxsLnYxLkNvbmZpZ0NvbXBvbmVudBI9Cg90YXJnZXRfcmV2aXNpb24YBCABKAsyJC5vcGVuc2hlbGwudjEuQ29uZmlnU25hcHNob3RSZXZpc2lvbhI3CgVzdGF0ZRgFIAEoDjIoLm9wZW5zaGVsbC52MS5Db25maWdVcGRhdGVPcGVyYXRpb25TdGF0ZRIxCgdvdXRjb21lGAYgASgOMiAub3BlbnNoZWxsLnYxLkNvbmZpZ0FwcGx5T3V0Y29tZRIXCg9zYW5pdGl6ZWRfZXJyb3IYByABKAkSMAoMY3JlYXRlZF90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgx1cGRhdGVkX3RpbWUYbSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmNvbXBsZXRlZF90aW1lGG4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAgQCUoECAkQCkoECAoQC1INY3JlYXRlZF9hdF9tc1INdXBkYXRlZF9hdF9tc1IPY29tcGxldGVkX2F0X21zIpwCChdQcm92aWRlck11dGF0aW9uUmVjZWlwdBISCgpyZWNlaXB0X2lkGAEgASgJEhMKC211dGF0aW9uX2lkGAIgASgJEhAKCHByb3ZpZGVyGAMgASgJEhEKCXdvcmtzcGFjZRgEIAEoCRIwCgRraW5kGAUgASgOMiIub3BlbnNoZWxsLnYxLlByb3ZpZGVyTXV0YXRpb25LaW5kEjYKB2Rlc2lyZWQYBiABKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJEZXNpcmVkSWRlbnRpdHkSMgoOcGVyc2lzdGVkX3RpbWUYayABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIBxAIUg9wZXJzaXN0ZWRfYXRfbXMi2wIKHFByb3ZpZGVyUmVhZGluZXNzT2JzZXJ2YXRpb24SEgoKc2Vzc2lvbl9pZBgBIAEoCRIQCghzZXF1ZW5jZRgCIAEoBBIYChBhdHRhY2htZW50X2Vwb2NoGAMgASgJEh0KFXByb3ZpZGVyX2Vudl9yZXZpc2lvbhgEIAEoBBIXCg9jb25maWdfcmV2aXNpb24YBSABKAQSEwoLcG9saWN5X2hhc2gYBiABKAkSHQoVY3JlZGVudGlhbHNfaW5zdGFsbGVkGAcgASgIEhUKDXBvbGljeV9hY3RpdmUYCCABKAgSJAocbGF1bmNoX2Vudmlyb25tZW50X2luc3RhbGxlZBgJIAEoCBIbChNwcm9jZXNzX2luc3RhbmNlX2lkGAogASgJEjUKBnJlYXNvbhgLIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1JlYXNvbiLkAwoXUHJvdmlkZXJSZWFkaW5lc3NTdGF0dXMSNgoHcmVjZWlwdBgBIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uUmVjZWlwdBIzCgVzdGF0ZRgCIAEoDjIkLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1N0YXRlEjUKBnJlYXNvbhgDIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1JlYXNvbhI8CghvYnNlcnZlZBgEIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc09ic2VydmF0aW9uEhsKE25ldHdvcmtfaW5zdGFuY2VfaWQYBSABKAkSMQoNb2JzZXJ2ZWRfdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOZXZhbHVhdGVkX3RpbWUYayABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKCW9wZXJhdGlvbhgIIAEoCzIjLm9wZW5zaGVsbC52MS5Db25maWdVcGRhdGVPcGVyYXRpb25KBAgGEAdKBAgHEAhSDm9ic2VydmVkX2F0X21zUg9ldmFsdWF0ZWRfYXRfbXMinAEKH0dldFNhbmRib3hQcm92aWRlclN0YXR1c1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhAKCHByb3ZpZGVyGAIgASgJEhIKCnJlY2VpcHRfaWQYAyABKAkiWQogR2V0U2FuZGJveFByb3ZpZGVyU3RhdHVzUmVzcG9uc2USNQoGc3RhdHVzGAEgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVhZGluZXNzU3RhdHVzInUKHlJlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEj8KC29ic2VydmF0aW9uGAIgASgLMioub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVhZGluZXNzT2JzZXJ2YXRpb24i4gEKH1JlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVzcG9uc2USGQoRYWNjZXB0ZWRfc2VxdWVuY2UYASABKAQSMgoPcmVwb3J0X2ludGVydmFsGGYgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjIKD29ic2VydmF0aW9uX3R0bBhnIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkoECAIQA0oECAMQBFIXcmVwb3J0X2ludGVydmFsX3NlY29uZHNSF29ic2VydmF0aW9uX3R0bF9zZWNvbmRzImoKFURlbGV0ZVNhbmRib3hSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZRISCgpzYW5kYm94X2lkGAMgASgJSgQIARACUgdkZWxldGVkIm4KF0NyZWF0ZVNzaFNlc3Npb25SZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCSLvAQoYQ3JlYXRlU3NoU2Vzc2lvblJlc3BvbnNlEhIKCnNhbmRib3hfaWQYASABKAkSEwoFdG9rZW4YAiABKAlCBIi1GAESFAoMZ2F0ZXdheV9ob3N0GAMgASgJEhQKDGdhdGV3YXlfcG9ydBgEIAEoDRIWCg5nYXRld2F5X3NjaGVtZRgFIAEoCRIcChRob3N0X2tleV9maW5nZXJwcmludBgHIAEoCRIzCg9leHBpcmF0aW9uX3RpbWUYbCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQICBAJUg1leHBpcmVzX2F0X21zIvYBChRFeHBvc2VTZXJ2aWNlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBSABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYAiABKAkSEwoLdGFyZ2V0X3BvcnQYAyABKA0SDgoGZG9tYWluGAQgASgIEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgGIAEoCRJCChJhdXRob3JpemF0aW9uX21vZGUYByABKA4yJi5vcGVuc2hlbGwudjEuU2VydmljZUF1dGhvcml6YXRpb25Nb2RlInYKEUdldFNlcnZpY2VSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgCIAEoCRIPCgdzYW5kYm94GAEgASgJIpEBChNMaXN0U2VydmljZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAIgASgFEhIKCnBhZ2VfdG9rZW4YAyABKAkSDwoHc2FuZGJveBgBIAEoCSJoChRMaXN0U2VydmljZXNSZXNwb25zZRI3CghzZXJ2aWNlcxgBIAMoCzIlLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkipAEKFERlbGV0ZVNlcnZpY2VSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgCIAEoCRIPCgdzYW5kYm94GAEgASgJEhUKDWFsbG93X21pc3NpbmcYBCABKAgSEgoKcmVxdWVzdF9pZBgFIAEoCSJWChVEZWxldGVTZXJ2aWNlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQi4wEKD1NlcnZpY2VFbmRwb2ludBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEg8KB3NhbmRib3gYAyABKAkSDAoEbmFtZRgEIAEoCRITCgt0YXJnZXRfcG9ydBgFIAEoDRIOCgZkb21haW4YBiABKAgSQgoSYXV0aG9yaXphdGlvbl9tb2RlGAcgASgOMiYub3BlbnNoZWxsLnYxLlNlcnZpY2VBdXRob3JpemF0aW9uTW9kZSJXChdTZXJ2aWNlRW5kcG9pbnRSZXNwb25zZRIvCghlbmRwb2ludBgBIAEoCzIdLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnQSCwoDdXJsGAIgASgJIkUKF1Jldm9rZVNzaFNlc3Npb25SZXF1ZXN0EhMKBXRva2VuGAEgASgJQgSItRgBEhUKDWFsbG93X21pc3NpbmcYAiABKAgiWQoYUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdyZXZva2VkIrgDChJFeGVjU2FuZGJveFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAwgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEg8KB2NvbW1hbmQYAiADKAkSDwoHd29ya2RpchgDIAEoCRJGCgtlbnZpcm9ubWVudBgEIAMoCzIxLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3QuRW52aXJvbm1lbnRFbnRyeRI0ChFleGVjdXRpb25fdGltZW91dBhpIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhINCgVzdGRpbhgGIAEoDBILCgN0dHkYByABKAgSDAoEY29scxgIIAEoDRIMCgRyb3dzGAkgASgNEhYKDm5vX2xvZ2luX3NoZWxsGAogASgIEhIKCnJlcXVlc3RfaWQYCyABKAkaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBRAGUg90aW1lb3V0X3NlY29uZHMiIQoRRXhlY1NhbmRib3hTdGRvdXQSDAoEZGF0YRgBIAEoDCIhChFFeGVjU2FuZGJveFN0ZGVychIMCgRkYXRhGAEgASgMIiQKD0V4ZWNTYW5kYm94RXhpdBIRCglleGl0X2NvZGUYASABKAUisgEKEEV4ZWNTYW5kYm94RXZlbnQSMQoGc3Rkb3V0GAEgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3Rkb3V0SAASMQoGc3RkZXJyGAIgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3RkZXJySAASLQoEZXhpdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV4aXRIAEIJCgdwYXlsb2FkIs8BCg5UY3BGb3J3YXJkSW5pdBIPCgdzYW5kYm94GAEgASgJEhEKCXdvcmtzcGFjZRgDIAEoCRISCgpzZXJ2aWNlX2lkGAQgASgJEisKA3NzaBgFIAEoCzIcLm9wZW5zaGVsbC52MS5Tc2hSZWxheVRhcmdldEgAEisKA3RjcBgGIAEoCzIcLm9wZW5zaGVsbC52MS5UY3BSZWxheVRhcmdldEgAEiEKE2F1dGhvcml6YXRpb25fdG9rZW4YByABKAlCBIi1GAFCCAoGdGFyZ2V0IloKD1RjcEZvcndhcmRGcmFtZRIsCgRpbml0GAEgASgLMhwub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRJbml0SAASDgoEZGF0YRgCIAEoDEgAQgkKB3BheWxvYWQimgEKEEV4ZWNTYW5kYm94SW5wdXQSMQoFc3RhcnQYASABKAsyIC5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hSZXF1ZXN0SAASDwoFc3RkaW4YAiABKAxIABI3CgZyZXNpemUYAyABKAsyJS5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hXaW5kb3dSZXNpemVIAEIJCgdwYXlsb2FkIjUKF0V4ZWNTYW5kYm94V2luZG93UmVzaXplEgwKBGNvbHMYASABKA0SDAoEcm93cxgCIAEoDSLGAQoKU3NoU2Vzc2lvbhI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEhMKBXRva2VuGAMgASgJQgSItRgBEjMKD2V4cGlyYXRpb25fdGltZRhoIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHcmV2b2tlZBgFIAEoCEoECAQQBVINZXhwaXJlc19hdF9tcyKAAwoTV2F0Y2hTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYCyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSFQoNZm9sbG93X3N0YXR1cxgCIAEoCBITCgtmb2xsb3dfbG9ncxgDIAEoCBIVCg1mb2xsb3dfZXZlbnRzGAQgASgIEhYKDmxvZ190YWlsX2xpbmVzGAUgASgNEhIKCmV2ZW50X3RhaWwYBiABKA0SGAoQc3RvcF9vbl90ZXJtaW5hbBgHIAEoCBIuCgpzaW5jZV90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtsb2dfc291cmNlcxgJIAMoCRIVCg1sb2dfbWluX2xldmVsGAogASgJEhsKE3Jlc3VtZV9hZnRlcl9jdXJzb3IYDCABKAlKBAgIEAlSDGxvZ19zaW5jZV9tcyKrAgoSU2FuZGJveFN0cmVhbUV2ZW50EigKB3NhbmRib3gYASABKAsyFS5vcGVuc2hlbGwudjEuU2FuZGJveEgAEisKA2xvZxgCIAEoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94TG9nTGluZUgAEiwKBWV2ZW50GAMgASgLMhsub3BlbnNoZWxsLnYxLlBsYXRmb3JtRXZlbnRIABI1Cgd3YXJuaW5nGAQgASgLMiIub3BlbnNoZWxsLnYxLlNhbmRib3hTdHJlYW1XYXJuaW5nSAASPgoTZHJhZnRfcG9saWN5X3VwZGF0ZRgFIAEoCzIfLm9wZW5zaGVsbC52MS5EcmFmdFBvbGljeVVwZGF0ZUgAEg4KBmN1cnNvchgGIAEoCUIJCgdwYXlsb2FkIpECCg5TYW5kYm94TG9nTGluZRISCgpzYW5kYm94X2lkGAEgASgJEi4KCmV2ZW50X3RpbWUYZiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBWxldmVsGAMgASgJEg4KBnRhcmdldBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEg4KBnNvdXJjZRgGIAEoCRI4CgZmaWVsZHMYByADKAsyKC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUuRmllbGRzRW50cnkaLQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAIQA1IMdGltZXN0YW1wX21zIicKFFNhbmRib3hTdHJlYW1XYXJuaW5nEg8KB21lc3NhZ2UYASABKAkiowEKFUNyZWF0ZVByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchISCgpyZXF1ZXN0X2lkGAMgASgJImYKEkdldFByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkiyQEKHUdldFByb3ZpZGVyQ3JlZGVudGlhbHNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgBIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgCIAEoCRIXCg9jcmVkZW50aWFsX2tleXMYAyADKAkSPQoabWluaW11bV9yZW1haW5pbmdfbGlmZXRpbWUYBCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24iYwoXUHJvdmlkZXJDcmVkZW50aWFsVmFsdWUSEwoFdmFsdWUYASABKAlCBIi1GAESMwoPZXhwaXJhdGlvbl90aW1lGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLPAQoeR2V0UHJvdmlkZXJDcmVkZW50aWFsc1Jlc3BvbnNlElIKC2NyZWRlbnRpYWxzGAEgAygLMj0ub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyQ3JlZGVudGlhbHNSZXNwb25zZS5DcmVkZW50aWFsc0VudHJ5GlkKEENyZWRlbnRpYWxzRW50cnkSCwoDa2V5GAEgASgJEjQKBXZhbHVlGAIgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFZhbHVlOgI4ASKZAQoUTGlzdFByb3ZpZGVyc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCRIWCg5sYWJlbF9zZWxlY3RvchgEIAEoCSK0AwoVVXBkYXRlUHJvdmlkZXJSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISMgoIcHJvdmlkZXIYASABKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEmcKG2NyZWRlbnRpYWxfZXhwaXJhdGlvbl90aW1lcxhmIAMoCzJCLm9wZW5zaGVsbC52MS5VcGRhdGVQcm92aWRlclJlcXVlc3QuQ3JlZGVudGlhbEV4cGlyYXRpb25UaW1lc0VudHJ5EigKIGNsZWFyX2NyZWRlbnRpYWxfZXhwaXJhdGlvbl9rZXlzGGcgAygJEhIKCnJlcXVlc3RfaWQYBCABKAkaXAoeQ3JlZGVudGlhbEV4cGlyYXRpb25UaW1lc0VudHJ5EgsKA2tleRgBIAEoCRIpCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXA6AjgBSgQIAhADUhhjcmVkZW50aWFsX2V4cGlyZXNfYXRfbXMilAEKFURlbGV0ZVByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSFQoNYWxsb3dfbWlzc2luZxgEIAEoCBISCgpyZXF1ZXN0X2lkGAUgASgJIpsBChBQcm92aWRlclJlc3BvbnNlEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchI+Cg90YXJnZXRfcmVjZWlwdHMYAiADKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQSEwoLbXV0YXRpb25faWQYAyABKAkiZQoVTGlzdFByb3ZpZGVyc1Jlc3BvbnNlEjMKCXByb3ZpZGVycxgBIAMoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIogBChtMaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCSJrChlHZXRQcm92aWRlclByb2ZpbGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISCgoCaWQYASABKAkiWwoZUHJvdmlkZXJQcm9maWxlSW1wb3J0SXRlbRIuCgdwcm9maWxlGAEgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIOCgZzb3VyY2UYAiABKAkicQoZUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxIOCgZzb3VyY2UYASABKAkSEgoKcHJvZmlsZV9pZBgCIAEoCRINCgVmaWVsZBgDIAEoCRIPCgdtZXNzYWdlGAQgASgJEhAKCHNldmVyaXR5GAUgASgJInoKLFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRBdWRpZW5jZU92ZXJyaWRlEgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDRIMCgRwYXRoGAMgASgJEhAKCGF1ZGllbmNlGAQgASgJEg4KBnNjb3BlcxgFIAMoCSJqCihQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50U3ViamVjdFRva2VuEg4KBnNvdXJjZRgBIAEoCRISCgpjcmVkZW50aWFsGAIgASgJEhoKEnN1YmplY3RfdG9rZW5fdHlwZRgDIAEoCSLiAwocUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudBIWCg50b2tlbl9lbmRwb2ludBgBIAEoCRIQCghhdWRpZW5jZRgCIAEoCRIZChFqd3Rfc3ZpZF9hdWRpZW5jZRgGIAEoCRIOCgZzY29wZXMYAyADKAkSLAoJY2FjaGVfdHRsGGggASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uElYKEmF1ZGllbmNlX292ZXJyaWRlcxgFIAMoCzI6Lm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50QXVkaWVuY2VPdmVycmlkZRIdChVjbGllbnRfYXNzZXJ0aW9uX3R5cGUYByABKAkSQgoKZ3JhbnRfdHlwZRgIIAEoDjIuLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50VHlwZRJNCg1zdWJqZWN0X3Rva2VuGAkgASgLMjYub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRTdWJqZWN0VG9rZW4SHAoUcmVxdWVzdGVkX3Rva2VuX3R5cGUYCiABKAlKBAgEEAVSEWNhY2hlX3R0bF9zZWNvbmRzIuoCChlQcm92aWRlclByb2ZpbGVDcmVkZW50aWFsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIZW52X3ZhcnMYAyADKAkSEAoIcmVxdWlyZWQYBCABKAgSEgoKYXV0aF9zdHlsZRgFIAEoCRITCgtoZWFkZXJfbmFtZRgGIAEoCRITCgtxdWVyeV9wYXJhbRgHIAEoCRI4CgdyZWZyZXNoGAggASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2gSFQoNcGF0aF90ZW1wbGF0ZRgJIAEoCRI/Cgt0b2tlbl9ncmFudBgKIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50EhoKEnRva2VuX2dyYW50X293bmVycxgLIAMoCRIaChJzdGFibGVfcGxhY2Vob2xkZXIYDCABKAgiaAohUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE1hdGVyaWFsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIcmVxdWlyZWQYAyABKAgSDgoGc2VjcmV0GAQgASgIIkUKH1Byb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hPdXRwdXQSDgoGb3V0cHV0GAEgASgJEhIKCmNyZWRlbnRpYWwYAiABKAkirQMKGVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2gSQQoIc3RyYXRlZ3kYASABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5EhEKCXRva2VuX3VybBgCIAEoCRIOCgZzY29wZXMYAyADKAkSMQoOcmVmcmVzaF9iZWZvcmUYaCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SLwoMbWF4X2xpZmV0aW1lGGkgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEkEKCG1hdGVyaWFsGAYgAygLMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hNYXRlcmlhbBJJChJhZGRpdGlvbmFsX291dHB1dHMYByADKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE91dHB1dEoECAQQBUoECAUQBlIWcmVmcmVzaF9iZWZvcmVfc2Vjb25kc1IUbWF4X2xpZmV0aW1lX3NlY29uZHMihgUKH1Byb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMSEAoIcHJvdmlkZXIYASABKAkSEwoLcHJvdmlkZXJfaWQYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSQQoIc3RyYXRlZ3kYBCABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5Eg4KBnN0YXR1cxgFIAEoCRIzCg9leHBpcmF0aW9uX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKEW5leHRfcmVmcmVzaF90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1ChFsYXN0X3JlZnJlc2hfdGltZRhsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKbGFzdF9lcnJvchgJIAEoCRJOCg9yZWNvdmVyeV9hY3Rpb24YCiABKA4yNS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFJlY292ZXJ5QWN0aW9uEhQKDGZhaWx1cmVfY29kZRgLIAEoCRIeChZwcm92aWRlcl9lcnJvcl9zdWJ0eXBlGAwgASgJEjMKD2xhc3RfZXJyb3JfdGltZRhxIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgGEAdKBAgHEAhKBAgIEAlKBAgNEA5SDWV4cGlyZXNfYXRfbXNSEm5leHRfcmVmcmVzaF9hdF9tc1ISbGFzdF9yZWZyZXNoX2F0X21zUhBsYXN0X2Vycm9yX2F0X21zIi8KGFByb3ZpZGVyUHJvZmlsZURpc2NvdmVyeRITCgtjcmVkZW50aWFscxgBIAMoCSKPAQofR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJImYKIEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlEkIKC2NyZWRlbnRpYWxzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMi1AMKH0NvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAcgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghwcm92aWRlchgBIAEoCRIWCg5jcmVkZW50aWFsX2tleRgCIAEoCRJBCghzdHJhdGVneRgDIAEoDjIvLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RyYXRlZ3kSUwoIbWF0ZXJpYWwYBCADKAsyOy5vcGVuc2hlbGwudjEuQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdC5NYXRlcmlhbEVudHJ5QgSItRgBEhwKFHNlY3JldF9tYXRlcmlhbF9rZXlzGAUgAygJEjMKD2V4cGlyYXRpb25fdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKcmVxdWVzdF9pZBgIIAEoCRovCg1NYXRlcmlhbEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgGEAdSDWV4cGlyZXNfYXRfbXMiYQogQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVzcG9uc2USPQoGc3RhdHVzGAEgASgLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMiowEKH1JvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghwcm92aWRlchgBIAEoCRIWCg5jcmVkZW50aWFsX2tleRgCIAEoCRISCgpyZXF1ZXN0X2lkGAQgASgJImEKIFJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlc3BvbnNlEj0KBnN0YXR1cxgBIAEoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzIrcBChxEZWxldGVQcm92aWRlclJlZnJlc2hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSFQoNYWxsb3dfbWlzc2luZxgFIAEoCBISCgpyZXF1ZXN0X2lkGAYgASgJIl4KHURlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkIuoECg9Qcm92aWRlclByb2ZpbGUSCgoCaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEjcKCGNhdGVnb3J5GAQgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EjwKC2NyZWRlbnRpYWxzGAUgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNyZWRlbnRpYWwSOAoJZW5kcG9pbnRzGAYgAygLMiUub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0VuZHBvaW50EjUKCGJpbmFyaWVzGAcgAygLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0JpbmFyeRIZChFpbmZlcmVuY2VfY2FwYWJsZRgIIAEoCBI5CglkaXNjb3ZlcnkYCSABKAsyJi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlzY292ZXJ5EhgKEHJlc291cmNlX3ZlcnNpb24YCiABKAQSQwoLYW5ub3RhdGlvbnMYCyADKAsyLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlLkFubm90YXRpb25zRW50cnkSDgoGc291cmNlGAwgASgJEg0KBXNjb3BlGA0gASgJEjAKBWZpbGVzGA4gAygLMiEub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUZpbGUaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkUKE1Byb3ZpZGVyUHJvZmlsZUZpbGUSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgJEg8KB2Vudl92YXIYAyABKAkiSQoXUHJvdmlkZXJQcm9maWxlUmVzcG9uc2USLgoHcHJvZmlsZRgBIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiaAocTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRIvCghwcm9maWxlcxgBIAMoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIrIBCh1JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjkKCHByb2ZpbGVzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0SEgoKcmVxdWVzdF9pZBgDIAEoCSKhAQoeSW1wb3J0UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlEjwKC2RpYWdub3N0aWNzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSLwoIcHJvZmlsZXMYAiADKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEhAKCGltcG9ydGVkGAMgASgIIuABCh1VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjgKB3Byb2ZpbGUYASABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlSW1wb3J0SXRlbRIhChlleHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uGAIgASgEEgoKAmlkGAMgASgJEhIKCnJlcXVlc3RfaWQYBSABKAkinwEKHlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi4KB3Byb2ZpbGUYAiABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEg8KB3VwZGF0ZWQYAyABKAginAEKG0xpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjkKCHByb2ZpbGVzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0ikAEKHExpbnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxINCgV2YWxpZBgCIAEoCBIjChtzdXBwb3J0c19zdGFibGVfcGxhY2Vob2xkZXIYAyABKAgiVwoWRGVsZXRlUHJvdmlkZXJSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHZGVsZXRlZCKZAQocRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgoKAmlkGAEgASgJEhUKDWFsbG93X21pc3NpbmcYAyABKAgSEgoKcmVxdWVzdF9pZBgEIAEoCSJeCh1EZWxldGVQcm92aWRlclByb2ZpbGVSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHZGVsZXRlZCKdAQokR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSKwojc3VwcG9ydHNfc3RhdGljX2NyZWRlbnRpYWxfYmluZGluZ3MYAiABKAgSNAosc3VwcG9ydHNfc3RhYmxlX3BsYWNlaG9sZGVyX2Vudmlyb25tZW50X2tleXMYAyABKAgiSwofU3RhdGljQ3JlZGVudGlhbEVuZHBvaW50QmluZGluZxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SDAoEcGF0aBgDIAEoCSKcAQoXU3RhdGljQ3JlZGVudGlhbEJpbmRpbmcSQAoJZW5kcG9pbnRzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxFbmRwb2ludEJpbmRpbmcSGwoTY3JlZGVudGlhbF9pZGVudGl0eRgCIAEoCRIiChp3b3JrbG9hZF9jcmVkZW50aWFsX2hhbmRsZRgDIAEoCSL9CQolR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZRJfCgtlbnZpcm9ubWVudBgBIAMoCzJELm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkVudmlyb25tZW50RW50cnlCBIi1GAESHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAIgASgEEncKG2NyZWRlbnRpYWxfZXhwaXJhdGlvbl90aW1lcxhnIAMoCzJSLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkNyZWRlbnRpYWxFeHBpcmF0aW9uVGltZXNFbnRyeRJoChNkeW5hbWljX2NyZWRlbnRpYWxzGAQgAygLMksub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuRHluYW1pY0NyZWRlbnRpYWxzRW50cnkSdQoac3RhdGljX2NyZWRlbnRpYWxfYmluZGluZ3MYBSADKAsyUS5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5TdGF0aWNDcmVkZW50aWFsQmluZGluZ3NFbnRyeRIjChtub25fc2VjcmV0X2Vudmlyb25tZW50X2tleXMYBiADKAkSIQoZcHJvdmlkZXJfYXR0YWNobWVudF9lcG9jaBgHIAEoCRITCgtwb2xpY3lfaGFzaBgIIAEoCRI/ChByZWFkaW5lc3NfcmVhc29uGAkgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVhZGluZXNzUmVhc29uEk0KBWZpbGVzGAogAygLMj4ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuRmlsZXNFbnRyeRIrCiNzdGFibGVfcGxhY2Vob2xkZXJfZW52aXJvbm1lbnRfa2V5cxgLIAMoCRI0CixzdXBwb3J0c19zdGFibGVfcGxhY2Vob2xkZXJfZW52aXJvbm1lbnRfa2V5cxgMIAEoCBoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaXAoeQ3JlZGVudGlhbEV4cGlyYXRpb25UaW1lc0VudHJ5EgsKA2tleRgBIAEoCRIpCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXA6AjgBGmIKF0R5bmFtaWNDcmVkZW50aWFsc0VudHJ5EgsKA2tleRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDcmVkZW50aWFsOgI4ARpmCh1TdGF0aWNDcmVkZW50aWFsQmluZGluZ3NFbnRyeRILCgNrZXkYASABKAkSNAoFdmFsdWUYAiABKAsyJS5vcGVuc2hlbGwudjEuU3RhdGljQ3JlZGVudGlhbEJpbmRpbmc6AjgBGiwKCkZpbGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAMQBFIYY3JlZGVudGlhbF9leHBpcmVzX2F0X21zIqYCChhQcm92aWRlckVudmlyb25tZW50VmFsdWUSDAoEbmFtZRgBIAEoCRITCgV2YWx1ZRgCIAEoCUIEiLUYARJMCg5jbGFzc2lmaWNhdGlvbhgEIAEoDjI0Lm9wZW5zaGVsbC52MS5Qcm92aWRlckVudmlyb25tZW50VmFsdWVDbGFzc2lmaWNhdGlvbhJIChlzdGF0aWNfY3JlZGVudGlhbF9iaW5kaW5nGAUgASgLMiUub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nEjMKD2V4cGlyYXRpb25fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoSc3RhYmxlX3BsYWNlaG9sZGVyGAYgASgIIqQEChtQcm92aWRlckVudmlyb25tZW50U25hcHNob3QSHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAEgASgEEjYKBnZhbHVlcxgCIAMoCzImLm9wZW5zaGVsbC52MS5Qcm92aWRlckVudmlyb25tZW50VmFsdWUSXgoTZHluYW1pY19jcmVkZW50aWFscxgDIAMoCzJBLm9wZW5zaGVsbC52MS5Qcm92aWRlckVudmlyb25tZW50U25hcHNob3QuRHluYW1pY0NyZWRlbnRpYWxzRW50cnkSIQoZcHJvdmlkZXJfYXR0YWNobWVudF9lcG9jaBgEIAEoCRITCgtwb2xpY3lfaGFzaBgFIAEoCRI/ChByZWFkaW5lc3NfcmVhc29uGAYgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVhZGluZXNzUmVhc29uEkMKBWZpbGVzGAcgAygLMjQub3BlbnNoZWxsLnYxLlByb3ZpZGVyRW52aXJvbm1lbnRTbmFwc2hvdC5GaWxlc0VudHJ5GmIKF0R5bmFtaWNDcmVkZW50aWFsc0VudHJ5EgsKA2tleRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDcmVkZW50aWFsOgI4ARosCgpGaWxlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEihgEKI0V4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSIQoTc3VwZXJ2aXNvcl9qd3Rfc3ZpZBgEIAEoCUIEiLUYASKaAQokRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlc3BvbnNlEhoKDGFjY2Vzc190b2tlbhgBIAEoCUIEiLUYARIwCg1leHBpcmVzX2FmdGVyGGYgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKCnRva2VuX3R5cGUYAyABKAlKBAgCEANSCmV4cGlyZXNfaW4iiQQKE1VwZGF0ZUNvbmZpZ1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAogASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIzCgZwb2xpY3kYAiABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EhMKC3NldHRpbmdfa2V5GAMgASgJEjkKDXNldHRpbmdfdmFsdWUYBCABKAsyIi5vcGVuc2hlbGwuc2FuZGJveC52MS5TZXR0aW5nVmFsdWUSFgoOZGVsZXRlX3NldHRpbmcYBSABKAgSDgoGZ2xvYmFsGAYgASgIEjwKEG1lcmdlX29wZXJhdGlvbnMYByADKAsyIi5vcGVuc2hlbGwudjEuUG9saWN5TWVyZ2VPcGVyYXRpb24SIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgIIAEoBBJHCgthbm5vdGF0aW9ucxgJIAMoCzIyLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXF1ZXN0LkFubm90YXRpb25zRW50cnkSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAsgASgJGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL3AgoUUG9saWN5TWVyZ2VPcGVyYXRpb24SMAoIYWRkX3J1bGUYASABKAsyHC5vcGVuc2hlbGwudjEuQWRkTmV0d29ya1J1bGVIABI+Cg9yZW1vdmVfZW5kcG9pbnQYAiABKAsyIy5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya0VuZHBvaW50SAASNgoLcmVtb3ZlX3J1bGUYAyABKAsyHy5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya1J1bGVIABI0Cg5hZGRfZGVueV9ydWxlcxgEIAEoCzIaLm9wZW5zaGVsbC52MS5BZGREZW55UnVsZXNIABI2Cg9hZGRfYWxsb3dfcnVsZXMYBSABKAsyGy5vcGVuc2hlbGwudjEuQWRkQWxsb3dSdWxlc0gAEjoKDXJlbW92ZV9iaW5hcnkYBiABKAsyIS5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya0JpbmFyeUgAQgsKCW9wZXJhdGlvbiJaCg5BZGROZXR3b3JrUnVsZRIRCglydWxlX25hbWUYASABKAkSNQoEcnVsZRgCIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlIkYKFVJlbW92ZU5ldHdvcmtFbmRwb2ludBIRCglydWxlX25hbWUYASABKAkSDAoEaG9zdBgCIAEoCRIMCgRwb3J0GAMgASgNIiYKEVJlbW92ZU5ldHdvcmtSdWxlEhEKCXJ1bGVfbmFtZRgBIAEoCSKlAQoMTDdSdWxlVGFyZ2V0EhEKCXJ1bGVfbmFtZRgBIAEoCRIMCgRob3N0GAIgASgJEg0KBXBvcnRzGAMgAygNEhEKBHBhdGgYBCABKAlIAIgBARI1CghiaW5hcmllcxgFIAMoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtCaW5hcnkSEgoKYW55X2JpbmFyeRgGIAEoCEIHCgVfcGF0aCKIAQoMQWRkRGVueVJ1bGVzEjQKCmRlbnlfcnVsZXMYAyADKAsyIC5vcGVuc2hlbGwuc2FuZGJveC52MS5MN0RlbnlSdWxlEioKBnRhcmdldBgEIAEoCzIaLm9wZW5zaGVsbC52MS5MN1J1bGVUYXJnZXRKBAgBEAJKBAgCEANSBGhvc3RSBHBvcnQigAEKDUFkZEFsbG93UnVsZXMSKwoFcnVsZXMYAyADKAsyHC5vcGVuc2hlbGwuc2FuZGJveC52MS5MN1J1bGUSKgoGdGFyZ2V0GAQgASgLMhoub3BlbnNoZWxsLnYxLkw3UnVsZVRhcmdldEoECAEQAkoECAIQA1IEaG9zdFIEcG9ydCI9ChNSZW1vdmVOZXR3b3JrQmluYXJ5EhEKCXJ1bGVfbmFtZRgBIAEoCRITCgtiaW5hcnlfcGF0aBgCIAEoCSLmAQoUVXBkYXRlQ29uZmlnUmVzcG9uc2USDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIZChFzZXR0aW5nc19yZXZpc2lvbhgDIAEoBBIPCgdkZWxldGVkGAQgASgIEkgKC2Fubm90YXRpb25zGAUgAygLMjMub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlLkFubm90YXRpb25zRW50cnkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpUBCh1HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3ZlcnNpb24YAiABKA0SDgoGZ2xvYmFsGAMgASgIEg8KB3NhbmRib3gYASABKAkibwoeR2V0U2FuZGJveFBvbGljeVN0YXR1c1Jlc3BvbnNlEjUKCHJldmlzaW9uGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbhIWCg5hY3RpdmVfdmVyc2lvbhgCIAEoDSKoAQoaTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAUgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCRIOCgZnbG9iYWwYBCABKAgSDwoHc2FuZGJveBgBIAEoCSJuChtMaXN0U2FuZGJveFBvbGljaWVzUmVzcG9uc2USNgoJcmV2aXNpb25zGAEgAygLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkigAEKGVJlcG9ydFBvbGljeVN0YXR1c1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgNEioKBnN0YXR1cxgDIAEoDjIaLm9wZW5zaGVsbC52MS5Qb2xpY3lTdGF0dXMSEgoKbG9hZF9lcnJvchgEIAEoCSIcChpSZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSLiAQodU2FuZGJveENvbmZpZ3VyYXRpb25BZG1pc3Npb24SEwoLaW5zdGFuY2VfaWQYASABKAkSOAoFc3RhdGUYAiABKA4yKS5vcGVuc2hlbGwudjEuQ29uZmlndXJhdGlvbkFkbWlzc2lvblN0YXRlEhYKDnBvbGljeV92ZXJzaW9uGAMgASgNEhMKC3BvbGljeV9oYXNoGAQgASgJEhcKD2NvbmZpZ19yZXZpc2lvbhgFIAEoBBIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YBiABKAQSDQoFZXJyb3IYByABKAkilQEKIVJlcG9ydFNhbmRib3hDb25maWd1cmF0aW9uUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEj4KCWFkbWlzc2lvbhgCIAEoCzIrLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhIcChRleHBlY3RlZF9pbnN0YW5jZV9pZBgDIAEoCSIkCiJSZXBvcnRTYW5kYm94Q29uZmlndXJhdGlvblJlc3BvbnNlIroDChVTYW5kYm94UG9saWN5UmV2aXNpb24SDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIqCgZzdGF0dXMYAyABKA4yGi5vcGVuc2hlbGwudjEuUG9saWN5U3RhdHVzEhIKCmxvYWRfZXJyb3IYBCABKAkSMAoMY3JlYXRlZF90aW1lGGkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtsb2FkZWRfdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoGcG9saWN5GAcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHCgpwcm92ZW5hbmNlGAggAygLMjMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbi5Qcm92ZW5hbmNlRW50cnkaMQoPUHJvdmVuYW5jZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgFEAZKBAgGEAdSDWNyZWF0ZWRfYXRfbXNSDGxvYWRlZF9hdF9tcyLfAQoVR2V0U2FuZGJveExvZ3NSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgGIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCRINCgVsaW5lcxgCIAEoDRIuCgpzaW5jZV90aW1lGGcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdzb3VyY2VzGAQgAygJEhEKCW1pbl9sZXZlbBgFIAEoCUoECAMQBFIIc2luY2VfbXMiWAoWUHVzaFNhbmRib3hMb2dzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEioKBGxvZ3MYAiADKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUiGQoXUHVzaFNhbmRib3hMb2dzUmVzcG9uc2UiWgoWR2V0U2FuZGJveExvZ3NSZXNwb25zZRIqCgRsb2dzGAEgAygLMhwub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lEhQKDGJ1ZmZlcl90b3RhbBgCIAEoDSK1AgoRU3VwZXJ2aXNvck1lc3NhZ2USLgoFaGVsbG8YASABKAsyHS5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvckhlbGxvSAASNgoJaGVhcnRiZWF0GAIgASgLMiEub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JIZWFydGJlYXRIABI6ChFyZWxheV9vcGVuX3Jlc3VsdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5SZWxheU9wZW5SZXN1bHRIABIvCgtyZWxheV9jbG9zZRgEIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSAASQAoUY29uZmlnX3VwZGF0ZV9yZXN1bHQYBSABKAsyIC5vcGVuc2hlbGwudjEuQ29uZmlnVXBkYXRlUmVzdWx0SABCCQoHcGF5bG9hZCKWAwoOR2F0ZXdheU1lc3NhZ2USOQoQc2Vzc2lvbl9hY2NlcHRlZBgBIAEoCzIdLm9wZW5zaGVsbC52MS5TZXNzaW9uQWNjZXB0ZWRIABI5ChBzZXNzaW9uX3JlamVjdGVkGAIgASgLMh0ub3BlbnNoZWxsLnYxLlNlc3Npb25SZWplY3RlZEgAEjMKCWhlYXJ0YmVhdBgDIAEoCzIeLm9wZW5zaGVsbC52MS5HYXRld2F5SGVhcnRiZWF0SAASLQoKcmVsYXlfb3BlbhgEIAEoCzIXLm9wZW5zaGVsbC52MS5SZWxheU9wZW5IABIvCgtyZWxheV9jbG9zZRgFIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSAASOQoQc2Vzc2lvbl9yZWRpcmVjdBgGIAEoCzIdLm9wZW5zaGVsbC52MS5TZXNzaW9uUmVkaXJlY3RIABIzCg1jb25maWdfdXBkYXRlGAcgASgLMhoub3BlbnNoZWxsLnYxLkNvbmZpZ1VwZGF0ZUgAQgkKB3BheWxvYWQizgEKD1N1cGVydmlzb3JIZWxsbxISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJEhgKEGNvbm5lY3Rpb25fZXBvY2gYAyABKAQSIwobc3VwcG9ydHNfcHJvdmlkZXJfcmVhZGluZXNzGAQgASgIEhIKCnJlZGlyZWN0ZWQYBSABKAgSIQoZc3VwcG9ydHNfc2Vzc2lvbl9yZWRpcmVjdBgGIAEoCBIcChRzdXBwb3J0c19jb25maWdfcHVzaBgHIAEoCCLHAQoPU2Vzc2lvbkFjY2VwdGVkEhIKCnNlc3Npb25faWQYASABKAkSLQoJYm9vdHN0cmFwGAMgASgLMhoub3BlbnNoZWxsLnYxLkNvbmZpZ1VwZGF0ZRIbChNjb25maWdfcHVzaF9lbmFibGVkGAQgASgIEjUKEmhlYXJ0YmVhdF9pbnRlcnZhbBhmIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkoECAIQA1IXaGVhcnRiZWF0X2ludGVydmFsX3NlY3MirwEKDENvbmZpZ1VwZGF0ZRIRCgl1cGRhdGVfaWQYASABKAkSQwoOc2FuZGJveF9jb25maWcYAiABKAsyKy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94Q29uZmlnU25hcHNob3QSRwoUcHJvdmlkZXJfZW52aXJvbm1lbnQYAyABKAsyKS5vcGVuc2hlbGwudjEuUHJvdmlkZXJFbnZpcm9ubWVudFNuYXBzaG90IkYKEkNvbmZpZ0FwcGx5RmFpbHVyZRIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEQoJcmV0cnlhYmxlGAMgASgIIoICChJDb25maWdVcGRhdGVSZXN1bHQSEQoJdXBkYXRlX2lkGAEgASgJEjEKB291dGNvbWUYAiABKA4yIC5vcGVuc2hlbGwudjEuQ29uZmlnQXBwbHlPdXRjb21lEjEKB2ZhaWx1cmUYAyABKAsyIC5vcGVuc2hlbGwudjEuQ29uZmlnQXBwbHlGYWlsdXJlEj4KCWFkbWlzc2lvbhgEIAEoCzIrLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhIzCgtwb2xpY3lfbG9hZBgFIAEoCzIeLm9wZW5zaGVsbC52MS5Qb2xpY3lMb2FkUmVzdWx0IkIKEFBvbGljeUxvYWRSZXN1bHQSDwoHdmVyc2lvbhgBIAEoDRIOCgZsb2FkZWQYAiABKAgSDQoFZXJyb3IYAyABKAkiIQoPU2Vzc2lvblJlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSJCCg9TZXNzaW9uUmVkaXJlY3QSFQoNcGVlcl9lbmRwb2ludBgBIAEoCRIYChBvd25lcl9yZXBsaWNhX2lkGAIgASgJIhUKE1N1cGVydmlzb3JIZWFydGJlYXQiEgoQR2F0ZXdheUhlYXJ0YmVhdCJaChxSZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSEwoLaW5zdGFuY2VfaWQYAiABKAkSEQoJZXhpdF9jb2RlGAMgASgFIh8KHVJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlc3BvbnNlIkkKHkZpbmFsaXplTWFpblByb2Nlc3NFeGl0UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJIiEKH0ZpbmFsaXplTWFpblByb2Nlc3NFeGl0UmVzcG9uc2UilwEKCVJlbGF5T3BlbhISCgpjaGFubmVsX2lkGAEgASgJEisKA3NzaBgCIAEoCzIcLm9wZW5zaGVsbC52MS5Tc2hSZWxheVRhcmdldEgAEisKA3RjcBgDIAEoCzIcLm9wZW5zaGVsbC52MS5UY3BSZWxheVRhcmdldEgAEhIKCnNlcnZpY2VfaWQYBSABKAlCCAoGdGFyZ2V0IhAKDlNzaFJlbGF5VGFyZ2V0IiwKDlRjcFJlbGF5VGFyZ2V0EgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDSIfCglSZWxheUluaXQSEgoKY2hhbm5lbF9pZBgBIAEoCSJQCgpSZWxheUZyYW1lEicKBGluaXQYASABKAsyFy5vcGVuc2hlbGwudjEuUmVsYXlJbml0SAASDgoEZGF0YRgCIAEoDEgAQgkKB3BheWxvYWQibgoNUGVlclJlbGF5SW5pdBISCgpzYW5kYm94X2lkGAEgASgJEisKCnJlbGF5X29wZW4YAiABKAsyFy5vcGVuc2hlbGwudjEuUmVsYXlPcGVuEhwKFHJlcXVlc3Rlcl9yZXBsaWNhX2lkGAMgASgJIlgKDlBlZXJSZWxheUZyYW1lEisKBGluaXQYASABKAsyGy5vcGVuc2hlbGwudjEuUGVlclJlbGF5SW5pdEgAEg4KBGRhdGEYAiABKAxIAEIJCgdwYXlsb2FkIkEKF1BlZXJDb25maWdTYW5kYm94VGFyZ2V0EhIKCnNhbmRib3hfaWQYASABKAkSEgoKc2Vzc2lvbl9pZBgCIAEoCSI7ChhQZWVyQ29uZmlnUHJvdmlkZXJUYXJnZXQSEQoJd29ya3NwYWNlGAEgASgJEgwKBG5hbWUYAiABKAkizAEKHVBlZXJOb3RpZnlDb25maWdVcGRhdGVSZXF1ZXN0EjgKB3NhbmRib3gYASABKAsyJS5vcGVuc2hlbGwudjEuUGVlckNvbmZpZ1NhbmRib3hUYXJnZXRIABITCgl3b3Jrc3BhY2UYAiABKAlIABIXCg1hbGxfY29ubmVjdGVkGAMgASgISAASOgoIcHJvdmlkZXIYBCABKAsyJi5vcGVuc2hlbGwudjEuUGVlckNvbmZpZ1Byb3ZpZGVyVGFyZ2V0SABCBwoFc2NvcGUiNQoeUGVlck5vdGlmeUNvbmZpZ1VwZGF0ZVJlc3BvbnNlEhMKC3N0YWxlX293bmVyGAEgASgIIkUKD1JlbGF5T3BlblJlc3VsdBISCgpjaGFubmVsX2lkGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSDQoFZXJyb3IYAyABKAkiMAoKUmVsYXlDbG9zZRISCgpjaGFubmVsX2lkGAEgASgJEg4KBnJlYXNvbhgCIAEoCSJQCg9MN1JlcXVlc3RTYW1wbGUSDgoGbWV0aG9kGAEgASgJEgwKBHBhdGgYAiABKAkSEAoIZGVjaXNpb24YAyABKAkSDQoFY291bnQYBCABKA0i+gMKDURlbmlhbFN1bW1hcnkSEgoKc2FuZGJveF9pZBgBIAEoCRIMCgRob3N0GAIgASgJEgwKBHBvcnQYAyABKA0SDgoGYmluYXJ5GAQgASgJEhEKCWFuY2VzdG9ycxgFIAMoCRITCgtkZW55X3JlYXNvbhgGIAEoCRIzCg9maXJzdF9zZWVuX3RpbWUYayABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmxhc3Rfc2Vlbl90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVjb3VudBgJIAEoDRIYChBzdXBwcmVzc2VkX2NvdW50GAogASgNEhMKC3RvdGFsX2NvdW50GAsgASgNEhcKD3NhbXBsZV9jbWRsaW5lcxgMIAMoCRIVCg1iaW5hcnlfc2hhMjU2GA0gASgJEhIKCnBlcnNpc3RlbnQYDiABKAgSFAoMZGVuaWFsX3N0YWdlGA8gASgJEjkKEmw3X3JlcXVlc3Rfc2FtcGxlcxgQIAMoCzIdLm9wZW5zaGVsbC52MS5MN1JlcXVlc3RTYW1wbGUSHAoUbDdfaW5zcGVjdGlvbl9hY3RpdmUYESABKAhKBAgHEAhKBAgIEAlSDWZpcnN0X3NlZW5fbXNSDGxhc3Rfc2Vlbl9tcyI8ChBEZW5pYWxHcm91cENvdW50EhIKCmRlbnlfZ3JvdXAYASABKAkSFAoMZGVuaWVkX2NvdW50GAIgASgNIo8BChZOZXR3b3JrQWN0aXZpdHlTdW1tYXJ5Eh4KFm5ldHdvcmtfYWN0aXZpdHlfY291bnQYASABKA0SGwoTZGVuaWVkX2FjdGlvbl9jb3VudBgCIAEoDRI4ChBkZW5pYWxzX2J5X2dyb3VwGAMgAygLMh4ub3BlbnNoZWxsLnYxLkRlbmlhbEdyb3VwQ291bnQijAcKC1BvbGljeUNodW5rEgoKAmlkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIRCglydWxlX25hbWUYAyABKAkSPgoNcHJvcG9zZWRfcnVsZRgEIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEhEKCXJhdGlvbmFsZRgFIAEoCRIWCg5zZWN1cml0eV9ub3RlcxgGIAEoCRISCgpjb25maWRlbmNlGAcgASgCEhoKEmRlbmlhbF9zdW1tYXJ5X2lkcxgIIAMoCRIwCgxjcmVhdGVkX3RpbWUYbSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGRlY2lkZWRfdGltZRhuIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFc3RhZ2UYCyABKAkSGwoTc3VwZXJzZWRlc19jaHVua19pZBgMIAEoCRIRCgloaXRfY291bnQYDSABKAUSMwoPZmlyc3Rfc2Vlbl90aW1lGHIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5sYXN0X3NlZW5fdGltZRhzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGYmluYXJ5GBAgASgJEhkKEXZhbGlkYXRpb25fcmVzdWx0GBEgASgJEhgKEHJlamVjdGlvbl9yZWFzb24YEiABKAkSGQoRYXBwbGljYXRpb25fZXJyb3IYEyABKAkSFAoMcmV2aWV3X3Rva2VuGBQgASgJEiUKHWN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBUgASgJEicKH2NhbmRpZGF0ZV9lZmZlY3RpdmVfcG9saWN5X2hhc2gYFiABKAkSRQoYY3VycmVudF9lZmZlY3RpdmVfcG9saWN5GBcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHChpjYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeRgYIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3lKBAgJEApKBAgKEAtKBAgOEA9KBAgPEBBSDWNyZWF0ZWRfYXRfbXNSDWRlY2lkZWRfYXRfbXNSDWZpcnN0X3NlZW5fbXNSDGxhc3Rfc2Vlbl9tcyJmChFEcmFmdFBvbGljeVVwZGF0ZRIVCg1kcmFmdF92ZXJzaW9uGAEgASgEEhIKCm5ld19jaHVua3MYAiABKA0SFQoNdG90YWxfcGVuZGluZxgDIAEoDRIPCgdzdW1tYXJ5GAQgASgJIrQCChtTdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAYgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIuCglzdW1tYXJpZXMYASADKAsyGy5vcGVuc2hlbGwudjEuRGVuaWFsU3VtbWFyeRIyCg9wcm9wb3NlZF9jaHVua3MYAiADKAsyGS5vcGVuc2hlbGwudjEuUG9saWN5Q2h1bmsSFQoNYW5hbHlzaXNfbW9kZRgDIAEoCRIMCgRuYW1lGAQgASgJEkgKGm5ldHdvcmtfYWN0aXZpdHlfc3VtbWFyaWVzGAUgAygLMiQub3BlbnNoZWxsLnYxLk5ldHdvcmtBY3Rpdml0eVN1bW1hcnkihwEKHFN1Ym1pdFBvbGljeUFuYWx5c2lzUmVzcG9uc2USFwoPYWNjZXB0ZWRfY2h1bmtzGAEgASgNEhcKD3JlamVjdGVkX2NodW5rcxgCIAEoDRIZChFyZWplY3Rpb25fcmVhc29ucxgDIAMoCRIaChJhY2NlcHRlZF9jaHVua19pZHMYBCADKAkigwEKFUdldERyYWZ0UG9saWN5UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhUKDXN0YXR1c19maWx0ZXIYAiABKAkSDwoHc2FuZGJveBgBIAEoCSLGAQoWR2V0RHJhZnRQb2xpY3lSZXNwb25zZRIpCgZjaHVua3MYASADKAsyGS5vcGVuc2hlbGwudjEuUG9saWN5Q2h1bmsSFwoPcm9sbGluZ19zdW1tYXJ5GAIgASgJEhUKDWRyYWZ0X3ZlcnNpb24YAyABKAQSNgoSbGFzdF9hbmFseXplZF90aW1lGGggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAQQBVITbGFzdF9hbmFseXplZF9hdF9tcyKrAQoYQXBwcm92ZURyYWZ0Q2h1bmtSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIY2h1bmtfaWQYAiABKAkSFAoMcmV2aWV3X3Rva2VuGAQgASgJEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgFIAEoCSJIChlBcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJIqQBChdSZWplY3REcmFmdENodW5rUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCGNodW5rX2lkGAIgASgJEg4KBnJlYXNvbhgDIAEoCRIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBSABKAkiGgoYUmVqZWN0RHJhZnRDaHVua1Jlc3BvbnNlIjwKEkRyYWZ0Q2h1bmtBcHByb3ZhbBIQCghjaHVua19pZBgBIAEoCRIUCgxyZXZpZXdfdG9rZW4YAiABKAki3gEKHEFwcHJvdmVBbGxEcmFmdENodW5rc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIgChhpbmNsdWRlX3NlY3VyaXR5X2ZsYWdnZWQYAiABKAgSMwoJYXBwcm92YWxzGAMgAygLMiAub3BlbnNoZWxsLnYxLkRyYWZ0Q2h1bmtBcHByb3ZhbBIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBSABKAkifQodQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVzcG9uc2USFgoOcG9saWN5X3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkSFwoPY2h1bmtzX2FwcHJvdmVkGAMgASgNEhYKDmNodW5rc19za2lwcGVkGAQgASgNItIBChVFZGl0RHJhZnRDaHVua1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghjaHVua19pZBgCIAEoCRI+Cg1wcm9wb3NlZF9ydWxlGAMgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIhgKFkVkaXREcmFmdENodW5rUmVzcG9uc2UikgEKFVVuZG9EcmFmdENodW5rUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCGNodW5rX2lkGAIgASgJEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgEIAEoCSJFChZVbmRvRHJhZnRDaHVua1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJIoIBChdDbGVhckRyYWZ0Q2h1bmtzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSIyChhDbGVhckRyYWZ0Q2h1bmtzUmVzcG9uc2USFgoOY2h1bmtzX2NsZWFyZWQYASABKA0ibQoWR2V0RHJhZnRIaXN0b3J5UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkikgEKEURyYWZ0SGlzdG9yeUVudHJ5Ei4KCmV2ZW50X3RpbWUYZSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmV2ZW50X3R5cGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSEAoIY2h1bmtfaWQYBCABKAlKBAgBEAJSDHRpbWVzdGFtcF9tcyJLChdHZXREcmFmdEhpc3RvcnlSZXNwb25zZRIwCgdlbnRyaWVzGAEgAygLMh8ub3BlbnNoZWxsLnYxLkRyYWZ0SGlzdG9yeUVudHJ5IqsBChZDcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkSQAoGbGFiZWxzGAIgAygLMjAub3BlbnNoZWxsLnYxLkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QuTGFiZWxzRW50cnkSEgoKcmVxdWVzdF9pZBgDIAEoCRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIk8KF0NyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlEjQKCXdvcmtzcGFjZRgBIAEoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlIiMKE0dldFdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCSJMChRHZXRXb3Jrc3BhY2VSZXNwb25zZRI0Cgl3b3Jrc3BhY2UYASABKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSJWChVMaXN0V29ya3NwYWNlc1JlcXVlc3QSEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkiaAoWTGlzdFdvcmtzcGFjZXNSZXNwb25zZRI1Cgp3b3Jrc3BhY2VzGAEgAygLMiEub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2USFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIlEKFkRlbGV0ZVdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCRIVCg1hbGxvd19taXNzaW5nGAIgASgIEhIKCnJlcXVlc3RfaWQYAyABKAkiWAoXRGVsZXRlV29ya3NwYWNlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQijQEKD1dvcmtzcGFjZU1lbWJlchI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCRIpCgRyb2xlGAMgASgOMhsub3BlbnNoZWxsLnYxLldvcmtzcGFjZVJvbGUiuQEKGUFkZFdvcmtzcGFjZU1lbWJlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAEgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCRIpCgRyb2xlGAMgASgOMhsub3BlbnNoZWxsLnYxLldvcmtzcGFjZVJvbGUSEgoKcmVxdWVzdF9pZBgEIAEoCSJLChpBZGRXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZRItCgZtZW1iZXIYASABKAsyHS5vcGVuc2hlbGwudjEuV29ya3NwYWNlTWVtYmVyIqgBChxSZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgBIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkSFQoNYWxsb3dfbWlzc2luZxgDIAEoCBISCgpyZXF1ZXN0X2lkGAQgASgJIl4KHVJlbW92ZVdvcmtzcGFjZU1lbWJlclJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdyZW1vdmVkIogBChtMaXN0V29ya3NwYWNlTWVtYmVyc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAEgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCSJnChxMaXN0V29ya3NwYWNlTWVtYmVyc1Jlc3BvbnNlEi4KB21lbWJlcnMYASADKAsyHS5vcGVuc2hlbGwudjEuV29ya3NwYWNlTWVtYmVyEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKRAQoaRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwSFAoMc2VydmljZV9uYW1lGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEjMKD2V4cGlyYXRpb25fdGltZRhnIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgDEARSDWV4cGlyZXNfYXRfbXMiiAEKE0VuZHBvaW50T2JzZXJ2YXRpb24SEwoLZW5kcG9pbnRfaWQYASABKAkSLAoGcmVzdWx0GAIgASgOMhwub3BlbnNoZWxsLnYxLkVuZHBvaW50UmVzdWx0Ei4KB2ZhaWx1cmUYAyABKAsyHS5vcGVuc2hlbGwudjEuRW5kcG9pbnRGYWlsdXJlIrECChtSZXBvcnRFbmRwb2ludFN0YXR1c1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRITCgtwb2xpY3lfaGFzaBgCIAEoCRIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YAyABKAQSNwoMb2JzZXJ2YXRpb25zGAQgAygLMiEub3BlbnNoZWxsLnYxLkVuZHBvaW50T2JzZXJ2YXRpb24SHQoVb2JzZXJ2ZWRfZW5kcG9pbnRfaWRzGAUgAygJEh0KFXN1cGVydmlzb3Jfc2Vzc2lvbl9pZBgGIAEoCRIXCg9yZXBvcnRfc2VxdWVuY2UYByABKAQSOgoSdG9rZW5fZ3JhbnRfc3RhdHVzGAggASgLMh4ub3BlbnNoZWxsLnYxLlRva2VuR3JhbnRTdGF0dXMiVAoQVG9rZW5HcmFudFN0YXR1cxJACgxsYXN0X2ZhaWx1cmUYASABKAsyKi5vcGVuc2hlbGwudjEuVG9rZW5HcmFudEZhaWx1cmVPYnNlcnZhdGlvbiKCAQocVG9rZW5HcmFudEZhaWx1cmVPYnNlcnZhdGlvbhIYChBkZXN0aW5hdGlvbl9ob3N0GAEgASgJEhgKEGRlc3RpbmF0aW9uX3BvcnQYAiABKA0SLgoHZmFpbHVyZRgDIAEoCzIdLm9wZW5zaGVsbC52MS5FbmRwb2ludEZhaWx1cmUiHgocUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXNwb25zZSKIAgoORW5kcG9pbnRTdGF0dXMSEwoLZW5kcG9pbnRfaWQYASABKAkSDAoEaG9zdBgCIAEoCRINCgVwb3J0cxgDIAMoDRIMCgRwYXRoGAQgASgJEjEKC2xhc3RfcmVzdWx0GAUgASgOMhwub3BlbnNoZWxsLnYxLkVuZHBvaW50UmVzdWx0EjYKEmxhc3RfcmVwb3J0ZWRfdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoMbGFzdF9mYWlsdXJlGAcgASgLMh0ub3BlbnNoZWxsLnYxLkVuZHBvaW50RmFpbHVyZUoECAYQB1IQbGFzdF9yZXBvcnRlZF9hdCK7BQoTU2FuZGJveFByb3Zpc2lvbmluZxISCgphdHRlbXB0X2lkGAEgASgJEh8KF2NvbmZpZ3VyYXRpb25fY2hhbmdlX2lkGAIgASgJEj0KGWNvbmZpZ3VyYXRpb25fY2hhbmdlX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKFGZpcnN0X3JlamVjdGlvbl90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghkZWFkbGluZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMdGltZW91dF90aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZjbGVhbnVwX2NvbXBsZXRlZF90aW1lGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1jbGVhbnVwX2Vycm9yGAggASgJEjYKEmNsZWFudXBfcmV0cnlfdGltZRgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASHAoUYXR0YWNobWVudF9jaGFuZ2VfaWQYCiABKAkSOgoWYXR0YWNobWVudF9jaGFuZ2VfdGltZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoUcHJlcGFyYXRpb25fZGVhZGxpbmUYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKFGFkbWlzc2lvbl9zdGFydF90aW1lGA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIgChhkcml2ZXJfb3BlcmF0aW9uX3BlbmRpbmcYDiABKAgSGwoTZHJpdmVyX29wZXJhdGlvbl9pZBgPIAEoCSKCAQoWU2FuZGJveFNlcnZpY2VFeHBvc3VyZRIPCgdzZXJ2aWNlGAEgASgJEhMKC3RhcmdldF9wb3J0GAIgASgNEkIKEmF1dGhvcml6YXRpb25fbW9kZRgDIAEoDjImLm9wZW5zaGVsbC52MS5TZXJ2aWNlQXV0aG9yaXphdGlvbk1vZGUirQIKD0VuZHBvaW50RmFpbHVyZRIzCgZkb21haW4YASABKA4yIy5vcGVuc2hlbGwudjEuRW5kcG9pbnRGYWlsdXJlRG9tYWluEgwKBGNvZGUYAiABKAkSTgoPcmVjb3ZlcnlfYWN0aW9uGAMgASgOMjUub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hSZWNvdmVyeUFjdGlvbhIQCghwcm92aWRlchgEIAEoCRIWCg5jcmVkZW50aWFsX2tleRgFIAEoCRINCgVzdGFnZRgGIAEoCRIhChR1cHN0cmVhbV9odHRwX3N0YXR1cxgHIAEoDUgAiAEBEhIKCnJlcXVlc3RfaWQYCCABKAlCFwoVX3Vwc3RyZWFtX2h0dHBfc3RhdHVzKsoBCg1FeHRlbnNpb25LaW5kEh4KGkVYVEVOU0lPTl9LSU5EX1VOU1BFQ0lGSUVEEAASIQodRVhURU5TSU9OX0tJTkRfQ09NUFVURV9EUklWRVIQARIkCiBFWFRFTlNJT05fS0lORF9DUkVERU5USUFMX0RSSVZFUhACEiYKIkVYVEVOU0lPTl9LSU5EX0dBVEVXQVlfSU5URVJDRVBUT1IQAxIoCiRFWFRFTlNJT05fS0lORF9TVVBFUlZJU09SX01JRERMRVdBUkUQBCqBAwoMU2FuZGJveFBoYXNlEh0KGVNBTkRCT1hfUEhBU0VfVU5TUEVDSUZJRUQQABIeChpTQU5EQk9YX1BIQVNFX1BST1ZJU0lPTklORxABEhcKE1NBTkRCT1hfUEhBU0VfUkVBRFkQAhIXChNTQU5EQk9YX1BIQVNFX0VSUk9SEAMSGgoWU0FOREJPWF9QSEFTRV9ERUxFVElORxAEEhkKFVNBTkRCT1hfUEhBU0VfVU5LTk9XThAFEhoKFlNBTkRCT1hfUEhBU0VfU1RPUFBJTkcQBhIZChVTQU5EQk9YX1BIQVNFX1NUT1BQRUQQBxIaChZTQU5EQk9YX1BIQVNFX1NUQVJUSU5HEAgSGwoXU0FOREJPWF9QSEFTRV9DT01QTEVURUQQCRIcChhTQU5EQk9YX1BIQVNFX1NVU1BFTkRJTkcQCxIbChdTQU5EQk9YX1BIQVNFX1NVU1BFTkRFRBAMIgQIChAKKhhTQU5EQk9YX1BIQVNFX1JFU1RBUlRJTkcqywEKFFByb3ZpZGVyTXV0YXRpb25LaW5kEiYKIlBST1ZJREVSX01VVEFUSU9OX0tJTkRfVU5TUEVDSUZJRUQQABIhCh1QUk9WSURFUl9NVVRBVElPTl9LSU5EX0FUVEFDSBABEiEKHVBST1ZJREVSX01VVEFUSU9OX0tJTkRfREVUQUNIEAISIQodUFJPVklERVJfTVVUQVRJT05fS0lORF9VUERBVEUQAxIiCh5QUk9WSURFUl9NVVRBVElPTl9LSU5EX09CU0VSVkUQBCrPAgoWUHJvdmlkZXJSZWFkaW5lc3NTdGF0ZRIoCiRQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfVU5TUEVDSUZJRUQQABImCiJQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfUEVSU0lTVEVEEAESJAogUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1BFTkRJTkcQAhIiCh5QUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfUkVBRFkQAxIlCiFQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfV0lUSEhFTEQQBBIkCiBQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfUkVWT0tFRBAFEiMKH1BST1ZJREVSX1JFQURJTkVTU19TVEFURV9GQUlMRUQQBhInCiNQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfU1VQRVJTRURFRBAHKtoGChdQcm92aWRlclJlYWRpbmVzc1JlYXNvbhIpCiVQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1VOU1BFQ0lGSUVEEAASNAowUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9XQUlUSU5HX0ZPUl9TVVBFUlZJU09SEAESNQoxUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9XQUlUSU5HX0ZPUl9DUkVERU5USUFMUxACEjAKLFBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fV0FJVElOR19GT1JfUE9MSUNZEAMSMQotUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9XQUlUSU5HX0ZPUl9QUk9DRVNTEAQSNAowUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9VTlNVUFBPUlRFRF9TVVBFUlZJU09SEAUSMgouUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9DUkVERU5USUFMU19XSVRISEVMRBAGEjcKM1BST1ZJREVSX1JFQURJTkVTU19SRUFTT05fQ1JFREVOVElBTF9JTlNUQUxMX0ZBSUxFRBAHEjYKMlBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fUE9MSUNZX0FDVElWQVRJT05fRkFJTEVEEAgSNAowUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9QUk9DRVNTX0lOU1RBTExfRkFJTEVEEAkSNQoxUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9TVVBFUlZJU09SX0RJU0NPTk5FQ1RFRBAKEjYKMlBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fU1VQRVJWSVNPUl9MRUFTRV9FWFBJUkVEEAsSMwovUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9ERVNJUkVEX1NUQVRFX0NIQU5HRUQQDBIwCixQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX0NSRURFTlRJQUxfRVhQSVJFRBANEioKJlBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fTE9DQUxfUE9MSUNZEA4SLworUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9TTkFQU0hPVF9NSVNNQVRDSBAPKoMBCg9Db25maWdDb21wb25lbnQSIAocQ09ORklHX0NPTVBPTkVOVF9VTlNQRUNJRklFRBAAEiMKH0NPTkZJR19DT01QT05FTlRfU0FOREJPWF9DT05GSUcQARIpCiVDT05GSUdfQ09NUE9ORU5UX1BST1ZJREVSX0VOVklST05NRU5UEAIqjQMKEkNvbmZpZ0FwcGx5T3V0Y29tZRIkCiBDT05GSUdfQVBQTFlfT1VUQ09NRV9VTlNQRUNJRklFRBAAEiAKHENPTkZJR19BUFBMWV9PVVRDT01FX0FQUExJRUQQARIqCiZDT05GSUdfQVBQTFlfT1VUQ09NRV9JR05PUkVEX0RVUExJQ0FURRACEiYKIkNPTkZJR19BUFBMWV9PVVRDT01FX0lHTk9SRURfU1RBTEUQAxIwCixDT05GSUdfQVBQTFlfT1VUQ09NRV9SRVRBSU5FRF9MT0NBTF9PVkVSUklERRAEEiEKHUNPTkZJR19BUFBMWV9PVVRDT01FX0RFR1JBREVEEAUSOAo0Q09ORklHX0FQUExZX09VVENPTUVfRkFJTEVEX1JFVEFJTkVEX0xBU1RfS05PV05fR09PRBAGEiYKIkNPTkZJR19BUFBMWV9PVVRDT01FX0ZBSUxFRF9DTE9TRUQQBxIkCiBDT05GSUdfQVBQTFlfT1VUQ09NRV9VTlNVUFBPUlRFRBAIKtICChpDb25maWdVcGRhdGVPcGVyYXRpb25TdGF0ZRItCilDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9VTlNQRUNJRklFRBAAEikKJUNPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX1BFTkRJTkcQARIpCiVDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9BUFBMSUVEEAISKgomQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfSU5BQ1RJVkUQAxIoCiRDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9GQUlMRUQQBBIsCihDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9TVVBFUlNFREVEEAUSKwonQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfQ0FOQ0VMTEVEEAYqzgEKIFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRUeXBlEjQKMFBST1ZJREVSX0NSRURFTlRJQUxfVE9LRU5fR1JBTlRfVFlQRV9VTlNQRUNJRklFRBAAEjsKN1BST1ZJREVSX0NSRURFTlRJQUxfVE9LRU5fR1JBTlRfVFlQRV9DTElFTlRfQ1JFREVOVElBTFMQARI3CjNQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfVE9LRU5fRVhDSEFOR0UQAirDAwohUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5EjQKMFBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEi8KK1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9TVEFUSUMQARIxCi1QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfRVhURVJOQUwQAhI9CjlQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfT0FVVEgyX1JFRlJFU0hfVE9LRU4QAxJCCj5QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfT0FVVEgyX0NMSUVOVF9DUkVERU5USUFMUxAEEkMKP1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9HT09HTEVfU0VSVklDRV9BQ0NPVU5UX0pXVBAFEjwKOFBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9BV1NfU1RTX0FTU1VNRV9ST0xFEAYq2wIKF1Byb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EikKJVBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfVU5TUEVDSUZJRUQQABIjCh9QUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX09USEVSEAESJwojUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9JTkZFUkVOQ0UQAhIjCh9QUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX0FHRU5UEAMSLAooUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9TT1VSQ0VfQ09OVFJPTBAEEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfTUVTU0FHSU5HEAUSIgoeUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9EQVRBEAYSJwojUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9LTk9XTEVER0UQByreAQomUHJvdmlkZXJFbnZpcm9ubWVudFZhbHVlQ2xhc3NpZmljYXRpb24SOQo1UFJPVklERVJfRU5WSVJPTk1FTlRfVkFMVUVfQ0xBU1NJRklDQVRJT05fVU5TUEVDSUZJRUQQABI4CjRQUk9WSURFUl9FTlZJUk9OTUVOVF9WQUxVRV9DTEFTU0lGSUNBVElPTl9OT05fU0VDUkVUEAESPwo7UFJPVklERVJfRU5WSVJPTk1FTlRfVkFMVUVfQ0xBU1NJRklDQVRJT05fU1RBVElDX0NSRURFTlRJQUwQAirPAQobQ29uZmlndXJhdGlvbkFkbWlzc2lvblN0YXRlEi0KKUNPTkZJR1VSQVRJT05fQURNSVNTSU9OX1NUQVRFX1VOU1BFQ0lGSUVEEAASKQolQ09ORklHVVJBVElPTl9BRE1JU1NJT05fU1RBVEVfUEVORElORxABEioKJkNPTkZJR1VSQVRJT05fQURNSVNTSU9OX1NUQVRFX0FDQ0VQVEVEEAISKgomQ09ORklHVVJBVElPTl9BRE1JU1NJT05fU1RBVEVfUkVKRUNURUQQAyqaAQoMUG9saWN5U3RhdHVzEh0KGVBPTElDWV9TVEFUVVNfVU5TUEVDSUZJRUQQABIZChVQT0xJQ1lfU1RBVFVTX1BFTkRJTkcQARIYChRQT0xJQ1lfU1RBVFVTX0xPQURFRBACEhgKFFBPTElDWV9TVEFUVVNfRkFJTEVEEAMSHAoYUE9MSUNZX1NUQVRVU19TVVBFUlNFREVEEAQqhgEKDVNlcnZpY2VTdGF0dXMSHgoaU0VSVklDRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZTRVJWSUNFX1NUQVRVU19IRUFMVEhZEAESGwoXU0VSVklDRV9TVEFUVVNfREVHUkFERUQQAhIcChhTRVJWSUNFX1NUQVRVU19VTkhFQUxUSFkQAypiCg1Xb3Jrc3BhY2VSb2xlEh4KGldPUktTUEFDRV9ST0xFX1VOU1BFQ0lGSUVEEAASFwoTV09SS1NQQUNFX1JPTEVfVVNFUhABEhgKFFdPUktTUEFDRV9ST0xFX0FETUlOEAIq2gIKJ1Byb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hSZWNvdmVyeUFjdGlvbhI7CjdQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX1VOU1BFQ0lGSUVEEAASNQoxUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9SRVRSWRABEjsKN1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9SRUNPVkVSWV9BQ1RJT05fUkVBVVRIT1JJWkUQAhJBCj1QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX0ZJWF9DT05GSUdVUkFUSU9OEAMSOwo3UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9JTlZFU1RJR0FURRAEKqoBChRTYW5kYm94UmVzdGFydFBvbGljeRImCiJTQU5EQk9YX1JFU1RBUlRfUE9MSUNZX1VOU1BFQ0lGSUVEEAASIAocU0FOREJPWF9SRVNUQVJUX1BPTElDWV9ORVZFUhABEiUKIVNBTkRCT1hfUkVTVEFSVF9QT0xJQ1lfT05fRkFJTFVSRRACEiEKHVNBTkRCT1hfUkVTVEFSVF9QT0xJQ1lfQUxXQVlTEAMqlwEKD0RlbGV0aW9uT3V0Y29tZRIgChxERUxFVElPTl9PVVRDT01FX1VOU1BFQ0lGSUVEEAASHgoaREVMRVRJT05fT1VUQ09NRV9DT01QTEVURUQQARIdChlERUxFVElPTl9PVVRDT01FX0FDQ0VQVEVEEAISIwofREVMRVRJT05fT1VUQ09NRV9BTFJFQURZX0FCU0VOVBADKsMCCg5FbmRwb2ludFJlc3VsdBIfChtFTkRQT0lOVF9SRVNVTFRfVU5TUEVDSUZJRUQQABIoCiRFTkRQT0lOVF9SRVNVTFRfTk9fT0JTRVJWRURfRVhDSEFOR0UQARIqCiZFTkRQT0lOVF9SRVNVTFRfSFRUUF9SRVNQT05TRV9SRUNFSVZFRBACEiEKHUVORFBPSU5UX1JFU1VMVF9QT0xJQ1lfREVOSUVEEAMSKgomRU5EUE9JTlRfUkVTVUxUX0NSRURFTlRJQUxfVU5BVkFJTEFCTEUQBBIeChpFTkRQT0lOVF9SRVNVTFRfVExTX0ZBSUxFRBAFEiQKIEVORFBPSU5UX1JFU1VMVF9UUkFOU1BPUlRfRkFJTEVEEAYSJQohRU5EUE9JTlRfUkVTVUxUX1VQU1RSRUFNX1JFSkVDVEVEEAcqnwEKGFNlcnZpY2VBdXRob3JpemF0aW9uTW9kZRIqCiZTRVJWSUNFX0FVVEhPUklaQVRJT05fTU9ERV9VTlNQRUNJRklFRBAAEiQKIFNFUlZJQ0VfQVVUSE9SSVpBVElPTl9NT0RFX1NUUklQEAESMQotU0VSVklDRV9BVVRIT1JJWkFUSU9OX01PREVfQkVBUkVSX1BBU1NUSFJPVUdIEAIqaQoVRW5kcG9pbnRGYWlsdXJlRG9tYWluEicKI0VORFBPSU5UX0ZBSUxVUkVfRE9NQUlOX1VOU1BFQ0lGSUVEEAASJwojRU5EUE9JTlRfRkFJTFVSRV9ET01BSU5fVE9LRU5fR1JBTlQQATKmWQoJT3BlblNoZWxsEloKBkhlYWx0aBIbLm9wZW5zaGVsbC52MS5IZWFsdGhSZXF1ZXN0Ghwub3BlbnNoZWxsLnYxLkhlYWx0aFJlc3BvbnNlIhWCtRgRCg91bmF1dGhlbnRpY2F0ZWQSaQoOR2V0Q3VycmVudFVzZXISIy5vcGVuc2hlbGwudjEuR2V0Q3VycmVudFVzZXJSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldEN1cnJlbnRVc2VyUmVzcG9uc2UiDIK1GAgKBmJlYXJlchKGAQoOR2V0R2F0ZXdheUluZm8SIy5vcGVuc2hlbGwudjEuR2V0R2F0ZXdheUluZm9SZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldEdhdGV3YXlJbmZvUmVzcG9uc2UiKYK1GCUKBmJlYXJlchoOcGxhdGZvcm1fYWRtaW4iC2NvbmZpZzpyZWFkEnUKDUNyZWF0ZVNhbmRib3gSIi5vcGVuc2hlbGwudjEuQ3JlYXRlU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSkwEKFUJlZ2luUm9vdGZzVGFyU3RhZ2luZxIqLm9wZW5zaGVsbC52MS5CZWdpblJvb3Rmc1RhclN0YWdpbmdSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkJlZ2luUm9vdGZzVGFyU3RhZ2luZ1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSbgoKR2V0U2FuZGJveBIfLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnoKDUxpc3RTYW5kYm94ZXMSIi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hlc1JlcXVlc3QaIy5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKOAQoVQ3JlYXRlU2FuZGJveFRlbXBsYXRlEioub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hUZW1wbGF0ZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2FuZGJveFRlbXBsYXRlUmVzcG9uc2UiIoK1GB4KBmJlYXJlchIFYWRtaW4iDXNhbmRib3g6d3JpdGUShgEKEkdldFNhbmRib3hUZW1wbGF0ZRInLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94VGVtcGxhdGVSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZVJlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKPAQoUTGlzdFNhbmRib3hUZW1wbGF0ZXMSKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94VGVtcGxhdGVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEpQBChVEZWxldGVTYW5kYm94VGVtcGxhdGUSKi5vcGVuc2hlbGwudjEuRGVsZXRlU2FuZGJveFRlbXBsYXRlUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94VGVtcGxhdGVSZXNwb25zZSIigrUYHgoGYmVhcmVyEgVhZG1pbiINc2FuZGJveDp3cml0ZRKPAQoUTGlzdFNhbmRib3hQcm92aWRlcnMSKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQcm92aWRlcnNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEpMBChVBdHRhY2hTYW5kYm94UHJvdmlkZXISKi5vcGVuc2hlbGwudjEuQXR0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEpMBChVEZXRhY2hTYW5kYm94UHJvdmlkZXISKi5vcGVuc2hlbGwudjEuRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEpsBChhHZXRTYW5kYm94UHJvdmlkZXJTdGF0dXMSLS5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyU3RhdHVzUmVxdWVzdBouLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSewoNRGVsZXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVxdWVzdBojLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJxCgtTdG9wU2FuZGJveBIgLm9wZW5zaGVsbC52MS5TdG9wU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUScwoMU3RhcnRTYW5kYm94EiEub3BlbnNoZWxsLnYxLlN0YXJ0U2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSdwoOU3VzcGVuZFNhbmRib3gSIy5vcGVuc2hlbGwudjEuU3VzcGVuZFNhbmRib3hSZXF1ZXN0Gh0ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnUKDVJlc3VtZVNhbmRib3gSIi5vcGVuc2hlbGwudjEuUmVzdW1lU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEENyZWF0ZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSfQoNRXhwb3NlU2VydmljZRIiLm9wZW5zaGVsbC52MS5FeHBvc2VTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnYKCkdldFNlcnZpY2USHy5vcGVuc2hlbGwudjEuR2V0U2VydmljZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEncKDExpc3RTZXJ2aWNlcxIhLm9wZW5zaGVsbC52MS5MaXN0U2VydmljZXNSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ7Cg1EZWxldGVTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEoQBChBSZXZva2VTc2hTZXNzaW9uEiUub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXF1ZXN0GiYub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnQKC0V4ZWNTYW5kYm94EiAub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94UmVxdWVzdBoeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV2ZW50IiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUwARJxCgpGb3J3YXJkVGNwEh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZRodLm9wZW5zaGVsbC52MS5UY3BGb3J3YXJkRnJhbWUiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESfwoWRXhlY1NhbmRib3hJbnRlcmFjdGl2ZRIeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveElucHV0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESegoOQ3JlYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuQ3JlYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEnIKC0dldFByb3ZpZGVyEiAub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVxdWVzdBoeLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSgwEKFkdldFByb3ZpZGVyQ3JlZGVudGlhbHMSKy5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJDcmVkZW50aWFsc1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJDcmVkZW50aWFsc1Jlc3BvbnNlIg6CtRgKCghvcGVyYXRvchJ7Cg1MaXN0UHJvdmlkZXJzEiIub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlcnNSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlcnNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEpABChRMaXN0UHJvdmlkZXJQcm9maWxlcxIpLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEocBChJHZXRQcm92aWRlclByb2ZpbGUSJy5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJQcm9maWxlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEpgBChZJbXBvcnRQcm92aWRlclByb2ZpbGVzEisub3BlbnNoZWxsLnYxLkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSmAEKFlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXMSKy5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKQAQoUTGludFByb3ZpZGVyUHJvZmlsZXMSKS5vcGVuc2hlbGwudjEuTGludFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpbnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBJ6Cg5VcGRhdGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5VcGRhdGVQcm92aWRlclJlcXVlc3QaHi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSnAEKGEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1cxItLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSngEKGENvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaBItLm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKeAQoYUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsEi0ub3BlbnNoZWxsLnYxLlJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlcXVlc3QaLi5vcGVuc2hlbGwudjEuUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpUBChVEZWxldGVQcm92aWRlclJlZnJlc2gSKi5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSgAEKDkRlbGV0ZVByb3ZpZGVyEiMub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVxdWVzdBokLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKVAQoVRGVsZXRlUHJvdmlkZXJQcm9maWxlEioub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpABChBHZXRTYW5kYm94Q29uZmlnEi0ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0U2FuZGJveENvbmZpZ1JlcXVlc3QaLi5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRTYW5kYm94Q29uZmlnUmVzcG9uc2UiHYK1GBkKBGR1YWwSBHVzZXIiC2NvbmZpZzpyZWFkEowBChBHZXRHYXRld2F5Q29uZmlnEi0ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0R2F0ZXdheUNvbmZpZ1JlcXVlc3QaLi5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRHYXRld2F5Q29uZmlnUmVzcG9uc2UiGYK1GBUKBmJlYXJlciILY29uZmlnOnJlYWQSdgoMVXBkYXRlQ29uZmlnEiEub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1JlcXVlc3QaIi5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVzcG9uc2UiH4K1GBsKBGR1YWwSBWFkbWluIgxjb25maWc6d3JpdGUSlQEKFkdldFNhbmRib3hQb2xpY3lTdGF0dXMSKy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFBvbGljeVN0YXR1c1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFBvbGljeVN0YXR1c1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKMAQoTTGlzdFNhbmRib3hQb2xpY2llcxIoLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFBvbGljaWVzUmVxdWVzdBopLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFBvbGljaWVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnYKElJlcG9ydFBvbGljeVN0YXR1cxInLm9wZW5zaGVsbC52MS5SZXBvcnRQb2xpY3lTdGF0dXNSZXF1ZXN0Gigub3BlbnNoZWxsLnYxLlJlcG9ydFBvbGljeVN0YXR1c1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnwKFFJlcG9ydEVuZHBvaW50U3RhdHVzEikub3BlbnNoZWxsLnYxLlJlcG9ydEVuZHBvaW50U3RhdHVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5SZXBvcnRFbmRwb2ludFN0YXR1c1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94EoUBChdSZXBvcnRQcm92aWRlclJlYWRpbmVzcxIsLm9wZW5zaGVsbC52MS5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1JlcXVlc3QaLS5vcGVuc2hlbGwudjEuUmVwb3J0UHJvdmlkZXJSZWFkaW5lc3NSZXNwb25zZSINgrUYCQoHc2FuZGJveBKOAQoaUmVwb3J0U2FuZGJveENvbmZpZ3VyYXRpb24SLy5vcGVuc2hlbGwudjEuUmVwb3J0U2FuZGJveENvbmZpZ3VyYXRpb25SZXF1ZXN0GjAub3BlbnNoZWxsLnYxLlJlcG9ydFNhbmRib3hDb25maWd1cmF0aW9uUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSlwEKHUdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50EjIub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVxdWVzdBozLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EpQBChxFeGNoYW5nZVByb3ZpZGVyU3ViamVjdFRva2VuEjEub3BlbnNoZWxsLnYxLkV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXF1ZXN0GjIub3BlbnNoZWxsLnYxLkV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXNwb25zZSINgrUYCQoHc2FuZGJveBJ9Cg5HZXRTYW5kYm94TG9ncxIjLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94TG9nc1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveExvZ3NSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSbwoPUHVzaFNhbmRib3hMb2dzEiQub3BlbnNoZWxsLnYxLlB1c2hTYW5kYm94TG9nc1JlcXVlc3QaJS5vcGVuc2hlbGwudjEuUHVzaFNhbmRib3hMb2dzUmVzcG9uc2UiDYK1GAkKB3NhbmRib3goARJlChFDb25uZWN0U3VwZXJ2aXNvchIfLm9wZW5zaGVsbC52MS5TdXBlcnZpc29yTWVzc2FnZRocLm9wZW5zaGVsbC52MS5HYXRld2F5TWVzc2FnZSINgrUYCQoHc2FuZGJveCgBMAESfwoVUmVwb3J0TWFpblByb2Nlc3NFeGl0Eioub3BlbnNoZWxsLnYxLlJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlcXVlc3QaKy5vcGVuc2hlbGwudjEuUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gShQEKF0ZpbmFsaXplTWFpblByb2Nlc3NFeGl0Eiwub3BlbnNoZWxsLnYxLkZpbmFsaXplTWFpblByb2Nlc3NFeGl0UmVxdWVzdBotLm9wZW5zaGVsbC52MS5GaW5hbGl6ZU1haW5Qcm9jZXNzRXhpdFJlc3BvbnNlIg2CtRgJCgdzYW5kYm94ElQKC1JlbGF5U3RyZWFtEhgub3BlbnNoZWxsLnYxLlJlbGF5RnJhbWUaGC5vcGVuc2hlbGwudjEuUmVsYXlGcmFtZSINgrUYCQoHc2FuZGJveCgBMAESVwoJUGVlclJlbGF5Ehwub3BlbnNoZWxsLnYxLlBlZXJSZWxheUZyYW1lGhwub3BlbnNoZWxsLnYxLlBlZXJSZWxheUZyYW1lIgqCtRgGCgRwZWVyKAEwARKGAQobUGVlclJlcG9ydFByb3ZpZGVyUmVhZGluZXNzEiwub3BlbnNoZWxsLnYxLlJlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVxdWVzdBotLm9wZW5zaGVsbC52MS5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1Jlc3BvbnNlIgqCtRgGCgRwZWVyEn0KGFBlZXJSZXBvcnRFbmRwb2ludFN0YXR1cxIpLm9wZW5zaGVsbC52MS5SZXBvcnRFbmRwb2ludFN0YXR1c1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXNwb25zZSIKgrUYBgoEcGVlchKJAQocUGVlckdldFNhbmRib3hQcm92aWRlclN0YXR1cxItLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlclN0YXR1c1Jlc3BvbnNlIgqCtRgGCgRwZWVyEn8KFlBlZXJOb3RpZnlDb25maWdVcGRhdGUSKy5vcGVuc2hlbGwudjEuUGVlck5vdGlmeUNvbmZpZ1VwZGF0ZVJlcXVlc3QaLC5vcGVuc2hlbGwudjEuUGVlck5vdGlmeUNvbmZpZ1VwZGF0ZVJlc3BvbnNlIgqCtRgGCgRwZWVyEncKDFdhdGNoU2FuZGJveBIhLm9wZW5zaGVsbC52MS5XYXRjaFNhbmRib3hSZXF1ZXN0GiAub3BlbnNoZWxsLnYxLlNhbmRib3hTdHJlYW1FdmVudCIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQwARJ8ChRTdWJtaXRQb2xpY3lBbmFseXNpcxIpLm9wZW5zaGVsbC52MS5TdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuU3VibWl0UG9saWN5QW5hbHlzaXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBJ6Cg5HZXREcmFmdFBvbGljeRIjLm9wZW5zaGVsbC52MS5HZXREcmFmdFBvbGljeVJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0RHJhZnRQb2xpY3lSZXNwb25zZSIdgrUYGQoEZHVhbBIEdXNlciILY29uZmlnOnJlYWQShwEKEUFwcHJvdmVEcmFmdENodW5rEiYub3BlbnNoZWxsLnYxLkFwcHJvdmVEcmFmdENodW5rUmVxdWVzdBonLm9wZW5zaGVsbC52MS5BcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUShAEKEFJlamVjdERyYWZ0Q2h1bmsSJS5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1JlcXVlc3QaJi5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSkwEKFUFwcHJvdmVBbGxEcmFmdENodW5rcxIqLm9wZW5zaGVsbC52MS5BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfgoORWRpdERyYWZ0Q2h1bmsSIy5vcGVuc2hlbGwudjEuRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkVkaXREcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ+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/ChFzZXJ2aWNlX2V4cG9zdXJlcxgJIAMoCzIkLm9wZW5zaGVsbC52MS5TYW5kYm94U2VydmljZUV4cG9zdXJlGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIowDChRVcGRhdGVTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYASABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYAiABKAkSEgoFaW1hZ2UYAyABKAlIAIgBARIzCgdjb21tYW5kGAYgASgLMiIub3BlbnNoZWxsLnYxLlNhbmRib3hDb21tYW5kVXBkYXRlEjMKC2Vudmlyb25tZW50GAcgASgLMh4ub3BlbnNoZWxsLnYxLlNhbmRib3hNYXBVcGRhdGUSLgoGbGFiZWxzGAggASgLMh4ub3BlbnNoZWxsLnYxLlNhbmRib3hNYXBVcGRhdGUSMwoLYW5ub3RhdGlvbnMYCSABKAsyHi5vcGVuc2hlbGwudjEuU2FuZGJveE1hcFVwZGF0ZRIhChlleHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uGAQgASgEEhIKCnJlcXVlc3RfaWQYBSABKAlCCAoGX2ltYWdlIiQKFFNhbmRib3hDb21tYW5kVXBkYXRlEgwKBGFyZ3YYASADKAkifQoQU2FuZGJveE1hcFVwZGF0ZRI6CgZ2YWx1ZXMYASADKAsyKi5vcGVuc2hlbGwudjEuU2FuZGJveE1hcFVwZGF0ZS5WYWx1ZXNFbnRyeRotCgtWYWx1ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIq8BChxDcmVhdGVTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISNwoIdGVtcGxhdGUYASABKAsyJS5vcGVuc2hlbGwudjEuU2FuZGJveFdvcmtsb2FkVGVtcGxhdGUSEgoKcmVxdWVzdF9pZBgDIAEoCSJtChlHZXRTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCSKgAQobTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimwEKHERlbGV0ZVNhbmRib3hUZW1wbGF0ZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAEgASgJEhUKDWFsbG93X21pc3NpbmcYAyABKAgSEgoKcmVxdWVzdF9pZBgEIAEoCSJSChdTYW5kYm94VGVtcGxhdGVSZXNwb25zZRI3Cgh0ZW1wbGF0ZRgBIAEoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZSJxChxMaXN0U2FuZGJveFRlbXBsYXRlc1Jlc3BvbnNlEjgKCXRlbXBsYXRlcxgBIAMoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiXgodRGVsZXRlU2FuZGJveFRlbXBsYXRlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQiiQEKHEJlZ2luUm9vdGZzVGFyU3RhZ2luZ1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglmaWxlX25hbWUYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoBCKoAQodQmVnaW5Sb290ZnNUYXJTdGFnaW5nUmVzcG9uc2USFQoNc3RhZ2luZ190b2tlbhgBIAEoCRITCgt1cGxvYWRfcGF0aBgCIAEoCRIRCgltYXhfYnl0ZXMYAyABKAQSMwoPZXhwaXJhdGlvbl90aW1lGGggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAQQBVINZXhwaXJlc19hdF9tcyJlChFHZXRTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkimQEKFExpc3RTYW5kYm94ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimQEKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEQoJcGFnZV9zaXplGAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkivAEKHEF0dGFjaFNhbmRib3hQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhAKCHByb3ZpZGVyGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEgoKcmVxdWVzdF9pZBgFIAEoCSK8AQocRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgDIAEoBBISCgpyZXF1ZXN0X2lkGAUgASgJIpMBChREZWxldGVTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSFQoNYWxsb3dfbWlzc2luZxgDIAEoCBISCgpyZXF1ZXN0X2lkGAQgASgJInoKElN0b3BTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSJ7ChNTdGFydFNhbmRib3hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCRISCgpyZXF1ZXN0X2lkGAMgASgJImkKFVN1c3BlbmRTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkiigEKFFJlc3VtZVNhbmRib3hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCRIgChhyZXN0YXJ0X2lmX3Jlc3RvcmVfZmFpbHMYAyABKAgiswEKD1NhbmRib3hSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSRAoMc2VydmljZV91cmxzGAIgAygLMi4ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZS5TZXJ2aWNlVXJsc0VudHJ5GjIKEFNlcnZpY2VVcmxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJaChVMaXN0U2FuZGJveGVzUmVzcG9uc2USKAoJc2FuZGJveGVzGAEgAygLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJImwKHExpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkikQEKHUF0dGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlEiYKB3NhbmRib3gYASABKAsyFS5vcGVuc2hlbGwudjEuU2FuZGJveBIQCghhdHRhY2hlZBgCIAEoCBI2CgdyZWNlaXB0GAMgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyTXV0YXRpb25SZWNlaXB0IpEBCh1EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIZGV0YWNoZWQYAiABKAgSNgoHcmVjZWlwdBgDIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uUmVjZWlwdCLdAQoXUHJvdmlkZXJEZXNpcmVkSWRlbnRpdHkSEgoKc2FuZGJveF9pZBgBIAEoCRIPCgdzYW5kYm94GAIgASgJEhgKEGF0dGFjaG1lbnRfZXBvY2gYAyABKAkSEwoLcHJvdmlkZXJfaWQYBCABKAkSIQoZcHJvdmlkZXJfcmVzb3VyY2VfdmVyc2lvbhgFIAEoBBIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YBiABKAQSFwoPY29uZmlnX3JldmlzaW9uGAcgASgEEhMKC3BvbGljeV9oYXNoGAggASgJIsYBChZDb25maWdTbmFwc2hvdFJldmlzaW9uEj0KDnNhbmRib3hfY29uZmlnGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hDb25maWdSZXZpc2lvbkgAEh4KFHByb3ZpZGVyX2Vudmlyb25tZW50GAIgASgESAASQAoPcHJvdmlkZXJfdGFyZ2V0GAMgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyRGVzaXJlZElkZW50aXR5SABCCwoJY29tcG9uZW50Ir0BChVTYW5kYm94Q29uZmlnUmV2aXNpb24SFwoPY29uZmlnX3JldmlzaW9uGAEgASgEEhYKDnBvbGljeV92ZXJzaW9uGAIgASgNEjkKDXBvbGljeV9zb3VyY2UYAyABKA4yIi5vcGVuc2hlbGwuc2FuZGJveC52MS5Qb2xpY3lTb3VyY2USHQoVZ2xvYmFsX3BvbGljeV92ZXJzaW9uGAQgASgNEhkKEXNldHRpbmdzX3JldmlzaW9uGAUgASgEIpAEChVDb25maWdVcGRhdGVPcGVyYXRpb24SFAoMb3BlcmF0aW9uX2lkGAEgASgJEhIKCnNhbmRib3hfaWQYAiABKAkSMAoJY29tcG9uZW50GAMgASgOMh0ub3BlbnNoZWxsLnYxLkNvbmZpZ0NvbXBvbmVudBI9Cg90YXJnZXRfcmV2aXNpb24YBCABKAsyJC5vcGVuc2hlbGwudjEuQ29uZmlnU25hcHNob3RSZXZpc2lvbhI3CgVzdGF0ZRgFIAEoDjIoLm9wZW5zaGVsbC52MS5Db25maWdVcGRhdGVPcGVyYXRpb25TdGF0ZRIxCgdvdXRjb21lGAYgASgOMiAub3BlbnNoZWxsLnYxLkNvbmZpZ0FwcGx5T3V0Y29tZRIXCg9zYW5pdGl6ZWRfZXJyb3IYByABKAkSMAoMY3JlYXRlZF90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgx1cGRhdGVkX3RpbWUYbSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmNvbXBsZXRlZF90aW1lGG4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAgQCUoECAkQCkoECAoQC1INY3JlYXRlZF9hdF9tc1INdXBkYXRlZF9hdF9tc1IPY29tcGxldGVkX2F0X21zIpwCChdQcm92aWRlck11dGF0aW9uUmVjZWlwdBISCgpyZWNlaXB0X2lkGAEgASgJEhMKC211dGF0aW9uX2lkGAIgASgJEhAKCHByb3ZpZGVyGAMgASgJEhEKCXdvcmtzcGFjZRgEIAEoCRIwCgRraW5kGAUgASgOMiIub3BlbnNoZWxsLnYxLlByb3ZpZGVyTXV0YXRpb25LaW5kEjYKB2Rlc2lyZWQYBiABKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJEZXNpcmVkSWRlbnRpdHkSMgoOcGVyc2lzdGVkX3RpbWUYayABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIBxAIUg9wZXJzaXN0ZWRfYXRfbXMi2wIKHFByb3ZpZGVyUmVhZGluZXNzT2JzZXJ2YXRpb24SEgoKc2Vzc2lvbl9pZBgBIAEoCRIQCghzZXF1ZW5jZRgCIAEoBBIYChBhdHRhY2htZW50X2Vwb2NoGAMgASgJEh0KFXByb3ZpZGVyX2Vudl9yZXZpc2lvbhgEIAEoBBIXCg9jb25maWdfcmV2aXNpb24YBSABKAQSEwoLcG9saWN5X2hhc2gYBiABKAkSHQoVY3JlZGVudGlhbHNfaW5zdGFsbGVkGAcgASgIEhUKDXBvbGljeV9hY3RpdmUYCCABKAgSJAocbGF1bmNoX2Vudmlyb25tZW50X2luc3RhbGxlZBgJIAEoCBIbChNwcm9jZXNzX2luc3RhbmNlX2lkGAogASgJEjUKBnJlYXNvbhgLIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1JlYXNvbiLkAwoXUHJvdmlkZXJSZWFkaW5lc3NTdGF0dXMSNgoHcmVjZWlwdBgBIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uUmVjZWlwdBIzCgVzdGF0ZRgCIAEoDjIkLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1N0YXRlEjUKBnJlYXNvbhgDIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1JlYXNvbhI8CghvYnNlcnZlZBgEIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc09ic2VydmF0aW9uEhsKE25ldHdvcmtfaW5zdGFuY2VfaWQYBSABKAkSMQoNb2JzZXJ2ZWRfdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOZXZhbHVhdGVkX3RpbWUYayABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKCW9wZXJhdGlvbhgIIAEoCzIjLm9wZW5zaGVsbC52MS5Db25maWdVcGRhdGVPcGVyYXRpb25KBAgGEAdKBAgHEAhSDm9ic2VydmVkX2F0X21zUg9ldmFsdWF0ZWRfYXRfbXMinAEKH0dldFNhbmRib3hQcm92aWRlclN0YXR1c1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhAKCHByb3ZpZGVyGAIgASgJEhIKCnJlY2VpcHRfaWQYAyABKAkiWQogR2V0U2FuZGJveFByb3ZpZGVyU3RhdHVzUmVzcG9uc2USNQoGc3RhdHVzGAEgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVhZGluZXNzU3RhdHVzInUKHlJlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEj8KC29ic2VydmF0aW9uGAIgASgLMioub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVhZGluZXNzT2JzZXJ2YXRpb24i4gEKH1JlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVzcG9uc2USGQoRYWNjZXB0ZWRfc2VxdWVuY2UYASABKAQSMgoPcmVwb3J0X2ludGVydmFsGGYgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjIKD29ic2VydmF0aW9uX3R0bBhnIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkoECAIQA0oECAMQBFIXcmVwb3J0X2ludGVydmFsX3NlY29uZHNSF29ic2VydmF0aW9uX3R0bF9zZWNvbmRzImoKFURlbGV0ZVNhbmRib3hSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZRISCgpzYW5kYm94X2lkGAMgASgJSgQIARACUgdkZWxldGVkIm4KF0NyZWF0ZVNzaFNlc3Npb25SZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCSLvAQoYQ3JlYXRlU3NoU2Vzc2lvblJlc3BvbnNlEhIKCnNhbmRib3hfaWQYASABKAkSEwoFdG9rZW4YAiABKAlCBIi1GAESFAoMZ2F0ZXdheV9ob3N0GAMgASgJEhQKDGdhdGV3YXlfcG9ydBgEIAEoDRIWCg5nYXRld2F5X3NjaGVtZRgFIAEoCRIcChRob3N0X2tleV9maW5nZXJwcmludBgHIAEoCRIzCg9leHBpcmF0aW9uX3RpbWUYbCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQICBAJUg1leHBpcmVzX2F0X21zIvYBChRFeHBvc2VTZXJ2aWNlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBSABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYAiABKAkSEwoLdGFyZ2V0X3BvcnQYAyABKA0SDgoGZG9tYWluGAQgASgIEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgGIAEoCRJCChJhdXRob3JpemF0aW9uX21vZGUYByABKA4yJi5vcGVuc2hlbGwudjEuU2VydmljZUF1dGhvcml6YXRpb25Nb2RlInYKEUdldFNlcnZpY2VSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgCIAEoCRIPCgdzYW5kYm94GAEgASgJIpEBChNMaXN0U2VydmljZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAIgASgFEhIKCnBhZ2VfdG9rZW4YAyABKAkSDwoHc2FuZGJveBgBIAEoCSJoChRMaXN0U2VydmljZXNSZXNwb25zZRI3CghzZXJ2aWNlcxgBIAMoCzIlLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkipAEKFERlbGV0ZVNlcnZpY2VSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgCIAEoCRIPCgdzYW5kYm94GAEgASgJEhUKDWFsbG93X21pc3NpbmcYBCABKAgSEgoKcmVxdWVzdF9pZBgFIAEoCSJWChVEZWxldGVTZXJ2aWNlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQi4wEKD1NlcnZpY2VFbmRwb2ludBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEg8KB3NhbmRib3gYAyABKAkSDAoEbmFtZRgEIAEoCRITCgt0YXJnZXRfcG9ydBgFIAEoDRIOCgZkb21haW4YBiABKAgSQgoSYXV0aG9yaXphdGlvbl9tb2RlGAcgASgOMiYub3BlbnNoZWxsLnYxLlNlcnZpY2VBdXRob3JpemF0aW9uTW9kZSJXChdTZXJ2aWNlRW5kcG9pbnRSZXNwb25zZRIvCghlbmRwb2ludBgBIAEoCzIdLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnQSCwoDdXJsGAIgASgJIkUKF1Jldm9rZVNzaFNlc3Npb25SZXF1ZXN0EhMKBXRva2VuGAEgASgJQgSItRgBEhUKDWFsbG93X21pc3NpbmcYAiABKAgiWQoYUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdyZXZva2VkIrgDChJFeGVjU2FuZGJveFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAwgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEg8KB2NvbW1hbmQYAiADKAkSDwoHd29ya2RpchgDIAEoCRJGCgtlbnZpcm9ubWVudBgEIAMoCzIxLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3QuRW52aXJvbm1lbnRFbnRyeRI0ChFleGVjdXRpb25fdGltZW91dBhpIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhINCgVzdGRpbhgGIAEoDBILCgN0dHkYByABKAgSDAoEY29scxgIIAEoDRIMCgRyb3dzGAkgASgNEhYKDm5vX2xvZ2luX3NoZWxsGAogASgIEhIKCnJlcXVlc3RfaWQYCyABKAkaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBRAGUg90aW1lb3V0X3NlY29uZHMiIQoRRXhlY1NhbmRib3hTdGRvdXQSDAoEZGF0YRgBIAEoDCIhChFFeGVjU2FuZGJveFN0ZGVychIMCgRkYXRhGAEgASgMIiQKD0V4ZWNTYW5kYm94RXhpdBIRCglleGl0X2NvZGUYASABKAUisgEKEEV4ZWNTYW5kYm94RXZlbnQSMQoGc3Rkb3V0GAEgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3Rkb3V0SAASMQoGc3RkZXJyGAIgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3RkZXJySAASLQoEZXhpdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV4aXRIAEIJCgdwYXlsb2FkIs8BCg5UY3BGb3J3YXJkSW5pdBIPCgdzYW5kYm94GAEgASgJEhEKCXdvcmtzcGFjZRgDIAEoCRISCgpzZXJ2aWNlX2lkGAQgASgJEisKA3NzaBgFIAEoCzIcLm9wZW5zaGVsbC52MS5Tc2hSZWxheVRhcmdldEgAEisKA3RjcBgGIAEoCzIcLm9wZW5zaGVsbC52MS5UY3BSZWxheVRhcmdldEgAEiEKE2F1dGhvcml6YXRpb25fdG9rZW4YByABKAlCBIi1GAFCCAoGdGFyZ2V0IloKD1RjcEZvcndhcmRGcmFtZRIsCgRpbml0GAEgASgLMhwub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRJbml0SAASDgoEZGF0YRgCIAEoDEgAQgkKB3BheWxvYWQimgEKEEV4ZWNTYW5kYm94SW5wdXQSMQoFc3RhcnQYASABKAsyIC5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hSZXF1ZXN0SAASDwoFc3RkaW4YAiABKAxIABI3CgZyZXNpemUYAyABKAsyJS5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hXaW5kb3dSZXNpemVIAEIJCgdwYXlsb2FkIjUKF0V4ZWNTYW5kYm94V2luZG93UmVzaXplEgwKBGNvbHMYASABKA0SDAoEcm93cxgCIAEoDSLGAQoKU3NoU2Vzc2lvbhI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEhMKBXRva2VuGAMgASgJQgSItRgBEjMKD2V4cGlyYXRpb25fdGltZRhoIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHcmV2b2tlZBgFIAEoCEoECAQQBVINZXhwaXJlc19hdF9tcyKAAwoTV2F0Y2hTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYCyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSFQoNZm9sbG93X3N0YXR1cxgCIAEoCBITCgtmb2xsb3dfbG9ncxgDIAEoCBIVCg1mb2xsb3dfZXZlbnRzGAQgASgIEhYKDmxvZ190YWlsX2xpbmVzGAUgASgNEhIKCmV2ZW50X3RhaWwYBiABKA0SGAoQc3RvcF9vbl90ZXJtaW5hbBgHIAEoCBIuCgpzaW5jZV90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtsb2dfc291cmNlcxgJIAMoCRIVCg1sb2dfbWluX2xldmVsGAogASgJEhsKE3Jlc3VtZV9hZnRlcl9jdXJzb3IYDCABKAlKBAgIEAlSDGxvZ19zaW5jZV9tcyKrAgoSU2FuZGJveFN0cmVhbUV2ZW50EigKB3NhbmRib3gYASABKAsyFS5vcGVuc2hlbGwudjEuU2FuZGJveEgAEisKA2xvZxgCIAEoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94TG9nTGluZUgAEiwKBWV2ZW50GAMgASgLMhsub3BlbnNoZWxsLnYxLlBsYXRmb3JtRXZlbnRIABI1Cgd3YXJuaW5nGAQgASgLMiIub3BlbnNoZWxsLnYxLlNhbmRib3hTdHJlYW1XYXJuaW5nSAASPgoTZHJhZnRfcG9saWN5X3VwZGF0ZRgFIAEoCzIfLm9wZW5zaGVsbC52MS5EcmFmdFBvbGljeVVwZGF0ZUgAEg4KBmN1cnNvchgGIAEoCUIJCgdwYXlsb2FkIpECCg5TYW5kYm94TG9nTGluZRISCgpzYW5kYm94X2lkGAEgASgJEi4KCmV2ZW50X3RpbWUYZiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBWxldmVsGAMgASgJEg4KBnRhcmdldBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEg4KBnNvdXJjZRgGIAEoCRI4CgZmaWVsZHMYByADKAsyKC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUuRmllbGRzRW50cnkaLQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAIQA1IMdGltZXN0YW1wX21zIicKFFNhbmRib3hTdHJlYW1XYXJuaW5nEg8KB21lc3NhZ2UYASABKAkiowEKFUNyZWF0ZVByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchISCgpyZXF1ZXN0X2lkGAMgASgJImYKEkdldFByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkiyQEKHUdldFByb3ZpZGVyQ3JlZGVudGlhbHNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgBIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgCIAEoCRIXCg9jcmVkZW50aWFsX2tleXMYAyADKAkSPQoabWluaW11bV9yZW1haW5pbmdfbGlmZXRpbWUYBCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24iYwoXUHJvdmlkZXJDcmVkZW50aWFsVmFsdWUSEwoFdmFsdWUYASABKAlCBIi1GAESMwoPZXhwaXJhdGlvbl90aW1lGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLPAQoeR2V0UHJvdmlkZXJDcmVkZW50aWFsc1Jlc3BvbnNlElIKC2NyZWRlbnRpYWxzGAEgAygLMj0ub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyQ3JlZGVudGlhbHNSZXNwb25zZS5DcmVkZW50aWFsc0VudHJ5GlkKEENyZWRlbnRpYWxzRW50cnkSCwoDa2V5GAEgASgJEjQKBXZhbHVlGAIgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFZhbHVlOgI4ASKZAQoUTGlzdFByb3ZpZGVyc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCRIWCg5sYWJlbF9zZWxlY3RvchgEIAEoCSK0AwoVVXBkYXRlUHJvdmlkZXJSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISMgoIcHJvdmlkZXIYASABKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEmcKG2NyZWRlbnRpYWxfZXhwaXJhdGlvbl90aW1lcxhmIAMoCzJCLm9wZW5zaGVsbC52MS5VcGRhdGVQcm92aWRlclJlcXVlc3QuQ3JlZGVudGlhbEV4cGlyYXRpb25UaW1lc0VudHJ5EigKIGNsZWFyX2NyZWRlbnRpYWxfZXhwaXJhdGlvbl9rZXlzGGcgAygJEhIKCnJlcXVlc3RfaWQYBCABKAkaXAoeQ3JlZGVudGlhbEV4cGlyYXRpb25UaW1lc0VudHJ5EgsKA2tleRgBIAEoCRIpCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXA6AjgBSgQIAhADUhhjcmVkZW50aWFsX2V4cGlyZXNfYXRfbXMilAEKFURlbGV0ZVByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSFQoNYWxsb3dfbWlzc2luZxgEIAEoCBISCgpyZXF1ZXN0X2lkGAUgASgJIpsBChBQcm92aWRlclJlc3BvbnNlEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchI+Cg90YXJnZXRfcmVjZWlwdHMYAiADKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQSEwoLbXV0YXRpb25faWQYAyABKAkiZQoVTGlzdFByb3ZpZGVyc1Jlc3BvbnNlEjMKCXByb3ZpZGVycxgBIAMoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIogBChtMaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCSJrChlHZXRQcm92aWRlclByb2ZpbGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISCgoCaWQYASABKAkiWwoZUHJvdmlkZXJQcm9maWxlSW1wb3J0SXRlbRIuCgdwcm9maWxlGAEgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIOCgZzb3VyY2UYAiABKAkicQoZUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxIOCgZzb3VyY2UYASABKAkSEgoKcHJvZmlsZV9pZBgCIAEoCRINCgVmaWVsZBgDIAEoCRIPCgdtZXNzYWdlGAQgASgJEhAKCHNldmVyaXR5GAUgASgJInoKLFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRBdWRpZW5jZU92ZXJyaWRlEgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDRIMCgRwYXRoGAMgASgJEhAKCGF1ZGllbmNlGAQgASgJEg4KBnNjb3BlcxgFIAMoCSJqCihQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50U3ViamVjdFRva2VuEg4KBnNvdXJjZRgBIAEoCRISCgpjcmVkZW50aWFsGAIgASgJEhoKEnN1YmplY3RfdG9rZW5fdHlwZRgDIAEoCSLiAwocUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudBIWCg50b2tlbl9lbmRwb2ludBgBIAEoCRIQCghhdWRpZW5jZRgCIAEoCRIZChFqd3Rfc3ZpZF9hdWRpZW5jZRgGIAEoCRIOCgZzY29wZXMYAyADKAkSLAoJY2FjaGVfdHRsGGggASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uElYKEmF1ZGllbmNlX292ZXJyaWRlcxgFIAMoCzI6Lm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50QXVkaWVuY2VPdmVycmlkZRIdChVjbGllbnRfYXNzZXJ0aW9uX3R5cGUYByABKAkSQgoKZ3JhbnRfdHlwZRgIIAEoDjIuLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50VHlwZRJNCg1zdWJqZWN0X3Rva2VuGAkgASgLMjYub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRTdWJqZWN0VG9rZW4SHAoUcmVxdWVzdGVkX3Rva2VuX3R5cGUYCiABKAlKBAgEEAVSEWNhY2hlX3R0bF9zZWNvbmRzIuoCChlQcm92aWRlclByb2ZpbGVDcmVkZW50aWFsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIZW52X3ZhcnMYAyADKAkSEAoIcmVxdWlyZWQYBCABKAgSEgoKYXV0aF9zdHlsZRgFIAEoCRITCgtoZWFkZXJfbmFtZRgGIAEoCRITCgtxdWVyeV9wYXJhbRgHIAEoCRI4CgdyZWZyZXNoGAggASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2gSFQoNcGF0aF90ZW1wbGF0ZRgJIAEoCRI/Cgt0b2tlbl9ncmFudBgKIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50EhoKEnRva2VuX2dyYW50X293bmVycxgLIAMoCRIaChJzdGFibGVfcGxhY2Vob2xkZXIYDCABKAgiaAohUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE1hdGVyaWFsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIcmVxdWlyZWQYAyABKAgSDgoGc2VjcmV0GAQgASgIIkUKH1Byb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hPdXRwdXQSDgoGb3V0cHV0GAEgASgJEhIKCmNyZWRlbnRpYWwYAiABKAkirQMKGVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2gSQQoIc3RyYXRlZ3kYASABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5EhEKCXRva2VuX3VybBgCIAEoCRIOCgZzY29wZXMYAyADKAkSMQoOcmVmcmVzaF9iZWZvcmUYaCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SLwoMbWF4X2xpZmV0aW1lGGkgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEkEKCG1hdGVyaWFsGAYgAygLMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hNYXRlcmlhbBJJChJhZGRpdGlvbmFsX291dHB1dHMYByADKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE91dHB1dEoECAQQBUoECAUQBlIWcmVmcmVzaF9iZWZvcmVfc2Vjb25kc1IUbWF4X2xpZmV0aW1lX3NlY29uZHMihgUKH1Byb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMSEAoIcHJvdmlkZXIYASABKAkSEwoLcHJvdmlkZXJfaWQYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSQQoIc3RyYXRlZ3kYBCABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5Eg4KBnN0YXR1cxgFIAEoCRIzCg9leHBpcmF0aW9uX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKEW5leHRfcmVmcmVzaF90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1ChFsYXN0X3JlZnJlc2hfdGltZRhsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKbGFzdF9lcnJvchgJIAEoCRJOCg9yZWNvdmVyeV9hY3Rpb24YCiABKA4yNS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFJlY292ZXJ5QWN0aW9uEhQKDGZhaWx1cmVfY29kZRgLIAEoCRIeChZwcm92aWRlcl9lcnJvcl9zdWJ0eXBlGAwgASgJEjMKD2xhc3RfZXJyb3JfdGltZRhxIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgGEAdKBAgHEAhKBAgIEAlKBAgNEA5SDWV4cGlyZXNfYXRfbXNSEm5leHRfcmVmcmVzaF9hdF9tc1ISbGFzdF9yZWZyZXNoX2F0X21zUhBsYXN0X2Vycm9yX2F0X21zIi8KGFByb3ZpZGVyUHJvZmlsZURpc2NvdmVyeRITCgtjcmVkZW50aWFscxgBIAMoCSKPAQofR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJImYKIEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlEkIKC2NyZWRlbnRpYWxzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMi1AMKH0NvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAcgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghwcm92aWRlchgBIAEoCRIWCg5jcmVkZW50aWFsX2tleRgCIAEoCRJBCghzdHJhdGVneRgDIAEoDjIvLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RyYXRlZ3kSUwoIbWF0ZXJpYWwYBCADKAsyOy5vcGVuc2hlbGwudjEuQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdC5NYXRlcmlhbEVudHJ5QgSItRgBEhwKFHNlY3JldF9tYXRlcmlhbF9rZXlzGAUgAygJEjMKD2V4cGlyYXRpb25fdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKcmVxdWVzdF9pZBgIIAEoCRovCg1NYXRlcmlhbEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgGEAdSDWV4cGlyZXNfYXRfbXMiYQogQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVzcG9uc2USPQoGc3RhdHVzGAEgASgLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMiowEKH1JvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghwcm92aWRlchgBIAEoCRIWCg5jcmVkZW50aWFsX2tleRgCIAEoCRISCgpyZXF1ZXN0X2lkGAQgASgJImEKIFJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlc3BvbnNlEj0KBnN0YXR1cxgBIAEoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzIrcBChxEZWxldGVQcm92aWRlclJlZnJlc2hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSFQoNYWxsb3dfbWlzc2luZxgFIAEoCBISCgpyZXF1ZXN0X2lkGAYgASgJIl4KHURlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkIuoECg9Qcm92aWRlclByb2ZpbGUSCgoCaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEjcKCGNhdGVnb3J5GAQgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EjwKC2NyZWRlbnRpYWxzGAUgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNyZWRlbnRpYWwSOAoJZW5kcG9pbnRzGAYgAygLMiUub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0VuZHBvaW50EjUKCGJpbmFyaWVzGAcgAygLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0JpbmFyeRIZChFpbmZlcmVuY2VfY2FwYWJsZRgIIAEoCBI5CglkaXNjb3ZlcnkYCSABKAsyJi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlzY292ZXJ5EhgKEHJlc291cmNlX3ZlcnNpb24YCiABKAQSQwoLYW5ub3RhdGlvbnMYCyADKAsyLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlLkFubm90YXRpb25zRW50cnkSDgoGc291cmNlGAwgASgJEg0KBXNjb3BlGA0gASgJEjAKBWZpbGVzGA4gAygLMiEub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUZpbGUaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkUKE1Byb3ZpZGVyUHJvZmlsZUZpbGUSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgJEg8KB2Vudl92YXIYAyABKAkiSQoXUHJvdmlkZXJQcm9maWxlUmVzcG9uc2USLgoHcHJvZmlsZRgBIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiaAocTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRIvCghwcm9maWxlcxgBIAMoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIrIBCh1JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjkKCHByb2ZpbGVzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0SEgoKcmVxdWVzdF9pZBgDIAEoCSKhAQoeSW1wb3J0UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlEjwKC2RpYWdub3N0aWNzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSLwoIcHJvZmlsZXMYAiADKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEhAKCGltcG9ydGVkGAMgASgIIuABCh1VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjgKB3Byb2ZpbGUYASABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlSW1wb3J0SXRlbRIhChlleHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uGAIgASgEEgoKAmlkGAMgASgJEhIKCnJlcXVlc3RfaWQYBSABKAkinwEKHlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi4KB3Byb2ZpbGUYAiABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEg8KB3VwZGF0ZWQYAyABKAginAEKG0xpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjkKCHByb2ZpbGVzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0ikAEKHExpbnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxINCgV2YWxpZBgCIAEoCBIjChtzdXBwb3J0c19zdGFibGVfcGxhY2Vob2xkZXIYAyABKAgiVwoWRGVsZXRlUHJvdmlkZXJSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHZGVsZXRlZCKZAQocRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgoKAmlkGAEgASgJEhUKDWFsbG93X21pc3NpbmcYAyABKAgSEgoKcmVxdWVzdF9pZBgEIAEoCSJeCh1EZWxldGVQcm92aWRlclByb2ZpbGVSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHZGVsZXRlZCKdAQokR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSKwojc3VwcG9ydHNfc3RhdGljX2NyZWRlbnRpYWxfYmluZGluZ3MYAiABKAgSNAosc3VwcG9ydHNfc3RhYmxlX3BsYWNlaG9sZGVyX2Vudmlyb25tZW50X2tleXMYAyABKAgiSwofU3RhdGljQ3JlZGVudGlhbEVuZHBvaW50QmluZGluZxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SDAoEcGF0aBgDIAEoCSKcAQoXU3RhdGljQ3JlZGVudGlhbEJpbmRpbmcSQAoJZW5kcG9pbnRzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxFbmRwb2ludEJpbmRpbmcSGwoTY3JlZGVudGlhbF9pZGVudGl0eRgCIAEoCRIiChp3b3JrbG9hZF9jcmVkZW50aWFsX2hhbmRsZRgDIAEoCSL9CQolR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZRJfCgtlbnZpcm9ubWVudBgBIAMoCzJELm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkVudmlyb25tZW50RW50cnlCBIi1GAESHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAIgASgEEncKG2NyZWRlbnRpYWxfZXhwaXJhdGlvbl90aW1lcxhnIAMoCzJSLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkNyZWRlbnRpYWxFeHBpcmF0aW9uVGltZXNFbnRyeRJoChNkeW5hbWljX2NyZWRlbnRpYWxzGAQgAygLMksub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuRHluYW1pY0NyZWRlbnRpYWxzRW50cnkSdQoac3RhdGljX2NyZWRlbnRpYWxfYmluZGluZ3MYBSADKAsyUS5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5TdGF0aWNDcmVkZW50aWFsQmluZGluZ3NFbnRyeRIjChtub25fc2VjcmV0X2Vudmlyb25tZW50X2tleXMYBiADKAkSIQoZcHJvdmlkZXJfYXR0YWNobWVudF9lcG9jaBgHIAEoCRITCgtwb2xpY3lfaGFzaBgIIAEoCRI/ChByZWFkaW5lc3NfcmVhc29uGAkgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVhZGluZXNzUmVhc29uEk0KBWZpbGVzGAogAygLMj4ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuRmlsZXNFbnRyeRIrCiNzdGFibGVfcGxhY2Vob2xkZXJfZW52aXJvbm1lbnRfa2V5cxgLIAMoCRI0CixzdXBwb3J0c19zdGFibGVfcGxhY2Vob2xkZXJfZW52aXJvbm1lbnRfa2V5cxgMIAEoCBoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaXAoeQ3JlZGVudGlhbEV4cGlyYXRpb25UaW1lc0VudHJ5EgsKA2tleRgBIAEoCRIpCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXA6AjgBGmIKF0R5bmFtaWNDcmVkZW50aWFsc0VudHJ5EgsKA2tleRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDcmVkZW50aWFsOgI4ARpmCh1TdGF0aWNDcmVkZW50aWFsQmluZGluZ3NFbnRyeRILCgNrZXkYASABKAkSNAoFdmFsdWUYAiABKAsyJS5vcGVuc2hlbGwudjEuU3RhdGljQ3JlZGVudGlhbEJpbmRpbmc6AjgBGiwKCkZpbGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAMQBFIYY3JlZGVudGlhbF9leHBpcmVzX2F0X21zIqYCChhQcm92aWRlckVudmlyb25tZW50VmFsdWUSDAoEbmFtZRgBIAEoCRITCgV2YWx1ZRgCIAEoCUIEiLUYARJMCg5jbGFzc2lmaWNhdGlvbhgEIAEoDjI0Lm9wZW5zaGVsbC52MS5Qcm92aWRlckVudmlyb25tZW50VmFsdWVDbGFzc2lmaWNhdGlvbhJIChlzdGF0aWNfY3JlZGVudGlhbF9iaW5kaW5nGAUgASgLMiUub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nEjMKD2V4cGlyYXRpb25fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoSc3RhYmxlX3BsYWNlaG9sZGVyGAYgASgIIqQEChtQcm92aWRlckVudmlyb25tZW50U25hcHNob3QSHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAEgASgEEjYKBnZhbHVlcxgCIAMoCzImLm9wZW5zaGVsbC52MS5Qcm92aWRlckVudmlyb25tZW50VmFsdWUSXgoTZHluYW1pY19jcmVkZW50aWFscxgDIAMoCzJBLm9wZW5zaGVsbC52MS5Qcm92aWRlckVudmlyb25tZW50U25hcHNob3QuRHluYW1pY0NyZWRlbnRpYWxzRW50cnkSIQoZcHJvdmlkZXJfYXR0YWNobWVudF9lcG9jaBgEIAEoCRITCgtwb2xpY3lfaGFzaBgFIAEoCRI/ChByZWFkaW5lc3NfcmVhc29uGAYgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVhZGluZXNzUmVhc29uEkMKBWZpbGVzGAcgAygLMjQub3BlbnNoZWxsLnYxLlByb3ZpZGVyRW52aXJvbm1lbnRTbmFwc2hvdC5GaWxlc0VudHJ5GmIKF0R5bmFtaWNDcmVkZW50aWFsc0VudHJ5EgsKA2tleRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDcmVkZW50aWFsOgI4ARosCgpGaWxlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEihgEKI0V4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSIQoTc3VwZXJ2aXNvcl9qd3Rfc3ZpZBgEIAEoCUIEiLUYASKaAQokRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlc3BvbnNlEhoKDGFjY2Vzc190b2tlbhgBIAEoCUIEiLUYARIwCg1leHBpcmVzX2FmdGVyGGYgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKCnRva2VuX3R5cGUYAyABKAlKBAgCEANSCmV4cGlyZXNfaW4iiQQKE1VwZGF0ZUNvbmZpZ1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAogASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIzCgZwb2xpY3kYAiABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EhMKC3NldHRpbmdfa2V5GAMgASgJEjkKDXNldHRpbmdfdmFsdWUYBCABKAsyIi5vcGVuc2hlbGwuc2FuZGJveC52MS5TZXR0aW5nVmFsdWUSFgoOZGVsZXRlX3NldHRpbmcYBSABKAgSDgoGZ2xvYmFsGAYgASgIEjwKEG1lcmdlX29wZXJhdGlvbnMYByADKAsyIi5vcGVuc2hlbGwudjEuUG9saWN5TWVyZ2VPcGVyYXRpb24SIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgIIAEoBBJHCgthbm5vdGF0aW9ucxgJIAMoCzIyLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXF1ZXN0LkFubm90YXRpb25zRW50cnkSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAsgASgJGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL3AgoUUG9saWN5TWVyZ2VPcGVyYXRpb24SMAoIYWRkX3J1bGUYASABKAsyHC5vcGVuc2hlbGwudjEuQWRkTmV0d29ya1J1bGVIABI+Cg9yZW1vdmVfZW5kcG9pbnQYAiABKAsyIy5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya0VuZHBvaW50SAASNgoLcmVtb3ZlX3J1bGUYAyABKAsyHy5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya1J1bGVIABI0Cg5hZGRfZGVueV9ydWxlcxgEIAEoCzIaLm9wZW5zaGVsbC52MS5BZGREZW55UnVsZXNIABI2Cg9hZGRfYWxsb3dfcnVsZXMYBSABKAsyGy5vcGVuc2hlbGwudjEuQWRkQWxsb3dSdWxlc0gAEjoKDXJlbW92ZV9iaW5hcnkYBiABKAsyIS5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya0JpbmFyeUgAQgsKCW9wZXJhdGlvbiJaCg5BZGROZXR3b3JrUnVsZRIRCglydWxlX25hbWUYASABKAkSNQoEcnVsZRgCIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlIkYKFVJlbW92ZU5ldHdvcmtFbmRwb2ludBIRCglydWxlX25hbWUYASABKAkSDAoEaG9zdBgCIAEoCRIMCgRwb3J0GAMgASgNIiYKEVJlbW92ZU5ldHdvcmtSdWxlEhEKCXJ1bGVfbmFtZRgBIAEoCSKlAQoMTDdSdWxlVGFyZ2V0EhEKCXJ1bGVfbmFtZRgBIAEoCRIMCgRob3N0GAIgASgJEg0KBXBvcnRzGAMgAygNEhEKBHBhdGgYBCABKAlIAIgBARI1CghiaW5hcmllcxgFIAMoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtCaW5hcnkSEgoKYW55X2JpbmFyeRgGIAEoCEIHCgVfcGF0aCKIAQoMQWRkRGVueVJ1bGVzEjQKCmRlbnlfcnVsZXMYAyADKAsyIC5vcGVuc2hlbGwuc2FuZGJveC52MS5MN0RlbnlSdWxlEioKBnRhcmdldBgEIAEoCzIaLm9wZW5zaGVsbC52MS5MN1J1bGVUYXJnZXRKBAgBEAJKBAgCEANSBGhvc3RSBHBvcnQigAEKDUFkZEFsbG93UnVsZXMSKwoFcnVsZXMYAyADKAsyHC5vcGVuc2hlbGwuc2FuZGJveC52MS5MN1J1bGUSKgoGdGFyZ2V0GAQgASgLMhoub3BlbnNoZWxsLnYxLkw3UnVsZVRhcmdldEoECAEQAkoECAIQA1IEaG9zdFIEcG9ydCI9ChNSZW1vdmVOZXR3b3JrQmluYXJ5EhEKCXJ1bGVfbmFtZRgBIAEoCRITCgtiaW5hcnlfcGF0aBgCIAEoCSLmAQoUVXBkYXRlQ29uZmlnUmVzcG9uc2USDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIZChFzZXR0aW5nc19yZXZpc2lvbhgDIAEoBBIPCgdkZWxldGVkGAQgASgIEkgKC2Fubm90YXRpb25zGAUgAygLMjMub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlLkFubm90YXRpb25zRW50cnkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpUBCh1HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3ZlcnNpb24YAiABKA0SDgoGZ2xvYmFsGAMgASgIEg8KB3NhbmRib3gYASABKAkibwoeR2V0U2FuZGJveFBvbGljeVN0YXR1c1Jlc3BvbnNlEjUKCHJldmlzaW9uGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbhIWCg5hY3RpdmVfdmVyc2lvbhgCIAEoDSKoAQoaTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAUgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCRIOCgZnbG9iYWwYBCABKAgSDwoHc2FuZGJveBgBIAEoCSJuChtMaXN0U2FuZGJveFBvbGljaWVzUmVzcG9uc2USNgoJcmV2aXNpb25zGAEgAygLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkigAEKGVJlcG9ydFBvbGljeVN0YXR1c1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgNEioKBnN0YXR1cxgDIAEoDjIaLm9wZW5zaGVsbC52MS5Qb2xpY3lTdGF0dXMSEgoKbG9hZF9lcnJvchgEIAEoCSIcChpSZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSLiAQodU2FuZGJveENvbmZpZ3VyYXRpb25BZG1pc3Npb24SEwoLaW5zdGFuY2VfaWQYASABKAkSOAoFc3RhdGUYAiABKA4yKS5vcGVuc2hlbGwudjEuQ29uZmlndXJhdGlvbkFkbWlzc2lvblN0YXRlEhYKDnBvbGljeV92ZXJzaW9uGAMgASgNEhMKC3BvbGljeV9oYXNoGAQgASgJEhcKD2NvbmZpZ19yZXZpc2lvbhgFIAEoBBIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YBiABKAQSDQoFZXJyb3IYByABKAkilQEKIVJlcG9ydFNhbmRib3hDb25maWd1cmF0aW9uUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEj4KCWFkbWlzc2lvbhgCIAEoCzIrLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhIcChRleHBlY3RlZF9pbnN0YW5jZV9pZBgDIAEoCSIkCiJSZXBvcnRTYW5kYm94Q29uZmlndXJhdGlvblJlc3BvbnNlIroDChVTYW5kYm94UG9saWN5UmV2aXNpb24SDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIqCgZzdGF0dXMYAyABKA4yGi5vcGVuc2hlbGwudjEuUG9saWN5U3RhdHVzEhIKCmxvYWRfZXJyb3IYBCABKAkSMAoMY3JlYXRlZF90aW1lGGkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtsb2FkZWRfdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoGcG9saWN5GAcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHCgpwcm92ZW5hbmNlGAggAygLMjMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbi5Qcm92ZW5hbmNlRW50cnkaMQoPUHJvdmVuYW5jZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgFEAZKBAgGEAdSDWNyZWF0ZWRfYXRfbXNSDGxvYWRlZF9hdF9tcyLfAQoVR2V0U2FuZGJveExvZ3NSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgGIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCRINCgVsaW5lcxgCIAEoDRIuCgpzaW5jZV90aW1lGGcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdzb3VyY2VzGAQgAygJEhEKCW1pbl9sZXZlbBgFIAEoCUoECAMQBFIIc2luY2VfbXMiWAoWUHVzaFNhbmRib3hMb2dzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEioKBGxvZ3MYAiADKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUiGQoXUHVzaFNhbmRib3hMb2dzUmVzcG9uc2UiWgoWR2V0U2FuZGJveExvZ3NSZXNwb25zZRIqCgRsb2dzGAEgAygLMhwub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lEhQKDGJ1ZmZlcl90b3RhbBgCIAEoDSK1AgoRU3VwZXJ2aXNvck1lc3NhZ2USLgoFaGVsbG8YASABKAsyHS5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvckhlbGxvSAASNgoJaGVhcnRiZWF0GAIgASgLMiEub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JIZWFydGJlYXRIABI6ChFyZWxheV9vcGVuX3Jlc3VsdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5SZWxheU9wZW5SZXN1bHRIABIvCgtyZWxheV9jbG9zZRgEIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSAASQAoUY29uZmlnX3VwZGF0ZV9yZXN1bHQYBSABKAsyIC5vcGVuc2hlbGwudjEuQ29uZmlnVXBkYXRlUmVzdWx0SABCCQoHcGF5bG9hZCKWAwoOR2F0ZXdheU1lc3NhZ2USOQoQc2Vzc2lvbl9hY2NlcHRlZBgBIAEoCzIdLm9wZW5zaGVsbC52MS5TZXNzaW9uQWNjZXB0ZWRIABI5ChBzZXNzaW9uX3JlamVjdGVkGAIgASgLMh0ub3BlbnNoZWxsLnYxLlNlc3Npb25SZWplY3RlZEgAEjMKCWhlYXJ0YmVhdBgDIAEoCzIeLm9wZW5zaGVsbC52MS5HYXRld2F5SGVhcnRiZWF0SAASLQoKcmVsYXlfb3BlbhgEIAEoCzIXLm9wZW5zaGVsbC52MS5SZWxheU9wZW5IABIvCgtyZWxheV9jbG9zZRgFIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSAASOQoQc2Vzc2lvbl9yZWRpcmVjdBgGIAEoCzIdLm9wZW5zaGVsbC52MS5TZXNzaW9uUmVkaXJlY3RIABIzCg1jb25maWdfdXBkYXRlGAcgASgLMhoub3BlbnNoZWxsLnYxLkNvbmZpZ1VwZGF0ZUgAQgkKB3BheWxvYWQizgEKD1N1cGVydmlzb3JIZWxsbxISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJEhgKEGNvbm5lY3Rpb25fZXBvY2gYAyABKAQSIwobc3VwcG9ydHNfcHJvdmlkZXJfcmVhZGluZXNzGAQgASgIEhIKCnJlZGlyZWN0ZWQYBSABKAgSIQoZc3VwcG9ydHNfc2Vzc2lvbl9yZWRpcmVjdBgGIAEoCBIcChRzdXBwb3J0c19jb25maWdfcHVzaBgHIAEoCCLHAQoPU2Vzc2lvbkFjY2VwdGVkEhIKCnNlc3Npb25faWQYASABKAkSLQoJYm9vdHN0cmFwGAMgASgLMhoub3BlbnNoZWxsLnYxLkNvbmZpZ1VwZGF0ZRIbChNjb25maWdfcHVzaF9lbmFibGVkGAQgASgIEjUKEmhlYXJ0YmVhdF9pbnRlcnZhbBhmIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkoECAIQA1IXaGVhcnRiZWF0X2ludGVydmFsX3NlY3MirwEKDENvbmZpZ1VwZGF0ZRIRCgl1cGRhdGVfaWQYASABKAkSQwoOc2FuZGJveF9jb25maWcYAiABKAsyKy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94Q29uZmlnU25hcHNob3QSRwoUcHJvdmlkZXJfZW52aXJvbm1lbnQYAyABKAsyKS5vcGVuc2hlbGwudjEuUHJvdmlkZXJFbnZpcm9ubWVudFNuYXBzaG90IkYKEkNvbmZpZ0FwcGx5RmFpbHVyZRIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEQoJcmV0cnlhYmxlGAMgASgIIoICChJDb25maWdVcGRhdGVSZXN1bHQSEQoJdXBkYXRlX2lkGAEgASgJEjEKB291dGNvbWUYAiABKA4yIC5vcGVuc2hlbGwudjEuQ29uZmlnQXBwbHlPdXRjb21lEjEKB2ZhaWx1cmUYAyABKAsyIC5vcGVuc2hlbGwudjEuQ29uZmlnQXBwbHlGYWlsdXJlEj4KCWFkbWlzc2lvbhgEIAEoCzIrLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhIzCgtwb2xpY3lfbG9hZBgFIAEoCzIeLm9wZW5zaGVsbC52MS5Qb2xpY3lMb2FkUmVzdWx0IkIKEFBvbGljeUxvYWRSZXN1bHQSDwoHdmVyc2lvbhgBIAEoDRIOCgZsb2FkZWQYAiABKAgSDQoFZXJyb3IYAyABKAkiIQoPU2Vzc2lvblJlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSJCCg9TZXNzaW9uUmVkaXJlY3QSFQoNcGVlcl9lbmRwb2ludBgBIAEoCRIYChBvd25lcl9yZXBsaWNhX2lkGAIgASgJIhUKE1N1cGVydmlzb3JIZWFydGJlYXQiEgoQR2F0ZXdheUhlYXJ0YmVhdCJaChxSZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSEwoLaW5zdGFuY2VfaWQYAiABKAkSEQoJZXhpdF9jb2RlGAMgASgFIh8KHVJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlc3BvbnNlIkkKHkZpbmFsaXplTWFpblByb2Nlc3NFeGl0UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJIiEKH0ZpbmFsaXplTWFpblByb2Nlc3NFeGl0UmVzcG9uc2UilwEKCVJlbGF5T3BlbhISCgpjaGFubmVsX2lkGAEgASgJEisKA3NzaBgCIAEoCzIcLm9wZW5zaGVsbC52MS5Tc2hSZWxheVRhcmdldEgAEisKA3RjcBgDIAEoCzIcLm9wZW5zaGVsbC52MS5UY3BSZWxheVRhcmdldEgAEhIKCnNlcnZpY2VfaWQYBSABKAlCCAoGdGFyZ2V0IhAKDlNzaFJlbGF5VGFyZ2V0IiwKDlRjcFJlbGF5VGFyZ2V0EgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDSIfCglSZWxheUluaXQSEgoKY2hhbm5lbF9pZBgBIAEoCSJQCgpSZWxheUZyYW1lEicKBGluaXQYASABKAsyFy5vcGVuc2hlbGwudjEuUmVsYXlJbml0SAASDgoEZGF0YRgCIAEoDEgAQgkKB3BheWxvYWQibgoNUGVlclJlbGF5SW5pdBISCgpzYW5kYm94X2lkGAEgASgJEisKCnJlbGF5X29wZW4YAiABKAsyFy5vcGVuc2hlbGwudjEuUmVsYXlPcGVuEhwKFHJlcXVlc3Rlcl9yZXBsaWNhX2lkGAMgASgJIlgKDlBlZXJSZWxheUZyYW1lEisKBGluaXQYASABKAsyGy5vcGVuc2hlbGwudjEuUGVlclJlbGF5SW5pdEgAEg4KBGRhdGEYAiABKAxIAEIJCgdwYXlsb2FkIkEKF1BlZXJDb25maWdTYW5kYm94VGFyZ2V0EhIKCnNhbmRib3hfaWQYASABKAkSEgoKc2Vzc2lvbl9pZBgCIAEoCSI7ChhQZWVyQ29uZmlnUHJvdmlkZXJUYXJnZXQSEQoJd29ya3NwYWNlGAEgASgJEgwKBG5hbWUYAiABKAkizAEKHVBlZXJOb3RpZnlDb25maWdVcGRhdGVSZXF1ZXN0EjgKB3NhbmRib3gYASABKAsyJS5vcGVuc2hlbGwudjEuUGVlckNvbmZpZ1NhbmRib3hUYXJnZXRIABITCgl3b3Jrc3BhY2UYAiABKAlIABIXCg1hbGxfY29ubmVjdGVkGAMgASgISAASOgoIcHJvdmlkZXIYBCABKAsyJi5vcGVuc2hlbGwudjEuUGVlckNvbmZpZ1Byb3ZpZGVyVGFyZ2V0SABCBwoFc2NvcGUiNQoeUGVlck5vdGlmeUNvbmZpZ1VwZGF0ZVJlc3BvbnNlEhMKC3N0YWxlX293bmVyGAEgASgIIkUKD1JlbGF5T3BlblJlc3VsdBISCgpjaGFubmVsX2lkGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSDQoFZXJyb3IYAyABKAkiMAoKUmVsYXlDbG9zZRISCgpjaGFubmVsX2lkGAEgASgJEg4KBnJlYXNvbhgCIAEoCSJQCg9MN1JlcXVlc3RTYW1wbGUSDgoGbWV0aG9kGAEgASgJEgwKBHBhdGgYAiABKAkSEAoIZGVjaXNpb24YAyABKAkSDQoFY291bnQYBCABKA0i+gMKDURlbmlhbFN1bW1hcnkSEgoKc2FuZGJveF9pZBgBIAEoCRIMCgRob3N0GAIgASgJEgwKBHBvcnQYAyABKA0SDgoGYmluYXJ5GAQgASgJEhEKCWFuY2VzdG9ycxgFIAMoCRITCgtkZW55X3JlYXNvbhgGIAEoCRIzCg9maXJzdF9zZWVuX3RpbWUYayABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmxhc3Rfc2Vlbl90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVjb3VudBgJIAEoDRIYChBzdXBwcmVzc2VkX2NvdW50GAogASgNEhMKC3RvdGFsX2NvdW50GAsgASgNEhcKD3NhbXBsZV9jbWRsaW5lcxgMIAMoCRIVCg1iaW5hcnlfc2hhMjU2GA0gASgJEhIKCnBlcnNpc3RlbnQYDiABKAgSFAoMZGVuaWFsX3N0YWdlGA8gASgJEjkKEmw3X3JlcXVlc3Rfc2FtcGxlcxgQIAMoCzIdLm9wZW5zaGVsbC52MS5MN1JlcXVlc3RTYW1wbGUSHAoUbDdfaW5zcGVjdGlvbl9hY3RpdmUYESABKAhKBAgHEAhKBAgIEAlSDWZpcnN0X3NlZW5fbXNSDGxhc3Rfc2Vlbl9tcyI8ChBEZW5pYWxHcm91cENvdW50EhIKCmRlbnlfZ3JvdXAYASABKAkSFAoMZGVuaWVkX2NvdW50GAIgASgNIo8BChZOZXR3b3JrQWN0aXZpdHlTdW1tYXJ5Eh4KFm5ldHdvcmtfYWN0aXZpdHlfY291bnQYASABKA0SGwoTZGVuaWVkX2FjdGlvbl9jb3VudBgCIAEoDRI4ChBkZW5pYWxzX2J5X2dyb3VwGAMgAygLMh4ub3BlbnNoZWxsLnYxLkRlbmlhbEdyb3VwQ291bnQijAcKC1BvbGljeUNodW5rEgoKAmlkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIRCglydWxlX25hbWUYAyABKAkSPgoNcHJvcG9zZWRfcnVsZRgEIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEhEKCXJhdGlvbmFsZRgFIAEoCRIWCg5zZWN1cml0eV9ub3RlcxgGIAEoCRISCgpjb25maWRlbmNlGAcgASgCEhoKEmRlbmlhbF9zdW1tYXJ5X2lkcxgIIAMoCRIwCgxjcmVhdGVkX3RpbWUYbSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGRlY2lkZWRfdGltZRhuIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFc3RhZ2UYCyABKAkSGwoTc3VwZXJzZWRlc19jaHVua19pZBgMIAEoCRIRCgloaXRfY291bnQYDSABKAUSMwoPZmlyc3Rfc2Vlbl90aW1lGHIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5sYXN0X3NlZW5fdGltZRhzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGYmluYXJ5GBAgASgJEhkKEXZhbGlkYXRpb25fcmVzdWx0GBEgASgJEhgKEHJlamVjdGlvbl9yZWFzb24YEiABKAkSGQoRYXBwbGljYXRpb25fZXJyb3IYEyABKAkSFAoMcmV2aWV3X3Rva2VuGBQgASgJEiUKHWN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBUgASgJEicKH2NhbmRpZGF0ZV9lZmZlY3RpdmVfcG9saWN5X2hhc2gYFiABKAkSRQoYY3VycmVudF9lZmZlY3RpdmVfcG9saWN5GBcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHChpjYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeRgYIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3lKBAgJEApKBAgKEAtKBAgOEA9KBAgPEBBSDWNyZWF0ZWRfYXRfbXNSDWRlY2lkZWRfYXRfbXNSDWZpcnN0X3NlZW5fbXNSDGxhc3Rfc2Vlbl9tcyJmChFEcmFmdFBvbGljeVVwZGF0ZRIVCg1kcmFmdF92ZXJzaW9uGAEgASgEEhIKCm5ld19jaHVua3MYAiABKA0SFQoNdG90YWxfcGVuZGluZxgDIAEoDRIPCgdzdW1tYXJ5GAQgASgJIrQCChtTdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAYgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIuCglzdW1tYXJpZXMYASADKAsyGy5vcGVuc2hlbGwudjEuRGVuaWFsU3VtbWFyeRIyCg9wcm9wb3NlZF9jaHVua3MYAiADKAsyGS5vcGVuc2hlbGwudjEuUG9saWN5Q2h1bmsSFQoNYW5hbHlzaXNfbW9kZRgDIAEoCRIMCgRuYW1lGAQgASgJEkgKGm5ldHdvcmtfYWN0aXZpdHlfc3VtbWFyaWVzGAUgAygLMiQub3BlbnNoZWxsLnYxLk5ldHdvcmtBY3Rpdml0eVN1bW1hcnkihwEKHFN1Ym1pdFBvbGljeUFuYWx5c2lzUmVzcG9uc2USFwoPYWNjZXB0ZWRfY2h1bmtzGAEgASgNEhcKD3JlamVjdGVkX2NodW5rcxgCIAEoDRIZChFyZWplY3Rpb25fcmVhc29ucxgDIAMoCRIaChJhY2NlcHRlZF9jaHVua19pZHMYBCADKAkigwEKFUdldERyYWZ0UG9saWN5UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhUKDXN0YXR1c19maWx0ZXIYAiABKAkSDwoHc2FuZGJveBgBIAEoCSLGAQoWR2V0RHJhZnRQb2xpY3lSZXNwb25zZRIpCgZjaHVua3MYASADKAsyGS5vcGVuc2hlbGwudjEuUG9saWN5Q2h1bmsSFwoPcm9sbGluZ19zdW1tYXJ5GAIgASgJEhUKDWRyYWZ0X3ZlcnNpb24YAyABKAQSNgoSbGFzdF9hbmFseXplZF90aW1lGGggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAQQBVITbGFzdF9hbmFseXplZF9hdF9tcyKrAQoYQXBwcm92ZURyYWZ0Q2h1bmtSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIY2h1bmtfaWQYAiABKAkSFAoMcmV2aWV3X3Rva2VuGAQgASgJEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgFIAEoCSJIChlBcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJIqQBChdSZWplY3REcmFmdENodW5rUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCGNodW5rX2lkGAIgASgJEg4KBnJlYXNvbhgDIAEoCRIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBSABKAkiGgoYUmVqZWN0RHJhZnRDaHVua1Jlc3BvbnNlIjwKEkRyYWZ0Q2h1bmtBcHByb3ZhbBIQCghjaHVua19pZBgBIAEoCRIUCgxyZXZpZXdfdG9rZW4YAiABKAki3gEKHEFwcHJvdmVBbGxEcmFmdENodW5rc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIgChhpbmNsdWRlX3NlY3VyaXR5X2ZsYWdnZWQYAiABKAgSMwoJYXBwcm92YWxzGAMgAygLMiAub3BlbnNoZWxsLnYxLkRyYWZ0Q2h1bmtBcHByb3ZhbBIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBSABKAkifQodQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVzcG9uc2USFgoOcG9saWN5X3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkSFwoPY2h1bmtzX2FwcHJvdmVkGAMgASgNEhYKDmNodW5rc19za2lwcGVkGAQgASgNItIBChVFZGl0RHJhZnRDaHVua1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghjaHVua19pZBgCIAEoCRI+Cg1wcm9wb3NlZF9ydWxlGAMgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIhgKFkVkaXREcmFmdENodW5rUmVzcG9uc2UikgEKFVVuZG9EcmFmdENodW5rUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCGNodW5rX2lkGAIgASgJEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgEIAEoCSJFChZVbmRvRHJhZnRDaHVua1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJIoIBChdDbGVhckRyYWZ0Q2h1bmtzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSIyChhDbGVhckRyYWZ0Q2h1bmtzUmVzcG9uc2USFgoOY2h1bmtzX2NsZWFyZWQYASABKA0ibQoWR2V0RHJhZnRIaXN0b3J5UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkikgEKEURyYWZ0SGlzdG9yeUVudHJ5Ei4KCmV2ZW50X3RpbWUYZSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmV2ZW50X3R5cGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSEAoIY2h1bmtfaWQYBCABKAlKBAgBEAJSDHRpbWVzdGFtcF9tcyJLChdHZXREcmFmdEhpc3RvcnlSZXNwb25zZRIwCgdlbnRyaWVzGAEgAygLMh8ub3BlbnNoZWxsLnYxLkRyYWZ0SGlzdG9yeUVudHJ5IqsBChZDcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkSQAoGbGFiZWxzGAIgAygLMjAub3BlbnNoZWxsLnYxLkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QuTGFiZWxzRW50cnkSEgoKcmVxdWVzdF9pZBgDIAEoCRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIk8KF0NyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlEjQKCXdvcmtzcGFjZRgBIAEoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlIiMKE0dldFdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCSJMChRHZXRXb3Jrc3BhY2VSZXNwb25zZRI0Cgl3b3Jrc3BhY2UYASABKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSJWChVMaXN0V29ya3NwYWNlc1JlcXVlc3QSEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkiaAoWTGlzdFdvcmtzcGFjZXNSZXNwb25zZRI1Cgp3b3Jrc3BhY2VzGAEgAygLMiEub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2USFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIlEKFkRlbGV0ZVdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCRIVCg1hbGxvd19taXNzaW5nGAIgASgIEhIKCnJlcXVlc3RfaWQYAyABKAkiWAoXRGVsZXRlV29ya3NwYWNlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQijQEKD1dvcmtzcGFjZU1lbWJlchI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCRIpCgRyb2xlGAMgASgOMhsub3BlbnNoZWxsLnYxLldvcmtzcGFjZVJvbGUiuQEKGUFkZFdvcmtzcGFjZU1lbWJlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAEgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCRIpCgRyb2xlGAMgASgOMhsub3BlbnNoZWxsLnYxLldvcmtzcGFjZVJvbGUSEgoKcmVxdWVzdF9pZBgEIAEoCSJLChpBZGRXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZRItCgZtZW1iZXIYASABKAsyHS5vcGVuc2hlbGwudjEuV29ya3NwYWNlTWVtYmVyIqgBChxSZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgBIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkSFQoNYWxsb3dfbWlzc2luZxgDIAEoCBISCgpyZXF1ZXN0X2lkGAQgASgJIl4KHVJlbW92ZVdvcmtzcGFjZU1lbWJlclJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdyZW1vdmVkIogBChtMaXN0V29ya3NwYWNlTWVtYmVyc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAEgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCSJnChxMaXN0V29ya3NwYWNlTWVtYmVyc1Jlc3BvbnNlEi4KB21lbWJlcnMYASADKAsyHS5vcGVuc2hlbGwudjEuV29ya3NwYWNlTWVtYmVyEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKRAQoaRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwSFAoMc2VydmljZV9uYW1lGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEjMKD2V4cGlyYXRpb25fdGltZRhnIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgDEARSDWV4cGlyZXNfYXRfbXMiiAEKE0VuZHBvaW50T2JzZXJ2YXRpb24SEwoLZW5kcG9pbnRfaWQYASABKAkSLAoGcmVzdWx0GAIgASgOMhwub3BlbnNoZWxsLnYxLkVuZHBvaW50UmVzdWx0Ei4KB2ZhaWx1cmUYAyABKAsyHS5vcGVuc2hlbGwudjEuRW5kcG9pbnRGYWlsdXJlIrECChtSZXBvcnRFbmRwb2ludFN0YXR1c1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRITCgtwb2xpY3lfaGFzaBgCIAEoCRIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YAyABKAQSNwoMb2JzZXJ2YXRpb25zGAQgAygLMiEub3BlbnNoZWxsLnYxLkVuZHBvaW50T2JzZXJ2YXRpb24SHQoVb2JzZXJ2ZWRfZW5kcG9pbnRfaWRzGAUgAygJEh0KFXN1cGVydmlzb3Jfc2Vzc2lvbl9pZBgGIAEoCRIXCg9yZXBvcnRfc2VxdWVuY2UYByABKAQSOgoSdG9rZW5fZ3JhbnRfc3RhdHVzGAggASgLMh4ub3BlbnNoZWxsLnYxLlRva2VuR3JhbnRTdGF0dXMiVAoQVG9rZW5HcmFudFN0YXR1cxJACgxsYXN0X2ZhaWx1cmUYASABKAsyKi5vcGVuc2hlbGwudjEuVG9rZW5HcmFudEZhaWx1cmVPYnNlcnZhdGlvbiKCAQocVG9rZW5HcmFudEZhaWx1cmVPYnNlcnZhdGlvbhIYChBkZXN0aW5hdGlvbl9ob3N0GAEgASgJEhgKEGRlc3RpbmF0aW9uX3BvcnQYAiABKA0SLgoHZmFpbHVyZRgDIAEoCzIdLm9wZW5zaGVsbC52MS5FbmRwb2ludEZhaWx1cmUiHgocUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXNwb25zZSKIAgoORW5kcG9pbnRTdGF0dXMSEwoLZW5kcG9pbnRfaWQYASABKAkSDAoEaG9zdBgCIAEoCRINCgVwb3J0cxgDIAMoDRIMCgRwYXRoGAQgASgJEjEKC2xhc3RfcmVzdWx0GAUgASgOMhwub3BlbnNoZWxsLnYxLkVuZHBvaW50UmVzdWx0EjYKEmxhc3RfcmVwb3J0ZWRfdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoMbGFzdF9mYWlsdXJlGAcgASgLMh0ub3BlbnNoZWxsLnYxLkVuZHBvaW50RmFpbHVyZUoECAYQB1IQbGFzdF9yZXBvcnRlZF9hdCK7BQoTU2FuZGJveFByb3Zpc2lvbmluZxISCgphdHRlbXB0X2lkGAEgASgJEh8KF2NvbmZpZ3VyYXRpb25fY2hhbmdlX2lkGAIgASgJEj0KGWNvbmZpZ3VyYXRpb25fY2hhbmdlX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKFGZpcnN0X3JlamVjdGlvbl90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghkZWFkbGluZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMdGltZW91dF90aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZjbGVhbnVwX2NvbXBsZXRlZF90aW1lGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1jbGVhbnVwX2Vycm9yGAggASgJEjYKEmNsZWFudXBfcmV0cnlfdGltZRgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASHAoUYXR0YWNobWVudF9jaGFuZ2VfaWQYCiABKAkSOgoWYXR0YWNobWVudF9jaGFuZ2VfdGltZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoUcHJlcGFyYXRpb25fZGVhZGxpbmUYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKFGFkbWlzc2lvbl9zdGFydF90aW1lGA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIgChhkcml2ZXJfb3BlcmF0aW9uX3BlbmRpbmcYDiABKAgSGwoTZHJpdmVyX29wZXJhdGlvbl9pZBgPIAEoCSKCAQoWU2FuZGJveFNlcnZpY2VFeHBvc3VyZRIPCgdzZXJ2aWNlGAEgASgJEhMKC3RhcmdldF9wb3J0GAIgASgNEkIKEmF1dGhvcml6YXRpb25fbW9kZRgDIAEoDjImLm9wZW5zaGVsbC52MS5TZXJ2aWNlQXV0aG9yaXphdGlvbk1vZGUirQIKD0VuZHBvaW50RmFpbHVyZRIzCgZkb21haW4YASABKA4yIy5vcGVuc2hlbGwudjEuRW5kcG9pbnRGYWlsdXJlRG9tYWluEgwKBGNvZGUYAiABKAkSTgoPcmVjb3ZlcnlfYWN0aW9uGAMgASgOMjUub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hSZWNvdmVyeUFjdGlvbhIQCghwcm92aWRlchgEIAEoCRIWCg5jcmVkZW50aWFsX2tleRgFIAEoCRINCgVzdGFnZRgGIAEoCRIhChR1cHN0cmVhbV9odHRwX3N0YXR1cxgHIAEoDUgAiAEBEhIKCnJlcXVlc3RfaWQYCCABKAlCFwoVX3Vwc3RyZWFtX2h0dHBfc3RhdHVzKsoBCg1FeHRlbnNpb25LaW5kEh4KGkVYVEVOU0lPTl9LSU5EX1VOU1BFQ0lGSUVEEAASIQodRVhURU5TSU9OX0tJTkRfQ09NUFVURV9EUklWRVIQARIkCiBFWFRFTlNJT05fS0lORF9DUkVERU5USUFMX0RSSVZFUhACEiYKIkVYVEVOU0lPTl9LSU5EX0dBVEVXQVlfSU5URVJDRVBUT1IQAxIoCiRFWFRFTlNJT05fS0lORF9TVVBFUlZJU09SX01JRERMRVdBUkUQBCqBAwoMU2FuZGJveFBoYXNlEh0KGVNBTkRCT1hfUEhBU0VfVU5TUEVDSUZJRUQQABIeChpTQU5EQk9YX1BIQVNFX1BST1ZJU0lPTklORxABEhcKE1NBTkRCT1hfUEhBU0VfUkVBRFkQAhIXChNTQU5EQk9YX1BIQVNFX0VSUk9SEAMSGgoWU0FOREJPWF9QSEFTRV9ERUxFVElORxAEEhkKFVNBTkRCT1hfUEhBU0VfVU5LTk9XThAFEhoKFlNBTkRCT1hfUEhBU0VfU1RPUFBJTkcQBhIZChVTQU5EQk9YX1BIQVNFX1NUT1BQRUQQBxIaChZTQU5EQk9YX1BIQVNFX1NUQVJUSU5HEAgSGwoXU0FOREJPWF9QSEFTRV9DT01QTEVURUQQCRIcChhTQU5EQk9YX1BIQVNFX1NVU1BFTkRJTkcQCxIbChdTQU5EQk9YX1BIQVNFX1NVU1BFTkRFRBAMIgQIChAKKhhTQU5EQk9YX1BIQVNFX1JFU1RBUlRJTkcqywEKFFByb3ZpZGVyTXV0YXRpb25LaW5kEiYKIlBST1ZJREVSX01VVEFUSU9OX0tJTkRfVU5TUEVDSUZJRUQQABIhCh1QUk9WSURFUl9NVVRBVElPTl9LSU5EX0FUVEFDSBABEiEKHVBST1ZJREVSX01VVEFUSU9OX0tJTkRfREVUQUNIEAISIQodUFJPVklERVJfTVVUQVRJT05fS0lORF9VUERBVEUQAxIiCh5QUk9WSURFUl9NVVRBVElPTl9LSU5EX09CU0VSVkUQBCrPAgoWUHJvdmlkZXJSZWFkaW5lc3NTdGF0ZRIoCiRQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfVU5TUEVDSUZJRUQQABImCiJQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfUEVSU0lTVEVEEAESJAogUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1BFTkRJTkcQAhIiCh5QUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfUkVBRFkQAxIlCiFQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfV0lUSEhFTEQQBBIkCiBQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfUkVWT0tFRBAFEiMKH1BST1ZJREVSX1JFQURJTkVTU19TVEFURV9GQUlMRUQQBhInCiNQUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfU1VQRVJTRURFRBAHKtoGChdQcm92aWRlclJlYWRpbmVzc1JlYXNvbhIpCiVQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1VOU1BFQ0lGSUVEEAASNAowUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9XQUlUSU5HX0ZPUl9TVVBFUlZJU09SEAESNQoxUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9XQUlUSU5HX0ZPUl9DUkVERU5USUFMUxACEjAKLFBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fV0FJVElOR19GT1JfUE9MSUNZEAMSMQotUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9XQUlUSU5HX0ZPUl9QUk9DRVNTEAQSNAowUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9VTlNVUFBPUlRFRF9TVVBFUlZJU09SEAUSMgouUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9DUkVERU5USUFMU19XSVRISEVMRBAGEjcKM1BST1ZJREVSX1JFQURJTkVTU19SRUFTT05fQ1JFREVOVElBTF9JTlNUQUxMX0ZBSUxFRBAHEjYKMlBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fUE9MSUNZX0FDVElWQVRJT05fRkFJTEVEEAgSNAowUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9QUk9DRVNTX0lOU1RBTExfRkFJTEVEEAkSNQoxUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9TVVBFUlZJU09SX0RJU0NPTk5FQ1RFRBAKEjYKMlBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fU1VQRVJWSVNPUl9MRUFTRV9FWFBJUkVEEAsSMwovUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9ERVNJUkVEX1NUQVRFX0NIQU5HRUQQDBIwCixQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX0NSRURFTlRJQUxfRVhQSVJFRBANEioKJlBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fTE9DQUxfUE9MSUNZEA4SLworUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9TTkFQU0hPVF9NSVNNQVRDSBAPKoMBCg9Db25maWdDb21wb25lbnQSIAocQ09ORklHX0NPTVBPTkVOVF9VTlNQRUNJRklFRBAAEiMKH0NPTkZJR19DT01QT05FTlRfU0FOREJPWF9DT05GSUcQARIpCiVDT05GSUdfQ09NUE9ORU5UX1BST1ZJREVSX0VOVklST05NRU5UEAIqjQMKEkNvbmZpZ0FwcGx5T3V0Y29tZRIkCiBDT05GSUdfQVBQTFlfT1VUQ09NRV9VTlNQRUNJRklFRBAAEiAKHENPTkZJR19BUFBMWV9PVVRDT01FX0FQUExJRUQQARIqCiZDT05GSUdfQVBQTFlfT1VUQ09NRV9JR05PUkVEX0RVUExJQ0FURRACEiYKIkNPTkZJR19BUFBMWV9PVVRDT01FX0lHTk9SRURfU1RBTEUQAxIwCixDT05GSUdfQVBQTFlfT1VUQ09NRV9SRVRBSU5FRF9MT0NBTF9PVkVSUklERRAEEiEKHUNPTkZJR19BUFBMWV9PVVRDT01FX0RFR1JBREVEEAUSOAo0Q09ORklHX0FQUExZX09VVENPTUVfRkFJTEVEX1JFVEFJTkVEX0xBU1RfS05PV05fR09PRBAGEiYKIkNPTkZJR19BUFBMWV9PVVRDT01FX0ZBSUxFRF9DTE9TRUQQBxIkCiBDT05GSUdfQVBQTFlfT1VUQ09NRV9VTlNVUFBPUlRFRBAIKtICChpDb25maWdVcGRhdGVPcGVyYXRpb25TdGF0ZRItCilDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9VTlNQRUNJRklFRBAAEikKJUNPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX1BFTkRJTkcQARIpCiVDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9BUFBMSUVEEAISKgomQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfSU5BQ1RJVkUQAxIoCiRDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9GQUlMRUQQBBIsCihDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9TVVBFUlNFREVEEAUSKwonQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfQ0FOQ0VMTEVEEAYqzgEKIFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRUeXBlEjQKMFBST1ZJREVSX0NSRURFTlRJQUxfVE9LRU5fR1JBTlRfVFlQRV9VTlNQRUNJRklFRBAAEjsKN1BST1ZJREVSX0NSRURFTlRJQUxfVE9LRU5fR1JBTlRfVFlQRV9DTElFTlRfQ1JFREVOVElBTFMQARI3CjNQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfVE9LRU5fRVhDSEFOR0UQAirDAwohUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5EjQKMFBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEi8KK1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9TVEFUSUMQARIxCi1QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfRVhURVJOQUwQAhI9CjlQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfT0FVVEgyX1JFRlJFU0hfVE9LRU4QAxJCCj5QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfT0FVVEgyX0NMSUVOVF9DUkVERU5USUFMUxAEEkMKP1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9HT09HTEVfU0VSVklDRV9BQ0NPVU5UX0pXVBAFEjwKOFBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9BV1NfU1RTX0FTU1VNRV9ST0xFEAYq2wIKF1Byb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EikKJVBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfVU5TUEVDSUZJRUQQABIjCh9QUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX09USEVSEAESJwojUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9JTkZFUkVOQ0UQAhIjCh9QUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX0FHRU5UEAMSLAooUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9TT1VSQ0VfQ09OVFJPTBAEEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfTUVTU0FHSU5HEAUSIgoeUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9EQVRBEAYSJwojUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9LTk9XTEVER0UQByreAQomUHJvdmlkZXJFbnZpcm9ubWVudFZhbHVlQ2xhc3NpZmljYXRpb24SOQo1UFJPVklERVJfRU5WSVJPTk1FTlRfVkFMVUVfQ0xBU1NJRklDQVRJT05fVU5TUEVDSUZJRUQQABI4CjRQUk9WSURFUl9FTlZJUk9OTUVOVF9WQUxVRV9DTEFTU0lGSUNBVElPTl9OT05fU0VDUkVUEAESPwo7UFJPVklERVJfRU5WSVJPTk1FTlRfVkFMVUVfQ0xBU1NJRklDQVRJT05fU1RBVElDX0NSRURFTlRJQUwQAirPAQobQ29uZmlndXJhdGlvbkFkbWlzc2lvblN0YXRlEi0KKUNPTkZJR1VSQVRJT05fQURNSVNTSU9OX1NUQVRFX1VOU1BFQ0lGSUVEEAASKQolQ09ORklHVVJBVElPTl9BRE1JU1NJT05fU1RBVEVfUEVORElORxABEioKJkNPTkZJR1VSQVRJT05fQURNSVNTSU9OX1NUQVRFX0FDQ0VQVEVEEAISKgomQ09ORklHVVJBVElPTl9BRE1JU1NJT05fU1RBVEVfUkVKRUNURUQQAyqaAQoMUG9saWN5U3RhdHVzEh0KGVBPTElDWV9TVEFUVVNfVU5TUEVDSUZJRUQQABIZChVQT0xJQ1lfU1RBVFVTX1BFTkRJTkcQARIYChRQT0xJQ1lfU1RBVFVTX0xPQURFRBACEhgKFFBPTElDWV9TVEFUVVNfRkFJTEVEEAMSHAoYUE9MSUNZX1NUQVRVU19TVVBFUlNFREVEEAQqhgEKDVNlcnZpY2VTdGF0dXMSHgoaU0VSVklDRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZTRVJWSUNFX1NUQVRVU19IRUFMVEhZEAESGwoXU0VSVklDRV9TVEFUVVNfREVHUkFERUQQAhIcChhTRVJWSUNFX1NUQVRVU19VTkhFQUxUSFkQAypiCg1Xb3Jrc3BhY2VSb2xlEh4KGldPUktTUEFDRV9ST0xFX1VOU1BFQ0lGSUVEEAASFwoTV09SS1NQQUNFX1JPTEVfVVNFUhABEhgKFFdPUktTUEFDRV9ST0xFX0FETUlOEAIq2gIKJ1Byb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hSZWNvdmVyeUFjdGlvbhI7CjdQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX1VOU1BFQ0lGSUVEEAASNQoxUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9SRVRSWRABEjsKN1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9SRUNPVkVSWV9BQ1RJT05fUkVBVVRIT1JJWkUQAhJBCj1QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX0ZJWF9DT05GSUdVUkFUSU9OEAMSOwo3UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9JTlZFU1RJR0FURRAEKqoBChRTYW5kYm94UmVzdGFydFBvbGljeRImCiJTQU5EQk9YX1JFU1RBUlRfUE9MSUNZX1VOU1BFQ0lGSUVEEAASIAocU0FOREJPWF9SRVNUQVJUX1BPTElDWV9ORVZFUhABEiUKIVNBTkRCT1hfUkVTVEFSVF9QT0xJQ1lfT05fRkFJTFVSRRACEiEKHVNBTkRCT1hfUkVTVEFSVF9QT0xJQ1lfQUxXQVlTEAMqlwEKD0RlbGV0aW9uT3V0Y29tZRIgChxERUxFVElPTl9PVVRDT01FX1VOU1BFQ0lGSUVEEAASHgoaREVMRVRJT05fT1VUQ09NRV9DT01QTEVURUQQARIdChlERUxFVElPTl9PVVRDT01FX0FDQ0VQVEVEEAISIwofREVMRVRJT05fT1VUQ09NRV9BTFJFQURZX0FCU0VOVBADKsMCCg5FbmRwb2ludFJlc3VsdBIfChtFTkRQT0lOVF9SRVNVTFRfVU5TUEVDSUZJRUQQABIoCiRFTkRQT0lOVF9SRVNVTFRfTk9fT0JTRVJWRURfRVhDSEFOR0UQARIqCiZFTkRQT0lOVF9SRVNVTFRfSFRUUF9SRVNQT05TRV9SRUNFSVZFRBACEiEKHUVORFBPSU5UX1JFU1VMVF9QT0xJQ1lfREVOSUVEEAMSKgomRU5EUE9JTlRfUkVTVUxUX0NSRURFTlRJQUxfVU5BVkFJTEFCTEUQBBIeChpFTkRQT0lOVF9SRVNVTFRfVExTX0ZBSUxFRBAFEiQKIEVORFBPSU5UX1JFU1VMVF9UUkFOU1BPUlRfRkFJTEVEEAYSJQohRU5EUE9JTlRfUkVTVUxUX1VQU1RSRUFNX1JFSkVDVEVEEAcqnwEKGFNlcnZpY2VBdXRob3JpemF0aW9uTW9kZRIqCiZTRVJWSUNFX0FVVEhPUklaQVRJT05fTU9ERV9VTlNQRUNJRklFRBAAEiQKIFNFUlZJQ0VfQVVUSE9SSVpBVElPTl9NT0RFX1NUUklQEAESMQotU0VSVklDRV9BVVRIT1JJWkFUSU9OX01PREVfQkVBUkVSX1BBU1NUSFJPVUdIEAIqaQoVRW5kcG9pbnRGYWlsdXJlRG9tYWluEicKI0VORFBPSU5UX0ZBSUxVUkVfRE9NQUlOX1VOU1BFQ0lGSUVEEAASJwojRU5EUE9JTlRfRkFJTFVSRV9ET01BSU5fVE9LRU5fR1JBTlQQATKmWQoJT3BlblNoZWxsEloKBkhlYWx0aBIbLm9wZW5zaGVsbC52MS5IZWFsdGhSZXF1ZXN0Ghwub3BlbnNoZWxsLnYxLkhlYWx0aFJlc3BvbnNlIhWCtRgRCg91bmF1dGhlbnRpY2F0ZWQSaQoOR2V0Q3VycmVudFVzZXISIy5vcGVuc2hlbGwudjEuR2V0Q3VycmVudFVzZXJSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldEN1cnJlbnRVc2VyUmVzcG9uc2UiDIK1GAgKBmJlYXJlchKGAQoOR2V0R2F0ZXdheUluZm8SIy5vcGVuc2hlbGwudjEuR2V0R2F0ZXdheUluZm9SZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldEdhdGV3YXlJbmZvUmVzcG9uc2UiKYK1GCUKBmJlYXJlchoOcGxhdGZvcm1fYWRtaW4iC2NvbmZpZzpyZWFkEnUKDUNyZWF0ZVNhbmRib3gSIi5vcGVuc2hlbGwudjEuQ3JlYXRlU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSkwEKFUJlZ2luUm9vdGZzVGFyU3RhZ2luZxIqLm9wZW5zaGVsbC52MS5CZWdpblJvb3Rmc1RhclN0YWdpbmdSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkJlZ2luUm9vdGZzVGFyU3RhZ2luZ1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSbgoKR2V0U2FuZGJveBIfLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnoKDUxpc3RTYW5kYm94ZXMSIi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hlc1JlcXVlc3QaIy5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKOAQoVQ3JlYXRlU2FuZGJveFRlbXBsYXRlEioub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hUZW1wbGF0ZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2FuZGJveFRlbXBsYXRlUmVzcG9uc2UiIoK1GB4KBmJlYXJlchIFYWRtaW4iDXNhbmRib3g6d3JpdGUShgEKEkdldFNhbmRib3hUZW1wbGF0ZRInLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94VGVtcGxhdGVSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZVJlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKPAQoUTGlzdFNhbmRib3hUZW1wbGF0ZXMSKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94VGVtcGxhdGVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEpQBChVEZWxldGVTYW5kYm94VGVtcGxhdGUSKi5vcGVuc2hlbGwudjEuRGVsZXRlU2FuZGJveFRlbXBsYXRlUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94VGVtcGxhdGVSZXNwb25zZSIigrUYHgoGYmVhcmVyEgVhZG1pbiINc2FuZGJveDp3cml0ZRKPAQoUTGlzdFNhbmRib3hQcm92aWRlcnMSKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQcm92aWRlcnNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEpMBChVBdHRhY2hTYW5kYm94UHJvdmlkZXISKi5vcGVuc2hlbGwudjEuQXR0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEpMBChVEZXRhY2hTYW5kYm94UHJvdmlkZXISKi5vcGVuc2hlbGwudjEuRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEpsBChhHZXRTYW5kYm94UHJvdmlkZXJTdGF0dXMSLS5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyU3RhdHVzUmVxdWVzdBouLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSewoNRGVsZXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVxdWVzdBojLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJxCgtTdG9wU2FuZGJveBIgLm9wZW5zaGVsbC52MS5TdG9wU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUScwoMU3RhcnRTYW5kYm94EiEub3BlbnNoZWxsLnYxLlN0YXJ0U2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSdwoOU3VzcGVuZFNhbmRib3gSIy5vcGVuc2hlbGwudjEuU3VzcGVuZFNhbmRib3hSZXF1ZXN0Gh0ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnUKDVJlc3VtZVNhbmRib3gSIi5vcGVuc2hlbGwudjEuUmVzdW1lU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEENyZWF0ZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSfQoNRXhwb3NlU2VydmljZRIiLm9wZW5zaGVsbC52MS5FeHBvc2VTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnYKCkdldFNlcnZpY2USHy5vcGVuc2hlbGwudjEuR2V0U2VydmljZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEncKDExpc3RTZXJ2aWNlcxIhLm9wZW5zaGVsbC52MS5MaXN0U2VydmljZXNSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ7Cg1EZWxldGVTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEoQBChBSZXZva2VTc2hTZXNzaW9uEiUub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXF1ZXN0GiYub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnQKC0V4ZWNTYW5kYm94EiAub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94UmVxdWVzdBoeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV2ZW50IiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUwARJxCgpGb3J3YXJkVGNwEh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZRodLm9wZW5zaGVsbC52MS5UY3BGb3J3YXJkRnJhbWUiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESfwoWRXhlY1NhbmRib3hJbnRlcmFjdGl2ZRIeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveElucHV0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESegoOQ3JlYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuQ3JlYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEnIKC0dldFByb3ZpZGVyEiAub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVxdWVzdBoeLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSgwEKFkdldFByb3ZpZGVyQ3JlZGVudGlhbHMSKy5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJDcmVkZW50aWFsc1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJDcmVkZW50aWFsc1Jlc3BvbnNlIg6CtRgKCghvcGVyYXRvchJ7Cg1MaXN0UHJvdmlkZXJzEiIub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlcnNSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlcnNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEpABChRMaXN0UHJvdmlkZXJQcm9maWxlcxIpLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEocBChJHZXRQcm92aWRlclByb2ZpbGUSJy5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJQcm9maWxlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEpgBChZJbXBvcnRQcm92aWRlclByb2ZpbGVzEisub3BlbnNoZWxsLnYxLkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSmAEKFlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXMSKy5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKQAQoUTGludFByb3ZpZGVyUHJvZmlsZXMSKS5vcGVuc2hlbGwudjEuTGludFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpbnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBJ6Cg5VcGRhdGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5VcGRhdGVQcm92aWRlclJlcXVlc3QaHi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSnAEKGEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1cxItLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSngEKGENvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaBItLm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKeAQoYUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsEi0ub3BlbnNoZWxsLnYxLlJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlcXVlc3QaLi5vcGVuc2hlbGwudjEuUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpUBChVEZWxldGVQcm92aWRlclJlZnJlc2gSKi5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSgAEKDkRlbGV0ZVByb3ZpZGVyEiMub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVxdWVzdBokLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKVAQoVRGVsZXRlUHJvdmlkZXJQcm9maWxlEioub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpABChBHZXRTYW5kYm94Q29uZmlnEi0ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0U2FuZGJveENvbmZpZ1JlcXVlc3QaLi5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRTYW5kYm94Q29uZmlnUmVzcG9uc2UiHYK1GBkKBGR1YWwSBHVzZXIiC2NvbmZpZzpyZWFkEowBChBHZXRHYXRld2F5Q29uZmlnEi0ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0R2F0ZXdheUNvbmZpZ1JlcXVlc3QaLi5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRHYXRld2F5Q29uZmlnUmVzcG9uc2UiGYK1GBUKBmJlYXJlciILY29uZmlnOnJlYWQSdgoMVXBkYXRlQ29uZmlnEiEub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1JlcXVlc3QaIi5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVzcG9uc2UiH4K1GBsKBGR1YWwSBWFkbWluIgxjb25maWc6d3JpdGUSlQEKFkdldFNhbmRib3hQb2xpY3lTdGF0dXMSKy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFBvbGljeVN0YXR1c1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFBvbGljeVN0YXR1c1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKMAQoTTGlzdFNhbmRib3hQb2xpY2llcxIoLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFBvbGljaWVzUmVxdWVzdBopLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFBvbGljaWVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnYKElJlcG9ydFBvbGljeVN0YXR1cxInLm9wZW5zaGVsbC52MS5SZXBvcnRQb2xpY3lTdGF0dXNSZXF1ZXN0Gigub3BlbnNoZWxsLnYxLlJlcG9ydFBvbGljeVN0YXR1c1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnwKFFJlcG9ydEVuZHBvaW50U3RhdHVzEikub3BlbnNoZWxsLnYxLlJlcG9ydEVuZHBvaW50U3RhdHVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5SZXBvcnRFbmRwb2ludFN0YXR1c1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94EoUBChdSZXBvcnRQcm92aWRlclJlYWRpbmVzcxIsLm9wZW5zaGVsbC52MS5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1JlcXVlc3QaLS5vcGVuc2hlbGwudjEuUmVwb3J0UHJvdmlkZXJSZWFkaW5lc3NSZXNwb25zZSINgrUYCQoHc2FuZGJveBKOAQoaUmVwb3J0U2FuZGJveENvbmZpZ3VyYXRpb24SLy5vcGVuc2hlbGwudjEuUmVwb3J0U2FuZGJveENvbmZpZ3VyYXRpb25SZXF1ZXN0GjAub3BlbnNoZWxsLnYxLlJlcG9ydFNhbmRib3hDb25maWd1cmF0aW9uUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSlwEKHUdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50EjIub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVxdWVzdBozLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EpQBChxFeGNoYW5nZVByb3ZpZGVyU3ViamVjdFRva2VuEjEub3BlbnNoZWxsLnYxLkV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXF1ZXN0GjIub3BlbnNoZWxsLnYxLkV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXNwb25zZSINgrUYCQoHc2FuZGJveBJ9Cg5HZXRTYW5kYm94TG9ncxIjLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94TG9nc1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveExvZ3NSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSbwoPUHVzaFNhbmRib3hMb2dzEiQub3BlbnNoZWxsLnYxLlB1c2hTYW5kYm94TG9nc1JlcXVlc3QaJS5vcGVuc2hlbGwudjEuUHVzaFNhbmRib3hMb2dzUmVzcG9uc2UiDYK1GAkKB3NhbmRib3goARJlChFDb25uZWN0U3VwZXJ2aXNvchIfLm9wZW5zaGVsbC52MS5TdXBlcnZpc29yTWVzc2FnZRocLm9wZW5zaGVsbC52MS5HYXRld2F5TWVzc2FnZSINgrUYCQoHc2FuZGJveCgBMAESfwoVUmVwb3J0TWFpblByb2Nlc3NFeGl0Eioub3BlbnNoZWxsLnYxLlJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlcXVlc3QaKy5vcGVuc2hlbGwudjEuUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gShQEKF0ZpbmFsaXplTWFpblByb2Nlc3NFeGl0Eiwub3BlbnNoZWxsLnYxLkZpbmFsaXplTWFpblByb2Nlc3NFeGl0UmVxdWVzdBotLm9wZW5zaGVsbC52MS5GaW5hbGl6ZU1haW5Qcm9jZXNzRXhpdFJlc3BvbnNlIg2CtRgJCgdzYW5kYm94ElQKC1JlbGF5U3RyZWFtEhgub3BlbnNoZWxsLnYxLlJlbGF5RnJhbWUaGC5vcGVuc2hlbGwudjEuUmVsYXlGcmFtZSINgrUYCQoHc2FuZGJveCgBMAESVwoJUGVlclJlbGF5Ehwub3BlbnNoZWxsLnYxLlBlZXJSZWxheUZyYW1lGhwub3BlbnNoZWxsLnYxLlBlZXJSZWxheUZyYW1lIgqCtRgGCgRwZWVyKAEwARKGAQobUGVlclJlcG9ydFByb3ZpZGVyUmVhZGluZXNzEiwub3BlbnNoZWxsLnYxLlJlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVxdWVzdBotLm9wZW5zaGVsbC52MS5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1Jlc3BvbnNlIgqCtRgGCgRwZWVyEn0KGFBlZXJSZXBvcnRFbmRwb2ludFN0YXR1cxIpLm9wZW5zaGVsbC52MS5SZXBvcnRFbmRwb2ludFN0YXR1c1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXNwb25zZSIKgrUYBgoEcGVlchKJAQocUGVlckdldFNhbmRib3hQcm92aWRlclN0YXR1cxItLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlclN0YXR1c1Jlc3BvbnNlIgqCtRgGCgRwZWVyEn8KFlBlZXJOb3RpZnlDb25maWdVcGRhdGUSKy5vcGVuc2hlbGwudjEuUGVlck5vdGlmeUNvbmZpZ1VwZGF0ZVJlcXVlc3QaLC5vcGVuc2hlbGwudjEuUGVlck5vdGlmeUNvbmZpZ1VwZGF0ZVJlc3BvbnNlIgqCtRgGCgRwZWVyEncKDFdhdGNoU2FuZGJveBIhLm9wZW5zaGVsbC52MS5XYXRjaFNhbmRib3hSZXF1ZXN0GiAub3BlbnNoZWxsLnYxLlNhbmRib3hTdHJlYW1FdmVudCIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQwARJ8ChRTdWJtaXRQb2xpY3lBbmFseXNpcxIpLm9wZW5zaGVsbC52MS5TdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuU3VibWl0UG9saWN5QW5hbHlzaXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBJ6Cg5HZXREcmFmdFBvbGljeRIjLm9wZW5zaGVsbC52MS5HZXREcmFmdFBvbGljeVJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0RHJhZnRQb2xpY3lSZXNwb25zZSIdgrUYGQoEZHVhbBIEdXNlciILY29uZmlnOnJlYWQShwEKEUFwcHJvdmVEcmFmdENodW5rEiYub3BlbnNoZWxsLnYxLkFwcHJvdmVEcmFmdENodW5rUmVxdWVzdBonLm9wZW5zaGVsbC52MS5BcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUShAEKEFJlamVjdERyYWZ0Q2h1bmsSJS5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1JlcXVlc3QaJi5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSkwEKFUFwcHJvdmVBbGxEcmFmdENodW5rcxIqLm9wZW5zaGVsbC52MS5BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfgoORWRpdERyYWZ0Q2h1bmsSIy5vcGVuc2hlbGwudjEuRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkVkaXREcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ+Cg5VbmRvRHJhZnRDaHVuaxIjLm9wZW5zaGVsbC52MS5VbmRvRHJhZnRDaHVua1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuVW5kb0RyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEoQBChBDbGVhckRyYWZ0Q2h1bmtzEiUub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXF1ZXN0GiYub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEn8KD0dldERyYWZ0SGlzdG9yeRIkLm9wZW5zaGVsbC52MS5HZXREcmFmdEhpc3RvcnlSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLkdldERyYWZ0SGlzdG9yeVJlc3BvbnNlIh+CtRgbCgZiZWFyZXISBHVzZXIiC2NvbmZpZzpyZWFkEnMKEUlzc3VlU2FuZGJveFRva2VuEiYub3BlbnNoZWxsLnYxLklzc3VlU2FuZGJveFRva2VuUmVxdWVzdBonLm9wZW5zaGVsbC52MS5Jc3N1ZVNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnkKE1JlZnJlc2hTYW5kYm94VG9rZW4SKC5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlcXVlc3QaKS5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94Eo0BCg9DcmVhdGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEnkKDEdldFdvcmtzcGFjZRIhLm9wZW5zaGVsbC52MS5HZXRXb3Jrc3BhY2VSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkdldFdvcmtzcGFjZVJlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEn8KDkxpc3RXb3Jrc3BhY2VzEiMub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VzUmVxdWVzdBokLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlc1Jlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEo0BCg9EZWxldGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuRGVsZXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5EZWxldGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEo0BChJBZGRXb3Jrc3BhY2VNZW1iZXISJy5vcGVuc2hlbGwudjEuQWRkV29ya3NwYWNlTWVtYmVyUmVxdWVzdBooLm9wZW5zaGVsbC52MS5BZGRXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpYBChVSZW1vdmVXb3Jrc3BhY2VNZW1iZXISKi5vcGVuc2hlbGwudjEuUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpEBChRMaXN0V29ya3NwYWNlTWVtYmVycxIpLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlTWVtYmVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXNwb25zZSIigrUYHgoGYmVhcmVyEgR1c2VyIg53b3Jrc3BhY2U6cmVhZDKHAQoOU2FuZGJveFVwZGF0ZXMSdQoNVXBkYXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5VcGRhdGVTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZWIGcHJvdG8z", [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.
@@ -174,1096 +174,1111 @@ export const PlatformEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 31)
174
174
  * Use `create(CreateSandboxRequestSchema)` to create a new message.
175
175
  */
176
176
  export const CreateSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 32);
177
+ /**
178
+ * Describes the message openshell.v1.UpdateSandboxRequest.
179
+ * Use `create(UpdateSandboxRequestSchema)` to create a new message.
180
+ */
181
+ export const UpdateSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 33);
182
+ /**
183
+ * Describes the message openshell.v1.SandboxCommandUpdate.
184
+ * Use `create(SandboxCommandUpdateSchema)` to create a new message.
185
+ */
186
+ export const SandboxCommandUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 34);
187
+ /**
188
+ * Describes the message openshell.v1.SandboxMapUpdate.
189
+ * Use `create(SandboxMapUpdateSchema)` to create a new message.
190
+ */
191
+ export const SandboxMapUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 35);
177
192
  /**
178
193
  * Describes the message openshell.v1.CreateSandboxTemplateRequest.
179
194
  * Use `create(CreateSandboxTemplateRequestSchema)` to create a new message.
180
195
  */
181
- export const CreateSandboxTemplateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 33);
196
+ export const CreateSandboxTemplateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 36);
182
197
  /**
183
198
  * Describes the message openshell.v1.GetSandboxTemplateRequest.
184
199
  * Use `create(GetSandboxTemplateRequestSchema)` to create a new message.
185
200
  */
186
- export const GetSandboxTemplateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 34);
201
+ export const GetSandboxTemplateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 37);
187
202
  /**
188
203
  * Describes the message openshell.v1.ListSandboxTemplatesRequest.
189
204
  * Use `create(ListSandboxTemplatesRequestSchema)` to create a new message.
190
205
  */
191
- export const ListSandboxTemplatesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 35);
206
+ export const ListSandboxTemplatesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 38);
192
207
  /**
193
208
  * Describes the message openshell.v1.DeleteSandboxTemplateRequest.
194
209
  * Use `create(DeleteSandboxTemplateRequestSchema)` to create a new message.
195
210
  */
196
- export const DeleteSandboxTemplateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 36);
211
+ export const DeleteSandboxTemplateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 39);
197
212
  /**
198
213
  * Describes the message openshell.v1.SandboxTemplateResponse.
199
214
  * Use `create(SandboxTemplateResponseSchema)` to create a new message.
200
215
  */
201
- export const SandboxTemplateResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 37);
216
+ export const SandboxTemplateResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 40);
202
217
  /**
203
218
  * Describes the message openshell.v1.ListSandboxTemplatesResponse.
204
219
  * Use `create(ListSandboxTemplatesResponseSchema)` to create a new message.
205
220
  */
206
- export const ListSandboxTemplatesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 38);
221
+ export const ListSandboxTemplatesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 41);
207
222
  /**
208
223
  * Describes the message openshell.v1.DeleteSandboxTemplateResponse.
209
224
  * Use `create(DeleteSandboxTemplateResponseSchema)` to create a new message.
210
225
  */
211
- export const DeleteSandboxTemplateResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 39);
226
+ export const DeleteSandboxTemplateResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 42);
212
227
  /**
213
228
  * Describes the message openshell.v1.BeginRootfsTarStagingRequest.
214
229
  * Use `create(BeginRootfsTarStagingRequestSchema)` to create a new message.
215
230
  */
216
- export const BeginRootfsTarStagingRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 40);
231
+ export const BeginRootfsTarStagingRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 43);
217
232
  /**
218
233
  * Describes the message openshell.v1.BeginRootfsTarStagingResponse.
219
234
  * Use `create(BeginRootfsTarStagingResponseSchema)` to create a new message.
220
235
  */
221
- export const BeginRootfsTarStagingResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 41);
236
+ export const BeginRootfsTarStagingResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 44);
222
237
  /**
223
238
  * Describes the message openshell.v1.GetSandboxRequest.
224
239
  * Use `create(GetSandboxRequestSchema)` to create a new message.
225
240
  */
226
- export const GetSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 42);
241
+ export const GetSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 45);
227
242
  /**
228
243
  * Describes the message openshell.v1.ListSandboxesRequest.
229
244
  * Use `create(ListSandboxesRequestSchema)` to create a new message.
230
245
  */
231
- export const ListSandboxesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 43);
246
+ export const ListSandboxesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 46);
232
247
  /**
233
248
  * Describes the message openshell.v1.ListSandboxProvidersRequest.
234
249
  * Use `create(ListSandboxProvidersRequestSchema)` to create a new message.
235
250
  */
236
- export const ListSandboxProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 44);
251
+ export const ListSandboxProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 47);
237
252
  /**
238
253
  * Describes the message openshell.v1.AttachSandboxProviderRequest.
239
254
  * Use `create(AttachSandboxProviderRequestSchema)` to create a new message.
240
255
  */
241
- export const AttachSandboxProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 45);
256
+ export const AttachSandboxProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 48);
242
257
  /**
243
258
  * Describes the message openshell.v1.DetachSandboxProviderRequest.
244
259
  * Use `create(DetachSandboxProviderRequestSchema)` to create a new message.
245
260
  */
246
- export const DetachSandboxProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 46);
261
+ export const DetachSandboxProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 49);
247
262
  /**
248
263
  * Describes the message openshell.v1.DeleteSandboxRequest.
249
264
  * Use `create(DeleteSandboxRequestSchema)` to create a new message.
250
265
  */
251
- export const DeleteSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 47);
266
+ export const DeleteSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 50);
252
267
  /**
253
268
  * Describes the message openshell.v1.StopSandboxRequest.
254
269
  * Use `create(StopSandboxRequestSchema)` to create a new message.
255
270
  */
256
- export const StopSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 48);
271
+ export const StopSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 51);
257
272
  /**
258
273
  * Describes the message openshell.v1.StartSandboxRequest.
259
274
  * Use `create(StartSandboxRequestSchema)` to create a new message.
260
275
  */
261
- export const StartSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 49);
276
+ export const StartSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 52);
262
277
  /**
263
278
  * Describes the message openshell.v1.SuspendSandboxRequest.
264
279
  * Use `create(SuspendSandboxRequestSchema)` to create a new message.
265
280
  */
266
- export const SuspendSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 50);
281
+ export const SuspendSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 53);
267
282
  /**
268
283
  * Describes the message openshell.v1.ResumeSandboxRequest.
269
284
  * Use `create(ResumeSandboxRequestSchema)` to create a new message.
270
285
  */
271
- export const ResumeSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 51);
286
+ export const ResumeSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 54);
272
287
  /**
273
288
  * Describes the message openshell.v1.SandboxResponse.
274
289
  * Use `create(SandboxResponseSchema)` to create a new message.
275
290
  */
276
- export const SandboxResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 52);
291
+ export const SandboxResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 55);
277
292
  /**
278
293
  * Describes the message openshell.v1.ListSandboxesResponse.
279
294
  * Use `create(ListSandboxesResponseSchema)` to create a new message.
280
295
  */
281
- export const ListSandboxesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 53);
296
+ export const ListSandboxesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 56);
282
297
  /**
283
298
  * Describes the message openshell.v1.ListSandboxProvidersResponse.
284
299
  * Use `create(ListSandboxProvidersResponseSchema)` to create a new message.
285
300
  */
286
- export const ListSandboxProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 54);
301
+ export const ListSandboxProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 57);
287
302
  /**
288
303
  * Describes the message openshell.v1.AttachSandboxProviderResponse.
289
304
  * Use `create(AttachSandboxProviderResponseSchema)` to create a new message.
290
305
  */
291
- export const AttachSandboxProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 55);
306
+ export const AttachSandboxProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 58);
292
307
  /**
293
308
  * Describes the message openshell.v1.DetachSandboxProviderResponse.
294
309
  * Use `create(DetachSandboxProviderResponseSchema)` to create a new message.
295
310
  */
296
- export const DetachSandboxProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 56);
311
+ export const DetachSandboxProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 59);
297
312
  /**
298
313
  * Describes the message openshell.v1.ProviderDesiredIdentity.
299
314
  * Use `create(ProviderDesiredIdentitySchema)` to create a new message.
300
315
  */
301
- export const ProviderDesiredIdentitySchema = /*@__PURE__*/ messageDesc(file_openshell, 57);
316
+ export const ProviderDesiredIdentitySchema = /*@__PURE__*/ messageDesc(file_openshell, 60);
302
317
  /**
303
318
  * Describes the message openshell.v1.ConfigSnapshotRevision.
304
319
  * Use `create(ConfigSnapshotRevisionSchema)` to create a new message.
305
320
  */
306
- export const ConfigSnapshotRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 58);
321
+ export const ConfigSnapshotRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 61);
307
322
  /**
308
323
  * Describes the message openshell.v1.SandboxConfigRevision.
309
324
  * Use `create(SandboxConfigRevisionSchema)` to create a new message.
310
325
  */
311
- export const SandboxConfigRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 59);
326
+ export const SandboxConfigRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 62);
312
327
  /**
313
328
  * Describes the message openshell.v1.ConfigUpdateOperation.
314
329
  * Use `create(ConfigUpdateOperationSchema)` to create a new message.
315
330
  */
316
- export const ConfigUpdateOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 60);
331
+ export const ConfigUpdateOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 63);
317
332
  /**
318
333
  * Describes the message openshell.v1.ProviderMutationReceipt.
319
334
  * Use `create(ProviderMutationReceiptSchema)` to create a new message.
320
335
  */
321
- export const ProviderMutationReceiptSchema = /*@__PURE__*/ messageDesc(file_openshell, 61);
336
+ export const ProviderMutationReceiptSchema = /*@__PURE__*/ messageDesc(file_openshell, 64);
322
337
  /**
323
338
  * Describes the message openshell.v1.ProviderReadinessObservation.
324
339
  * Use `create(ProviderReadinessObservationSchema)` to create a new message.
325
340
  */
326
- export const ProviderReadinessObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 62);
341
+ export const ProviderReadinessObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 65);
327
342
  /**
328
343
  * Describes the message openshell.v1.ProviderReadinessStatus.
329
344
  * Use `create(ProviderReadinessStatusSchema)` to create a new message.
330
345
  */
331
- export const ProviderReadinessStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 63);
346
+ export const ProviderReadinessStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 66);
332
347
  /**
333
348
  * Describes the message openshell.v1.GetSandboxProviderStatusRequest.
334
349
  * Use `create(GetSandboxProviderStatusRequestSchema)` to create a new message.
335
350
  */
336
- export const GetSandboxProviderStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 64);
351
+ export const GetSandboxProviderStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 67);
337
352
  /**
338
353
  * Describes the message openshell.v1.GetSandboxProviderStatusResponse.
339
354
  * Use `create(GetSandboxProviderStatusResponseSchema)` to create a new message.
340
355
  */
341
- export const GetSandboxProviderStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 65);
356
+ export const GetSandboxProviderStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 68);
342
357
  /**
343
358
  * Describes the message openshell.v1.ReportProviderReadinessRequest.
344
359
  * Use `create(ReportProviderReadinessRequestSchema)` to create a new message.
345
360
  */
346
- export const ReportProviderReadinessRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 66);
361
+ export const ReportProviderReadinessRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 69);
347
362
  /**
348
363
  * Describes the message openshell.v1.ReportProviderReadinessResponse.
349
364
  * Use `create(ReportProviderReadinessResponseSchema)` to create a new message.
350
365
  */
351
- export const ReportProviderReadinessResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 67);
366
+ export const ReportProviderReadinessResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 70);
352
367
  /**
353
368
  * Describes the message openshell.v1.DeleteSandboxResponse.
354
369
  * Use `create(DeleteSandboxResponseSchema)` to create a new message.
355
370
  */
356
- export const DeleteSandboxResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 68);
371
+ export const DeleteSandboxResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 71);
357
372
  /**
358
373
  * Describes the message openshell.v1.CreateSshSessionRequest.
359
374
  * Use `create(CreateSshSessionRequestSchema)` to create a new message.
360
375
  */
361
- export const CreateSshSessionRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 69);
376
+ export const CreateSshSessionRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 72);
362
377
  /**
363
378
  * Describes the message openshell.v1.CreateSshSessionResponse.
364
379
  * Use `create(CreateSshSessionResponseSchema)` to create a new message.
365
380
  */
366
- export const CreateSshSessionResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 70);
381
+ export const CreateSshSessionResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 73);
367
382
  /**
368
383
  * Describes the message openshell.v1.ExposeServiceRequest.
369
384
  * Use `create(ExposeServiceRequestSchema)` to create a new message.
370
385
  */
371
- export const ExposeServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 71);
386
+ export const ExposeServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 74);
372
387
  /**
373
388
  * Describes the message openshell.v1.GetServiceRequest.
374
389
  * Use `create(GetServiceRequestSchema)` to create a new message.
375
390
  */
376
- export const GetServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 72);
391
+ export const GetServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 75);
377
392
  /**
378
393
  * Describes the message openshell.v1.ListServicesRequest.
379
394
  * Use `create(ListServicesRequestSchema)` to create a new message.
380
395
  */
381
- export const ListServicesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 73);
396
+ export const ListServicesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 76);
382
397
  /**
383
398
  * Describes the message openshell.v1.ListServicesResponse.
384
399
  * Use `create(ListServicesResponseSchema)` to create a new message.
385
400
  */
386
- export const ListServicesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 74);
401
+ export const ListServicesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 77);
387
402
  /**
388
403
  * Describes the message openshell.v1.DeleteServiceRequest.
389
404
  * Use `create(DeleteServiceRequestSchema)` to create a new message.
390
405
  */
391
- export const DeleteServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 75);
406
+ export const DeleteServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 78);
392
407
  /**
393
408
  * Describes the message openshell.v1.DeleteServiceResponse.
394
409
  * Use `create(DeleteServiceResponseSchema)` to create a new message.
395
410
  */
396
- export const DeleteServiceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 76);
411
+ export const DeleteServiceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 79);
397
412
  /**
398
413
  * Describes the message openshell.v1.ServiceEndpoint.
399
414
  * Use `create(ServiceEndpointSchema)` to create a new message.
400
415
  */
401
- export const ServiceEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 77);
416
+ export const ServiceEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 80);
402
417
  /**
403
418
  * Describes the message openshell.v1.ServiceEndpointResponse.
404
419
  * Use `create(ServiceEndpointResponseSchema)` to create a new message.
405
420
  */
406
- export const ServiceEndpointResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 78);
421
+ export const ServiceEndpointResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 81);
407
422
  /**
408
423
  * Describes the message openshell.v1.RevokeSshSessionRequest.
409
424
  * Use `create(RevokeSshSessionRequestSchema)` to create a new message.
410
425
  */
411
- export const RevokeSshSessionRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 79);
426
+ export const RevokeSshSessionRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 82);
412
427
  /**
413
428
  * Describes the message openshell.v1.RevokeSshSessionResponse.
414
429
  * Use `create(RevokeSshSessionResponseSchema)` to create a new message.
415
430
  */
416
- export const RevokeSshSessionResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 80);
431
+ export const RevokeSshSessionResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 83);
417
432
  /**
418
433
  * Describes the message openshell.v1.ExecSandboxRequest.
419
434
  * Use `create(ExecSandboxRequestSchema)` to create a new message.
420
435
  */
421
- export const ExecSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 81);
436
+ export const ExecSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 84);
422
437
  /**
423
438
  * Describes the message openshell.v1.ExecSandboxStdout.
424
439
  * Use `create(ExecSandboxStdoutSchema)` to create a new message.
425
440
  */
426
- export const ExecSandboxStdoutSchema = /*@__PURE__*/ messageDesc(file_openshell, 82);
441
+ export const ExecSandboxStdoutSchema = /*@__PURE__*/ messageDesc(file_openshell, 85);
427
442
  /**
428
443
  * Describes the message openshell.v1.ExecSandboxStderr.
429
444
  * Use `create(ExecSandboxStderrSchema)` to create a new message.
430
445
  */
431
- export const ExecSandboxStderrSchema = /*@__PURE__*/ messageDesc(file_openshell, 83);
446
+ export const ExecSandboxStderrSchema = /*@__PURE__*/ messageDesc(file_openshell, 86);
432
447
  /**
433
448
  * Describes the message openshell.v1.ExecSandboxExit.
434
449
  * Use `create(ExecSandboxExitSchema)` to create a new message.
435
450
  */
436
- export const ExecSandboxExitSchema = /*@__PURE__*/ messageDesc(file_openshell, 84);
451
+ export const ExecSandboxExitSchema = /*@__PURE__*/ messageDesc(file_openshell, 87);
437
452
  /**
438
453
  * Describes the message openshell.v1.ExecSandboxEvent.
439
454
  * Use `create(ExecSandboxEventSchema)` to create a new message.
440
455
  */
441
- export const ExecSandboxEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 85);
456
+ export const ExecSandboxEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 88);
442
457
  /**
443
458
  * Describes the message openshell.v1.TcpForwardInit.
444
459
  * Use `create(TcpForwardInitSchema)` to create a new message.
445
460
  */
446
- export const TcpForwardInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 86);
461
+ export const TcpForwardInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 89);
447
462
  /**
448
463
  * Describes the message openshell.v1.TcpForwardFrame.
449
464
  * Use `create(TcpForwardFrameSchema)` to create a new message.
450
465
  */
451
- export const TcpForwardFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 87);
466
+ export const TcpForwardFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 90);
452
467
  /**
453
468
  * Describes the message openshell.v1.ExecSandboxInput.
454
469
  * Use `create(ExecSandboxInputSchema)` to create a new message.
455
470
  */
456
- export const ExecSandboxInputSchema = /*@__PURE__*/ messageDesc(file_openshell, 88);
471
+ export const ExecSandboxInputSchema = /*@__PURE__*/ messageDesc(file_openshell, 91);
457
472
  /**
458
473
  * Describes the message openshell.v1.ExecSandboxWindowResize.
459
474
  * Use `create(ExecSandboxWindowResizeSchema)` to create a new message.
460
475
  */
461
- export const ExecSandboxWindowResizeSchema = /*@__PURE__*/ messageDesc(file_openshell, 89);
476
+ export const ExecSandboxWindowResizeSchema = /*@__PURE__*/ messageDesc(file_openshell, 92);
462
477
  /**
463
478
  * Describes the message openshell.v1.SshSession.
464
479
  * Use `create(SshSessionSchema)` to create a new message.
465
480
  */
466
- export const SshSessionSchema = /*@__PURE__*/ messageDesc(file_openshell, 90);
481
+ export const SshSessionSchema = /*@__PURE__*/ messageDesc(file_openshell, 93);
467
482
  /**
468
483
  * Describes the message openshell.v1.WatchSandboxRequest.
469
484
  * Use `create(WatchSandboxRequestSchema)` to create a new message.
470
485
  */
471
- export const WatchSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 91);
486
+ export const WatchSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 94);
472
487
  /**
473
488
  * Describes the message openshell.v1.SandboxStreamEvent.
474
489
  * Use `create(SandboxStreamEventSchema)` to create a new message.
475
490
  */
476
- export const SandboxStreamEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 92);
491
+ export const SandboxStreamEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
477
492
  /**
478
493
  * Describes the message openshell.v1.SandboxLogLine.
479
494
  * Use `create(SandboxLogLineSchema)` to create a new message.
480
495
  */
481
- export const SandboxLogLineSchema = /*@__PURE__*/ messageDesc(file_openshell, 93);
496
+ export const SandboxLogLineSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
482
497
  /**
483
498
  * Describes the message openshell.v1.SandboxStreamWarning.
484
499
  * Use `create(SandboxStreamWarningSchema)` to create a new message.
485
500
  */
486
- export const SandboxStreamWarningSchema = /*@__PURE__*/ messageDesc(file_openshell, 94);
501
+ export const SandboxStreamWarningSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
487
502
  /**
488
503
  * Describes the message openshell.v1.CreateProviderRequest.
489
504
  * Use `create(CreateProviderRequestSchema)` to create a new message.
490
505
  */
491
- export const CreateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
506
+ export const CreateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
492
507
  /**
493
508
  * Describes the message openshell.v1.GetProviderRequest.
494
509
  * Use `create(GetProviderRequestSchema)` to create a new message.
495
510
  */
496
- export const GetProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
511
+ export const GetProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
497
512
  /**
498
513
  * Describes the message openshell.v1.GetProviderCredentialsRequest.
499
514
  * Use `create(GetProviderCredentialsRequestSchema)` to create a new message.
500
515
  */
501
- export const GetProviderCredentialsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
516
+ export const GetProviderCredentialsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
502
517
  /**
503
518
  * Describes the message openshell.v1.ProviderCredentialValue.
504
519
  * Use `create(ProviderCredentialValueSchema)` to create a new message.
505
520
  */
506
- export const ProviderCredentialValueSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
521
+ export const ProviderCredentialValueSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
507
522
  /**
508
523
  * Describes the message openshell.v1.GetProviderCredentialsResponse.
509
524
  * Use `create(GetProviderCredentialsResponseSchema)` to create a new message.
510
525
  */
511
- export const GetProviderCredentialsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
526
+ export const GetProviderCredentialsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
512
527
  /**
513
528
  * Describes the message openshell.v1.ListProvidersRequest.
514
529
  * Use `create(ListProvidersRequestSchema)` to create a new message.
515
530
  */
516
- export const ListProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
531
+ export const ListProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
517
532
  /**
518
533
  * Describes the message openshell.v1.UpdateProviderRequest.
519
534
  * Use `create(UpdateProviderRequestSchema)` to create a new message.
520
535
  */
521
- export const UpdateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
536
+ export const UpdateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
522
537
  /**
523
538
  * Describes the message openshell.v1.DeleteProviderRequest.
524
539
  * Use `create(DeleteProviderRequestSchema)` to create a new message.
525
540
  */
526
- export const DeleteProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
541
+ export const DeleteProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
527
542
  /**
528
543
  * Describes the message openshell.v1.ProviderResponse.
529
544
  * Use `create(ProviderResponseSchema)` to create a new message.
530
545
  */
531
- export const ProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
546
+ export const ProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
532
547
  /**
533
548
  * Describes the message openshell.v1.ListProvidersResponse.
534
549
  * Use `create(ListProvidersResponseSchema)` to create a new message.
535
550
  */
536
- export const ListProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
551
+ export const ListProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
537
552
  /**
538
553
  * Describes the message openshell.v1.ListProviderProfilesRequest.
539
554
  * Use `create(ListProviderProfilesRequestSchema)` to create a new message.
540
555
  */
541
- export const ListProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
556
+ export const ListProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
542
557
  /**
543
558
  * Describes the message openshell.v1.GetProviderProfileRequest.
544
559
  * Use `create(GetProviderProfileRequestSchema)` to create a new message.
545
560
  */
546
- export const GetProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
561
+ export const GetProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
547
562
  /**
548
563
  * Describes the message openshell.v1.ProviderProfileImportItem.
549
564
  * Use `create(ProviderProfileImportItemSchema)` to create a new message.
550
565
  */
551
- export const ProviderProfileImportItemSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
566
+ export const ProviderProfileImportItemSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
552
567
  /**
553
568
  * Describes the message openshell.v1.ProviderProfileDiagnostic.
554
569
  * Use `create(ProviderProfileDiagnosticSchema)` to create a new message.
555
570
  */
556
- export const ProviderProfileDiagnosticSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
571
+ export const ProviderProfileDiagnosticSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
557
572
  /**
558
573
  * Describes the message openshell.v1.ProviderCredentialTokenGrantAudienceOverride.
559
574
  * Use `create(ProviderCredentialTokenGrantAudienceOverrideSchema)` to create a new message.
560
575
  */
561
- export const ProviderCredentialTokenGrantAudienceOverrideSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
576
+ export const ProviderCredentialTokenGrantAudienceOverrideSchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
562
577
  /**
563
578
  * Describes the message openshell.v1.ProviderCredentialTokenGrantSubjectToken.
564
579
  * Use `create(ProviderCredentialTokenGrantSubjectTokenSchema)` to create a new message.
565
580
  */
566
- export const ProviderCredentialTokenGrantSubjectTokenSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
581
+ export const ProviderCredentialTokenGrantSubjectTokenSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
567
582
  /**
568
583
  * Describes the message openshell.v1.ProviderCredentialTokenGrant.
569
584
  * Use `create(ProviderCredentialTokenGrantSchema)` to create a new message.
570
585
  */
571
- export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
586
+ export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
572
587
  /**
573
588
  * Describes the message openshell.v1.ProviderProfileCredential.
574
589
  * Use `create(ProviderProfileCredentialSchema)` to create a new message.
575
590
  */
576
- export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
591
+ export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
577
592
  /**
578
593
  * Describes the message openshell.v1.ProviderCredentialRefreshMaterial.
579
594
  * Use `create(ProviderCredentialRefreshMaterialSchema)` to create a new message.
580
595
  */
581
- export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
596
+ export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
582
597
  /**
583
598
  * Describes the message openshell.v1.ProviderCredentialRefreshOutput.
584
599
  * Use `create(ProviderCredentialRefreshOutputSchema)` to create a new message.
585
600
  */
586
- export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
601
+ export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
587
602
  /**
588
603
  * Describes the message openshell.v1.ProviderCredentialRefresh.
589
604
  * Use `create(ProviderCredentialRefreshSchema)` to create a new message.
590
605
  */
591
- export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
606
+ export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
592
607
  /**
593
608
  * Describes the message openshell.v1.ProviderCredentialRefreshStatus.
594
609
  * Use `create(ProviderCredentialRefreshStatusSchema)` to create a new message.
595
610
  */
596
- export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
611
+ export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
597
612
  /**
598
613
  * Describes the message openshell.v1.ProviderProfileDiscovery.
599
614
  * Use `create(ProviderProfileDiscoverySchema)` to create a new message.
600
615
  */
601
- export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
616
+ export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
602
617
  /**
603
618
  * Describes the message openshell.v1.GetProviderRefreshStatusRequest.
604
619
  * Use `create(GetProviderRefreshStatusRequestSchema)` to create a new message.
605
620
  */
606
- export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
621
+ export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
607
622
  /**
608
623
  * Describes the message openshell.v1.GetProviderRefreshStatusResponse.
609
624
  * Use `create(GetProviderRefreshStatusResponseSchema)` to create a new message.
610
625
  */
611
- export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
626
+ export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
612
627
  /**
613
628
  * Describes the message openshell.v1.ConfigureProviderRefreshRequest.
614
629
  * Use `create(ConfigureProviderRefreshRequestSchema)` to create a new message.
615
630
  */
616
- export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
631
+ export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
617
632
  /**
618
633
  * Describes the message openshell.v1.ConfigureProviderRefreshResponse.
619
634
  * Use `create(ConfigureProviderRefreshResponseSchema)` to create a new message.
620
635
  */
621
- export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
636
+ export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
622
637
  /**
623
638
  * Describes the message openshell.v1.RotateProviderCredentialRequest.
624
639
  * Use `create(RotateProviderCredentialRequestSchema)` to create a new message.
625
640
  */
626
- export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
641
+ export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
627
642
  /**
628
643
  * Describes the message openshell.v1.RotateProviderCredentialResponse.
629
644
  * Use `create(RotateProviderCredentialResponseSchema)` to create a new message.
630
645
  */
631
- export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
646
+ export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
632
647
  /**
633
648
  * Describes the message openshell.v1.DeleteProviderRefreshRequest.
634
649
  * Use `create(DeleteProviderRefreshRequestSchema)` to create a new message.
635
650
  */
636
- export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
651
+ export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
637
652
  /**
638
653
  * Describes the message openshell.v1.DeleteProviderRefreshResponse.
639
654
  * Use `create(DeleteProviderRefreshResponseSchema)` to create a new message.
640
655
  */
641
- export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
656
+ export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
642
657
  /**
643
658
  * Describes the message openshell.v1.ProviderProfile.
644
659
  * Use `create(ProviderProfileSchema)` to create a new message.
645
660
  */
646
- export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
661
+ export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
647
662
  /**
648
663
  * Describes the message openshell.v1.ProviderProfileFile.
649
664
  * Use `create(ProviderProfileFileSchema)` to create a new message.
650
665
  */
651
- export const ProviderProfileFileSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
666
+ export const ProviderProfileFileSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
652
667
  /**
653
668
  * Describes the message openshell.v1.ProviderProfileResponse.
654
669
  * Use `create(ProviderProfileResponseSchema)` to create a new message.
655
670
  */
656
- export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
671
+ export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
657
672
  /**
658
673
  * Describes the message openshell.v1.ListProviderProfilesResponse.
659
674
  * Use `create(ListProviderProfilesResponseSchema)` to create a new message.
660
675
  */
661
- export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
676
+ export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
662
677
  /**
663
678
  * Describes the message openshell.v1.ImportProviderProfilesRequest.
664
679
  * Use `create(ImportProviderProfilesRequestSchema)` to create a new message.
665
680
  */
666
- export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
681
+ export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
667
682
  /**
668
683
  * Describes the message openshell.v1.ImportProviderProfilesResponse.
669
684
  * Use `create(ImportProviderProfilesResponseSchema)` to create a new message.
670
685
  */
671
- export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
686
+ export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
672
687
  /**
673
688
  * Describes the message openshell.v1.UpdateProviderProfilesRequest.
674
689
  * Use `create(UpdateProviderProfilesRequestSchema)` to create a new message.
675
690
  */
676
- export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
691
+ export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
677
692
  /**
678
693
  * Describes the message openshell.v1.UpdateProviderProfilesResponse.
679
694
  * Use `create(UpdateProviderProfilesResponseSchema)` to create a new message.
680
695
  */
681
- export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
696
+ export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
682
697
  /**
683
698
  * Describes the message openshell.v1.LintProviderProfilesRequest.
684
699
  * Use `create(LintProviderProfilesRequestSchema)` to create a new message.
685
700
  */
686
- export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
701
+ export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
687
702
  /**
688
703
  * Describes the message openshell.v1.LintProviderProfilesResponse.
689
704
  * Use `create(LintProviderProfilesResponseSchema)` to create a new message.
690
705
  */
691
- export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
706
+ export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
692
707
  /**
693
708
  * Describes the message openshell.v1.DeleteProviderResponse.
694
709
  * Use `create(DeleteProviderResponseSchema)` to create a new message.
695
710
  */
696
- export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
711
+ export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
697
712
  /**
698
713
  * Describes the message openshell.v1.DeleteProviderProfileRequest.
699
714
  * Use `create(DeleteProviderProfileRequestSchema)` to create a new message.
700
715
  */
701
- export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
716
+ export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
702
717
  /**
703
718
  * Describes the message openshell.v1.DeleteProviderProfileResponse.
704
719
  * Use `create(DeleteProviderProfileResponseSchema)` to create a new message.
705
720
  */
706
- export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
721
+ export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
707
722
  /**
708
723
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentRequest.
709
724
  * Use `create(GetSandboxProviderEnvironmentRequestSchema)` to create a new message.
710
725
  */
711
- export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
726
+ export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
712
727
  /**
713
728
  * Describes the message openshell.v1.StaticCredentialEndpointBinding.
714
729
  * Use `create(StaticCredentialEndpointBindingSchema)` to create a new message.
715
730
  */
716
- export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
731
+ export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
717
732
  /**
718
733
  * Describes the message openshell.v1.StaticCredentialBinding.
719
734
  * Use `create(StaticCredentialBindingSchema)` to create a new message.
720
735
  */
721
- export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
736
+ export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
722
737
  /**
723
738
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentResponse.
724
739
  * Use `create(GetSandboxProviderEnvironmentResponseSchema)` to create a new message.
725
740
  */
726
- export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
741
+ export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
727
742
  /**
728
743
  * Describes the message openshell.v1.ProviderEnvironmentValue.
729
744
  * Use `create(ProviderEnvironmentValueSchema)` to create a new message.
730
745
  */
731
- export const ProviderEnvironmentValueSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
746
+ export const ProviderEnvironmentValueSchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
732
747
  /**
733
748
  * Describes the message openshell.v1.ProviderEnvironmentSnapshot.
734
749
  * Use `create(ProviderEnvironmentSnapshotSchema)` to create a new message.
735
750
  */
736
- export const ProviderEnvironmentSnapshotSchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
751
+ export const ProviderEnvironmentSnapshotSchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
737
752
  /**
738
753
  * Describes the message openshell.v1.ExchangeProviderSubjectTokenRequest.
739
754
  * Use `create(ExchangeProviderSubjectTokenRequestSchema)` to create a new message.
740
755
  */
741
- export const ExchangeProviderSubjectTokenRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
756
+ export const ExchangeProviderSubjectTokenRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
742
757
  /**
743
758
  * Describes the message openshell.v1.ExchangeProviderSubjectTokenResponse.
744
759
  * Use `create(ExchangeProviderSubjectTokenResponseSchema)` to create a new message.
745
760
  */
746
- export const ExchangeProviderSubjectTokenResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
761
+ export const ExchangeProviderSubjectTokenResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
747
762
  /**
748
763
  * Describes the message openshell.v1.UpdateConfigRequest.
749
764
  * Use `create(UpdateConfigRequestSchema)` to create a new message.
750
765
  */
751
- export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
766
+ export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
752
767
  /**
753
768
  * Describes the message openshell.v1.PolicyMergeOperation.
754
769
  * Use `create(PolicyMergeOperationSchema)` to create a new message.
755
770
  */
756
- export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
771
+ export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
757
772
  /**
758
773
  * Describes the message openshell.v1.AddNetworkRule.
759
774
  * Use `create(AddNetworkRuleSchema)` to create a new message.
760
775
  */
761
- export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
776
+ export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
762
777
  /**
763
778
  * Describes the message openshell.v1.RemoveNetworkEndpoint.
764
779
  * Use `create(RemoveNetworkEndpointSchema)` to create a new message.
765
780
  */
766
- export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
781
+ export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
767
782
  /**
768
783
  * Describes the message openshell.v1.RemoveNetworkRule.
769
784
  * Use `create(RemoveNetworkRuleSchema)` to create a new message.
770
785
  */
771
- export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
786
+ export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
772
787
  /**
773
788
  * Describes the message openshell.v1.L7RuleTarget.
774
789
  * Use `create(L7RuleTargetSchema)` to create a new message.
775
790
  */
776
- export const L7RuleTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
791
+ export const L7RuleTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
777
792
  /**
778
793
  * Describes the message openshell.v1.AddDenyRules.
779
794
  * Use `create(AddDenyRulesSchema)` to create a new message.
780
795
  */
781
- export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
796
+ export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
782
797
  /**
783
798
  * Describes the message openshell.v1.AddAllowRules.
784
799
  * Use `create(AddAllowRulesSchema)` to create a new message.
785
800
  */
786
- export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
801
+ export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
787
802
  /**
788
803
  * Describes the message openshell.v1.RemoveNetworkBinary.
789
804
  * Use `create(RemoveNetworkBinarySchema)` to create a new message.
790
805
  */
791
- export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
806
+ export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
792
807
  /**
793
808
  * Describes the message openshell.v1.UpdateConfigResponse.
794
809
  * Use `create(UpdateConfigResponseSchema)` to create a new message.
795
810
  */
796
- export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
811
+ export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
797
812
  /**
798
813
  * Describes the message openshell.v1.GetSandboxPolicyStatusRequest.
799
814
  * Use `create(GetSandboxPolicyStatusRequestSchema)` to create a new message.
800
815
  */
801
- export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
816
+ export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
802
817
  /**
803
818
  * Describes the message openshell.v1.GetSandboxPolicyStatusResponse.
804
819
  * Use `create(GetSandboxPolicyStatusResponseSchema)` to create a new message.
805
820
  */
806
- export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
821
+ export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
807
822
  /**
808
823
  * Describes the message openshell.v1.ListSandboxPoliciesRequest.
809
824
  * Use `create(ListSandboxPoliciesRequestSchema)` to create a new message.
810
825
  */
811
- export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
826
+ export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
812
827
  /**
813
828
  * Describes the message openshell.v1.ListSandboxPoliciesResponse.
814
829
  * Use `create(ListSandboxPoliciesResponseSchema)` to create a new message.
815
830
  */
816
- export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
831
+ export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
817
832
  /**
818
833
  * Describes the message openshell.v1.ReportPolicyStatusRequest.
819
834
  * Use `create(ReportPolicyStatusRequestSchema)` to create a new message.
820
835
  */
821
- export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
836
+ export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
822
837
  /**
823
838
  * Describes the message openshell.v1.ReportPolicyStatusResponse.
824
839
  * Use `create(ReportPolicyStatusResponseSchema)` to create a new message.
825
840
  */
826
- export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
841
+ export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
827
842
  /**
828
843
  * Describes the message openshell.v1.SandboxConfigurationAdmission.
829
844
  * Use `create(SandboxConfigurationAdmissionSchema)` to create a new message.
830
845
  */
831
- export const SandboxConfigurationAdmissionSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
846
+ export const SandboxConfigurationAdmissionSchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
832
847
  /**
833
848
  * Describes the message openshell.v1.ReportSandboxConfigurationRequest.
834
849
  * Use `create(ReportSandboxConfigurationRequestSchema)` to create a new message.
835
850
  */
836
- export const ReportSandboxConfigurationRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
851
+ export const ReportSandboxConfigurationRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
837
852
  /**
838
853
  * Describes the message openshell.v1.ReportSandboxConfigurationResponse.
839
854
  * Use `create(ReportSandboxConfigurationResponseSchema)` to create a new message.
840
855
  */
841
- export const ReportSandboxConfigurationResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
856
+ export const ReportSandboxConfigurationResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
842
857
  /**
843
858
  * Describes the message openshell.v1.SandboxPolicyRevision.
844
859
  * Use `create(SandboxPolicyRevisionSchema)` to create a new message.
845
860
  */
846
- export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
861
+ export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
847
862
  /**
848
863
  * Describes the message openshell.v1.GetSandboxLogsRequest.
849
864
  * Use `create(GetSandboxLogsRequestSchema)` to create a new message.
850
865
  */
851
- export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
866
+ export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
852
867
  /**
853
868
  * Describes the message openshell.v1.PushSandboxLogsRequest.
854
869
  * Use `create(PushSandboxLogsRequestSchema)` to create a new message.
855
870
  */
856
- export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
871
+ export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
857
872
  /**
858
873
  * Describes the message openshell.v1.PushSandboxLogsResponse.
859
874
  * Use `create(PushSandboxLogsResponseSchema)` to create a new message.
860
875
  */
861
- export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
876
+ export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
862
877
  /**
863
878
  * Describes the message openshell.v1.GetSandboxLogsResponse.
864
879
  * Use `create(GetSandboxLogsResponseSchema)` to create a new message.
865
880
  */
866
- export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
881
+ export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
867
882
  /**
868
883
  * Describes the message openshell.v1.SupervisorMessage.
869
884
  * Use `create(SupervisorMessageSchema)` to create a new message.
870
885
  */
871
- export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
886
+ export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
872
887
  /**
873
888
  * Describes the message openshell.v1.GatewayMessage.
874
889
  * Use `create(GatewayMessageSchema)` to create a new message.
875
890
  */
876
- export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
891
+ export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
877
892
  /**
878
893
  * Describes the message openshell.v1.SupervisorHello.
879
894
  * Use `create(SupervisorHelloSchema)` to create a new message.
880
895
  */
881
- export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
896
+ export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
882
897
  /**
883
898
  * Describes the message openshell.v1.SessionAccepted.
884
899
  * Use `create(SessionAcceptedSchema)` to create a new message.
885
900
  */
886
- export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
901
+ export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
887
902
  /**
888
903
  * Describes the message openshell.v1.ConfigUpdate.
889
904
  * Use `create(ConfigUpdateSchema)` to create a new message.
890
905
  */
891
- export const ConfigUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
906
+ export const ConfigUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
892
907
  /**
893
908
  * Describes the message openshell.v1.ConfigApplyFailure.
894
909
  * Use `create(ConfigApplyFailureSchema)` to create a new message.
895
910
  */
896
- export const ConfigApplyFailureSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
911
+ export const ConfigApplyFailureSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
897
912
  /**
898
913
  * Describes the message openshell.v1.ConfigUpdateResult.
899
914
  * Use `create(ConfigUpdateResultSchema)` to create a new message.
900
915
  */
901
- export const ConfigUpdateResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
916
+ export const ConfigUpdateResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
902
917
  /**
903
918
  * Describes the message openshell.v1.PolicyLoadResult.
904
919
  * Use `create(PolicyLoadResultSchema)` to create a new message.
905
920
  */
906
- export const PolicyLoadResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
921
+ export const PolicyLoadResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
907
922
  /**
908
923
  * Describes the message openshell.v1.SessionRejected.
909
924
  * Use `create(SessionRejectedSchema)` to create a new message.
910
925
  */
911
- export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
926
+ export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
912
927
  /**
913
928
  * Describes the message openshell.v1.SessionRedirect.
914
929
  * Use `create(SessionRedirectSchema)` to create a new message.
915
930
  */
916
- export const SessionRedirectSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
931
+ export const SessionRedirectSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
917
932
  /**
918
933
  * Describes the message openshell.v1.SupervisorHeartbeat.
919
934
  * Use `create(SupervisorHeartbeatSchema)` to create a new message.
920
935
  */
921
- export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
936
+ export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
922
937
  /**
923
938
  * Describes the message openshell.v1.GatewayHeartbeat.
924
939
  * Use `create(GatewayHeartbeatSchema)` to create a new message.
925
940
  */
926
- export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
941
+ export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
927
942
  /**
928
943
  * Describes the message openshell.v1.ReportMainProcessExitRequest.
929
944
  * Use `create(ReportMainProcessExitRequestSchema)` to create a new message.
930
945
  */
931
- export const ReportMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
946
+ export const ReportMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 186);
932
947
  /**
933
948
  * Describes the message openshell.v1.ReportMainProcessExitResponse.
934
949
  * Use `create(ReportMainProcessExitResponseSchema)` to create a new message.
935
950
  */
936
- export const ReportMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
951
+ export const ReportMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 187);
937
952
  /**
938
953
  * Describes the message openshell.v1.FinalizeMainProcessExitRequest.
939
954
  * Use `create(FinalizeMainProcessExitRequestSchema)` to create a new message.
940
955
  */
941
- export const FinalizeMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
956
+ export const FinalizeMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 188);
942
957
  /**
943
958
  * Describes the message openshell.v1.FinalizeMainProcessExitResponse.
944
959
  * Use `create(FinalizeMainProcessExitResponseSchema)` to create a new message.
945
960
  */
946
- export const FinalizeMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 186);
961
+ export const FinalizeMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 189);
947
962
  /**
948
963
  * Describes the message openshell.v1.RelayOpen.
949
964
  * Use `create(RelayOpenSchema)` to create a new message.
950
965
  */
951
- export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 187);
966
+ export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 190);
952
967
  /**
953
968
  * Describes the message openshell.v1.SshRelayTarget.
954
969
  * Use `create(SshRelayTargetSchema)` to create a new message.
955
970
  */
956
- export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 188);
971
+ export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 191);
957
972
  /**
958
973
  * Describes the message openshell.v1.TcpRelayTarget.
959
974
  * Use `create(TcpRelayTargetSchema)` to create a new message.
960
975
  */
961
- export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 189);
976
+ export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 192);
962
977
  /**
963
978
  * Describes the message openshell.v1.RelayInit.
964
979
  * Use `create(RelayInitSchema)` to create a new message.
965
980
  */
966
- export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 190);
981
+ export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 193);
967
982
  /**
968
983
  * Describes the message openshell.v1.RelayFrame.
969
984
  * Use `create(RelayFrameSchema)` to create a new message.
970
985
  */
971
- export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 191);
986
+ export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 194);
972
987
  /**
973
988
  * Describes the message openshell.v1.PeerRelayInit.
974
989
  * Use `create(PeerRelayInitSchema)` to create a new message.
975
990
  */
976
- export const PeerRelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 192);
991
+ export const PeerRelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 195);
977
992
  /**
978
993
  * Describes the message openshell.v1.PeerRelayFrame.
979
994
  * Use `create(PeerRelayFrameSchema)` to create a new message.
980
995
  */
981
- export const PeerRelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 193);
996
+ export const PeerRelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 196);
982
997
  /**
983
998
  * Describes the message openshell.v1.PeerConfigSandboxTarget.
984
999
  * Use `create(PeerConfigSandboxTargetSchema)` to create a new message.
985
1000
  */
986
- export const PeerConfigSandboxTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 194);
1001
+ export const PeerConfigSandboxTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 197);
987
1002
  /**
988
1003
  * Describes the message openshell.v1.PeerConfigProviderTarget.
989
1004
  * Use `create(PeerConfigProviderTargetSchema)` to create a new message.
990
1005
  */
991
- export const PeerConfigProviderTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 195);
1006
+ export const PeerConfigProviderTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 198);
992
1007
  /**
993
1008
  * Describes the message openshell.v1.PeerNotifyConfigUpdateRequest.
994
1009
  * Use `create(PeerNotifyConfigUpdateRequestSchema)` to create a new message.
995
1010
  */
996
- export const PeerNotifyConfigUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 196);
1011
+ export const PeerNotifyConfigUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 199);
997
1012
  /**
998
1013
  * Describes the message openshell.v1.PeerNotifyConfigUpdateResponse.
999
1014
  * Use `create(PeerNotifyConfigUpdateResponseSchema)` to create a new message.
1000
1015
  */
1001
- export const PeerNotifyConfigUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 197);
1016
+ export const PeerNotifyConfigUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 200);
1002
1017
  /**
1003
1018
  * Describes the message openshell.v1.RelayOpenResult.
1004
1019
  * Use `create(RelayOpenResultSchema)` to create a new message.
1005
1020
  */
1006
- export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 198);
1021
+ export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 201);
1007
1022
  /**
1008
1023
  * Describes the message openshell.v1.RelayClose.
1009
1024
  * Use `create(RelayCloseSchema)` to create a new message.
1010
1025
  */
1011
- export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 199);
1026
+ export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 202);
1012
1027
  /**
1013
1028
  * Describes the message openshell.v1.L7RequestSample.
1014
1029
  * Use `create(L7RequestSampleSchema)` to create a new message.
1015
1030
  */
1016
- export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 200);
1031
+ export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 203);
1017
1032
  /**
1018
1033
  * Describes the message openshell.v1.DenialSummary.
1019
1034
  * Use `create(DenialSummarySchema)` to create a new message.
1020
1035
  */
1021
- export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 201);
1036
+ export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 204);
1022
1037
  /**
1023
1038
  * Describes the message openshell.v1.DenialGroupCount.
1024
1039
  * Use `create(DenialGroupCountSchema)` to create a new message.
1025
1040
  */
1026
- export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 202);
1041
+ export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 205);
1027
1042
  /**
1028
1043
  * Describes the message openshell.v1.NetworkActivitySummary.
1029
1044
  * Use `create(NetworkActivitySummarySchema)` to create a new message.
1030
1045
  */
1031
- export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 203);
1046
+ export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 206);
1032
1047
  /**
1033
1048
  * Describes the message openshell.v1.PolicyChunk.
1034
1049
  * Use `create(PolicyChunkSchema)` to create a new message.
1035
1050
  */
1036
- export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 204);
1051
+ export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 207);
1037
1052
  /**
1038
1053
  * Describes the message openshell.v1.DraftPolicyUpdate.
1039
1054
  * Use `create(DraftPolicyUpdateSchema)` to create a new message.
1040
1055
  */
1041
- export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 205);
1056
+ export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 208);
1042
1057
  /**
1043
1058
  * Describes the message openshell.v1.SubmitPolicyAnalysisRequest.
1044
1059
  * Use `create(SubmitPolicyAnalysisRequestSchema)` to create a new message.
1045
1060
  */
1046
- export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 206);
1061
+ export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 209);
1047
1062
  /**
1048
1063
  * Describes the message openshell.v1.SubmitPolicyAnalysisResponse.
1049
1064
  * Use `create(SubmitPolicyAnalysisResponseSchema)` to create a new message.
1050
1065
  */
1051
- export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 207);
1066
+ export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 210);
1052
1067
  /**
1053
1068
  * Describes the message openshell.v1.GetDraftPolicyRequest.
1054
1069
  * Use `create(GetDraftPolicyRequestSchema)` to create a new message.
1055
1070
  */
1056
- export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 208);
1071
+ export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 211);
1057
1072
  /**
1058
1073
  * Describes the message openshell.v1.GetDraftPolicyResponse.
1059
1074
  * Use `create(GetDraftPolicyResponseSchema)` to create a new message.
1060
1075
  */
1061
- export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 209);
1076
+ export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 212);
1062
1077
  /**
1063
1078
  * Describes the message openshell.v1.ApproveDraftChunkRequest.
1064
1079
  * Use `create(ApproveDraftChunkRequestSchema)` to create a new message.
1065
1080
  */
1066
- export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 210);
1081
+ export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 213);
1067
1082
  /**
1068
1083
  * Describes the message openshell.v1.ApproveDraftChunkResponse.
1069
1084
  * Use `create(ApproveDraftChunkResponseSchema)` to create a new message.
1070
1085
  */
1071
- export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 211);
1086
+ export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 214);
1072
1087
  /**
1073
1088
  * Describes the message openshell.v1.RejectDraftChunkRequest.
1074
1089
  * Use `create(RejectDraftChunkRequestSchema)` to create a new message.
1075
1090
  */
1076
- export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 212);
1091
+ export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 215);
1077
1092
  /**
1078
1093
  * Describes the message openshell.v1.RejectDraftChunkResponse.
1079
1094
  * Use `create(RejectDraftChunkResponseSchema)` to create a new message.
1080
1095
  */
1081
- export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 213);
1096
+ export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 216);
1082
1097
  /**
1083
1098
  * Describes the message openshell.v1.DraftChunkApproval.
1084
1099
  * Use `create(DraftChunkApprovalSchema)` to create a new message.
1085
1100
  */
1086
- export const DraftChunkApprovalSchema = /*@__PURE__*/ messageDesc(file_openshell, 214);
1101
+ export const DraftChunkApprovalSchema = /*@__PURE__*/ messageDesc(file_openshell, 217);
1087
1102
  /**
1088
1103
  * Describes the message openshell.v1.ApproveAllDraftChunksRequest.
1089
1104
  * Use `create(ApproveAllDraftChunksRequestSchema)` to create a new message.
1090
1105
  */
1091
- export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 215);
1106
+ export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 218);
1092
1107
  /**
1093
1108
  * Describes the message openshell.v1.ApproveAllDraftChunksResponse.
1094
1109
  * Use `create(ApproveAllDraftChunksResponseSchema)` to create a new message.
1095
1110
  */
1096
- export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 216);
1111
+ export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 219);
1097
1112
  /**
1098
1113
  * Describes the message openshell.v1.EditDraftChunkRequest.
1099
1114
  * Use `create(EditDraftChunkRequestSchema)` to create a new message.
1100
1115
  */
1101
- export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 217);
1116
+ export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 220);
1102
1117
  /**
1103
1118
  * Describes the message openshell.v1.EditDraftChunkResponse.
1104
1119
  * Use `create(EditDraftChunkResponseSchema)` to create a new message.
1105
1120
  */
1106
- export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 218);
1121
+ export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 221);
1107
1122
  /**
1108
1123
  * Describes the message openshell.v1.UndoDraftChunkRequest.
1109
1124
  * Use `create(UndoDraftChunkRequestSchema)` to create a new message.
1110
1125
  */
1111
- export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 219);
1126
+ export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 222);
1112
1127
  /**
1113
1128
  * Describes the message openshell.v1.UndoDraftChunkResponse.
1114
1129
  * Use `create(UndoDraftChunkResponseSchema)` to create a new message.
1115
1130
  */
1116
- export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 220);
1131
+ export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 223);
1117
1132
  /**
1118
1133
  * Describes the message openshell.v1.ClearDraftChunksRequest.
1119
1134
  * Use `create(ClearDraftChunksRequestSchema)` to create a new message.
1120
1135
  */
1121
- export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 221);
1136
+ export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 224);
1122
1137
  /**
1123
1138
  * Describes the message openshell.v1.ClearDraftChunksResponse.
1124
1139
  * Use `create(ClearDraftChunksResponseSchema)` to create a new message.
1125
1140
  */
1126
- export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 222);
1141
+ export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 225);
1127
1142
  /**
1128
1143
  * Describes the message openshell.v1.GetDraftHistoryRequest.
1129
1144
  * Use `create(GetDraftHistoryRequestSchema)` to create a new message.
1130
1145
  */
1131
- export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 223);
1146
+ export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 226);
1132
1147
  /**
1133
1148
  * Describes the message openshell.v1.DraftHistoryEntry.
1134
1149
  * Use `create(DraftHistoryEntrySchema)` to create a new message.
1135
1150
  */
1136
- export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 224);
1151
+ export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 227);
1137
1152
  /**
1138
1153
  * Describes the message openshell.v1.GetDraftHistoryResponse.
1139
1154
  * Use `create(GetDraftHistoryResponseSchema)` to create a new message.
1140
1155
  */
1141
- export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 225);
1156
+ export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 228);
1142
1157
  /**
1143
1158
  * Describes the message openshell.v1.CreateWorkspaceRequest.
1144
1159
  * Use `create(CreateWorkspaceRequestSchema)` to create a new message.
1145
1160
  */
1146
- export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 226);
1161
+ export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 229);
1147
1162
  /**
1148
1163
  * Describes the message openshell.v1.CreateWorkspaceResponse.
1149
1164
  * Use `create(CreateWorkspaceResponseSchema)` to create a new message.
1150
1165
  */
1151
- export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 227);
1166
+ export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 230);
1152
1167
  /**
1153
1168
  * Describes the message openshell.v1.GetWorkspaceRequest.
1154
1169
  * Use `create(GetWorkspaceRequestSchema)` to create a new message.
1155
1170
  */
1156
- export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 228);
1171
+ export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 231);
1157
1172
  /**
1158
1173
  * Describes the message openshell.v1.GetWorkspaceResponse.
1159
1174
  * Use `create(GetWorkspaceResponseSchema)` to create a new message.
1160
1175
  */
1161
- export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 229);
1176
+ export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 232);
1162
1177
  /**
1163
1178
  * Describes the message openshell.v1.ListWorkspacesRequest.
1164
1179
  * Use `create(ListWorkspacesRequestSchema)` to create a new message.
1165
1180
  */
1166
- export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 230);
1181
+ export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 233);
1167
1182
  /**
1168
1183
  * Describes the message openshell.v1.ListWorkspacesResponse.
1169
1184
  * Use `create(ListWorkspacesResponseSchema)` to create a new message.
1170
1185
  */
1171
- export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 231);
1186
+ export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 234);
1172
1187
  /**
1173
1188
  * Describes the message openshell.v1.DeleteWorkspaceRequest.
1174
1189
  * Use `create(DeleteWorkspaceRequestSchema)` to create a new message.
1175
1190
  */
1176
- export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 232);
1191
+ export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 235);
1177
1192
  /**
1178
1193
  * Describes the message openshell.v1.DeleteWorkspaceResponse.
1179
1194
  * Use `create(DeleteWorkspaceResponseSchema)` to create a new message.
1180
1195
  */
1181
- export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 233);
1196
+ export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 236);
1182
1197
  /**
1183
1198
  * Describes the message openshell.v1.WorkspaceMember.
1184
1199
  * Use `create(WorkspaceMemberSchema)` to create a new message.
1185
1200
  */
1186
- export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 234);
1201
+ export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 237);
1187
1202
  /**
1188
1203
  * Describes the message openshell.v1.AddWorkspaceMemberRequest.
1189
1204
  * Use `create(AddWorkspaceMemberRequestSchema)` to create a new message.
1190
1205
  */
1191
- export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 235);
1206
+ export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 238);
1192
1207
  /**
1193
1208
  * Describes the message openshell.v1.AddWorkspaceMemberResponse.
1194
1209
  * Use `create(AddWorkspaceMemberResponseSchema)` to create a new message.
1195
1210
  */
1196
- export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 236);
1211
+ export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 239);
1197
1212
  /**
1198
1213
  * Describes the message openshell.v1.RemoveWorkspaceMemberRequest.
1199
1214
  * Use `create(RemoveWorkspaceMemberRequestSchema)` to create a new message.
1200
1215
  */
1201
- export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 237);
1216
+ export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 240);
1202
1217
  /**
1203
1218
  * Describes the message openshell.v1.RemoveWorkspaceMemberResponse.
1204
1219
  * Use `create(RemoveWorkspaceMemberResponseSchema)` to create a new message.
1205
1220
  */
1206
- export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 238);
1221
+ export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 241);
1207
1222
  /**
1208
1223
  * Describes the message openshell.v1.ListWorkspaceMembersRequest.
1209
1224
  * Use `create(ListWorkspaceMembersRequestSchema)` to create a new message.
1210
1225
  */
1211
- export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 239);
1226
+ export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 242);
1212
1227
  /**
1213
1228
  * Describes the message openshell.v1.ListWorkspaceMembersResponse.
1214
1229
  * Use `create(ListWorkspaceMembersResponseSchema)` to create a new message.
1215
1230
  */
1216
- export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 240);
1231
+ export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 243);
1217
1232
  /**
1218
1233
  * Describes the message openshell.v1.ExtensionServiceCredential.
1219
1234
  * Use `create(ExtensionServiceCredentialSchema)` to create a new message.
1220
1235
  */
1221
- export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 241);
1236
+ export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 244);
1222
1237
  /**
1223
1238
  * Describes the message openshell.v1.EndpointObservation.
1224
1239
  * Use `create(EndpointObservationSchema)` to create a new message.
1225
1240
  */
1226
- export const EndpointObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 242);
1241
+ export const EndpointObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 245);
1227
1242
  /**
1228
1243
  * Describes the message openshell.v1.ReportEndpointStatusRequest.
1229
1244
  * Use `create(ReportEndpointStatusRequestSchema)` to create a new message.
1230
1245
  */
1231
- export const ReportEndpointStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 243);
1246
+ export const ReportEndpointStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 246);
1232
1247
  /**
1233
1248
  * Describes the message openshell.v1.TokenGrantStatus.
1234
1249
  * Use `create(TokenGrantStatusSchema)` to create a new message.
1235
1250
  */
1236
- export const TokenGrantStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 244);
1251
+ export const TokenGrantStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 247);
1237
1252
  /**
1238
1253
  * Describes the message openshell.v1.TokenGrantFailureObservation.
1239
1254
  * Use `create(TokenGrantFailureObservationSchema)` to create a new message.
1240
1255
  */
1241
- export const TokenGrantFailureObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 245);
1256
+ export const TokenGrantFailureObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 248);
1242
1257
  /**
1243
1258
  * Describes the message openshell.v1.ReportEndpointStatusResponse.
1244
1259
  * Use `create(ReportEndpointStatusResponseSchema)` to create a new message.
1245
1260
  */
1246
- export const ReportEndpointStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 246);
1261
+ export const ReportEndpointStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 249);
1247
1262
  /**
1248
1263
  * Describes the message openshell.v1.EndpointStatus.
1249
1264
  * Use `create(EndpointStatusSchema)` to create a new message.
1250
1265
  */
1251
- export const EndpointStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 247);
1266
+ export const EndpointStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 250);
1252
1267
  /**
1253
1268
  * Describes the message openshell.v1.SandboxProvisioning.
1254
1269
  * Use `create(SandboxProvisioningSchema)` to create a new message.
1255
1270
  */
1256
- export const SandboxProvisioningSchema = /*@__PURE__*/ messageDesc(file_openshell, 248);
1271
+ export const SandboxProvisioningSchema = /*@__PURE__*/ messageDesc(file_openshell, 251);
1257
1272
  /**
1258
1273
  * Describes the message openshell.v1.SandboxServiceExposure.
1259
1274
  * Use `create(SandboxServiceExposureSchema)` to create a new message.
1260
1275
  */
1261
- export const SandboxServiceExposureSchema = /*@__PURE__*/ messageDesc(file_openshell, 249);
1276
+ export const SandboxServiceExposureSchema = /*@__PURE__*/ messageDesc(file_openshell, 252);
1262
1277
  /**
1263
1278
  * Describes the message openshell.v1.EndpointFailure.
1264
1279
  * Use `create(EndpointFailureSchema)` to create a new message.
1265
1280
  */
1266
- export const EndpointFailureSchema = /*@__PURE__*/ messageDesc(file_openshell, 250);
1281
+ export const EndpointFailureSchema = /*@__PURE__*/ messageDesc(file_openshell, 253);
1267
1282
  /**
1268
1283
  * @generated from enum openshell.v1.ExtensionKind
1269
1284
  */
@@ -2120,4 +2135,11 @@ export const EndpointFailureDomainSchema = /*@__PURE__*/ enumDesc(file_openshell
2120
2135
  * @generated from service openshell.v1.OpenShell
2121
2136
  */
2122
2137
  export const OpenShell = /*@__PURE__*/ serviceDesc(file_openshell, 0);
2138
+ /**
2139
+ * Optional sandbox mutations are separate from OpenShell so existing generated
2140
+ * OpenShell server implementations remain source-compatible.
2141
+ *
2142
+ * @generated from service openshell.v1.SandboxUpdates
2143
+ */
2144
+ export const SandboxUpdates = /*@__PURE__*/ serviceDesc(file_openshell, 1);
2123
2145
  //# sourceMappingURL=openshell_pb.js.map