@foir/cli 0.64.1 → 0.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1693 -382
- package/dist/lib/config-helpers.d.ts +14 -7
- package/package.json +5 -3
package/dist/cli.js
CHANGED
|
@@ -245,6 +245,11 @@ function getApiUrl(options) {
|
|
|
245
245
|
// src/lib/errors.ts
|
|
246
246
|
import chalk from "chalk";
|
|
247
247
|
import { ConnectError, Code } from "@connectrpc/connect";
|
|
248
|
+
function describeTarget(opts) {
|
|
249
|
+
const apiUrl = getApiUrl(opts);
|
|
250
|
+
const source = process.env.FOIR_API_URL ? "set by FOIR_API_URL" : opts?.apiUrl ? "set by --api-url" : "the default endpoint; point elsewhere with FOIR_API_URL or --api-url";
|
|
251
|
+
return `${apiUrl} (${source})`;
|
|
252
|
+
}
|
|
248
253
|
function extractErrorMessage(error) {
|
|
249
254
|
if (!error || typeof error !== "object")
|
|
250
255
|
return String(error ?? "Unknown error");
|
|
@@ -273,13 +278,26 @@ function withErrorHandler(optsFn, fn) {
|
|
|
273
278
|
JSON.stringify({
|
|
274
279
|
error: {
|
|
275
280
|
message: message2,
|
|
276
|
-
code: Code[code] ?? "UNKNOWN"
|
|
281
|
+
code: Code[code] ?? "UNKNOWN",
|
|
282
|
+
// What the call was aimed at. Always present, because the
|
|
283
|
+
// codes that most need it (Unavailable) are the ones whose
|
|
284
|
+
// message is empty, and a script's log line should answer
|
|
285
|
+
// "against which environment" without a re-run.
|
|
286
|
+
target: getApiUrl(opts)
|
|
277
287
|
}
|
|
278
288
|
})
|
|
279
289
|
);
|
|
280
290
|
} else {
|
|
281
291
|
console.error(chalk.red("Error:"), message2);
|
|
282
|
-
if (code === Code.
|
|
292
|
+
if (code === Code.Unavailable) {
|
|
293
|
+
console.error(
|
|
294
|
+
chalk.gray(
|
|
295
|
+
`
|
|
296
|
+
Nothing answered at ${describeTarget(opts)}.
|
|
297
|
+
Check that this is the environment you meant and that it is reachable.`
|
|
298
|
+
)
|
|
299
|
+
);
|
|
300
|
+
} else if (code === Code.Unauthenticated) {
|
|
283
301
|
console.error(
|
|
284
302
|
chalk.gray("\nHint: Run `foir login` to authenticate.")
|
|
285
303
|
);
|
|
@@ -676,7 +694,7 @@ import { fileDesc as fileDesc2, messageDesc as messageDesc2 } from "@bufbuild/pr
|
|
|
676
694
|
var file_common_v1_pagination = /* @__PURE__ */ fileDesc2("Chpjb21tb24vdjEvcGFnaW5hdGlvbi5wcm90bxIJY29tbW9uLnYxIpABCghQYWdlSW5mbxIVCg1oYXNfbmV4dF9wYWdlGAEgASgIEhkKEWhhc19wcmV2aW91c19wYWdlGAIgASgIEhkKDHN0YXJ0X2N1cnNvchgDIAEoCUgAiAEBEhcKCmVuZF9jdXJzb3IYBCABKAlIAYgBAUIPCg1fc3RhcnRfY3Vyc29yQg0KC19lbmRfY3Vyc29yQjlaN2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9jb21tb24vdjE7Y29tbW9udjFiBnByb3RvMw");
|
|
677
695
|
|
|
678
696
|
// ../../packages/proto-ts/src/identity/v1/identity_pb.js
|
|
679
|
-
var file_identity_v1_identity = /* @__PURE__ */ fileDesc3("ChppZGVudGl0eS92MS9pZGVudGl0eS5wcm90bxILaWRlbnRpdHkudjEijwQKCUFkbWluVXNlchIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIXCgpmaXJzdF9uYW1lGAMgASgJSACIAQESFgoJbGFzdF9uYW1lGAQgASgJSAGIAQESFwoKYXZhdGFyX3VybBgFIAEoCUgCiAEBEhkKEWlzX3BsYXRmb3JtX2FkbWluGAYgASgIEiwKBnN0YXR1cxgUIAEoDjIcLmlkZW50aXR5LnYxLkFkbWluVXNlclN0YXR1cxI6ChFlbWFpbF92ZXJpZmllZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI2Cg1sYXN0X2xvZ2luX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEiwKBmFjY2VzcxgoIAMoCzIcLmlkZW50aXR5LnYxLkFkbWluVXNlckFjY2VzcxIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19hdmF0YXJfdXJsQhQKEl9lbWFpbF92ZXJpZmllZF9hdEIQCg5fbGFzdF9sb2dpbl9hdCLpAgoPQWRtaW5Vc2VyQWNjZXNzEgoKAmlkGAEgASgJEhUKDWFkbWluX3VzZXJfaWQYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhcKCnByb2plY3RfaWQYBCABKAlIAIgBARIPCgdyb2xlX2lkGAYgASgJEhAKCHJvbGVfa2V5GAcgASgJEhEKCXJvbGVfbmFtZRgIIAEoCRITCgt0ZW5hbnRfbmFtZRgKIAEoCRIZCgxwcm9qZWN0X25hbWUYCyABKAlIAYgBARIdChVlZmZlY3RpdmVfcGVybWlzc2lvbnMYCSADKAkSLgoKZ3JhbnRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKZ3JhbnRlZF9ieRgzIAEoCUgCiAEBQg0KC19wcm9qZWN0X2lkQg8KDV9wcm9qZWN0X25hbWVCDQoLX2dyYW50ZWRfYnlKBAgFEAZSBHJvbGUi9QIKCEN1c3RvbWVyEgoKAmlkGAEgASgJEg0KBWVtYWlsGAIgASgJEhEKCXRlbmFudF9pZBgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEisKBnN0YXR1cxgUIAEoDjIbLmlkZW50aXR5LnYxLkN1c3RvbWVyU3RhdHVzEjoKEWVtYWlsX3ZlcmlmaWVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjYKDWxhc3RfbG9naW5fYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCFAoSX2VtYWlsX3ZlcmlmaWVkX2F0QhAKDl9sYXN0X2xvZ2luX2F0IokDCgZUZW5hbnQSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIpCgZzdGF0dXMYFCABKA4yGS5pZGVudGl0eS52MS5UZW5hbnRTdGF0dXMSNQoMc3VzcGVuZGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEkIKGWNhbmNlbGxhdGlvbl9zY2hlZHVsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESGwoTZGF0YV9yZXRlbnRpb25fZGF5cxgeIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIPCg1fc3VzcGVuZGVkX2F0QhwKGl9jYW5jZWxsYXRpb25fc2NoZWR1bGVkX2F0SgQIHxAgUg1mbGVldF9lbmFibGVkInAKElNpZ251cFJlc3RyaWN0aW9ucxIaChJibG9ja19zdWJhZGRyZXNzZXMYASABKAgSGAoQYmxvY2tfZGlzcG9zYWJsZRgCIAEoCBIRCglhbGxvd2xpc3QYAyADKAkSEQoJYmxvY2tsaXN0GAQgAygJItAJCgdQcm9qZWN0EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEgoKaXNfZGVmYXVsdBgFIAEoCBIqCgZzdGF0dXMYFCABKA4yGi5pZGVudGl0eS52MS5Qcm9qZWN0U3RhdHVzEj4KFWRlbGV0aW9uX3NjaGVkdWxlZF9hdBgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIXCgpjcmVhdGVkX2J5GCggASgJSAKIAQESFwoKdXBkYXRlZF9ieRgpIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKDGRpc3BsYXlfbmFtZRg8IAEoCUgEiAEBEhUKCGxvZ29fdXJsGD0gASgJSAWIAQESGgoNcHJpbWFyeV9jb2xvchg+IAEoCUgGiAEBEhYKCWZyb21fbmFtZRg/IAEoCUgHiAEBEhUKCHJlcGx5X3RvGEAgASgJSAiIAQESGgoNc3VwcG9ydF9lbWFpbBhBIAEoCUgJiAEBEhkKDGFwcF9iYXNlX3VybBhCIAEoCUgKiAEBEhcKCmZyb21fZW1haWwYQyABKAlIC4gBARIiChVyZXNlbmRfa2V5X3NlY3JldF9yZWYYRCABKAlIDIgBARIrCh5jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWQYRiABKAhIDYgBARImChljdXN0b21lcl9wYXNzd29yZF9lbmFibGVkGFEgASgISA6IAQESIQoUY3VzdG9tZXJfb3RwX2VuYWJsZWQYUiABKAhID4gBARIsCgtzaWdudXBfbW9kZRhTIAEoDjIXLmlkZW50aXR5LnYxLlNpZ251cE1vZGUSQQoTc2lnbnVwX3Jlc3RyaWN0aW9ucxhUIAEoCzIfLmlkZW50aXR5LnYxLlNpZ251cFJlc3RyaWN0aW9uc0gQiAEBEhUKCGdyb3VwX2lkGFogASgJSBGIAQFCDgoMX2Rlc2NyaXB0aW9uQhgKFl9kZWxldGlvbl9zY2hlZHVsZWRfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUILCglfcmVwbHlfdG9CEAoOX3N1cHBvcnRfZW1haWxCDwoNX2FwcF9iYXNlX3VybEINCgtfZnJvbV9lbWFpbEIYChZfcmVzZW5kX2tleV9zZWNyZXRfcmVmQiEKH19jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWRCHAoaX2N1c3RvbWVyX3Bhc3N3b3JkX2VuYWJsZWRCFwoVX2N1c3RvbWVyX290cF9lbmFibGVkQhYKFF9zaWdudXBfcmVzdHJpY3Rpb25zQgsKCV9ncm91cF9pZEoECFAQUVIXY3VzdG9tZXJfc2lnbnVwX2VuYWJsZWQi0gIKDFByb2plY3RHcm91cBIKCgJpZBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRIZChFvdmVycmlkZXNfYWxsb3dlZBgGIAEoCBIeChFzb3VyY2VfcHJvamVjdF9pZBgFIAEoCUgAiAEBEhcKCmNyZWF0ZWRfYnkYKCABKAlIAYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgdtZW1iZXJzGDwgAygLMh8uaWRlbnRpdHkudjEuUHJvamVjdEdyb3VwTWVtYmVyQhQKEl9zb3VyY2VfcHJvamVjdF9pZEINCgtfY3JlYXRlZF9ieUoECAQQBVIEbW9kZSLTAQoSUHJvamVjdEdyb3VwTWVtYmVyEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSMQoEcm9sZRgEIAEoDjIjLmlkZW50aXR5LnYxLlByb2plY3RHcm91cE1lbWJlclJvbGUSGAoLc3RhZ2Vfb3JkZXIYBSABKAVIAIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfc3RhZ2Vfb3JkZXIi9QQKCkludml0YXRpb24SCgoCaWQYASABKAkSDQoFZW1haWwYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhMKC3Byb2plY3RfaWRzGAQgAygJEiwKC2ludml0ZV90eXBlGAYgASgOMhcuaWRlbnRpdHkudjEuSW52aXRlVHlwZRISCgppbnZpdGVkX2J5GAcgASgJEhQKB21lc3NhZ2UYCCABKAlIAIgBARIPCgdyb2xlX2lkGAkgASgJEhAKCHJvbGVfa2V5GAogASgJEhEKCXJvbGVfbmFtZRgLIAEoCRIdChVlZmZlY3RpdmVfcGVybWlzc2lvbnMYDCADKAkSLQoGc3RhdHVzGBQgASgOMh0uaWRlbnRpdHkudjEuSW52aXRhdGlvblN0YXR1cxIuCgpleHBpcmVzX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI0CgthY2NlcHRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI5ChB1bmRlbGl2ZXJhYmxlX2F0GCAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEiEKFHVuZGVsaXZlcmFibGVfcmVhc29uGCEgASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCDgoMX2FjY2VwdGVkX2F0QhMKEV91bmRlbGl2ZXJhYmxlX2F0QhcKFV91bmRlbGl2ZXJhYmxlX3JlYXNvbkoECAUQBlIEcm9sZSLpAwoSQ3VzdG9tZXJJbnZpdGF0aW9uEgoKAmlkGAEgASgJEg0KBWVtYWlsGAIgASgJEhEKCXRlbmFudF9pZBgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEhcKCmludml0ZWRfYnkYBSABKAlIAIgBARIUCgdtZXNzYWdlGAYgASgJSAGIAQESNQoGc3RhdHVzGBQgASgOMiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uU3RhdHVzEi4KCmV4cGlyZXNfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjQKC2FjY2VwdGVkX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEiEKFGFjY2VwdGVkX2N1c3RvbWVyX2lkGCAgASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDQoLX2ludml0ZWRfYnlCCgoIX21lc3NhZ2VCDgoMX2FjY2VwdGVkX2F0QhcKFV9hY2NlcHRlZF9jdXN0b21lcl9pZCLZBAoGQXBpS2V5EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEgwKBG5hbWUYBCABKAkSEgoKa2V5X3ByZWZpeBgFIAEoCRIpCghrZXlfdHlwZRgGIAEoDjIXLmlkZW50aXR5LnYxLkFwaUtleVR5cGUSFAoHcmF3X2tleRgKIAEoCUgAiAEBEhEKCWlzX2FjdGl2ZRgUIAEoCBIgChNyYXRlX2xpbWl0X3Blcl9ob3VyGBUgASgFSAGIAQESMwoKZXhwaXJlc19hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIOCgZzY29wZXMYFyADKAkSLgoIbWV0YWRhdGEYGCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESNQoMbGFzdF91c2VkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEhMKC3VzYWdlX2NvdW50GB8gASgFEhIKCmNyZWF0ZWRfYnkYKCABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX3Jhd19rZXlCFgoUX3JhdGVfbGltaXRfcGVyX2hvdXJCDQoLX2V4cGlyZXNfYXRCCwoJX21ldGFkYXRhQg8KDV9sYXN0X3VzZWRfYXQiqwMKDlNlc3Npb25Db250ZXh0EhYKCXRlbmFudF9pZBgBIAEoCUgAiAEBEhcKCnByb2plY3RfaWQYAiABKAlIAYgBARIkCgR1c2VyGAMgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyEi4KEWF2YWlsYWJsZV90ZW5hbnRzGAUgAygLMhMuaWRlbnRpdHkudjEuVGVuYW50EjAKEmF2YWlsYWJsZV9wcm9qZWN0cxgGIAMoCzIULmlkZW50aXR5LnYxLlByb2plY3QSHQoVZWZmZWN0aXZlX3Blcm1pc3Npb25zGAcgAygJEhUKDWNvbnRlbnRfcmVhY2gYCSABKAgSOwoNcGVuZGluZ19ncmFudBgKIAEoCzIfLmlkZW50aXR5LnYxLkltcGVyc29uYXRpb25HcmFudEgCiAEBEhMKC3RlbmFudF9uYW1lGAsgASgJQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCEAoOX3BlbmRpbmdfZ3JhbnRKBAgEEAVKBAgIEAlSDmVmZmVjdGl2ZV9yb2xlUg1mbGVldF9tYW5hZ2VkIn0KDExvZ2luUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCJfCg1Mb2dpblJlc3BvbnNlEhIKCnNlc3Npb25faWQYASABKAkSFAoMYWNjZXNzX3Rva2VuGAIgASgJEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIifwoTTG9naW5XaXRoT1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRILCgNvdHAYAiABKAkSFgoJdGVuYW50X2lkGAMgASgJSACIAQESFwoKcHJvamVjdF9pZBgEIAEoCUgBiAEBQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWQiZgoUTG9naW5XaXRoT1RQUmVzcG9uc2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAiABKAkSJAoEdXNlchgDIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciJwChFSZXF1ZXN0T1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIWCgl0ZW5hbnRfaWQYAiABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAMgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCIlChJSZXF1ZXN0T1RQUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIPCg1Mb2dvdXRSZXF1ZXN0IiEKDkxvZ291dFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi/AEKD1JlZ2lzdGVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQESFwoKZmlyc3RfbmFtZRgGIAEoCUgCiAEBEhYKCWxhc3RfbmFtZRgHIAEoCUgDiAEBEhQKB3JvbGVfaWQYCCABKAlIBIgBAUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCCgoIX3JvbGVfaWRKBAgFEAZSBHJvbGUiOAoQUmVnaXN0ZXJSZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyIhgKFkdldFNpZ251cENvbmZpZ1JlcXVlc3QixAEKF0dldFNpZ251cENvbmZpZ1Jlc3BvbnNlEiAKGHdvcmtzcGFjZV9zaWdudXBzX2Nsb3NlZBgBIAEoCBIsCgtzaWdudXBfbW9kZRgCIAEoDjIXLmlkZW50aXR5LnYxLlNpZ251cE1vZGUSQQoTc2lnbnVwX3Jlc3RyaWN0aW9ucxgDIAEoCzIfLmlkZW50aXR5LnYxLlNpZ251cFJlc3RyaWN0aW9uc0gAiAEBQhYKFF9zaWdudXBfcmVzdHJpY3Rpb25zIiMKElZlcmlmeUVtYWlsUmVxdWVzdBINCgV0b2tlbhgBIAEoCSImChNWZXJpZnlFbWFpbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiIAoeUmVzZW5kVmVyaWZpY2F0aW9uRW1haWxSZXF1ZXN0IjIKH1Jlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIxCiBTZW5kRW1haWxWZXJpZmljYXRpb25Db2RlUmVxdWVzdBINCgVlbWFpbBgBIAEoCSI0CiFTZW5kRW1haWxWZXJpZmljYXRpb25Db2RlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI1ChZWZXJpZnlFbWFpbENvZGVSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEgwKBGNvZGUYAiABKAkiPAoXVmVyaWZ5RW1haWxDb2RlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIQCgh2ZXJpZmllZBgCIAEoCCIsChtSZXF1ZXN0UGFzc3dvcmRSZXNldFJlcXVlc3QSDQoFZW1haWwYASABKAkiLwocUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjsKFFJlc2V0UGFzc3dvcmRSZXF1ZXN0Eg0KBXRva2VuGAEgASgJEhQKDG5ld19wYXNzd29yZBgCIAEoCSIoChVSZXNldFBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJHChVVcGRhdGVQYXNzd29yZFJlcXVlc3QSGAoQY3VycmVudF9wYXNzd29yZBgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiKQoWVXBkYXRlUGFzc3dvcmRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhoKGEdldFNlc3Npb25Db250ZXh0UmVxdWVzdCJJChlHZXRTZXNzaW9uQ29udGV4dFJlc3BvbnNlEiwKB2NvbnRleHQYASABKAsyGy5pZGVudGl0eS52MS5TZXNzaW9uQ29udGV4dCIoChNTd2l0Y2hUZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSJEChRTd2l0Y2hUZW5hbnRSZXNwb25zZRIsCgdjb250ZXh0GAEgASgLMhsuaWRlbnRpdHkudjEuU2Vzc2lvbkNvbnRleHQiKgoUU3dpdGNoUHJvamVjdFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJFChVTd2l0Y2hQcm9qZWN0UmVzcG9uc2USLAoHY29udGV4dBgBIAEoCzIbLmlkZW50aXR5LnYxLlNlc3Npb25Db250ZXh0IhwKGkNsZWFyU2Vzc2lvbkNvbnRleHRSZXF1ZXN0Ii4KG0NsZWFyU2Vzc2lvbkNvbnRleHRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIg4KDEdldE1lUmVxdWVzdCJTCg1HZXRNZVJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXISHAoUY2FuX2NyZWF0ZV93b3Jrc3BhY2UYAiABKAgingMKEUNhcGFiaWxpdHlSZXF1ZXN0EgoKAmlkGAEgASgJEhIKCmNhcGFiaWxpdHkYAiABKAkSFQoNYWRtaW5fdXNlcl9pZBgDIAEoCRI0CgZzdGF0dXMYBCABKA4yJC5pZGVudGl0eS52MS5DYXBhYmlsaXR5UmVxdWVzdFN0YXR1cxIRCgRub3RlGAUgASgJSACIAQESGAoLcmVzb2x2ZWRfYnkYBiABKAlIAYgBARI0CgtyZXNvbHZlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIcCg9yZXF1ZXN0ZXJfZW1haWwYCSABKAlIA4gBARIbCg5yZXF1ZXN0ZXJfbmFtZRgKIAEoCUgEiAEBQgcKBV9ub3RlQg4KDF9yZXNvbHZlZF9ieUIOCgxfcmVzb2x2ZWRfYXRCEgoQX3JlcXVlc3Rlcl9lbWFpbEIRCg9fcmVxdWVzdGVyX25hbWUiSgoYUmVxdWVzdENhcGFiaWxpdHlSZXF1ZXN0EhIKCmNhcGFiaWxpdHkYASABKAkSEQoEbm90ZRgCIAEoCUgAiAEBQgcKBV9ub3RlIkwKGVJlcXVlc3RDYXBhYmlsaXR5UmVzcG9uc2USLwoHcmVxdWVzdBgBIAEoCzIeLmlkZW50aXR5LnYxLkNhcGFiaWxpdHlSZXF1ZXN0IiEKH0xpc3RNeUNhcGFiaWxpdHlSZXF1ZXN0c1JlcXVlc3QiVAogTGlzdE15Q2FwYWJpbGl0eVJlcXVlc3RzUmVzcG9uc2USMAoIcmVxdWVzdHMYASADKAsyHi5pZGVudGl0eS52MS5DYXBhYmlsaXR5UmVxdWVzdCJlCh1MaXN0Q2FwYWJpbGl0eVJlcXVlc3RzUmVxdWVzdBI5CgZzdGF0dXMYASABKA4yJC5pZGVudGl0eS52MS5DYXBhYmlsaXR5UmVxdWVzdFN0YXR1c0gAiAEBQgkKB19zdGF0dXMiUgoeTGlzdENhcGFiaWxpdHlSZXF1ZXN0c1Jlc3BvbnNlEjAKCHJlcXVlc3RzGAEgAygLMh4uaWRlbnRpdHkudjEuQ2FwYWJpbGl0eVJlcXVlc3QiPgofUmVzb2x2ZUNhcGFiaWxpdHlSZXF1ZXN0UmVxdWVzdBIKCgJpZBgBIAEoCRIPCgdhcHByb3ZlGAIgASgIIlMKIFJlc29sdmVDYXBhYmlsaXR5UmVxdWVzdFJlc3BvbnNlEi8KB3JlcXVlc3QYASABKAsyHi5pZGVudGl0eS52MS5DYXBhYmlsaXR5UmVxdWVzdCIjCiFCdWxrQXBwbHlXb3Jrc3BhY2VDcmVhdGlvblJlcXVlc3QiNQoiQnVsa0FwcGx5V29ya3NwYWNlQ3JlYXRpb25SZXNwb25zZRIPCgdncmFudGVkGAEgASgFIiQKIkJ1bGtSZXZva2VXb3Jrc3BhY2VDcmVhdGlvblJlcXVlc3QiNgojQnVsa1Jldm9rZVdvcmtzcGFjZUNyZWF0aW9uUmVzcG9uc2USDwoHcmV2b2tlZBgBIAEoBSLNAQoWQ3JlYXRlQWRtaW5Vc2VyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIXCgpmaXJzdF9uYW1lGAIgASgJSACIAQESFgoJbGFzdF9uYW1lGAMgASgJSAGIAQESEQoJdGVuYW50X2lkGAQgASgJEhcKCnByb2plY3RfaWQYBSABKAlIAogBARIPCgdyb2xlX2lkGAcgASgJQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCDQoLX3Byb2plY3RfaWRKBAgGEAdSBHJvbGUiPwoXQ3JlYXRlQWRtaW5Vc2VyUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciIhChNHZXRBZG1pblVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIjwKFEdldEFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIi2AEKFlVwZGF0ZUFkbWluVXNlclJlcXVlc3QSCgoCaWQYASABKAkSFwoKZmlyc3RfbmFtZRgCIAEoCUgAiAEBEhYKCWxhc3RfbmFtZRgDIAEoCUgBiAEBEhcKCmF2YXRhcl91cmwYBCABKAlIAogBARIxCgZzdGF0dXMYBSABKA4yHC5pZGVudGl0eS52MS5BZG1pblVzZXJTdGF0dXNIA4gBAUINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19hdmF0YXJfdXJsQgkKB19zdGF0dXMiPwoXVXBkYXRlQWRtaW5Vc2VyUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciL7AQoVTGlzdEFkbWluVXNlcnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAQgASgJSAGIAQESEwoGYmVmb3JlGAUgASgJSAKIAQESEgoFZmlyc3QYBiABKAVIA4gBARIRCgRsYXN0GAcgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAIQA0oECAMQBEoECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldFIEcm9sZVIGc3RhdHVzIpoBChZMaXN0QWRtaW5Vc2Vyc1Jlc3BvbnNlEiUKBWl0ZW1zGAEgAygLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKCAQoNUmVzb2x2ZWRBY3RvchIRCglhY3Rvcl9yZWYYASABKAkSJAoEa2luZBgCIAEoDjIWLmlkZW50aXR5LnYxLkFjdG9yS2luZBINCgVsYWJlbBgDIAEoCRIVCg1hZG1pbl91c2VyX2lkGAQgASgJEhIKCmF2YXRhcl91cmwYBSABKAkiKgoUUmVzb2x2ZUFjdG9yc1JlcXVlc3QSEgoKYWN0b3JfcmVmcxgBIAMoCSJDChVSZXNvbHZlQWN0b3JzUmVzcG9uc2USKgoGYWN0b3JzGAEgAygLMhouaWRlbnRpdHkudjEuUmVzb2x2ZWRBY3RvciKyAQoYTGlzdFRlbmFudE1lbWJlcnNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQESEwoGc2VhcmNoGAUgASgJSASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QgkKB19zZWFyY2giYgoMVGVuYW50TWVtYmVyEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXISLAoGYWNjZXNzGAIgAygLMhwuaWRlbnRpdHkudjEuQWRtaW5Vc2VyQWNjZXNzIqIBChlMaXN0VGVuYW50TWVtYmVyc1Jlc3BvbnNlEioKB21lbWJlcnMYASADKAsyGS5pZGVudGl0eS52MS5UZW5hbnRNZW1iZXISDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIoMBChJHcmFudEFjY2Vzc1JlcXVlc3QSFQoNYWRtaW5fdXNlcl9pZBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSFwoKcHJvamVjdF9pZBgDIAEoCUgAiAEBEg8KB3JvbGVfaWQYBSABKAlCDQoLX3Byb2plY3RfaWRKBAgEEAVSBHJvbGUiQwoTR3JhbnRBY2Nlc3NSZXNwb25zZRIsCgZhY2Nlc3MYASABKAsyHC5pZGVudGl0eS52MS5BZG1pblVzZXJBY2Nlc3MiKAoTUmV2b2tlQWNjZXNzUmVxdWVzdBIRCglhY2Nlc3NfaWQYASABKAkiJwoUUmV2b2tlQWNjZXNzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLcBQoSSW1wZXJzb25hdGlvbkdyYW50EgoKAmlkGAEgASgJEhIKCmdyYW50ZWVfaWQYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhIKCmdyYW50ZWRfYnkYBCABKAkSDgoGcmVhc29uGAUgASgJEi4KCmV4cGlyZXNfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCnJldm9rZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESFwoKcmV2b2tlZF9ieRgJIAEoCUgBiAEBEjUKBnN0YXR1cxgKIAEoDjIlLmlkZW50aXR5LnYxLkltcGVyc29uYXRpb25HcmFudFN0YXR1cxJBCg9hcHByb3ZhbF9tZXRob2QYCyABKA4yKC5pZGVudGl0eS52MS5JbXBlcnNvbmF0aW9uQXBwcm92YWxNZXRob2QSNAoLYXBwcm92ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGAoLYXBwcm92ZWRfYnkYDSABKAlIA4gBARI7ChJyZXF1ZXN0X2V4cGlyZXNfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESHwoXYWRtaW5pc3RyYXRvcnNfbm90aWZpZWQYDyABKAUSEwoLdGVuYW50X25hbWUYECABKAkSGAoQZ3JhbnRlZF9ieV9lbWFpbBgRIAEoCRIVCg1ncmFudGVlX2VtYWlsGBIgASgJQg0KC19yZXZva2VkX2F0Qg0KC19yZXZva2VkX2J5Qg4KDF9hcHByb3ZlZF9hdEIOCgxfYXBwcm92ZWRfYnlCFQoTX3JlcXVlc3RfZXhwaXJlc19hdCJAChtSZXF1ZXN0SW1wZXJzb25hdGlvblJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEg4KBnJlYXNvbhgCIAEoCSJOChxSZXF1ZXN0SW1wZXJzb25hdGlvblJlc3BvbnNlEi4KBWdyYW50GAEgASgLMh8uaWRlbnRpdHkudjEuSW1wZXJzb25hdGlvbkdyYW50Ij0KG0FwcHJvdmVJbXBlcnNvbmF0aW9uUmVxdWVzdBIQCghncmFudF9pZBgBIAEoCRIMCgRjb2RlGAIgASgJIk4KHEFwcHJvdmVJbXBlcnNvbmF0aW9uUmVzcG9uc2USLgoFZ3JhbnQYASABKAsyHy5pZGVudGl0eS52MS5JbXBlcnNvbmF0aW9uR3JhbnQiOgoYRGVueUltcGVyc29uYXRpb25SZXF1ZXN0EhAKCGdyYW50X2lkGAEgASgJEgwKBGNvZGUYAiABKAkiSwoZRGVueUltcGVyc29uYXRpb25SZXNwb25zZRIuCgVncmFudBgBIAEoCzIfLmlkZW50aXR5LnYxLkltcGVyc29uYXRpb25HcmFudCJaCh5CcmVha0dsYXNzSW1wZXJzb25hdGlvblJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEg4KBnJlYXNvbhgCIAEoCRIVCg1qdXN0aWZpY2F0aW9uGAMgASgJIlEKH0JyZWFrR2xhc3NJbXBlcnNvbmF0aW9uUmVzcG9uc2USLgoFZ3JhbnQYASABKAsyHy5pZGVudGl0eS52MS5JbXBlcnNvbmF0aW9uR3JhbnQiKAoaUmV2b2tlSW1wZXJzb25hdGlvblJlcXVlc3QSCgoCaWQYASABKAkiTQobUmV2b2tlSW1wZXJzb25hdGlvblJlc3BvbnNlEi4KBWdyYW50GAEgASgLMh8uaWRlbnRpdHkudjEuSW1wZXJzb25hdGlvbkdyYW50IvsBCh5MaXN0SW1wZXJzb25hdGlvbkdyYW50c1JlcXVlc3QSFwoKZ3JhbnRlZV9pZBgBIAEoCUgAiAEBEhYKCXRlbmFudF9pZBgCIAEoCUgBiAEBEhMKC2FjdGl2ZV9vbmx5GAMgASgIEhIKBWFmdGVyGAQgASgJSAKIAQESEwoGYmVmb3JlGAUgASgJSAOIAQESEgoFZmlyc3QYBiABKAVIBIgBARIRCgRsYXN0GAcgASgFSAWIAQFCDQoLX2dyYW50ZWVfaWRCDAoKX3RlbmFudF9pZEIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QirQEKH0xpc3RJbXBlcnNvbmF0aW9uR3JhbnRzUmVzcG9uc2USLwoGZ3JhbnRzGAEgAygLMh8uaWRlbnRpdHkudjEuSW1wZXJzb25hdGlvbkdyYW50Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJPChJFbnRlclRlbmFudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhcKCnByb2plY3RfaWQYAiABKAlIAIgBAUINCgtfcHJvamVjdF9pZCK/AQoTRW50ZXJUZW5hbnRSZXNwb25zZRIsCgdjb250ZXh0GAEgASgLMhsuaWRlbnRpdHkudjEuU2Vzc2lvbkNvbnRleHQSMwoFZ3JhbnQYAiABKAsyHy5pZGVudGl0eS52MS5JbXBlcnNvbmF0aW9uR3JhbnRIAIgBAUIICgZfZ3JhbnRKBAgDEARKBAgEEAVKBAgFEAZSDWNvbnRlbnRfcmVhY2hSDXBlbmRpbmdfZ3JhbnRSC3RlbmFudF9uYW1lIpABChpNaW50TWNwV29ya2luZ1Rva2VuUmVxdWVzdBIWCgl0ZW5hbnRfaWQYASABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAIgASgJSAGIAQESFgoJcmVhZF9vbmx5GAMgASgISAKIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZEIMCgpfcmVhZF9vbmx5IsgBChtNaW50TWNwV29ya2luZ1Rva2VuUmVzcG9uc2USFQoNd29ya2luZ190b2tlbhgBIAEoCRIuCgpleHBpcmVzX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCghyZXNvdXJjZRgDIAEoCRIRCgl0ZW5hbnRfaWQYBCABKAkSEwoLdGVuYW50X25hbWUYBSABKAkSEgoKcHJvamVjdF9pZBgGIAEoCRIUCgxwcm9qZWN0X25hbWUYByABKAkiSgoVQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhUKCHBhc3N3b3JkGAIgASgJSACIAQFCCwoJX3Bhc3N3b3JkIkEKFkNyZWF0ZUN1c3RvbWVyUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciIgChJHZXRDdXN0b21lclJlcXVlc3QSCgoCaWQYASABKAkiPgoTR2V0Q3VzdG9tZXJSZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIn4KFVVwZGF0ZUN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCRISCgVlbWFpbBgCIAEoCUgAiAEBEjAKBnN0YXR1cxgDIAEoDjIbLmlkZW50aXR5LnYxLkN1c3RvbWVyU3RhdHVzSAGIAQFCCAoGX2VtYWlsQgkKB19zdGF0dXMiQQoWVXBkYXRlQ3VzdG9tZXJSZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIiMKFURlbGV0ZUN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCSIpChZEZWxldGVDdXN0b21lclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi7gEKFExpc3RDdXN0b21lcnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAIQA0oECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldFIGc3RhdHVzIpgBChVMaXN0Q3VzdG9tZXJzUmVzcG9uc2USJAoFaXRlbXMYASADKAsyFS5pZGVudGl0eS52MS5DdXN0b21lchINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iJAoWU3VzcGVuZEN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCSJCChdTdXNwZW5kQ3VzdG9tZXJSZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIlMKFU1lcmdlQ3VzdG9tZXJzUmVxdWVzdBITCgtzdXJ2aXZvcl9pZBgBIAEoCRIUCgxkdXBsaWNhdGVfaWQYAiABKAkSDwoHZHJ5X3J1bhgDIAEoCCJoChZNZXJnZUN1c3RvbWVyc1Jlc3BvbnNlEg8KB3JldGlyZWQYASABKAgSDAoEbm9vcBgCIAEoCBIvCgVtb3ZlZBgDIAEoCzIgLmlkZW50aXR5LnYxLk1lcmdlQ3VzdG9tZXJzTW92ZWQiwQEKE01lcmdlQ3VzdG9tZXJzTW92ZWQSDwoHcmVjb3JkcxgBIAEoBRINCgVmaWxlcxgCIAEoBRIbChNwcm92aWRlcl9pZGVudGl0aWVzGAMgASgFEhAKCHByb2ZpbGVzGAQgASgFEhsKE3NlZ21lbnRfbWVtYmVyc2hpcHMYBiABKAUSGAoQcm9sZV9hc3NpZ25tZW50cxgHIAEoBRIeChZyZWZyZXNoX3Rva2Vuc19yZXZva2VkGAggASgFSgQIBRAGIj4KGlNldEN1c3RvbWVyUGFzc3dvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDG5ld19wYXNzd29yZBgCIAEoCSIuChtTZXRDdXN0b21lclBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLcAQofQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIXCgppbnZpdGVkX2J5GAIgASgJSACIAQESFAoHbWVzc2FnZRgDIAEoCUgBiAEBEhcKCnNlbmRfZW1haWwYBCABKAhIAogBARIgChNhY2NlcHRfdXJsX292ZXJyaWRlGAUgASgJSAOIAQFCDQoLX2ludml0ZWRfYnlCCgoIX21lc3NhZ2VCDQoLX3NlbmRfZW1haWxCFgoUX2FjY2VwdF91cmxfb3ZlcnJpZGUiegogQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbhISCgphY2NlcHRfdXJsGAIgASgJEg0KBXRva2VuGAMgASgJIvgBCh5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIAhADSgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0UgZzZWFyY2girAEKH0xpc3RDdXN0b21lckludml0YXRpb25zUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIioKHEdldEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkiVAodR2V0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbiItCh9SZXZva2VDdXN0b21lckludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjMKIFJldm9rZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgijwEKH1Jlc2VuZEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSFwoKc2VuZF9lbWFpbBgCIAEoCEgAiAEBEiAKE2FjY2VwdF91cmxfb3ZlcnJpZGUYAyABKAlIAYgBAUINCgtfc2VuZF9lbWFpbEIWChRfYWNjZXB0X3VybF9vdmVycmlkZSJ6CiBSZXNlbmRDdXN0b21lckludml0YXRpb25SZXNwb25zZRIzCgppbnZpdGF0aW9uGAEgASgLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uEhIKCmFjY2VwdF91cmwYAiABKAkSDQoFdG9rZW4YAyABKAkiMgohVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXF1ZXN0Eg0KBXRva2VuGAEgASgJIocBCiJWYWxpZGF0ZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEjMKCmludml0YXRpb24YASABKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb24SLAoJcHJvdmlkZXJzGAIgAygLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIlQKH0FjY2VwdEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSDQoFdG9rZW4YASABKAkSFQoIcGFzc3dvcmQYAiABKAlIAIgBAUILCglfcGFzc3dvcmQieAogQWNjZXB0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lchIUCgxhY2Nlc3NfdG9rZW4YAiABKAkSFQoNcmVmcmVzaF90b2tlbhgDIAEoCSJAChNDcmVhdGVUZW5hbnRSZXF1ZXN0EgwKBG5hbWUYASABKAkSGwoTb3duZXJfYWRtaW5fdXNlcl9pZBgCIAEoCSI7ChRDcmVhdGVUZW5hbnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiUgoWQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJEhkKDHByb2plY3RfbmFtZRgCIAEoCUgAiAEBQg8KDV9wcm9qZWN0X25hbWUibQoXQ3JlYXRlV29ya3NwYWNlUmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50Ei0KD2RlZmF1bHRfcHJvamVjdBgCIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3QiHgoQR2V0VGVuYW50UmVxdWVzdBIKCgJpZBgBIAEoCSI4ChFHZXRUZW5hbnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQieAoTVXBkYXRlVGVuYW50UmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESLgoGc3RhdHVzGAMgASgOMhkuaWRlbnRpdHkudjEuVGVuYW50U3RhdHVzSAGIAQFCBwoFX25hbWVCCQoHX3N0YXR1cyI7ChRVcGRhdGVUZW5hbnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQieQokU2V0VGVuYW50UHJvamVjdExpbWl0T3ZlcnJpZGVSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIjChZwcm9qZWN0X2xpbWl0X292ZXJyaWRlGAIgASgDSACIAQFCGQoXX3Byb2plY3RfbGltaXRfb3ZlcnJpZGUiZwolU2V0VGVuYW50UHJvamVjdExpbWl0T3ZlcnJpZGVSZXNwb25zZRIjChZwcm9qZWN0X2xpbWl0X292ZXJyaWRlGAEgASgDSACIAQFCGQoXX3Byb2plY3RfbGltaXRfb3ZlcnJpZGUi7wEKEVRlbmFudEVudGl0bGVtZW50EhEKCXRlbmFudF9pZBgBIAEoCRITCgtmZWF0dXJlX2tleRgCIAEoCRIyCgVzdGF0ZRgDIAEoDjIjLmlkZW50aXR5LnYxLlRlbmFudEVudGl0bGVtZW50U3RhdGUSDgoGc2V0X2J5GAQgASgJEg4KBnJlYXNvbhgFIAEoCRIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKJAQobU2V0VGVuYW50RW50aXRsZW1lbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRITCgtmZWF0dXJlX2tleRgCIAEoCRIyCgVzdGF0ZRgDIAEoDjIjLmlkZW50aXR5LnYxLlRlbmFudEVudGl0bGVtZW50U3RhdGUSDgoGcmVhc29uGAQgASgJImgKHFNldFRlbmFudEVudGl0bGVtZW50UmVzcG9uc2USOAoLZW50aXRsZW1lbnQYASABKAsyHi5pZGVudGl0eS52MS5UZW5hbnRFbnRpdGxlbWVudEgAiAEBQg4KDF9lbnRpdGxlbWVudCIyCh1MaXN0VGVuYW50RW50aXRsZW1lbnRzUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiVgoeTGlzdFRlbmFudEVudGl0bGVtZW50c1Jlc3BvbnNlEjQKDGVudGl0bGVtZW50cxgBIAMoCzIeLmlkZW50aXR5LnYxLlRlbmFudEVudGl0bGVtZW50It4BChJMaXN0VGVuYW50c1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0IpQBChNMaXN0VGVuYW50c1Jlc3BvbnNlEiIKBWl0ZW1zGAEgAygLMhMuaWRlbnRpdHkudjEuVGVuYW50Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIhChNEZWxldGVUZW5hbnRSZXF1ZXN0EgoKAmlkGAEgASgJIicKFERlbGV0ZVRlbmFudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAginAgKFENyZWF0ZVByb2plY3RSZXF1ZXN0EgwKBG5hbWUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARIRCgl0ZW5hbnRfaWQYAyABKAkSIAoTZGVmYXVsdF9sb2NhbGVfY29kZRgEIAEoCUgBiAEBEigKG2RlZmF1bHRfbG9jYWxlX2Rpc3BsYXlfbmFtZRgFIAEoCUgCiAEBEicKGmRlZmF1bHRfbG9jYWxlX25hdGl2ZV9uYW1lGAYgASgJSAOIAQESIgoVZGVmYXVsdF9sb2NhbGVfaXNfcnRsGAcgASgISASIAQESGQoMZGlzcGxheV9uYW1lGAogASgJSAWIAQESFQoIbG9nb191cmwYCyABKAlIBogBARIaCg1wcmltYXJ5X2NvbG9yGAwgASgJSAeIAQESFgoJZnJvbV9uYW1lGA0gASgJSAiIAQESFQoIcmVwbHlfdG8YDiABKAlICYgBARIaCg1zdXBwb3J0X2VtYWlsGA8gASgJSAqIAQESGQoMYXBwX2Jhc2VfdXJsGBAgASgJSAuIAQESKwoeY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkGBQgASgISAyIAQESJgoZY3VzdG9tZXJfcGFzc3dvcmRfZW5hYmxlZBgfIAEoCEgNiAEBEiEKFGN1c3RvbWVyX290cF9lbmFibGVkGCAgASgISA6IAQESMQoLc2lnbnVwX21vZGUYISABKA4yFy5pZGVudGl0eS52MS5TaWdudXBNb2RlSA+IAQESQQoTc2lnbnVwX3Jlc3RyaWN0aW9ucxgiIAEoCzIfLmlkZW50aXR5LnYxLlNpZ251cFJlc3RyaWN0aW9uc0gQiAEBQg4KDF9kZXNjcmlwdGlvbkIWChRfZGVmYXVsdF9sb2NhbGVfY29kZUIeChxfZGVmYXVsdF9sb2NhbGVfZGlzcGxheV9uYW1lQh0KG19kZWZhdWx0X2xvY2FsZV9uYXRpdmVfbmFtZUIYChZfZGVmYXVsdF9sb2NhbGVfaXNfcnRsQg8KDV9kaXNwbGF5X25hbWVCCwoJX2xvZ29fdXJsQhAKDl9wcmltYXJ5X2NvbG9yQgwKCl9mcm9tX25hbWVCCwoJX3JlcGx5X3RvQhAKDl9zdXBwb3J0X2VtYWlsQg8KDV9hcHBfYmFzZV91cmxCIQofX2N1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZEIcChpfY3VzdG9tZXJfcGFzc3dvcmRfZW5hYmxlZEIXChVfY3VzdG9tZXJfb3RwX2VuYWJsZWRCDgoMX3NpZ251cF9tb2RlQhYKFF9zaWdudXBfcmVzdHJpY3Rpb25zSgQIHhAfUhdjdXN0b21lcl9zaWdudXBfZW5hYmxlZCI+ChVDcmVhdGVQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3QiHwoRR2V0UHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiOwoSR2V0UHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0IrsHChRVcGRhdGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIvCgZzdGF0dXMYBCABKA4yGi5pZGVudGl0eS52MS5Qcm9qZWN0U3RhdHVzSAKIAQESGQoMZGlzcGxheV9uYW1lGAogASgJSAOIAQESFQoIbG9nb191cmwYCyABKAlIBIgBARIaCg1wcmltYXJ5X2NvbG9yGAwgASgJSAWIAQESFgoJZnJvbV9uYW1lGA0gASgJSAaIAQESFQoIcmVwbHlfdG8YDiABKAlIB4gBARIaCg1zdXBwb3J0X2VtYWlsGA8gASgJSAiIAQESGQoMYXBwX2Jhc2VfdXJsGBAgASgJSAmIAQESFwoKZnJvbV9lbWFpbBgRIAEoCUgKiAEBEiIKFXJlc2VuZF9rZXlfc2VjcmV0X3JlZhgSIAEoCUgLiAEBEisKHmN1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZBgUIAEoCEgMiAEBEiYKGWN1c3RvbWVyX3Bhc3N3b3JkX2VuYWJsZWQYHyABKAhIDYgBARIhChRjdXN0b21lcl9vdHBfZW5hYmxlZBggIAEoCEgOiAEBEjEKC3NpZ251cF9tb2RlGCEgASgOMhcuaWRlbnRpdHkudjEuU2lnbnVwTW9kZUgPiAEBEkEKE3NpZ251cF9yZXN0cmljdGlvbnMYIiABKAsyHy5pZGVudGl0eS52MS5TaWdudXBSZXN0cmljdGlvbnNIEIgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCQoHX3N0YXR1c0IPCg1fZGlzcGxheV9uYW1lQgsKCV9sb2dvX3VybEIQCg5fcHJpbWFyeV9jb2xvckIMCgpfZnJvbV9uYW1lQgsKCV9yZXBseV90b0IQCg5fc3VwcG9ydF9lbWFpbEIPCg1fYXBwX2Jhc2VfdXJsQg0KC19mcm9tX2VtYWlsQhgKFl9yZXNlbmRfa2V5X3NlY3JldF9yZWZCIQofX2N1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZEIcChpfY3VzdG9tZXJfcGFzc3dvcmRfZW5hYmxlZEIXChVfY3VzdG9tZXJfb3RwX2VuYWJsZWRCDgoMX3NpZ251cF9tb2RlQhYKFF9zaWdudXBfcmVzdHJpY3Rpb25zSgQIHhAfUhdjdXN0b21lcl9zaWdudXBfZW5hYmxlZCI+ChVVcGRhdGVQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3Qi8gEKE0xpc3RQcm9qZWN0c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEisKBXdoZXJlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldCKWAQoUTGlzdFByb2plY3RzUmVzcG9uc2USIwoFaXRlbXMYASADKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIiChREZWxldGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSIoChVEZWxldGVQcm9qZWN0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJMChNQdXJnZVByb2plY3RSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEg4KBnJlYXNvbhgDIAEoCSInChRQdXJnZVByb2plY3RSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIi0KGEdldERlZmF1bHRQcm9qZWN0UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiQgoZR2V0RGVmYXVsdFByb2plY3RSZXNwb25zZRIlCgdwcm9qZWN0GAEgASgLMhQuaWRlbnRpdHkudjEuUHJvamVjdCIuChhTZXREZWZhdWx0UHJvamVjdFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJCChlTZXREZWZhdWx0UHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0IpkBChlDcmVhdGVQcm9qZWN0R3JvdXBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJEhkKEW92ZXJyaWRlc19hbGxvd2VkGAUgASgIEh4KEXNvdXJjZV9wcm9qZWN0X2lkGAQgASgJSACIAQFCFAoSX3NvdXJjZV9wcm9qZWN0X2lkSgQIAxAEUgRtb2RlIkYKGkNyZWF0ZVByb2plY3RHcm91cFJlc3BvbnNlEigKBWdyb3VwGAEgASgLMhkuaWRlbnRpdHkudjEuUHJvamVjdEdyb3VwIiQKFkdldFByb2plY3RHcm91cFJlcXVlc3QSCgoCaWQYASABKAkiQwoXR2V0UHJvamVjdEdyb3VwUmVzcG9uc2USKAoFZ3JvdXAYASABKAsyGS5pZGVudGl0eS52MS5Qcm9qZWN0R3JvdXAiLQoYTGlzdFByb2plY3RHcm91cHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSJUChlMaXN0UHJvamVjdEdyb3Vwc1Jlc3BvbnNlEigKBWl0ZW1zGAEgAygLMhkuaWRlbnRpdHkudjEuUHJvamVjdEdyb3VwEg0KBXRvdGFsGAIgASgFIrsBChlVcGRhdGVQcm9qZWN0R3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIeChFzb3VyY2VfcHJvamVjdF9pZBgDIAEoCUgBiAEBEh4KEW92ZXJyaWRlc19hbGxvd2VkGAUgASgISAKIAQFCBwoFX25hbWVCFAoSX3NvdXJjZV9wcm9qZWN0X2lkQhQKEl9vdmVycmlkZXNfYWxsb3dlZEoECAQQBVIEbW9kZSJGChpVcGRhdGVQcm9qZWN0R3JvdXBSZXNwb25zZRIoCgVncm91cBgBIAEoCzIZLmlkZW50aXR5LnYxLlByb2plY3RHcm91cCInChlEZWxldGVQcm9qZWN0R3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJIi0KGkRlbGV0ZVByb2plY3RHcm91cFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAginQEKGEFkZFByb2plY3RUb0dyb3VwUmVxdWVzdBIQCghncm91cF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEjEKBHJvbGUYAyABKA4yIy5pZGVudGl0eS52MS5Qcm9qZWN0R3JvdXBNZW1iZXJSb2xlEhgKC3N0YWdlX29yZGVyGAQgASgFSACIAQFCDgoMX3N0YWdlX29yZGVyIkwKGUFkZFByb2plY3RUb0dyb3VwUmVzcG9uc2USLwoGbWVtYmVyGAEgASgLMh8uaWRlbnRpdHkudjEuUHJvamVjdEdyb3VwTWVtYmVyIkUKHVJlbW92ZVByb2plY3RGcm9tR3JvdXBSZXF1ZXN0EhAKCGdyb3VwX2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkiMQoeUmVtb3ZlUHJvamVjdEZyb21Hcm91cFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgisAMKD1Byb2plY3RCcmFuZGluZxIZCgxkaXNwbGF5X25hbWUYASABKAlIAIgBARIVCghsb2dvX3VybBgCIAEoCUgBiAEBEhoKDXByaW1hcnlfY29sb3IYAyABKAlIAogBARIWCglmcm9tX25hbWUYBCABKAlIA4gBARIaCg1zdXBwb3J0X2VtYWlsGAUgASgJSASIAQESGQoMYXBwX2Jhc2VfdXJsGAYgASgJSAWIAQESJgoZY3VzdG9tZXJfcGFzc3dvcmRfZW5hYmxlZBgIIAEoCEgGiAEBEiEKFGN1c3RvbWVyX290cF9lbmFibGVkGAkgASgISAeIAQFCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUIQCg5fc3VwcG9ydF9lbWFpbEIPCg1fYXBwX2Jhc2VfdXJsQhwKGl9jdXN0b21lcl9wYXNzd29yZF9lbmFibGVkQhcKFV9jdXN0b21lcl9vdHBfZW5hYmxlZEoECAcQCFIXY3VzdG9tZXJfc2lnbnVwX2VuYWJsZWQipgEKE1Byb3Zpc2lvblN0ZXBTdGF0dXMSFwoPY3JlYXRlZF9wcm9qZWN0GAEgASgIEhQKDGJyYW5kaW5nX3NldBgCIAEoCBIVCg1hcHBfaW5zdGFsbGVkGAMgASgIEhYKDnNlY3JldF93cml0dGVuGAQgASgIEhQKDGdyb3VwX2pvaW5lZBgFIAEoCBIbChNhbGxvd19saXN0X2V4dGVuZGVkGAYgASgIIrkDChdQcm92aXNpb25Qcm9qZWN0UmVxdWVzdBIUCgxwcm92aXNpb25faWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhAKCGdyb3VwX2lkGAMgASgJEgwKBG5hbWUYBCABKAkSMwoIYnJhbmRpbmcYBSABKAsyHC5pZGVudGl0eS52MS5Qcm9qZWN0QnJhbmRpbmdIAIgBARITCgZhcHBfaWQYBiABKAlIAYgBARIdChBhcHBfc2VjcmV0X2xhYmVsGAcgASgJSAKIAQESHQoQYXBwX3NlY3JldF92YWx1ZRgIIAEoCUgDiAEBEhkKDG1hbmlmZXN0X3VybBgJIAEoCUgEiAEBEjIKDGFwcF9tYXBwaW5ncxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIaChJhbGxvd19saXN0X2tleV9pZHMYCyADKAlCCwoJX2JyYW5kaW5nQgkKB19hcHBfaWRCEwoRX2FwcF9zZWNyZXRfbGFiZWxCEwoRX2FwcF9zZWNyZXRfdmFsdWVCDwoNX21hbmlmZXN0X3VybEIPCg1fYXBwX21hcHBpbmdzIrMBChhQcm92aXNpb25Qcm9qZWN0UmVzcG9uc2USFAoMcHJvdmlzaW9uX2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFgoOc2NoZW1hX3ZlcnNpb24YAyABKAkSDgoGc3RhdHVzGAUgASgJEi8KBXN0ZXBzGAYgASgLMiAuaWRlbnRpdHkudjEuUHJvdmlzaW9uU3RlcFN0YXR1c0oECAQQBVIOZGVwbG95X3ZlcnNpb24iMQoZR2V0UHJvdmlzaW9uU3RhdHVzUmVxdWVzdBIUCgxwcm92aXNpb25faWQYASABKAkitQEKGkdldFByb3Zpc2lvblN0YXR1c1Jlc3BvbnNlEhQKDHByb3Zpc2lvbl9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhYKDnNjaGVtYV92ZXJzaW9uGAMgASgJEg4KBnN0YXR1cxgFIAEoCRIvCgVzdGVwcxgGIAEoCzIgLmlkZW50aXR5LnYxLlByb3Zpc2lvblN0ZXBTdGF0dXNKBAgEEAVSDmRlcGxveV92ZXJzaW9uIr0BChdDcmVhdGVJbnZpdGF0aW9uUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSEwoLcHJvamVjdF9pZHMYAyADKAkSLAoLaW52aXRlX3R5cGUYBSABKA4yFy5pZGVudGl0eS52MS5JbnZpdGVUeXBlEhQKB21lc3NhZ2UYBiABKAlIAIgBARIPCgdyb2xlX2lkGAcgASgJQgoKCF9tZXNzYWdlSgQIBBAFUgRyb2xlIkcKGENyZWF0ZUludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiL1AQoWTGlzdEludml0YXRpb25zUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSKwoFd2hlcmUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0IpwBChdMaXN0SW52aXRhdGlvbnNSZXNwb25zZRImCgVpdGVtcxgBIAMoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIqoBCgxNeUludml0YXRpb24SKwoKaW52aXRhdGlvbhgBIAEoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24SEwoLdGVuYW50X25hbWUYAiABKAkSGgoNaW52aXRlcl9lbWFpbBgDIAEoCUgAiAEBEhkKDGludml0ZXJfbmFtZRgEIAEoCUgBiAEBQhAKDl9pbnZpdGVyX2VtYWlsQg8KDV9pbnZpdGVyX25hbWUiGgoYTGlzdE15SW52aXRhdGlvbnNSZXF1ZXN0IksKGUxpc3RNeUludml0YXRpb25zUmVzcG9uc2USLgoLaW52aXRhdGlvbnMYASADKAsyGS5pZGVudGl0eS52MS5NeUludml0YXRpb24iMAoXUmV2b2tlSW52aXRhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCSIrChhSZXZva2VJbnZpdGF0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJMChdBY2NlcHRJbnZpdGF0aW9uUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIVCghwYXNzd29yZBgCIAEoCUgAiAEBQgsKCV9wYXNzd29yZCJUChhBY2NlcHRJbnZpdGF0aW9uUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlchISCgpzZXNzaW9uX2lkGAIgASgJIioKGVZhbGlkYXRlSW52aXRhdGlvblJlcXVlc3QSDQoFdG9rZW4YASABKAkidAoaVmFsaWRhdGVJbnZpdGF0aW9uUmVzcG9uc2USKwoKaW52aXRhdGlvbhgBIAEoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24SEwoLdGVuYW50X25hbWUYAiABKAkSFAoMaW52aXRlcl9uYW1lGAMgASgJIssCChNDcmVhdGVBcGlLZXlSZXF1ZXN0EgwKBG5hbWUYASABKAkSKQoIa2V5X3R5cGUYAiABKA4yFy5pZGVudGl0eS52MS5BcGlLZXlUeXBlEg4KBnNjb3BlcxgDIAMoCRIgChNyYXRlX2xpbWl0X3Blcl9ob3VyGAQgASgFSACIAQESMwoKZXhwaXJlc19hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIWCg5hbGxvd2VkX21vZGVscxgGIAMoCRIaChJhbGxvd2VkX2ZpbGVfdHlwZXMYByADKAkSFgoJY29uZmlnX2lkGAggASgJSAKIAQESEwoLcHJvamVjdF9pZHMYCSADKAlCFgoUX3JhdGVfbGltaXRfcGVyX2hvdXJCDQoLX2V4cGlyZXNfYXRCDAoKX2NvbmZpZ19pZCI8ChRDcmVhdGVBcGlLZXlSZXNwb25zZRIkCgdhcGlfa2V5GAEgASgLMhMuaWRlbnRpdHkudjEuQXBpS2V5Ih4KEEdldEFwaUtleVJlcXVlc3QSCgoCaWQYASABKAkiOQoRR2V0QXBpS2V5UmVzcG9uc2USJAoHYXBpX2tleRgBIAEoCzITLmlkZW50aXR5LnYxLkFwaUtleSLDAQoSTGlzdEFwaUtleXNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQESKwoFd2hlcmUYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QggKBl93aGVyZSKUAQoTTGlzdEFwaUtleXNSZXNwb25zZRIiCgVpdGVtcxgBIAMoCzITLmlkZW50aXR5LnYxLkFwaUtleRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ixAEKE1VwZGF0ZUFwaUtleVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhYKCWlzX2FjdGl2ZRgDIAEoCEgBiAEBEg4KBnNjb3BlcxgEIAMoCRIVCg11cGRhdGVfc2NvcGVzGAYgASgIEiAKE3JhdGVfbGltaXRfcGVyX2hvdXIYBSABKAVIAogBAUIHCgVfbmFtZUIMCgpfaXNfYWN0aXZlQhYKFF9yYXRlX2xpbWl0X3Blcl9ob3VyIjwKFFVwZGF0ZUFwaUtleVJlc3BvbnNlEiQKB2FwaV9rZXkYASABKAsyEy5pZGVudGl0eS52MS5BcGlLZXkiIQoTUm90YXRlQXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCSI8ChRSb3RhdGVBcGlLZXlSZXNwb25zZRIkCgdhcGlfa2V5GAEgASgLMhMuaWRlbnRpdHkudjEuQXBpS2V5IiEKE1Jldm9rZUFwaUtleVJlcXVlc3QSCgoCaWQYASABKAkiJwoUUmV2b2tlQXBpS2V5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKxBQoMQXV0aFByb3ZpZGVyEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEgwKBHR5cGUYBCABKAkSJwoGY29uZmlnGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgdlbmFibGVkGAYgASgIEhIKCmlzX2RlZmF1bHQYByABKAgSEAoIcHJpb3JpdHkYCCABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgAiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIAYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI2ChBwdWJsaXNoZWRfY29uZmlnGDwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEh4KEXB1Ymxpc2hlZF9lbmFibGVkGD0gASgISAOIAQESPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg/IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUITChFfcHVibGlzaGVkX2NvbmZpZ0IUChJfcHVibGlzaGVkX2VuYWJsZWRCFwoVX3NjaGVkdWxlZF9wdWJsaXNoX2F0QhkKF19zY2hlZHVsZWRfdW5wdWJsaXNoX2F0IvIBChhMaXN0QXV0aFByb3ZpZGVyc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIAhADSgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0UgZzZWFyY2gipAEKGUxpc3RBdXRoUHJvdmlkZXJzUmVzcG9uc2USLAoJcHJvdmlkZXJzGAEgAygLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIkChZHZXRBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJIkYKF0dldEF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIoECChlDcmVhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHR5cGUYAyABKAkSJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgdlbmFibGVkGAUgASgISACIAQESFwoKaXNfZGVmYXVsdBgGIAEoCEgBiAEBEhUKCHByaW9yaXR5GAcgASgFSAKIAQESFgoJY29uZmlnX2lkGAggASgJSAOIAQFCCgoIX2VuYWJsZWRCDQoLX2lzX2RlZmF1bHRCCwoJX3ByaW9yaXR5QgwKCl9jb25maWdfaWQiSQoaQ3JlYXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIi6gEKGVVwZGF0ZUF1dGhQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEiwKBmNvbmZpZxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIUCgdlbmFibGVkGAQgASgISAKIAQESFwoKaXNfZGVmYXVsdBgFIAEoCEgDiAEBEhUKCHByaW9yaXR5GAYgASgFSASIAQFCBwoFX25hbWVCCQoHX2NvbmZpZ0IKCghfZW5hYmxlZEINCgtfaXNfZGVmYXVsdEILCglfcHJpb3JpdHkiSQoaVXBkYXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiJwoZRGVsZXRlQXV0aFByb3ZpZGVyUmVxdWVzdBIKCgJpZBgBIAEoCSItChpEZWxldGVBdXRoUHJvdmlkZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIigKGlB1Ymxpc2hBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJIoABChtQdWJsaXNoQXV0aFByb3ZpZGVyUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXISNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiKgocVW5wdWJsaXNoQXV0aFByb3ZpZGVyUmVxdWVzdBIKCgJpZBgBIAEoCSJMCh1VbnB1Ymxpc2hBdXRoUHJvdmlkZXJSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciIxCiNHZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzUmVxdWVzdBIKCgJpZBgBIAEoCSJRCiRHZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzUmVzcG9uc2USKQoGc3RhdHVzGAEgASgLMhkucHVibGlzaC52MS5QdWJsaXNoU3RhdHVzItoCChNBdXRoUHJvdmlkZXJWZXJzaW9uEgoKAmlkGAEgASgJEhgKEGF1dGhfcHJvdmlkZXJfaWQYAiABKAkSFgoOdmVyc2lvbl9udW1iZXIYAyABKAUSKQoIc25hcHNob3QYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGNvbnRlbnRfaGFzaBgFIAEoCRIeChFzb3VyY2VfdmVyc2lvbl9pZBgGIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgHIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYCSABKAlIAogBAUIUChJfc291cmNlX3ZlcnNpb25faWRCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkINCgtfY3JlYXRlZF9ieSIrCh1HZXRBdXRoUHJvdmlkZXJWZXJzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJTCh5HZXRBdXRoUHJvdmlkZXJWZXJzaW9uUmVzcG9uc2USMQoHdmVyc2lvbhgBIAEoCzIgLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlclZlcnNpb24iswEKH0xpc3RBdXRoUHJvdmlkZXJWZXJzaW9uc1JlcXVlc3QSGAoQYXV0aF9wcm92aWRlcl9pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKxAQogTGlzdEF1dGhQcm92aWRlclZlcnNpb25zUmVzcG9uc2USMgoIdmVyc2lvbnMYASADKAsyIC5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXJWZXJzaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJvCiFSZXN0b3JlQXV0aFByb3ZpZGVyVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIogBCiJSZXN0b3JlQXV0aFByb3ZpZGVyVmVyc2lvblJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyEjUKC25ld192ZXJzaW9uGAIgASgLMiAuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyVmVyc2lvbiKoAQoiU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCJSCiNTY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2hSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciI3CilDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJZCipDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiTAocRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVxdWVzdBIaCg1wbGF0Zm9ybV9sYW5lGAEgASgISACIAQFCEAoOX3BsYXRmb3JtX2xhbmUiMgodRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVzcG9uc2USEQoJcHJvdmlkZXJzGAEgAygJIjAKHk1pbnRTZXJ2aWNlVG9rZW5TY29wZU5hcnJvd2luZxIOCgZzY29wZXMYASADKAkicAoXTWludFNlcnZpY2VUb2tlblJlcXVlc3QSDwoHcHVycG9zZRgBIAEoCRJECg9zY29wZV9uYXJyb3dpbmcYAiABKAsyKy5pZGVudGl0eS52MS5NaW50U2VydmljZVRva2VuU2NvcGVOYXJyb3dpbmciTgoYTWludFNlcnZpY2VUb2tlblJlc3BvbnNlEg0KBXRva2VuGAEgASgJEg8KB3B1cnBvc2UYAiABKAkSEgoKZXhwaXJlc19hdBgDIAEoCSKOAQoWVXBkYXRlTXlQcm9maWxlUmVxdWVzdBIXCgpmaXJzdF9uYW1lGAEgASgJSACIAQESFgoJbGFzdF9uYW1lGAIgASgJSAGIAQESFwoKYXZhdGFyX3VybBgDIAEoCUgCiAEBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCDQoLX2F2YXRhcl91cmwiPwoXVXBkYXRlTXlQcm9maWxlUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciLOAQodTGlzdE15T0F1dGhDb25uZWN0aW9uc1JlcXVlc3QSEgoFZmlyc3QYASABKAVIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhEKBGxhc3QYAyABKAVIAogBARITCgZiZWZvcmUYBCABKAlIA4gBARIrCgV3aGVyZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBAUIICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmVCCAoGX3doZXJlIo0BCg9PQXV0aENvbm5lY3Rpb24SEAoIcHJvdmlkZXIYASABKAkSGAoQcHJvdmlkZXJfdXNlcl9pZBgCIAEoCRISCgVlbWFpbBgDIAEoCUgAiAEBEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCAoGX2VtYWlsIq4BCh5MaXN0TXlPQXV0aENvbm5lY3Rpb25zUmVzcG9uc2USMQoLY29ubmVjdGlvbnMYASADKAsyHC5pZGVudGl0eS52MS5PQXV0aENvbm5lY3Rpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIi4KGlVubGlua09BdXRoUHJvdmlkZXJSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJIi4KG1VubGlua09BdXRoUHJvdmlkZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIi4KHUNoZWNrRW1haWxBdmFpbGFiaWxpdHlSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIjMKHkNoZWNrRW1haWxBdmFpbGFiaWxpdHlSZXNwb25zZRIRCglhdmFpbGFibGUYASABKAgijwEKG0NvbXBsZXRlQWNjb3VudFNldHVwUmVxdWVzdBIXCgpmaXJzdF9uYW1lGAEgASgJSACIAQESFgoJbGFzdF9uYW1lGAIgASgJSAGIAQESFQoIcGFzc3dvcmQYAyABKAlIAogBAUINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQgsKCV9wYXNzd29yZCJbChxDb21wbGV0ZUFjY291bnRTZXR1cFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSGQoMcmVkaXJlY3RfdXJsGAIgASgJSACIAQFCDwoNX3JlZGlyZWN0X3VybCItChpDcmVhdGVTaWdudXBTZXNzaW9uUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJIi4KG0NyZWF0ZVNpZ251cFNlc3Npb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIi0KGlJlc2VuZEFjY291bnRBY2Nlc3NSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkiugEKG1Jlc2VuZEFjY291bnRBY2Nlc3NSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEjsKBGtpbmQYAiABKA4yLS5pZGVudGl0eS52MS5SZXNlbmRBY2NvdW50QWNjZXNzUmVzcG9uc2UuS2luZCJNCgRLaW5kEhQKEEtJTkRfVU5TUEVDSUZJRUQQABIWChJLSU5EX0FDQ09VTlRfU0VUVVAQARIXChNLSU5EX1BBU1NXT1JEX1JFU0VUEAIiMAoXUmVzZW5kSW52aXRhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCSIrChhSZXNlbmRJbnZpdGF0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIiChRHZXRJbnZpdGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJEChVHZXRJbnZpdGF0aW9uUmVzcG9uc2USKwoKaW52aXRhdGlvbhgBIAEoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24iKgoVQWN0aXZhdGVUZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSI9ChZBY3RpdmF0ZVRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCIxChxSZXF1ZXN0VGVuYW50RGVsZXRpb25SZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSJECh1SZXF1ZXN0VGVuYW50RGVsZXRpb25SZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiJAoiR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzUmVxdWVzdCLbAQoYQ3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzEiEKGW5hdGl2ZV9tYW5hZ2VtZW50X2VuYWJsZWQYASABKAgSIgoVZXh0ZXJuYWxfcHJvdmlkZXJfdXJsGAIgASgJSACIAQESIwoWZXh0ZXJuYWxfcHJvdmlkZXJfbmFtZRgDIAEoCUgBiAEBEhMKBnJlYXNvbhgEIAEoCUgCiAEBQhgKFl9leHRlcm5hbF9wcm92aWRlcl91cmxCGQoXX2V4dGVybmFsX3Byb3ZpZGVyX25hbWVCCQoHX3JlYXNvbiJcCiNHZXRDdXN0b21lck1hbmFnZW1lbnRTdGF0dXNSZXNwb25zZRI1CgZzdGF0dXMYASABKAsyJS5pZGVudGl0eS52MS5DdXN0b21lck1hbmFnZW1lbnRTdGF0dXMiKAoVVmFsaWRhdGVBcGlLZXlSZXF1ZXN0Eg8KB2FwaV9rZXkYASABKAkigwIKFlZhbGlkYXRlQXBpS2V5UmVzcG9uc2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEgoKcHJvamVjdF9pZBgEIAEoCRIQCghrZXlfdHlwZRgFIAEoCRIOCgZzY29wZXMYBiADKAkSFgoOYWxsb3dlZF9tb2RlbHMYByADKAkSGgoSYWxsb3dlZF9maWxlX3R5cGVzGAggAygJEhsKE3JhdGVfbGltaXRfcGVyX2hvdXIYCSABKAUSEwoLcHJvamVjdF9pZHMYCiADKAkSIAoYcGxhbl9yYXRlX2xpbWl0X3Blcl9ob3VyGAsgASgFIjcKFEN1c3RvbWVyTG9naW5SZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJIm0KFUN1c3RvbWVyTG9naW5SZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSFQoNcmVmcmVzaF90b2tlbhgCIAEoCRInCghjdXN0b21lchgDIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIn8KF0N1c3RvbWVyUmVnaXN0ZXJSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEjIKDHByb2ZpbGVfZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIPCg1fcHJvZmlsZV9kYXRhInAKGEN1c3RvbWVyUmVnaXN0ZXJSZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSFQoNcmVmcmVzaF90b2tlbhgCIAEoCRInCghjdXN0b21lchgDIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIjQKG0N1c3RvbWVyUmVmcmVzaFRva2VuUmVxdWVzdBIVCg1yZWZyZXNoX3Rva2VuGAEgASgJIksKHEN1c3RvbWVyUmVmcmVzaFRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkiKgoZQ3VzdG9tZXJSZXF1ZXN0T1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCSIqChpDdXN0b21lclJlcXVlc3RPVFBSZXNwb25zZRIMCgRzZW50GAEgASgIIjsKGEN1c3RvbWVyVmVyaWZ5T1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghvdHBfY29kZRgCIAEoCSJxChlDdXN0b21lclZlcmlmeU9UUFJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEicKCGN1c3RvbWVyGAMgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiNAojQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldFJlcXVlc3QSDQoFZW1haWwYASABKAkiNAokQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldFJlc3BvbnNlEgwKBHNlbnQYASABKAgiQwocQ3VzdG9tZXJSZXNldFBhc3N3b3JkUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiMAodQ3VzdG9tZXJSZXNldFBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJNChZEZWxldGVNeUFjY291bnRSZXF1ZXN0EhUKCHBhc3N3b3JkGAEgASgJSACIAQESDwoHY29uZmlybRgCIAEoCEILCglfcGFzc3dvcmQiWgoXRGVsZXRlTXlBY2NvdW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIXCg9yZWNvcmRzX2RlbGV0ZWQYAiABKAMSFQoNZmlsZXNfZGVsZXRlZBgDIAEoAyLZAQoZU3RvcmVQcm92aWRlclRva2VuUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIUCgxwcm92aWRlcl9rZXkYAiABKAkSFAoMYWNjZXNzX3Rva2VuGAMgASgJEhUKDXJlZnJlc2hfdG9rZW4YBCABKAkSEAoIaWRfdG9rZW4YBSABKAkSDgoGc2NvcGVzGAYgASgJEjMKCmV4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDQoLX2V4cGlyZXNfYXQiHAoaU3RvcmVQcm92aWRlclRva2VuUmVzcG9uc2UigwEKGVN0YXJ0UHJvdmlkZXJMb2dpblJlcXVlc3QSFAoMcHJvdmlkZXJfa2V5GAEgASgJEhYKCXJldHVybl90bxgCIAEoCUgAiAEBEhkKDHJlZGlyZWN0X3VyaRgDIAEoCUgBiAEBQgwKCl9yZXR1cm5fdG9CDwoNX3JlZGlyZWN0X3VyaSIyChpTdGFydFByb3ZpZGVyTG9naW5SZXNwb25zZRIUCgxyZWRpcmVjdF91cmwYASABKAkiTwoaRmluaXNoUHJvdmlkZXJMb2dpblJlcXVlc3QSFAoMcHJvdmlkZXJfa2V5GAEgASgJEgwKBGNvZGUYAiABKAkSDQoFc3RhdGUYAyABKAkibgobRmluaXNoUHJvdmlkZXJMb2dpblJlc3BvbnNlEhMKC2N1c3RvbWVyX2lkGAEgASgJEg0KBWVtYWlsGAIgASgJEhQKDGFjY2Vzc190b2tlbhgDIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAQgASgJIoIBCiFTdGFydEN1c3RvbWVyTG9naW5XaXRoRm9pclJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhQKDHJlZGlyZWN0X3VyaRgCIAEoCRIOCgZzY29wZXMYAyADKAkSFgoJcmV0dXJuX3RvGAQgASgJSACIAQFCDAoKX3JldHVybl90byI6CiJTdGFydEN1c3RvbWVyTG9naW5XaXRoRm9pclJlc3BvbnNlEhQKDHJlZGlyZWN0X3VybBgBIAEoCSJDCiRDb21wbGV0ZUN1c3RvbWVyTG9naW5XaXRoRm9pclJlcXVlc3QSDAoEY29kZRgBIAEoCRINCgVzdGF0ZRgCIAEoCSKeAQolQ29tcGxldGVDdXN0b21lckxvZ2luV2l0aEZvaXJSZXNwb25zZRITCgtjdXN0b21lcl9pZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAyABKAkSFQoNcmVmcmVzaF90b2tlbhgEIAEoCRIWCglyZXR1cm5fdG8YBSABKAlIAIgBAUIMCgpfcmV0dXJuX3RvIn8KHlN0YXJ0QWRtaW5Mb2dpbldpdGhGb2lyUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSFAoMcmVkaXJlY3RfdXJpGAIgASgJEg4KBnNjb3BlcxgDIAMoCRIWCglyZXR1cm5fdG8YBCABKAlIAIgBAUIMCgpfcmV0dXJuX3RvIjcKH1N0YXJ0QWRtaW5Mb2dpbldpdGhGb2lyUmVzcG9uc2USFAoMcmVkaXJlY3RfdXJsGAEgASgJIkAKIUNvbXBsZXRlQWRtaW5Mb2dpbldpdGhGb2lyUmVxdWVzdBIMCgRjb2RlGAEgASgJEg0KBXN0YXRlGAIgASgJIr0BCiJDb21wbGV0ZUFkbWluTG9naW5XaXRoRm9pclJlc3BvbnNlEhUKDWFkbWluX3VzZXJfaWQYASABKAkSFAoMYWNjZXNzX3Rva2VuGAIgASgJEhUKDXJlZnJlc2hfdG9rZW4YAyABKAkSDgoGc2NvcGVzGAQgAygJEh0KFWlzX2ZpcnN0X3BhcnR5X2NsaWVudBgFIAEoCBIWCglyZXR1cm5fdG8YBiABKAlIAIgBAUIMCgpfcmV0dXJuX3RvIiYKEkJlZ2luU3RlcFVwUmVxdWVzdBIQCghwYXNzd29yZBgBIAEoCSJkChNCZWdpblN0ZXBVcFJlc3BvbnNlEg4KBmhhbmRsZRgBIAEoCRIQCgh3ZWJhdXRobhgCIAEoCBIMCgR0b3RwGAMgASgIEh0KFXdlYmF1dGhuX29wdGlvbnNfanNvbhgEIAEoCSJbChVDb21wbGV0ZVN0ZXBVcFJlcXVlc3QSDgoGaGFuZGxlGAEgASgJEh8KF3dlYmF1dGhuX2Fzc2VydGlvbl9qc29uGAIgASgJEhEKCXRvdHBfY29kZRgDIAEoCSI5ChZDb21wbGV0ZVN0ZXBVcFJlc3BvbnNlEhIKCnN0ZXBwZWRfdXAYASABKAgSCwoDYW1yGAIgAygJIj0KGUJlZ2luTWZhRW5yb2xsbWVudFJlcXVlc3QSEAoIcGFzc3dvcmQYASABKAkSDgoGbWV0aG9kGAIgASgJInEKGkJlZ2luTWZhRW5yb2xsbWVudFJlc3BvbnNlEg4KBmhhbmRsZRgBIAEoCRIdChV3ZWJhdXRobl9vcHRpb25zX2pzb24YAiABKAkSEwoLdG90cF9zZWNyZXQYAyABKAkSDwoHdG90cF9xchgEIAEoCSJ6ChxDb21wbGV0ZU1mYUVucm9sbG1lbnRSZXF1ZXN0Eg4KBmhhbmRsZRgBIAEoCRIhChl3ZWJhdXRobl9hdHRlc3RhdGlvbl9qc29uGAIgASgJEhEKCXRvdHBfY29kZRgDIAEoCRIUCgxkaXNwbGF5X25hbWUYBCABKAkiMQodQ29tcGxldGVNZmFFbnJvbGxtZW50UmVzcG9uc2USEAoIZW5yb2xsZWQYASABKAgiRAoXR2V0UHJvdmlkZXJUb2tlblJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSFAoMcHJvdmlkZXJfa2V5GAIgASgJIq0BChhHZXRQcm92aWRlclRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkSEAoIaWRfdG9rZW4YAyABKAkSDgoGc2NvcGVzGAQgASgJEjMKCmV4cGlyZXNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDQoLX2V4cGlyZXNfYXQiMgobRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIh4KHERlbGV0ZVByb3ZpZGVyVG9rZW5zUmVzcG9uc2UidAoYUmVseWluZ1BhcnR5TG9naW5NZXRob2RzEhUKCHBhc3N3b3JkGAEgASgISACIAQESEAoDb3RwGAIgASgISAGIAQESGgoSZGlzYWJsZWRfcHJvdmlkZXJzGAMgAygJQgsKCV9wYXNzd29yZEIGCgRfb3RwIuoECgxSZWx5aW5nUGFydHkSCgoCaWQYASABKAkSFgoOcHJpbmNpcGFsX2tpbmQYAiABKAkSFgoJdGVuYW50X2lkGAMgASgJSACIAQESFwoKcHJvamVjdF9pZBgEIAEoCUgBiAEBEhEKCWNsaWVudF9pZBgFIAEoCRIMCgRuYW1lGAYgASgJEhUKDXJlZGlyZWN0X3VyaXMYByADKAkSFgoOYWxsb3dlZF9zY29wZXMYCCADKAkSFgoOaXNfZmlyc3RfcGFydHkYCSABKAgSFAoMcmVxdWlyZXNfbWZhGAogASgIEkEKDWxvZ2luX21ldGhvZHMYCyABKAsyJS5pZGVudGl0eS52MS5SZWx5aW5nUGFydHlMb2dpbk1ldGhvZHNIAogBARIXCgpjcmVhdGVkX2J5GAwgASgJSAOIAQESLgoKY3JlYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLZGlzYWJsZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoOcG9zdF9sb2dpbl91cmwYECABKAlIBYgBARIXCg9hbGxvd2VkX29yaWdpbnMYESADKAlCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZEIQCg5fbG9naW5fbWV0aG9kc0INCgtfY3JlYXRlZF9ieUIOCgxfZGlzYWJsZWRfYXRCEQoPX3Bvc3RfbG9naW5fdXJsIvkBChlMaXN0UmVseWluZ1BhcnRpZXNSZXF1ZXN0EhYKDnByaW5jaXBhbF9raW5kGAEgASgJEhYKCXRlbmFudF9pZBgCIAEoCUgAiAEBEhcKCnByb2plY3RfaWQYAyABKAlIAYgBARISCgVhZnRlchgEIAEoCUgCiAEBEhMKBmJlZm9yZRgFIAEoCUgDiAEBEhIKBWZpcnN0GAYgASgFSASIAQESEQoEbGFzdBgHIAEoBUgFiAEBQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqEBChpMaXN0UmVseWluZ1BhcnRpZXNSZXNwb25zZRIoCgVpdGVtcxgBIAMoCzIZLmlkZW50aXR5LnYxLlJlbHlpbmdQYXJ0eRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iQwoWR2V0UmVseWluZ1BhcnR5UmVxdWVzdBIWCg5wcmluY2lwYWxfa2luZBgBIAEoCRIRCgljbGllbnRfaWQYAiABKAkiSwoXR2V0UmVseWluZ1BhcnR5UmVzcG9uc2USMAoNcmVseWluZ19wYXJ0eRgBIAEoCzIZLmlkZW50aXR5LnYxLlJlbHlpbmdQYXJ0eSImChNSZWx5aW5nUGFydHlPcmlnaW5zEg8KB29yaWdpbnMYASADKAkinQMKGUNyZWF0ZVJlbHlpbmdQYXJ0eVJlcXVlc3QSFgoOcHJpbmNpcGFsX2tpbmQYASABKAkSFgoJdGVuYW50X2lkGAIgASgJSACIAQESFwoKcHJvamVjdF9pZBgDIAEoCUgBiAEBEhEKCWNsaWVudF9pZBgEIAEoCRIMCgRuYW1lGAUgASgJEhUKDXJlZGlyZWN0X3VyaXMYBiADKAkSFgoOYWxsb3dlZF9zY29wZXMYByADKAkSFgoOaXNfZmlyc3RfcGFydHkYCCABKAgSFAoMcmVxdWlyZXNfbWZhGAkgASgIEkEKDWxvZ2luX21ldGhvZHMYCiABKAsyJS5pZGVudGl0eS52MS5SZWx5aW5nUGFydHlMb2dpbk1ldGhvZHNIAogBARIbCg5wb3N0X2xvZ2luX3VybBgLIAEoCUgDiAEBEhcKD2FsbG93ZWRfb3JpZ2lucxgMIAMoCUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQhAKDl9sb2dpbl9tZXRob2RzQhEKD19wb3N0X2xvZ2luX3VybCJOChpDcmVhdGVSZWx5aW5nUGFydHlSZXNwb25zZRIwCg1yZWx5aW5nX3BhcnR5GAEgASgLMhkuaWRlbnRpdHkudjEuUmVseWluZ1BhcnR5IpYDChlVcGRhdGVSZWx5aW5nUGFydHlSZXF1ZXN0EhYKDnByaW5jaXBhbF9raW5kGAEgASgJEhEKCWNsaWVudF9pZBgCIAEoCRIRCgRuYW1lGAMgASgJSACIAQESFQoNcmVkaXJlY3RfdXJpcxgEIAMoCRIWCg5hbGxvd2VkX3Njb3BlcxgFIAMoCRIZCgxyZXF1aXJlc19tZmEYBiABKAhIAYgBARJBCg1sb2dpbl9tZXRob2RzGAcgASgLMiUuaWRlbnRpdHkudjEuUmVseWluZ1BhcnR5TG9naW5NZXRob2RzSAKIAQESGwoOcG9zdF9sb2dpbl91cmwYCCABKAlIA4gBARI+Cg9hbGxvd2VkX29yaWdpbnMYCSABKAsyIC5pZGVudGl0eS52MS5SZWx5aW5nUGFydHlPcmlnaW5zSASIAQFCBwoFX25hbWVCDwoNX3JlcXVpcmVzX21mYUIQCg5fbG9naW5fbWV0aG9kc0IRCg9fcG9zdF9sb2dpbl91cmxCEgoQX2FsbG93ZWRfb3JpZ2lucyJOChpVcGRhdGVSZWx5aW5nUGFydHlSZXNwb25zZRIwCg1yZWx5aW5nX3BhcnR5GAEgASgLMhkuaWRlbnRpdHkudjEuUmVseWluZ1BhcnR5IkcKGkRpc2FibGVSZWx5aW5nUGFydHlSZXF1ZXN0EhYKDnByaW5jaXBhbF9raW5kGAEgASgJEhEKCWNsaWVudF9pZBgCIAEoCSIdChtEaXNhYmxlUmVseWluZ1BhcnR5UmVzcG9uc2Ui7AIKDEN1c3RvbURvbWFpbhIKCgJpZBgBIAEoCRIYChByZWx5aW5nX3BhcnR5X2lkGAIgASgJEgwKBGtpbmQYAyABKAkSEQoJdGVuYW50X2lkGAQgASgJEhIKCnByb2plY3RfaWQYBSABKAkSEAoIaG9zdG5hbWUYBiABKAkSDgoGc3RhdHVzGAcgASgJEhEKCXR4dF90b2tlbhgIIAEoCRI0Cgt2ZXJpZmllZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIXCgpjcmVhdGVkX2J5GAogASgJSAGIAQESLgoKY3JlYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX3ZlcmlmaWVkX2F0Qg0KC19jcmVhdGVkX2J5ImsKG1JlZ2lzdGVyQ3VzdG9tRG9tYWluUmVxdWVzdBIYChByZWx5aW5nX3BhcnR5X2lkGAEgASgJEhAKCGhvc3RuYW1lGAIgASgJEgwKBGtpbmQYAyABKAkSEgoKcHJvamVjdF9pZBgEIAEoCSJQChxSZWdpc3RlckN1c3RvbURvbWFpblJlc3BvbnNlEjAKDWN1c3RvbV9kb21haW4YASABKAsyGS5pZGVudGl0eS52MS5DdXN0b21Eb21haW4iJwoZVmVyaWZ5Q3VzdG9tRG9tYWluUmVxdWVzdBIKCgJpZBgBIAEoCSJgChpWZXJpZnlDdXN0b21Eb21haW5SZXNwb25zZRIwCg1jdXN0b21fZG9tYWluGAEgASgLMhkuaWRlbnRpdHkudjEuQ3VzdG9tRG9tYWluEhAKCHZlcmlmaWVkGAIgASgIIicKGURlbGV0ZUN1c3RvbURvbWFpblJlcXVlc3QSCgoCaWQYASABKAkiHAoaRGVsZXRlQ3VzdG9tRG9tYWluUmVzcG9uc2UiQgogR2V0Q3VzdG9tRG9tYWluQnlIb3N0bmFtZVJlcXVlc3QSEAoIaG9zdG5hbWUYASABKAkSDAoEa2luZBgCIAEoCSJVCiFHZXRDdXN0b21Eb21haW5CeUhvc3RuYW1lUmVzcG9uc2USMAoNY3VzdG9tX2RvbWFpbhgBIAEoCzIZLmlkZW50aXR5LnYxLkN1c3RvbURvbWFpbiJIChhMaXN0Q3VzdG9tRG9tYWluc1JlcXVlc3QSGAoQcmVseWluZ19wYXJ0eV9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJIkUKGUxpc3RDdXN0b21Eb21haW5zUmVzcG9uc2USKAoFaXRlbXMYASADKAsyGS5pZGVudGl0eS52MS5DdXN0b21Eb21haW4i4gIKD0N1c3RvbWVyU2Vzc2lvbhIKCgJpZBgBIAEoCRITCgtjdXN0b21lcl9pZBgCIAEoCRIYChByZWx5aW5nX3BhcnR5X2lkGAMgASgJEhEKCXRlbmFudF9pZBgEIAEoCRISCgpwcm9qZWN0X2lkGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGxhc3Rfc2Vlbl9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKaXBfYWRkcmVzcxgJIAEoCUgAiAEBEhcKCnVzZXJfYWdlbnQYCiABKAlIAYgBARILCgNhbXIYCyADKAlCDQoLX2lwX2FkZHJlc3NCDQoLX3VzZXJfYWdlbnQiNwobTGlzdEN1c3RvbWVyU2Vzc2lvbnNSZXF1ZXN0EhgKEHJlbHlpbmdfcGFydHlfaWQYASABKAkiSwocTGlzdEN1c3RvbWVyU2Vzc2lvbnNSZXNwb25zZRIrCgVpdGVtcxgBIAMoCzIcLmlkZW50aXR5LnYxLkN1c3RvbWVyU2Vzc2lvbiIqChxSZXZva2VDdXN0b21lclNlc3Npb25SZXF1ZXN0EgoKAmlkGAEgASgJIh8KHVJldm9rZUN1c3RvbWVyU2Vzc2lvblJlc3BvbnNlIp0CChFSZWx5aW5nUGFydHlHcmFudBIKCgJpZBgBIAEoCRIVCg1hZG1pbl91c2VyX2lkGAIgASgJEhEKCWNsaWVudF9pZBgDIAEoCRIOCgZzY29wZXMYBCADKAkSFwoKZ3JhbnRlZF9ieRgFIAEoCUgAiAEBEi4KCmdyYW50ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCnJldm9rZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESFwoKcmV2b2tlZF9ieRgIIAEoCUgCiAEBQg0KC19ncmFudGVkX2J5Qg0KC19yZXZva2VkX2F0Qg0KC19yZXZva2VkX2J5Ik0KHUxpc3RSZWx5aW5nUGFydHlHcmFudHNSZXF1ZXN0EhoKDWFkbWluX3VzZXJfaWQYASABKAlIAIgBAUIQCg5fYWRtaW5fdXNlcl9pZCJeCh5MaXN0UmVseWluZ1BhcnR5R3JhbnRzUmVzcG9uc2USLQoFaXRlbXMYASADKAsyHi5pZGVudGl0eS52MS5SZWx5aW5nUGFydHlHcmFudBINCgV0b3RhbBgCIAEoBSJUChhHcmFudFJlbHlpbmdQYXJ0eVJlcXVlc3QSFQoNYWRtaW5fdXNlcl9pZBgBIAEoCRIRCgljbGllbnRfaWQYAiABKAkSDgoGc2NvcGVzGAMgAygJIkoKGUdyYW50UmVseWluZ1BhcnR5UmVzcG9uc2USLQoFZ3JhbnQYASABKAsyHi5pZGVudGl0eS52MS5SZWx5aW5nUGFydHlHcmFudCIsCh5SZXZva2VSZWx5aW5nUGFydHlHcmFudFJlcXVlc3QSCgoCaWQYASABKAkiIQofUmV2b2tlUmVseWluZ1BhcnR5R3JhbnRSZXNwb25zZSLbAgoEUm9sZRIKCgJpZBgBIAEoCRI2Cg5wcmluY2lwYWxfa2luZBgCIAEoDjIeLmlkZW50aXR5LnYxLlJvbGVQcmluY2lwYWxLaW5kEhEKCXRlbmFudF9pZBgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEgsKA2tleRgFIAEoCRIMCgRuYW1lGAYgASgJEhMKC3Blcm1pc3Npb25zGAcgAygJEhIKCmlzX2RlZmF1bHQYCCABKAgSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLZGlzYWJsZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDgoMX2Rpc2FibGVkX2F0IvkBChBMaXN0Um9sZXNSZXF1ZXN0EjYKDnByaW5jaXBhbF9raW5kGAEgASgOMh4uaWRlbnRpdHkudjEuUm9sZVByaW5jaXBhbEtpbmQSKwoFd2hlcmUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFZmlyc3QYAyABKAVIAYgBARISCgVhZnRlchgEIAEoCUgCiAEBEhEKBGxhc3QYBSABKAVIA4gBARITCgZiZWZvcmUYBiABKAlIBIgBAUIICgZfd2hlcmVCCAoGX2ZpcnN0QggKBl9hZnRlckIHCgVfbGFzdEIJCgdfYmVmb3JlIpABChFMaXN0Um9sZXNSZXNwb25zZRIgCgVpdGVtcxgBIAMoCzIRLmlkZW50aXR5LnYxLlJvbGUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIhwKDkdldFJvbGVSZXF1ZXN0EgoKAmlkGAEgASgJIjIKD0dldFJvbGVSZXNwb25zZRIfCgRyb2xlGAEgASgLMhEuaWRlbnRpdHkudjEuUm9sZSK2AQoRQ3JlYXRlUm9sZVJlcXVlc3QSNgoOcHJpbmNpcGFsX2tpbmQYASABKA4yHi5pZGVudGl0eS52MS5Sb2xlUHJpbmNpcGFsS2luZBIRCgl0ZW5hbnRfaWQYAiABKAkSEgoKcHJvamVjdF9pZBgDIAEoCRILCgNrZXkYBCABKAkSDAoEbmFtZRgFIAEoCRITCgtwZXJtaXNzaW9ucxgGIAMoCRISCgppc19kZWZhdWx0GAcgASgIIjUKEkNyZWF0ZVJvbGVSZXNwb25zZRIfCgRyb2xlGAEgASgLMhEuaWRlbnRpdHkudjEuUm9sZSJ4ChFVcGRhdGVSb2xlUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESEwoLcGVybWlzc2lvbnMYAyADKAkSFwoKaXNfZGVmYXVsdBgEIAEoCEgBiAEBQgcKBV9uYW1lQg0KC19pc19kZWZhdWx0IjUKElVwZGF0ZVJvbGVSZXNwb25zZRIfCgRyb2xlGAEgASgLMhEuaWRlbnRpdHkudjEuUm9sZSIgChJEaXNhYmxlUm9sZVJlcXVlc3QSCgoCaWQYASABKAkiFQoTRGlzYWJsZVJvbGVSZXNwb25zZSK/AgoOUm9sZUFzc2lnbm1lbnQSCgoCaWQYASABKAkSNgoOcHJpbmNpcGFsX2tpbmQYAiABKA4yHi5pZGVudGl0eS52MS5Sb2xlUHJpbmNpcGFsS2luZBIUCgxwcmluY2lwYWxfaWQYAyABKAkSDwoHcm9sZV9pZBgEIAEoCRIuCgpncmFudGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpncmFudGVkX2J5GAYgASgJSACIAQESMwoKcmV2b2tlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIXCgpyZXZva2VkX2J5GAggASgJSAKIAQFCDQoLX2dyYW50ZWRfYnlCDQoLX3Jldm9rZWRfYXRCDQoLX3Jldm9rZWRfYnkicgoRQXNzaWduUm9sZVJlcXVlc3QSNgoOcHJpbmNpcGFsX2tpbmQYASABKA4yHi5pZGVudGl0eS52MS5Sb2xlUHJpbmNpcGFsS2luZBIUCgxwcmluY2lwYWxfaWQYAiABKAkSDwoHcm9sZV9pZBgDIAEoCSJFChJBc3NpZ25Sb2xlUmVzcG9uc2USLwoKYXNzaWdubWVudBgBIAEoCzIbLmlkZW50aXR5LnYxLlJvbGVBc3NpZ25tZW50IikKG1Jldm9rZVJvbGVBc3NpZ25tZW50UmVxdWVzdBIKCgJpZBgBIAEoCSIeChxSZXZva2VSb2xlQXNzaWdubWVudFJlc3BvbnNlIoMCChpMaXN0Um9sZUFzc2lnbm1lbnRzUmVxdWVzdBI2Cg5wcmluY2lwYWxfa2luZBgBIAEoDjIeLmlkZW50aXR5LnYxLlJvbGVQcmluY2lwYWxLaW5kEisKBXdoZXJlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWZpcnN0GAMgASgFSAGIAQESEgoFYWZ0ZXIYBCABKAlIAogBARIRCgRsYXN0GAUgASgFSAOIAQESEwoGYmVmb3JlGAYgASgJSASIAQFCCAoGX3doZXJlQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZSKkAQobTGlzdFJvbGVBc3NpZ25tZW50c1Jlc3BvbnNlEioKBWl0ZW1zGAEgAygLMhsuaWRlbnRpdHkudjEuUm9sZUFzc2lnbm1lbnQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIt4CCg1XYWl0bGlzdEVudHJ5EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIXCgpwcm9qZWN0X2lkGAMgASgJSACIAQESDQoFZW1haWwYBCABKAkSKwoGc3RhdHVzGAUgASgOMhsuaWRlbnRpdHkudjEuV2FpdGxpc3RTdGF0dXMSFwoKZGVjaWRlZF9ieRgGIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmRlY2lkZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQFCDQoLX3Byb2plY3RfaWRCDQoLX2RlY2lkZWRfYnlCDQoLX2RlY2lkZWRfYXQiJAoTSm9pbldhaXRsaXN0UmVxdWVzdBINCgVlbWFpbBgBIAEoCSJBChRKb2luV2FpdGxpc3RSZXNwb25zZRIpCgVlbnRyeRgBIAEoCzIaLmlkZW50aXR5LnYxLldhaXRsaXN0RW50cnkiIQofR2V0Q3VzdG9tZXJTaWdudXBDb250ZXh0UmVxdWVzdCJQCiBHZXRDdXN0b21lclNpZ251cENvbnRleHRSZXNwb25zZRIsCgtzaWdudXBfbW9kZRgBIAEoDjIXLmlkZW50aXR5LnYxLlNpZ251cE1vZGUiKQoYSm9pbkFkbWluV2FpdGxpc3RSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIkYKGUpvaW5BZG1pbldhaXRsaXN0UmVzcG9uc2USKQoFZW50cnkYASABKAsyGi5pZGVudGl0eS52MS5XYWl0bGlzdEVudHJ5IuMBChpMaXN0V2FpdGxpc3RFbnRyaWVzUmVxdWVzdBIwCgZzdGF0dXMYASABKA4yGy5pZGVudGl0eS52MS5XYWl0bGlzdFN0YXR1c0gAiAEBEhAKCHBsYXRmb3JtGAIgASgIEhIKBWZpcnN0GAMgASgFSAGIAQESEgoFYWZ0ZXIYBCABKAlIAogBARIRCgRsYXN0GAUgASgFSAOIAQESEwoGYmVmb3JlGAYgASgJSASIAQFCCQoHX3N0YXR1c0IICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmUipQEKG0xpc3RXYWl0bGlzdEVudHJpZXNSZXNwb25zZRIrCgdlbnRyaWVzGAEgAygLMhouaWRlbnRpdHkudjEuV2FpdGxpc3RFbnRyeRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iKQobQXBwcm92ZVdhaXRsaXN0RW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIkkKHEFwcHJvdmVXYWl0bGlzdEVudHJ5UmVzcG9uc2USKQoFZW50cnkYASABKAsyGi5pZGVudGl0eS52MS5XYWl0bGlzdEVudHJ5IiYKGERlbnlXYWl0bGlzdEVudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJGChlEZW55V2FpdGxpc3RFbnRyeVJlc3BvbnNlEikKBWVudHJ5GAEgASgLMhouaWRlbnRpdHkudjEuV2FpdGxpc3RFbnRyeSJwCg9TZWN1cml0eVN1bW1hcnkSFAoMdG90YWxfbG9naW5zGAEgASgFEhUKDWZhaWxlZF9sb2dpbnMYAiABKAUSGAoQYWNjb3VudF9sb2Nrb3V0cxgDIAEoBRIWCg5zdXNwaWNpb3VzX2lwcxgEIAEoBSJuCg9TdXNwaWNpb3VzTG9naW4SDQoFZW1haWwYASABKAkSEAoIaXBfY291bnQYAiABKAUSCwoDaXBzGAMgAygJEi0KCWxhc3Rfc2VlbhgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiYgoLRmFpbGVkTG9naW4SEgoKaWRlbnRpZmllchgBIAEoCRINCgVjb3VudBgCIAEoBRIwCgxsYXN0X2F0dGVtcHQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIm4KDkFjY291bnRMb2Nrb3V0Eg0KBWVtYWlsGAEgASgJEi0KCWxvY2tlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoGcmVhc29uGAMgASgJSACIAQFCCQoHX3JlYXNvbiKtAQoZR2V0U2VjdXJpdHlTdW1tYXJ5UmVxdWVzdBItCgRmcm9tGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEisKAnRvGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEhYKCXRlbmFudF9pZBgDIAEoCUgCiAEBQgcKBV9mcm9tQgUKA190b0IMCgpfdGVuYW50X2lkIksKGkdldFNlY3VyaXR5U3VtbWFyeVJlc3BvbnNlEi0KB3N1bW1hcnkYASABKAsyHC5pZGVudGl0eS52MS5TZWN1cml0eVN1bW1hcnkiugEKGkdldFN1c3BpY2lvdXNMb2dpbnNSZXF1ZXN0EhIKBWFmdGVyGAMgASgJSACIAQESEwoGYmVmb3JlGAQgASgJSAGIAQESEgoFZmlyc3QYBSABKAVIAogBARIRCgRsYXN0GAYgASgFSAOIAQESFgoJdGVuYW50X2lkGAIgASgJSASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QgwKCl90ZW5hbnRfaWQilwEKG0dldFN1c3BpY2lvdXNMb2dpbnNSZXNwb25zZRIsCgZsb2dpbnMYASADKAsyHC5pZGVudGl0eS52MS5TdXNwaWNpb3VzTG9naW4SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIs4BChZHZXRGYWlsZWRMb2dpbnNSZXF1ZXN0Eg8KAmJ5GAEgASgJSACIAQESEgoFYWZ0ZXIYBCABKAlIAYgBARITCgZiZWZvcmUYBSABKAlIAogBARISCgVmaXJzdBgGIAEoBUgDiAEBEhEKBGxhc3QYByABKAVIBIgBARIWCgl0ZW5hbnRfaWQYAyABKAlIBYgBAUIFCgNfYnlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QgwKCl90ZW5hbnRfaWQikAEKF0dldEZhaWxlZExvZ2luc1Jlc3BvbnNlEikKB2VudHJpZXMYASADKAsyGC5pZGVudGl0eS52MS5GYWlsZWRMb2dpbhIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAMgAygJQgwKCl9wYWdlX2luZm8iuQEKGUdldEFjY291bnRMb2Nrb3V0c1JlcXVlc3QSEgoFYWZ0ZXIYAyABKAlIAIgBARITCgZiZWZvcmUYBCABKAlIAYgBARISCgVmaXJzdBgFIAEoBUgCiAEBEhEKBGxhc3QYBiABKAVIA4gBARIWCgl0ZW5hbnRfaWQYAiABKAlIBIgBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RCDAoKX3RlbmFudF9pZCKXAQoaR2V0QWNjb3VudExvY2tvdXRzUmVzcG9uc2USLQoIbG9ja291dHMYASADKAsyGy5pZGVudGl0eS52MS5BY2NvdW50TG9ja291dBIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAMgAygJQgwKCl9wYWdlX2luZm8ijQEKH0dldFRlbmFudFNlY3VyaXR5U3VtbWFyeVJlcXVlc3QSLQoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIrCgJ0bxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIHCgVfZnJvbUIFCgNfdG8imgEKIEdldFRlbmFudFN1c3BpY2lvdXNMb2dpbnNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Iq4BChxHZXRUZW5hbnRGYWlsZWRMb2dpbnNSZXF1ZXN0Eg8KAmJ5GAEgASgJSACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIFCgNfYnlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IlEKIEdldFRlbmFudFNlY3VyaXR5U3VtbWFyeVJlc3BvbnNlEi0KB3N1bW1hcnkYASABKAsyHC5pZGVudGl0eS52MS5TZWN1cml0eVN1bW1hcnkinQEKIUdldFRlbmFudFN1c3BpY2lvdXNMb2dpbnNSZXNwb25zZRIsCgZsb2dpbnMYASADKAsyHC5pZGVudGl0eS52MS5TdXNwaWNpb3VzTG9naW4SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIpYBCh1HZXRUZW5hbnRGYWlsZWRMb2dpbnNSZXNwb25zZRIpCgdlbnRyaWVzGAEgAygLMhguaWRlbnRpdHkudjEuRmFpbGVkTG9naW4SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvKrEBCg9BZG1pblVzZXJTdGF0dXMSIQodQURNSU5fVVNFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIcChhBRE1JTl9VU0VSX1NUQVRVU19BQ1RJVkUQARIdChlBRE1JTl9VU0VSX1NUQVRVU19QRU5ESU5HEAISHwobQURNSU5fVVNFUl9TVEFUVVNfU1VTUEVOREVEEAMSHQoZQURNSU5fVVNFUl9TVEFUVVNfREVMRVRFRBAEKokBCg5DdXN0b21lclN0YXR1cxIfChtDVVNUT01FUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZDVVNUT01FUl9TVEFUVVNfQUNUSVZFEAESGwoXQ1VTVE9NRVJfU1RBVFVTX1BFTkRJTkcQAhIdChlDVVNUT01FUl9TVEFUVVNfU1VTUEVOREVEEAMq2QEKDFRlbmFudFN0YXR1cxIdChlURU5BTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobVEVOQU5UX1NUQVRVU19QRU5ESU5HX1NFVFVQEAESGAoUVEVOQU5UX1NUQVRVU19BQ1RJVkUQAhIaChZURU5BTlRfU1RBVFVTX1BBU1RfRFVFEAMSGwoXVEVOQU5UX1NUQVRVU19TVVNQRU5ERUQQBBIbChdURU5BTlRfU1RBVFVTX0NBTkNFTExFRBAFEhkKFVRFTkFOVF9TVEFUVVNfQ0hVUk5FRBAGKmYKDVByb2plY3RTdGF0dXMSHgoaUFJPSkVDVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIZChVQUk9KRUNUX1NUQVRVU19BQ1RJVkUQARIaChZQUk9KRUNUX1NUQVRVU19ERUxFVEVEEAIqjwEKClNpZ251cE1vZGUSGwoXU0lHTlVQX01PREVfVU5TUEVDSUZJRUQQABIWChJTSUdOVVBfTU9ERV9QVUJMSUMQARIaChZTSUdOVVBfTU9ERV9SRVNUUklDVEVEEAISGAoUU0lHTlVQX01PREVfV0FJVExJU1QQAxIWChJTSUdOVVBfTU9ERV9DTE9TRUQQBCqIAQoOV2FpdGxpc3RTdGF0dXMSHwobV0FJVExJU1RfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGwoXV0FJVExJU1RfU1RBVFVTX1BFTkRJTkcQARIcChhXQUlUTElTVF9TVEFUVVNfQVBQUk9WRUQQAhIaChZXQUlUTElTVF9TVEFUVVNfREVOSUVEEAMqjwEKFlByb2plY3RHcm91cE1lbWJlclJvbGUSKQolUFJPSkVDVF9HUk9VUF9NRU1CRVJfUk9MRV9VTlNQRUNJRklFRBAAEiQKIFBST0pFQ1RfR1JPVVBfTUVNQkVSX1JPTEVfU09VUkNFEAESJAogUFJPSkVDVF9HUk9VUF9NRU1CRVJfUk9MRV9UQVJHRVQQAipnCgpJbnZpdGVUeXBlEhsKF0lOVklURV9UWVBFX1VOU1BFQ0lGSUVEEAASHwobSU5WSVRFX1RZUEVfV09SS1NQQUNFX09XTkVSEAESGwoXSU5WSVRFX1RZUEVfVEVBTV9NRU1CRVIQAiqyAQoQSW52aXRhdGlvblN0YXR1cxIhCh1JTlZJVEFUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEh0KGUlOVklUQVRJT05fU1RBVFVTX1BFTkRJTkcQARIeChpJTlZJVEFUSU9OX1NUQVRVU19BQ0NFUFRFRBACEh0KGUlOVklUQVRJT05fU1RBVFVTX0VYUElSRUQQAxIdChlJTlZJVEFUSU9OX1NUQVRVU19SRVZPS0VEEAQq5wEKGEN1c3RvbWVySW52aXRhdGlvblN0YXR1cxIqCiZDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEiYKIkNVU1RPTUVSX0lOVklUQVRJT05fU1RBVFVTX1BFTkRJTkcQARInCiNDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19BQ0NFUFRFRBACEiYKIkNVU1RPTUVSX0lOVklUQVRJT05fU1RBVFVTX0VYUElSRUQQAxImCiJDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19SRVZPS0VEEAQqtgEKCkFwaUtleVR5cGUSHAoYQVBJX0tFWV9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTQVBJX0tFWV9UWVBFX1BVQkxJQxABEhcKE0FQSV9LRVlfVFlQRV9TRUNSRVQQAhIYChRBUElfS0VZX1RZUEVfQ09OVFJPTBADEh4KGkFQSV9LRVlfVFlQRV9QVUJMSUNfVEVOQU5UEAQSHgoaQVBJX0tFWV9UWVBFX1NFQ1JFVF9URU5BTlQQBSq5AQoXQ2FwYWJpbGl0eVJlcXVlc3RTdGF0dXMSKQolQ0FQQUJJTElUWV9SRVFVRVNUX1NUQVRVU19VTlNQRUNJRklFRBAAEiUKIUNBUEFCSUxJVFlfUkVRVUVTVF9TVEFUVVNfUEVORElORxABEiYKIkNBUEFCSUxJVFlfUkVRVUVTVF9TVEFUVVNfQVBQUk9WRUQQAhIkCiBDQVBBQklMSVRZX1JFUVVFU1RfU1RBVFVTX0RFTklFRBADKpABCglBY3RvcktpbmQSGgoWQUNUT1JfS0lORF9VTlNQRUNJRklFRBAAEhUKEUFDVE9SX0tJTkRfTUVNQkVSEAESIAocQUNUT1JfS0lORF9QTEFURk9STV9PUEVSQVRPUhACEhYKEkFDVE9SX0tJTkRfTUFDSElORRADEhYKEkFDVE9SX0tJTkRfVU5LTk9XThAEKqkBChtJbXBlcnNvbmF0aW9uQXBwcm92YWxNZXRob2QSLQopSU1QRVJTT05BVElPTl9BUFBST1ZBTF9NRVRIT0RfVU5TUEVDSUZJRUQQABIsCihJTVBFUlNPTkFUSU9OX0FQUFJPVkFMX01FVEhPRF9URU5BTlRfT1RQEAESLQopSU1QRVJTT05BVElPTl9BUFBST1ZBTF9NRVRIT0RfQlJFQUtfR0xBU1MQAiqMAgoYSW1wZXJzb25hdGlvbkdyYW50U3RhdHVzEioKJklNUEVSU09OQVRJT05fR1JBTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASJgoiSU1QRVJTT05BVElPTl9HUkFOVF9TVEFUVVNfUEVORElORxABEiUKIUlNUEVSU09OQVRJT05fR1JBTlRfU1RBVFVTX0FDVElWRRACEiYKIklNUEVSU09OQVRJT05fR1JBTlRfU1RBVFVTX0VYUElSRUQQAxImCiJJTVBFUlNPTkFUSU9OX0dSQU5UX1NUQVRVU19SRVZPS0VEEAQSJQohSU1QRVJTT05BVElPTl9HUkFOVF9TVEFUVVNfREVOSUVEEAUqiQEKFlRlbmFudEVudGl0bGVtZW50U3RhdGUSKAokVEVOQU5UX0VOVElUTEVNRU5UX1NUQVRFX1VOU1BFQ0lGSUVEEAASIgoeVEVOQU5UX0VOVElUTEVNRU5UX1NUQVRFX0dSQU5UEAESIQodVEVOQU5UX0VOVElUTEVNRU5UX1NUQVRFX0RFTlkQAip5ChFSb2xlUHJpbmNpcGFsS2luZBIjCh9ST0xFX1BSSU5DSVBBTF9LSU5EX1VOU1BFQ0lGSUVEEAASIAocUk9MRV9QUklOQ0lQQUxfS0lORF9DVVNUT01FUhABEh0KGVJPTEVfUFJJTkNJUEFMX0tJTkRfQURNSU4QAjKLjQEKD0lkZW50aXR5U2VydmljZRI+CgVMb2dpbhIZLmlkZW50aXR5LnYxLkxvZ2luUmVxdWVzdBoaLmlkZW50aXR5LnYxLkxvZ2luUmVzcG9uc2USUwoMTG9naW5XaXRoT1RQEiAuaWRlbnRpdHkudjEuTG9naW5XaXRoT1RQUmVxdWVzdBohLmlkZW50aXR5LnYxLkxvZ2luV2l0aE9UUFJlc3BvbnNlEk0KClJlcXVlc3RPVFASHi5pZGVudGl0eS52MS5SZXF1ZXN0T1RQUmVxdWVzdBofLmlkZW50aXR5LnYxLlJlcXVlc3RPVFBSZXNwb25zZRJBCgZMb2dvdXQSGi5pZGVudGl0eS52MS5Mb2dvdXRSZXF1ZXN0GhsuaWRlbnRpdHkudjEuTG9nb3V0UmVzcG9uc2USRwoIUmVnaXN0ZXISHC5pZGVudGl0eS52MS5SZWdpc3RlclJlcXVlc3QaHS5pZGVudGl0eS52MS5SZWdpc3RlclJlc3BvbnNlElwKD0dldFNpZ251cENvbmZpZxIjLmlkZW50aXR5LnYxLkdldFNpZ251cENvbmZpZ1JlcXVlc3QaJC5pZGVudGl0eS52MS5HZXRTaWdudXBDb25maWdSZXNwb25zZRJQCgtWZXJpZnlFbWFpbBIfLmlkZW50aXR5LnYxLlZlcmlmeUVtYWlsUmVxdWVzdBogLmlkZW50aXR5LnYxLlZlcmlmeUVtYWlsUmVzcG9uc2USdAoXUmVzZW5kVmVyaWZpY2F0aW9uRW1haWwSKy5pZGVudGl0eS52MS5SZXNlbmRWZXJpZmljYXRpb25FbWFpbFJlcXVlc3QaLC5pZGVudGl0eS52MS5SZXNlbmRWZXJpZmljYXRpb25FbWFpbFJlc3BvbnNlEnoKGVNlbmRFbWFpbFZlcmlmaWNhdGlvbkNvZGUSLS5pZGVudGl0eS52MS5TZW5kRW1haWxWZXJpZmljYXRpb25Db2RlUmVxdWVzdBouLmlkZW50aXR5LnYxLlNlbmRFbWFpbFZlcmlmaWNhdGlvbkNvZGVSZXNwb25zZRJcCg9WZXJpZnlFbWFpbENvZGUSIy5pZGVudGl0eS52MS5WZXJpZnlFbWFpbENvZGVSZXF1ZXN0GiQuaWRlbnRpdHkudjEuVmVyaWZ5RW1haWxDb2RlUmVzcG9uc2USawoUUmVxdWVzdFBhc3N3b3JkUmVzZXQSKC5pZGVudGl0eS52MS5SZXF1ZXN0UGFzc3dvcmRSZXNldFJlcXVlc3QaKS5pZGVudGl0eS52MS5SZXF1ZXN0UGFzc3dvcmRSZXNldFJlc3BvbnNlElYKDVJlc2V0UGFzc3dvcmQSIS5pZGVudGl0eS52MS5SZXNldFBhc3N3b3JkUmVxdWVzdBoiLmlkZW50aXR5LnYxLlJlc2V0UGFzc3dvcmRSZXNwb25zZRJZCg5VcGRhdGVQYXNzd29yZBIiLmlkZW50aXR5LnYxLlVwZGF0ZVBhc3N3b3JkUmVxdWVzdBojLmlkZW50aXR5LnYxLlVwZGF0ZVBhc3N3b3JkUmVzcG9uc2USYgoRR2V0U2Vzc2lvbkNvbnRleHQSJS5pZGVudGl0eS52MS5HZXRTZXNzaW9uQ29udGV4dFJlcXVlc3QaJi5pZGVudGl0eS52MS5HZXRTZXNzaW9uQ29udGV4dFJlc3BvbnNlElMKDFN3aXRjaFRlbmFudBIgLmlkZW50aXR5LnYxLlN3aXRjaFRlbmFudFJlcXVlc3QaIS5pZGVudGl0eS52MS5Td2l0Y2hUZW5hbnRSZXNwb25zZRJWCg1Td2l0Y2hQcm9qZWN0EiEuaWRlbnRpdHkudjEuU3dpdGNoUHJvamVjdFJlcXVlc3QaIi5pZGVudGl0eS52MS5Td2l0Y2hQcm9qZWN0UmVzcG9uc2USaAoTQ2xlYXJTZXNzaW9uQ29udGV4dBInLmlkZW50aXR5LnYxLkNsZWFyU2Vzc2lvbkNvbnRleHRSZXF1ZXN0GiguaWRlbnRpdHkudjEuQ2xlYXJTZXNzaW9uQ29udGV4dFJlc3BvbnNlEj4KBUdldE1lEhkuaWRlbnRpdHkudjEuR2V0TWVSZXF1ZXN0GhouaWRlbnRpdHkudjEuR2V0TWVSZXNwb25zZRJcCg9DcmVhdGVBZG1pblVzZXISIy5pZGVudGl0eS52MS5DcmVhdGVBZG1pblVzZXJSZXF1ZXN0GiQuaWRlbnRpdHkudjEuQ3JlYXRlQWRtaW5Vc2VyUmVzcG9uc2USUwoMR2V0QWRtaW5Vc2VyEiAuaWRlbnRpdHkudjEuR2V0QWRtaW5Vc2VyUmVxdWVzdBohLmlkZW50aXR5LnYxLkdldEFkbWluVXNlclJlc3BvbnNlElwKD1VwZGF0ZUFkbWluVXNlchIjLmlkZW50aXR5LnYxLlVwZGF0ZUFkbWluVXNlclJlcXVlc3QaJC5pZGVudGl0eS52MS5VcGRhdGVBZG1pblVzZXJSZXNwb25zZRJZCg5MaXN0QWRtaW5Vc2VycxIiLmlkZW50aXR5LnYxLkxpc3RBZG1pblVzZXJzUmVxdWVzdBojLmlkZW50aXR5LnYxLkxpc3RBZG1pblVzZXJzUmVzcG9uc2USVgoNUmVzb2x2ZUFjdG9ycxIhLmlkZW50aXR5LnYxLlJlc29sdmVBY3RvcnNSZXF1ZXN0GiIuaWRlbnRpdHkudjEuUmVzb2x2ZUFjdG9yc1Jlc3BvbnNlEmIKEUxpc3RUZW5hbnRNZW1iZXJzEiUuaWRlbnRpdHkudjEuTGlzdFRlbmFudE1lbWJlcnNSZXF1ZXN0GiYuaWRlbnRpdHkudjEuTGlzdFRlbmFudE1lbWJlcnNSZXNwb25zZRJQCgtHcmFudEFjY2VzcxIfLmlkZW50aXR5LnYxLkdyYW50QWNjZXNzUmVxdWVzdBogLmlkZW50aXR5LnYxLkdyYW50QWNjZXNzUmVzcG9uc2USUwoMUmV2b2tlQWNjZXNzEiAuaWRlbnRpdHkudjEuUmV2b2tlQWNjZXNzUmVxdWVzdBohLmlkZW50aXR5LnYxLlJldm9rZUFjY2Vzc1Jlc3BvbnNlEmgKE1Jldm9rZUltcGVyc29uYXRpb24SJy5pZGVudGl0eS52MS5SZXZva2VJbXBlcnNvbmF0aW9uUmVxdWVzdBooLmlkZW50aXR5LnYxLlJldm9rZUltcGVyc29uYXRpb25SZXNwb25zZRJ0ChdMaXN0SW1wZXJzb25hdGlvbkdyYW50cxIrLmlkZW50aXR5LnYxLkxpc3RJbXBlcnNvbmF0aW9uR3JhbnRzUmVxdWVzdBosLmlkZW50aXR5LnYxLkxpc3RJbXBlcnNvbmF0aW9uR3JhbnRzUmVzcG9uc2USawoUUmVxdWVzdEltcGVyc29uYXRpb24SKC5pZGVudGl0eS52MS5SZXF1ZXN0SW1wZXJzb25hdGlvblJlcXVlc3QaKS5pZGVudGl0eS52MS5SZXF1ZXN0SW1wZXJzb25hdGlvblJlc3BvbnNlEmsKFEFwcHJvdmVJbXBlcnNvbmF0aW9uEiguaWRlbnRpdHkudjEuQXBwcm92ZUltcGVyc29uYXRpb25SZXF1ZXN0GikuaWRlbnRpdHkudjEuQXBwcm92ZUltcGVyc29uYXRpb25SZXNwb25zZRJiChFEZW55SW1wZXJzb25hdGlvbhIlLmlkZW50aXR5LnYxLkRlbnlJbXBlcnNvbmF0aW9uUmVxdWVzdBomLmlkZW50aXR5LnYxLkRlbnlJbXBlcnNvbmF0aW9uUmVzcG9uc2USdAoXQnJlYWtHbGFzc0ltcGVyc29uYXRpb24SKy5pZGVudGl0eS52MS5CcmVha0dsYXNzSW1wZXJzb25hdGlvblJlcXVlc3QaLC5pZGVudGl0eS52MS5CcmVha0dsYXNzSW1wZXJzb25hdGlvblJlc3BvbnNlElAKC0VudGVyVGVuYW50Eh8uaWRlbnRpdHkudjEuRW50ZXJUZW5hbnRSZXF1ZXN0GiAuaWRlbnRpdHkudjEuRW50ZXJUZW5hbnRSZXNwb25zZRJoChNNaW50TWNwV29ya2luZ1Rva2VuEicuaWRlbnRpdHkudjEuTWludE1jcFdvcmtpbmdUb2tlblJlcXVlc3QaKC5pZGVudGl0eS52MS5NaW50TWNwV29ya2luZ1Rva2VuUmVzcG9uc2USWQoOQ3JlYXRlQ3VzdG9tZXISIi5pZGVudGl0eS52MS5DcmVhdGVDdXN0b21lclJlcXVlc3QaIy5pZGVudGl0eS52MS5DcmVhdGVDdXN0b21lclJlc3BvbnNlElAKC0dldEN1c3RvbWVyEh8uaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJSZXF1ZXN0GiAuaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJSZXNwb25zZRJZCg5VcGRhdGVDdXN0b21lchIiLmlkZW50aXR5LnYxLlVwZGF0ZUN1c3RvbWVyUmVxdWVzdBojLmlkZW50aXR5LnYxLlVwZGF0ZUN1c3RvbWVyUmVzcG9uc2USWQoORGVsZXRlQ3VzdG9tZXISIi5pZGVudGl0eS52MS5EZWxldGVDdXN0b21lclJlcXVlc3QaIy5pZGVudGl0eS52MS5EZWxldGVDdXN0b21lclJlc3BvbnNlElYKDUxpc3RDdXN0b21lcnMSIS5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJzUmVxdWVzdBoiLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lcnNSZXNwb25zZRJcCg9TdXNwZW5kQ3VzdG9tZXISIy5pZGVudGl0eS52MS5TdXNwZW5kQ3VzdG9tZXJSZXF1ZXN0GiQuaWRlbnRpdHkudjEuU3VzcGVuZEN1c3RvbWVyUmVzcG9uc2USWQoOTWVyZ2VDdXN0b21lcnMSIi5pZGVudGl0eS52MS5NZXJnZUN1c3RvbWVyc1JlcXVlc3QaIy5pZGVudGl0eS52MS5NZXJnZUN1c3RvbWVyc1Jlc3BvbnNlEmgKE1NldEN1c3RvbWVyUGFzc3dvcmQSJy5pZGVudGl0eS52MS5TZXRDdXN0b21lclBhc3N3b3JkUmVxdWVzdBooLmlkZW50aXR5LnYxLlNldEN1c3RvbWVyUGFzc3dvcmRSZXNwb25zZRJ3ChhDcmVhdGVDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5DcmVhdGVDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USdAoXTGlzdEN1c3RvbWVySW52aXRhdGlvbnMSKy5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1JlcXVlc3QaLC5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1Jlc3BvbnNlEm4KFUdldEN1c3RvbWVySW52aXRhdGlvbhIpLmlkZW50aXR5LnYxLkdldEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaKi5pZGVudGl0eS52MS5HZXRDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ3ChhSZXZva2VDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5SZXZva2VDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuUmV2b2tlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USdwoYUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uEiwuaWRlbnRpdHkudjEuUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBotLmlkZW50aXR5LnYxLlJlc2VuZEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEn0KGlZhbGlkYXRlQ3VzdG9tZXJJbnZpdGF0aW9uEi4uaWRlbnRpdHkudjEuVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi8uaWRlbnRpdHkudjEuVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ3ChhBY2NlcHRDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5BY2NlcHRDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuQWNjZXB0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USdwoYR2V0Q3VzdG9tZXJTaWdudXBDb250ZXh0EiwuaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJTaWdudXBDb250ZXh0UmVxdWVzdBotLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyU2lnbnVwQ29udGV4dFJlc3BvbnNlElMKDEpvaW5XYWl0bGlzdBIgLmlkZW50aXR5LnYxLkpvaW5XYWl0bGlzdFJlcXVlc3QaIS5pZGVudGl0eS52MS5Kb2luV2FpdGxpc3RSZXNwb25zZRJiChFKb2luQWRtaW5XYWl0bGlzdBIlLmlkZW50aXR5LnYxLkpvaW5BZG1pbldhaXRsaXN0UmVxdWVzdBomLmlkZW50aXR5LnYxLkpvaW5BZG1pbldhaXRsaXN0UmVzcG9uc2USaAoTTGlzdFdhaXRsaXN0RW50cmllcxInLmlkZW50aXR5LnYxLkxpc3RXYWl0bGlzdEVudHJpZXNSZXF1ZXN0GiguaWRlbnRpdHkudjEuTGlzdFdhaXRsaXN0RW50cmllc1Jlc3BvbnNlEmsKFEFwcHJvdmVXYWl0bGlzdEVudHJ5EiguaWRlbnRpdHkudjEuQXBwcm92ZVdhaXRsaXN0RW50cnlSZXF1ZXN0GikuaWRlbnRpdHkudjEuQXBwcm92ZVdhaXRsaXN0RW50cnlSZXNwb25zZRJiChFEZW55V2FpdGxpc3RFbnRyeRIlLmlkZW50aXR5LnYxLkRlbnlXYWl0bGlzdEVudHJ5UmVxdWVzdBomLmlkZW50aXR5LnYxLkRlbnlXYWl0bGlzdEVudHJ5UmVzcG9uc2USUwoMQ3JlYXRlVGVuYW50EiAuaWRlbnRpdHkudjEuQ3JlYXRlVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLkNyZWF0ZVRlbmFudFJlc3BvbnNlElwKD0NyZWF0ZVdvcmtzcGFjZRIjLmlkZW50aXR5LnYxLkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QaJC5pZGVudGl0eS52MS5DcmVhdGVXb3Jrc3BhY2VSZXNwb25zZRJKCglHZXRUZW5hbnQSHS5pZGVudGl0eS52MS5HZXRUZW5hbnRSZXF1ZXN0Gh4uaWRlbnRpdHkudjEuR2V0VGVuYW50UmVzcG9uc2USUwoMVXBkYXRlVGVuYW50EiAuaWRlbnRpdHkudjEuVXBkYXRlVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLlVwZGF0ZVRlbmFudFJlc3BvbnNlEoYBCh1TZXRUZW5hbnRQcm9qZWN0TGltaXRPdmVycmlkZRIxLmlkZW50aXR5LnYxLlNldFRlbmFudFByb2plY3RMaW1pdE92ZXJyaWRlUmVxdWVzdBoyLmlkZW50aXR5LnYxLlNldFRlbmFudFByb2plY3RMaW1pdE92ZXJyaWRlUmVzcG9uc2USawoUU2V0VGVuYW50RW50aXRsZW1lbnQSKC5pZGVudGl0eS52MS5TZXRUZW5hbnRFbnRpdGxlbWVudFJlcXVlc3QaKS5pZGVudGl0eS52MS5TZXRUZW5hbnRFbnRpdGxlbWVudFJlc3BvbnNlEnEKFkxpc3RUZW5hbnRFbnRpdGxlbWVudHMSKi5pZGVudGl0eS52MS5MaXN0VGVuYW50RW50aXRsZW1lbnRzUmVxdWVzdBorLmlkZW50aXR5LnYxLkxpc3RUZW5hbnRFbnRpdGxlbWVudHNSZXNwb25zZRJQCgtMaXN0VGVuYW50cxIfLmlkZW50aXR5LnYxLkxpc3RUZW5hbnRzUmVxdWVzdBogLmlkZW50aXR5LnYxLkxpc3RUZW5hbnRzUmVzcG9uc2USUwoMRGVsZXRlVGVuYW50EiAuaWRlbnRpdHkudjEuRGVsZXRlVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLkRlbGV0ZVRlbmFudFJlc3BvbnNlElYKDUNyZWF0ZVByb2plY3QSIS5pZGVudGl0eS52MS5DcmVhdGVQcm9qZWN0UmVxdWVzdBoiLmlkZW50aXR5LnYxLkNyZWF0ZVByb2plY3RSZXNwb25zZRJNCgpHZXRQcm9qZWN0Eh4uaWRlbnRpdHkudjEuR2V0UHJvamVjdFJlcXVlc3QaHy5pZGVudGl0eS52MS5HZXRQcm9qZWN0UmVzcG9uc2USVgoNVXBkYXRlUHJvamVjdBIhLmlkZW50aXR5LnYxLlVwZGF0ZVByb2plY3RSZXF1ZXN0GiIuaWRlbnRpdHkudjEuVXBkYXRlUHJvamVjdFJlc3BvbnNlElMKDExpc3RQcm9qZWN0cxIgLmlkZW50aXR5LnYxLkxpc3RQcm9qZWN0c1JlcXVlc3QaIS5pZGVudGl0eS52MS5MaXN0UHJvamVjdHNSZXNwb25zZRJWCg1EZWxldGVQcm9qZWN0EiEuaWRlbnRpdHkudjEuRGVsZXRlUHJvamVjdFJlcXVlc3QaIi5pZGVudGl0eS52MS5EZWxldGVQcm9qZWN0UmVzcG9uc2USUwoMUHVyZ2VQcm9qZWN0EiAuaWRlbnRpdHkudjEuUHVyZ2VQcm9qZWN0UmVxdWVzdBohLmlkZW50aXR5LnYxLlB1cmdlUHJvamVjdFJlc3BvbnNlEmIKEUdldERlZmF1bHRQcm9qZWN0EiUuaWRlbnRpdHkudjEuR2V0RGVmYXVsdFByb2plY3RSZXF1ZXN0GiYuaWRlbnRpdHkudjEuR2V0RGVmYXVsdFByb2plY3RSZXNwb25zZRJiChFTZXREZWZhdWx0UHJvamVjdBIlLmlkZW50aXR5LnYxLlNldERlZmF1bHRQcm9qZWN0UmVxdWVzdBomLmlkZW50aXR5LnYxLlNldERlZmF1bHRQcm9qZWN0UmVzcG9uc2USZQoSQ3JlYXRlUHJvamVjdEdyb3VwEiYuaWRlbnRpdHkudjEuQ3JlYXRlUHJvamVjdEdyb3VwUmVxdWVzdBonLmlkZW50aXR5LnYxLkNyZWF0ZVByb2plY3RHcm91cFJlc3BvbnNlElwKD0dldFByb2plY3RHcm91cBIjLmlkZW50aXR5LnYxLkdldFByb2plY3RHcm91cFJlcXVlc3QaJC5pZGVudGl0eS52MS5HZXRQcm9qZWN0R3JvdXBSZXNwb25zZRJiChFMaXN0UHJvamVjdEdyb3VwcxIlLmlkZW50aXR5LnYxLkxpc3RQcm9qZWN0R3JvdXBzUmVxdWVzdBomLmlkZW50aXR5LnYxLkxpc3RQcm9qZWN0R3JvdXBzUmVzcG9uc2USZQoSVXBkYXRlUHJvamVjdEdyb3VwEiYuaWRlbnRpdHkudjEuVXBkYXRlUHJvamVjdEdyb3VwUmVxdWVzdBonLmlkZW50aXR5LnYxLlVwZGF0ZVByb2plY3RHcm91cFJlc3BvbnNlEmUKEkRlbGV0ZVByb2plY3RHcm91cBImLmlkZW50aXR5LnYxLkRlbGV0ZVByb2plY3RHcm91cFJlcXVlc3QaJy5pZGVudGl0eS52MS5EZWxldGVQcm9qZWN0R3JvdXBSZXNwb25zZRJiChFBZGRQcm9qZWN0VG9Hcm91cBIlLmlkZW50aXR5LnYxLkFkZFByb2plY3RUb0dyb3VwUmVxdWVzdBomLmlkZW50aXR5LnYxLkFkZFByb2plY3RUb0dyb3VwUmVzcG9uc2UScQoWUmVtb3ZlUHJvamVjdEZyb21Hcm91cBIqLmlkZW50aXR5LnYxLlJlbW92ZVByb2plY3RGcm9tR3JvdXBSZXF1ZXN0GisuaWRlbnRpdHkudjEuUmVtb3ZlUHJvamVjdEZyb21Hcm91cFJlc3BvbnNlEl8KEFByb3Zpc2lvblByb2plY3QSJC5pZGVudGl0eS52MS5Qcm92aXNpb25Qcm9qZWN0UmVxdWVzdBolLmlkZW50aXR5LnYxLlByb3Zpc2lvblByb2plY3RSZXNwb25zZRJlChJHZXRQcm92aXNpb25TdGF0dXMSJi5pZGVudGl0eS52MS5HZXRQcm92aXNpb25TdGF0dXNSZXF1ZXN0GicuaWRlbnRpdHkudjEuR2V0UHJvdmlzaW9uU3RhdHVzUmVzcG9uc2USXwoQQ3JlYXRlSW52aXRhdGlvbhIkLmlkZW50aXR5LnYxLkNyZWF0ZUludml0YXRpb25SZXF1ZXN0GiUuaWRlbnRpdHkudjEuQ3JlYXRlSW52aXRhdGlvblJlc3BvbnNlElwKD0xpc3RJbnZpdGF0aW9ucxIjLmlkZW50aXR5LnYxLkxpc3RJbnZpdGF0aW9uc1JlcXVlc3QaJC5pZGVudGl0eS52MS5MaXN0SW52aXRhdGlvbnNSZXNwb25zZRJiChFMaXN0TXlJbnZpdGF0aW9ucxIlLmlkZW50aXR5LnYxLkxpc3RNeUludml0YXRpb25zUmVxdWVzdBomLmlkZW50aXR5LnYxLkxpc3RNeUludml0YXRpb25zUmVzcG9uc2USXwoQUmV2b2tlSW52aXRhdGlvbhIkLmlkZW50aXR5LnYxLlJldm9rZUludml0YXRpb25SZXF1ZXN0GiUuaWRlbnRpdHkudjEuUmV2b2tlSW52aXRhdGlvblJlc3BvbnNlEl8KEEFjY2VwdEludml0YXRpb24SJC5pZGVudGl0eS52MS5BY2NlcHRJbnZpdGF0aW9uUmVxdWVzdBolLmlkZW50aXR5LnYxLkFjY2VwdEludml0YXRpb25SZXNwb25zZRJlChJWYWxpZGF0ZUludml0YXRpb24SJi5pZGVudGl0eS52MS5WYWxpZGF0ZUludml0YXRpb25SZXF1ZXN0GicuaWRlbnRpdHkudjEuVmFsaWRhdGVJbnZpdGF0aW9uUmVzcG9uc2USUwoMQ3JlYXRlQXBpS2V5EiAuaWRlbnRpdHkudjEuQ3JlYXRlQXBpS2V5UmVxdWVzdBohLmlkZW50aXR5LnYxLkNyZWF0ZUFwaUtleVJlc3BvbnNlEkoKCUdldEFwaUtleRIdLmlkZW50aXR5LnYxLkdldEFwaUtleVJlcXVlc3QaHi5pZGVudGl0eS52MS5HZXRBcGlLZXlSZXNwb25zZRJQCgtMaXN0QXBpS2V5cxIfLmlkZW50aXR5LnYxLkxpc3RBcGlLZXlzUmVxdWVzdBogLmlkZW50aXR5LnYxLkxpc3RBcGlLZXlzUmVzcG9uc2USUwoMVXBkYXRlQXBpS2V5EiAuaWRlbnRpdHkudjEuVXBkYXRlQXBpS2V5UmVxdWVzdBohLmlkZW50aXR5LnYxLlVwZGF0ZUFwaUtleVJlc3BvbnNlElMKDFJvdGF0ZUFwaUtleRIgLmlkZW50aXR5LnYxLlJvdGF0ZUFwaUtleVJlcXVlc3QaIS5pZGVudGl0eS52MS5Sb3RhdGVBcGlLZXlSZXNwb25zZRJTCgxSZXZva2VBcGlLZXkSIC5pZGVudGl0eS52MS5SZXZva2VBcGlLZXlSZXF1ZXN0GiEuaWRlbnRpdHkudjEuUmV2b2tlQXBpS2V5UmVzcG9uc2USYgoRTGlzdEF1dGhQcm92aWRlcnMSJS5pZGVudGl0eS52MS5MaXN0QXV0aFByb3ZpZGVyc1JlcXVlc3QaJi5pZGVudGl0eS52MS5MaXN0QXV0aFByb3ZpZGVyc1Jlc3BvbnNlElwKD0dldEF1dGhQcm92aWRlchIjLmlkZW50aXR5LnYxLkdldEF1dGhQcm92aWRlclJlcXVlc3QaJC5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJSZXNwb25zZRJlChJDcmVhdGVBdXRoUHJvdmlkZXISJi5pZGVudGl0eS52MS5DcmVhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0GicuaWRlbnRpdHkudjEuQ3JlYXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USZQoSVXBkYXRlQXV0aFByb3ZpZGVyEiYuaWRlbnRpdHkudjEuVXBkYXRlQXV0aFByb3ZpZGVyUmVxdWVzdBonLmlkZW50aXR5LnYxLlVwZGF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEmUKEkRlbGV0ZUF1dGhQcm92aWRlchImLmlkZW50aXR5LnYxLkRlbGV0ZUF1dGhQcm92aWRlclJlcXVlc3QaJy5pZGVudGl0eS52MS5EZWxldGVBdXRoUHJvdmlkZXJSZXNwb25zZRJoChNQdWJsaXNoQXV0aFByb3ZpZGVyEicuaWRlbnRpdHkudjEuUHVibGlzaEF1dGhQcm92aWRlclJlcXVlc3QaKC5pZGVudGl0eS52MS5QdWJsaXNoQXV0aFByb3ZpZGVyUmVzcG9uc2USbgoVVW5wdWJsaXNoQXV0aFByb3ZpZGVyEikuaWRlbnRpdHkudjEuVW5wdWJsaXNoQXV0aFByb3ZpZGVyUmVxdWVzdBoqLmlkZW50aXR5LnYxLlVucHVibGlzaEF1dGhQcm92aWRlclJlc3BvbnNlEoMBChxHZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzEjAuaWRlbnRpdHkudjEuR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1JlcXVlc3QaMS5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzUmVzcG9uc2USgAEKG1NjaGVkdWxlQXV0aFByb3ZpZGVyUHVibGlzaBIvLmlkZW50aXR5LnYxLlNjaGVkdWxlQXV0aFByb3ZpZGVyUHVibGlzaFJlcXVlc3QaMC5pZGVudGl0eS52MS5TY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2hSZXNwb25zZRKVAQoiQ2FuY2VsU2NoZWR1bGVkQXV0aFByb3ZpZGVyUHVibGlzaBI2LmlkZW50aXR5LnYxLkNhbmNlbFNjaGVkdWxlZEF1dGhQcm92aWRlclB1Ymxpc2hSZXF1ZXN0GjcuaWRlbnRpdHkudjEuQ2FuY2VsU2NoZWR1bGVkQXV0aFByb3ZpZGVyUHVibGlzaFJlc3BvbnNlEnEKFkdldEF1dGhQcm92aWRlclZlcnNpb24SKi5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJWZXJzaW9uUmVxdWVzdBorLmlkZW50aXR5LnYxLkdldEF1dGhQcm92aWRlclZlcnNpb25SZXNwb25zZRJ3ChhMaXN0QXV0aFByb3ZpZGVyVmVyc2lvbnMSLC5pZGVudGl0eS52MS5MaXN0QXV0aFByb3ZpZGVyVmVyc2lvbnNSZXF1ZXN0Gi0uaWRlbnRpdHkudjEuTGlzdEF1dGhQcm92aWRlclZlcnNpb25zUmVzcG9uc2USfQoaUmVzdG9yZUF1dGhQcm92aWRlclZlcnNpb24SLi5pZGVudGl0eS52MS5SZXN0b3JlQXV0aFByb3ZpZGVyVmVyc2lvblJlcXVlc3QaLy5pZGVudGl0eS52MS5SZXN0b3JlQXV0aFByb3ZpZGVyVmVyc2lvblJlc3BvbnNlEm4KFUVuYWJsZWRPQXV0aFByb3ZpZGVycxIpLmlkZW50aXR5LnYxLkVuYWJsZWRPQXV0aFByb3ZpZGVyc1JlcXVlc3QaKi5pZGVudGl0eS52MS5FbmFibGVkT0F1dGhQcm92aWRlcnNSZXNwb25zZRJfChBNaW50U2VydmljZVRva2VuEiQuaWRlbnRpdHkudjEuTWludFNlcnZpY2VUb2tlblJlcXVlc3QaJS5pZGVudGl0eS52MS5NaW50U2VydmljZVRva2VuUmVzcG9uc2USXAoPVXBkYXRlTXlQcm9maWxlEiMuaWRlbnRpdHkudjEuVXBkYXRlTXlQcm9maWxlUmVxdWVzdBokLmlkZW50aXR5LnYxLlVwZGF0ZU15UHJvZmlsZVJlc3BvbnNlEnEKFkxpc3RNeU9BdXRoQ29ubmVjdGlvbnMSKi5pZGVudGl0eS52MS5MaXN0TXlPQXV0aENvbm5lY3Rpb25zUmVxdWVzdBorLmlkZW50aXR5LnYxLkxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXNwb25zZRJoChNVbmxpbmtPQXV0aFByb3ZpZGVyEicuaWRlbnRpdHkudjEuVW5saW5rT0F1dGhQcm92aWRlclJlcXVlc3QaKC5pZGVudGl0eS52MS5VbmxpbmtPQXV0aFByb3ZpZGVyUmVzcG9uc2UScQoWQ2hlY2tFbWFpbEF2YWlsYWJpbGl0eRIqLmlkZW50aXR5LnYxLkNoZWNrRW1haWxBdmFpbGFiaWxpdHlSZXF1ZXN0GisuaWRlbnRpdHkudjEuQ2hlY2tFbWFpbEF2YWlsYWJpbGl0eVJlc3BvbnNlEmsKFENvbXBsZXRlQWNjb3VudFNldHVwEiguaWRlbnRpdHkudjEuQ29tcGxldGVBY2NvdW50U2V0dXBSZXF1ZXN0GikuaWRlbnRpdHkudjEuQ29tcGxldGVBY2NvdW50U2V0dXBSZXNwb25zZRJoChNDcmVhdGVTaWdudXBTZXNzaW9uEicuaWRlbnRpdHkudjEuQ3JlYXRlU2lnbnVwU2Vzc2lvblJlcXVlc3QaKC5pZGVudGl0eS52MS5DcmVhdGVTaWdudXBTZXNzaW9uUmVzcG9uc2USXwoQUmVzZW5kSW52aXRhdGlvbhIkLmlkZW50aXR5LnYxLlJlc2VuZEludml0YXRpb25SZXF1ZXN0GiUuaWRlbnRpdHkudjEuUmVzZW5kSW52aXRhdGlvblJlc3BvbnNlEmgKE1Jlc2VuZEFjY291bnRBY2Nlc3MSJy5pZGVudGl0eS52MS5SZXNlbmRBY2NvdW50QWNjZXNzUmVxdWVzdBooLmlkZW50aXR5LnYxLlJlc2VuZEFjY291bnRBY2Nlc3NSZXNwb25zZRJWCg1HZXRJbnZpdGF0aW9uEiEuaWRlbnRpdHkudjEuR2V0SW52aXRhdGlvblJlcXVlc3QaIi5pZGVudGl0eS52MS5HZXRJbnZpdGF0aW9uUmVzcG9uc2USWQoOQWN0aXZhdGVUZW5hbnQSIi5pZGVudGl0eS52MS5BY3RpdmF0ZVRlbmFudFJlcXVlc3QaIy5pZGVudGl0eS52MS5BY3RpdmF0ZVRlbmFudFJlc3BvbnNlEm4KFVJlcXVlc3RUZW5hbnREZWxldGlvbhIpLmlkZW50aXR5LnYxLlJlcXVlc3RUZW5hbnREZWxldGlvblJlcXVlc3QaKi5pZGVudGl0eS52MS5SZXF1ZXN0VGVuYW50RGVsZXRpb25SZXNwb25zZRKAAQobR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzEi8uaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzUmVxdWVzdBowLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1c1Jlc3BvbnNlElkKDlZhbGlkYXRlQXBpS2V5EiIuaWRlbnRpdHkudjEuVmFsaWRhdGVBcGlLZXlSZXF1ZXN0GiMuaWRlbnRpdHkudjEuVmFsaWRhdGVBcGlLZXlSZXNwb25zZRJWCg1DdXN0b21lckxvZ2luEiEuaWRlbnRpdHkudjEuQ3VzdG9tZXJMb2dpblJlcXVlc3QaIi5pZGVudGl0eS52MS5DdXN0b21lckxvZ2luUmVzcG9uc2USXwoQQ3VzdG9tZXJSZWdpc3RlchIkLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVnaXN0ZXJSZXF1ZXN0GiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZWdpc3RlclJlc3BvbnNlEmsKFEN1c3RvbWVyUmVmcmVzaFRva2VuEiguaWRlbnRpdHkudjEuQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXF1ZXN0GikuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXNwb25zZRJlChJDdXN0b21lclJlcXVlc3RPVFASJi5pZGVudGl0eS52MS5DdXN0b21lclJlcXVlc3RPVFBSZXF1ZXN0GicuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0T1RQUmVzcG9uc2USYgoRQ3VzdG9tZXJWZXJpZnlPVFASJS5pZGVudGl0eS52MS5DdXN0b21lclZlcmlmeU9UUFJlcXVlc3QaJi5pZGVudGl0eS52MS5DdXN0b21lclZlcmlmeU9UUFJlc3BvbnNlEoMBChxDdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0EjAuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldFJlcXVlc3QaMS5pZGVudGl0eS52MS5DdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USbgoVQ3VzdG9tZXJSZXNldFBhc3N3b3JkEikuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXNldFBhc3N3b3JkUmVxdWVzdBoqLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVzZXRQYXNzd29yZFJlc3BvbnNlElwKD0RlbGV0ZU15QWNjb3VudBIjLmlkZW50aXR5LnYxLkRlbGV0ZU15QWNjb3VudFJlcXVlc3QaJC5pZGVudGl0eS52MS5EZWxldGVNeUFjY291bnRSZXNwb25zZRJlChJTdG9yZVByb3ZpZGVyVG9rZW4SJi5pZGVudGl0eS52MS5TdG9yZVByb3ZpZGVyVG9rZW5SZXF1ZXN0GicuaWRlbnRpdHkudjEuU3RvcmVQcm92aWRlclRva2VuUmVzcG9uc2USXwoQR2V0UHJvdmlkZXJUb2tlbhIkLmlkZW50aXR5LnYxLkdldFByb3ZpZGVyVG9rZW5SZXF1ZXN0GiUuaWRlbnRpdHkudjEuR2V0UHJvdmlkZXJUb2tlblJlc3BvbnNlEmsKFERlbGV0ZVByb3ZpZGVyVG9rZW5zEiguaWRlbnRpdHkudjEuRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXF1ZXN0GikuaWRlbnRpdHkudjEuRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXNwb25zZRJlChJTdGFydFByb3ZpZGVyTG9naW4SJi5pZGVudGl0eS52MS5TdGFydFByb3ZpZGVyTG9naW5SZXF1ZXN0GicuaWRlbnRpdHkudjEuU3RhcnRQcm92aWRlckxvZ2luUmVzcG9uc2USaAoTRmluaXNoUHJvdmlkZXJMb2dpbhInLmlkZW50aXR5LnYxLkZpbmlzaFByb3ZpZGVyTG9naW5SZXF1ZXN0GiguaWRlbnRpdHkudjEuRmluaXNoUHJvdmlkZXJMb2dpblJlc3BvbnNlEn0KGlN0YXJ0Q3VzdG9tZXJMb2dpbldpdGhGb2lyEi4uaWRlbnRpdHkudjEuU3RhcnRDdXN0b21lckxvZ2luV2l0aEZvaXJSZXF1ZXN0Gi8uaWRlbnRpdHkudjEuU3RhcnRDdXN0b21lckxvZ2luV2l0aEZvaXJSZXNwb25zZRKGAQodQ29tcGxldGVDdXN0b21lckxvZ2luV2l0aEZvaXISMS5pZGVudGl0eS52MS5Db21wbGV0ZUN1c3RvbWVyTG9naW5XaXRoRm9pclJlcXVlc3QaMi5pZGVudGl0eS52MS5Db21wbGV0ZUN1c3RvbWVyTG9naW5XaXRoRm9pclJlc3BvbnNlEnQKF1N0YXJ0QWRtaW5Mb2dpbldpdGhGb2lyEisuaWRlbnRpdHkudjEuU3RhcnRBZG1pbkxvZ2luV2l0aEZvaXJSZXF1ZXN0GiwuaWRlbnRpdHkudjEuU3RhcnRBZG1pbkxvZ2luV2l0aEZvaXJSZXNwb25zZRJ9ChpDb21wbGV0ZUFkbWluTG9naW5XaXRoRm9pchIuLmlkZW50aXR5LnYxLkNvbXBsZXRlQWRtaW5Mb2dpbldpdGhGb2lyUmVxdWVzdBovLmlkZW50aXR5LnYxLkNvbXBsZXRlQWRtaW5Mb2dpbldpdGhGb2lyUmVzcG9uc2USUAoLQmVnaW5TdGVwVXASHy5pZGVudGl0eS52MS5CZWdpblN0ZXBVcFJlcXVlc3QaIC5pZGVudGl0eS52MS5CZWdpblN0ZXBVcFJlc3BvbnNlElkKDkNvbXBsZXRlU3RlcFVwEiIuaWRlbnRpdHkudjEuQ29tcGxldGVTdGVwVXBSZXF1ZXN0GiMuaWRlbnRpdHkudjEuQ29tcGxldGVTdGVwVXBSZXNwb25zZRJlChJCZWdpbk1mYUVucm9sbG1lbnQSJi5pZGVudGl0eS52MS5CZWdpbk1mYUVucm9sbG1lbnRSZXF1ZXN0GicuaWRlbnRpdHkudjEuQmVnaW5NZmFFbnJvbGxtZW50UmVzcG9uc2USbgoVQ29tcGxldGVNZmFFbnJvbGxtZW50EikuaWRlbnRpdHkudjEuQ29tcGxldGVNZmFFbnJvbGxtZW50UmVxdWVzdBoqLmlkZW50aXR5LnYxLkNvbXBsZXRlTWZhRW5yb2xsbWVudFJlc3BvbnNlEmUKEkxpc3RSZWx5aW5nUGFydGllcxImLmlkZW50aXR5LnYxLkxpc3RSZWx5aW5nUGFydGllc1JlcXVlc3QaJy5pZGVudGl0eS52MS5MaXN0UmVseWluZ1BhcnRpZXNSZXNwb25zZRJcCg9HZXRSZWx5aW5nUGFydHkSIy5pZGVudGl0eS52MS5HZXRSZWx5aW5nUGFydHlSZXF1ZXN0GiQuaWRlbnRpdHkudjEuR2V0UmVseWluZ1BhcnR5UmVzcG9uc2USZQoSQ3JlYXRlUmVseWluZ1BhcnR5EiYuaWRlbnRpdHkudjEuQ3JlYXRlUmVseWluZ1BhcnR5UmVxdWVzdBonLmlkZW50aXR5LnYxLkNyZWF0ZVJlbHlpbmdQYXJ0eVJlc3BvbnNlEmUKElVwZGF0ZVJlbHlpbmdQYXJ0eRImLmlkZW50aXR5LnYxLlVwZGF0ZVJlbHlpbmdQYXJ0eVJlcXVlc3QaJy5pZGVudGl0eS52MS5VcGRhdGVSZWx5aW5nUGFydHlSZXNwb25zZRJoChNEaXNhYmxlUmVseWluZ1BhcnR5EicuaWRlbnRpdHkudjEuRGlzYWJsZVJlbHlpbmdQYXJ0eVJlcXVlc3QaKC5pZGVudGl0eS52MS5EaXNhYmxlUmVseWluZ1BhcnR5UmVzcG9uc2USawoUUmVnaXN0ZXJDdXN0b21Eb21haW4SKC5pZGVudGl0eS52MS5SZWdpc3RlckN1c3RvbURvbWFpblJlcXVlc3QaKS5pZGVudGl0eS52MS5SZWdpc3RlckN1c3RvbURvbWFpblJlc3BvbnNlEnoKGUdldEN1c3RvbURvbWFpbkJ5SG9zdG5hbWUSLS5pZGVudGl0eS52MS5HZXRDdXN0b21Eb21haW5CeUhvc3RuYW1lUmVxdWVzdBouLmlkZW50aXR5LnYxLkdldEN1c3RvbURvbWFpbkJ5SG9zdG5hbWVSZXNwb25zZRJlChJWZXJpZnlDdXN0b21Eb21haW4SJi5pZGVudGl0eS52MS5WZXJpZnlDdXN0b21Eb21haW5SZXF1ZXN0GicuaWRlbnRpdHkudjEuVmVyaWZ5Q3VzdG9tRG9tYWluUmVzcG9uc2USZQoSRGVsZXRlQ3VzdG9tRG9tYWluEiYuaWRlbnRpdHkudjEuRGVsZXRlQ3VzdG9tRG9tYWluUmVxdWVzdBonLmlkZW50aXR5LnYxLkRlbGV0ZUN1c3RvbURvbWFpblJlc3BvbnNlEmIKEUxpc3RDdXN0b21Eb21haW5zEiUuaWRlbnRpdHkudjEuTGlzdEN1c3RvbURvbWFpbnNSZXF1ZXN0GiYuaWRlbnRpdHkudjEuTGlzdEN1c3RvbURvbWFpbnNSZXNwb25zZRJrChRMaXN0Q3VzdG9tZXJTZXNzaW9ucxIoLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lclNlc3Npb25zUmVxdWVzdBopLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lclNlc3Npb25zUmVzcG9uc2USbgoVUmV2b2tlQ3VzdG9tZXJTZXNzaW9uEikuaWRlbnRpdHkudjEuUmV2b2tlQ3VzdG9tZXJTZXNzaW9uUmVxdWVzdBoqLmlkZW50aXR5LnYxLlJldm9rZUN1c3RvbWVyU2Vzc2lvblJlc3BvbnNlEnEKFkxpc3RSZWx5aW5nUGFydHlHcmFudHMSKi5pZGVudGl0eS52MS5MaXN0UmVseWluZ1BhcnR5R3JhbnRzUmVxdWVzdBorLmlkZW50aXR5LnYxLkxpc3RSZWx5aW5nUGFydHlHcmFudHNSZXNwb25zZRJiChFHcmFudFJlbHlpbmdQYXJ0eRIlLmlkZW50aXR5LnYxLkdyYW50UmVseWluZ1BhcnR5UmVxdWVzdBomLmlkZW50aXR5LnYxLkdyYW50UmVseWluZ1BhcnR5UmVzcG9uc2USdAoXUmV2b2tlUmVseWluZ1BhcnR5R3JhbnQSKy5pZGVudGl0eS52MS5SZXZva2VSZWx5aW5nUGFydHlHcmFudFJlcXVlc3QaLC5pZGVudGl0eS52MS5SZXZva2VSZWx5aW5nUGFydHlHcmFudFJlc3BvbnNlEkoKCUxpc3RSb2xlcxIdLmlkZW50aXR5LnYxLkxpc3RSb2xlc1JlcXVlc3QaHi5pZGVudGl0eS52MS5MaXN0Um9sZXNSZXNwb25zZRJECgdHZXRSb2xlEhsuaWRlbnRpdHkudjEuR2V0Um9sZVJlcXVlc3QaHC5pZGVudGl0eS52MS5HZXRSb2xlUmVzcG9uc2USTQoKQ3JlYXRlUm9sZRIeLmlkZW50aXR5LnYxLkNyZWF0ZVJvbGVSZXF1ZXN0Gh8uaWRlbnRpdHkudjEuQ3JlYXRlUm9sZVJlc3BvbnNlEk0KClVwZGF0ZVJvbGUSHi5pZGVudGl0eS52MS5VcGRhdGVSb2xlUmVxdWVzdBofLmlkZW50aXR5LnYxLlVwZGF0ZVJvbGVSZXNwb25zZRJQCgtEaXNhYmxlUm9sZRIfLmlkZW50aXR5LnYxLkRpc2FibGVSb2xlUmVxdWVzdBogLmlkZW50aXR5LnYxLkRpc2FibGVSb2xlUmVzcG9uc2USTQoKQXNzaWduUm9sZRIeLmlkZW50aXR5LnYxLkFzc2lnblJvbGVSZXF1ZXN0Gh8uaWRlbnRpdHkudjEuQXNzaWduUm9sZVJlc3BvbnNlEmsKFFJldm9rZVJvbGVBc3NpZ25tZW50EiguaWRlbnRpdHkudjEuUmV2b2tlUm9sZUFzc2lnbm1lbnRSZXF1ZXN0GikuaWRlbnRpdHkudjEuUmV2b2tlUm9sZUFzc2lnbm1lbnRSZXNwb25zZRJoChNMaXN0Um9sZUFzc2lnbm1lbnRzEicuaWRlbnRpdHkudjEuTGlzdFJvbGVBc3NpZ25tZW50c1JlcXVlc3QaKC5pZGVudGl0eS52MS5MaXN0Um9sZUFzc2lnbm1lbnRzUmVzcG9uc2USYgoRUmVxdWVzdENhcGFiaWxpdHkSJS5pZGVudGl0eS52MS5SZXF1ZXN0Q2FwYWJpbGl0eVJlcXVlc3QaJi5pZGVudGl0eS52MS5SZXF1ZXN0Q2FwYWJpbGl0eVJlc3BvbnNlEncKGExpc3RNeUNhcGFiaWxpdHlSZXF1ZXN0cxIsLmlkZW50aXR5LnYxLkxpc3RNeUNhcGFiaWxpdHlSZXF1ZXN0c1JlcXVlc3QaLS5pZGVudGl0eS52MS5MaXN0TXlDYXBhYmlsaXR5UmVxdWVzdHNSZXNwb25zZRJxChZMaXN0Q2FwYWJpbGl0eVJlcXVlc3RzEiouaWRlbnRpdHkudjEuTGlzdENhcGFiaWxpdHlSZXF1ZXN0c1JlcXVlc3QaKy5pZGVudGl0eS52MS5MaXN0Q2FwYWJpbGl0eVJlcXVlc3RzUmVzcG9uc2USdwoYUmVzb2x2ZUNhcGFiaWxpdHlSZXF1ZXN0EiwuaWRlbnRpdHkudjEuUmVzb2x2ZUNhcGFiaWxpdHlSZXF1ZXN0UmVxdWVzdBotLmlkZW50aXR5LnYxLlJlc29sdmVDYXBhYmlsaXR5UmVxdWVzdFJlc3BvbnNlEn0KGkJ1bGtBcHBseVdvcmtzcGFjZUNyZWF0aW9uEi4uaWRlbnRpdHkudjEuQnVsa0FwcGx5V29ya3NwYWNlQ3JlYXRpb25SZXF1ZXN0Gi8uaWRlbnRpdHkudjEuQnVsa0FwcGx5V29ya3NwYWNlQ3JlYXRpb25SZXNwb25zZRKAAQobQnVsa1Jldm9rZVdvcmtzcGFjZUNyZWF0aW9uEi8uaWRlbnRpdHkudjEuQnVsa1Jldm9rZVdvcmtzcGFjZUNyZWF0aW9uUmVxdWVzdBowLmlkZW50aXR5LnYxLkJ1bGtSZXZva2VXb3Jrc3BhY2VDcmVhdGlvblJlc3BvbnNlEmUKEkdldFNlY3VyaXR5U3VtbWFyeRImLmlkZW50aXR5LnYxLkdldFNlY3VyaXR5U3VtbWFyeVJlcXVlc3QaJy5pZGVudGl0eS52MS5HZXRTZWN1cml0eVN1bW1hcnlSZXNwb25zZRJoChNHZXRTdXNwaWNpb3VzTG9naW5zEicuaWRlbnRpdHkudjEuR2V0U3VzcGljaW91c0xvZ2luc1JlcXVlc3QaKC5pZGVudGl0eS52MS5HZXRTdXNwaWNpb3VzTG9naW5zUmVzcG9uc2USXAoPR2V0RmFpbGVkTG9naW5zEiMuaWRlbnRpdHkudjEuR2V0RmFpbGVkTG9naW5zUmVxdWVzdBokLmlkZW50aXR5LnYxLkdldEZhaWxlZExvZ2luc1Jlc3BvbnNlEmUKEkdldEFjY291bnRMb2Nrb3V0cxImLmlkZW50aXR5LnYxLkdldEFjY291bnRMb2Nrb3V0c1JlcXVlc3QaJy5pZGVudGl0eS52MS5HZXRBY2NvdW50TG9ja291dHNSZXNwb25zZRJ3ChhHZXRUZW5hbnRTZWN1cml0eVN1bW1hcnkSLC5pZGVudGl0eS52MS5HZXRUZW5hbnRTZWN1cml0eVN1bW1hcnlSZXF1ZXN0Gi0uaWRlbnRpdHkudjEuR2V0VGVuYW50U2VjdXJpdHlTdW1tYXJ5UmVzcG9uc2USegoZR2V0VGVuYW50U3VzcGljaW91c0xvZ2lucxItLmlkZW50aXR5LnYxLkdldFRlbmFudFN1c3BpY2lvdXNMb2dpbnNSZXF1ZXN0Gi4uaWRlbnRpdHkudjEuR2V0VGVuYW50U3VzcGljaW91c0xvZ2luc1Jlc3BvbnNlEm4KFUdldFRlbmFudEZhaWxlZExvZ2lucxIpLmlkZW50aXR5LnYxLkdldFRlbmFudEZhaWxlZExvZ2luc1JlcXVlc3QaKi5pZGVudGl0eS52MS5HZXRUZW5hbnRGYWlsZWRMb2dpbnNSZXNwb25zZUI9WjtnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vaWRlbnRpdHkvdjE7aWRlbnRpdHl2MWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp2, file_publish_v1_publish, file_common_v1_pagination]);
|
|
697
|
+
var file_identity_v1_identity = /* @__PURE__ */ fileDesc3("ChppZGVudGl0eS92MS9pZGVudGl0eS5wcm90bxILaWRlbnRpdHkudjEiwwQKCUFkbWluVXNlchIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIXCgpmaXJzdF9uYW1lGAMgASgJSACIAQESFgoJbGFzdF9uYW1lGAQgASgJSAGIAQESFwoKYXZhdGFyX3VybBgFIAEoCUgCiAEBEhkKEWlzX3BsYXRmb3JtX2FkbWluGAYgASgIEh0KEHByZWZlcnJlZF9sb2NhbGUYByABKAlIA4gBARIsCgZzdGF0dXMYFCABKA4yHC5pZGVudGl0eS52MS5BZG1pblVzZXJTdGF0dXMSOgoRZW1haWxfdmVyaWZpZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESNgoNbGFzdF9sb2dpbl9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIsCgZhY2Nlc3MYKCADKAsyHC5pZGVudGl0eS52MS5BZG1pblVzZXJBY2Nlc3MSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUINCgtfYXZhdGFyX3VybEITChFfcHJlZmVycmVkX2xvY2FsZUIUChJfZW1haWxfdmVyaWZpZWRfYXRCEAoOX2xhc3RfbG9naW5fYXQi6QIKD0FkbWluVXNlckFjY2VzcxIKCgJpZBgBIAEoCRIVCg1hZG1pbl91c2VyX2lkGAIgASgJEhEKCXRlbmFudF9pZBgDIAEoCRIXCgpwcm9qZWN0X2lkGAQgASgJSACIAQESDwoHcm9sZV9pZBgGIAEoCRIQCghyb2xlX2tleRgHIAEoCRIRCglyb2xlX25hbWUYCCABKAkSEwoLdGVuYW50X25hbWUYCiABKAkSGQoMcHJvamVjdF9uYW1lGAsgASgJSAGIAQESHQoVZWZmZWN0aXZlX3Blcm1pc3Npb25zGAkgAygJEi4KCmdyYW50ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmdyYW50ZWRfYnkYMyABKAlIAogBAUINCgtfcHJvamVjdF9pZEIPCg1fcHJvamVjdF9uYW1lQg0KC19ncmFudGVkX2J5SgQIBRAGUgRyb2xlIqkDCghDdXN0b21lchIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEgoKcHJvamVjdF9pZBgEIAEoCRIdChBwcmVmZXJyZWRfbG9jYWxlGAUgASgJSACIAQESKwoGc3RhdHVzGBQgASgOMhsuaWRlbnRpdHkudjEuQ3VzdG9tZXJTdGF0dXMSOgoRZW1haWxfdmVyaWZpZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESNgoNbGFzdF9sb2dpbl9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEITChFfcHJlZmVycmVkX2xvY2FsZUIUChJfZW1haWxfdmVyaWZpZWRfYXRCEAoOX2xhc3RfbG9naW5fYXQiiQMKBlRlbmFudBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEikKBnN0YXR1cxgUIAEoDjIZLmlkZW50aXR5LnYxLlRlbmFudFN0YXR1cxI1CgxzdXNwZW5kZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESQgoZY2FuY2VsbGF0aW9uX3NjaGVkdWxlZF9hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIbChNkYXRhX3JldGVudGlvbl9kYXlzGB4gASgFEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg8KDV9zdXNwZW5kZWRfYXRCHAoaX2NhbmNlbGxhdGlvbl9zY2hlZHVsZWRfYXRKBAgfECBSDWZsZWV0X2VuYWJsZWQicAoSU2lnbnVwUmVzdHJpY3Rpb25zEhoKEmJsb2NrX3N1YmFkZHJlc3NlcxgBIAEoCBIYChBibG9ja19kaXNwb3NhYmxlGAIgASgIEhEKCWFsbG93bGlzdBgDIAMoCRIRCglibG9ja2xpc3QYBCADKAki1goKB1Byb2plY3QSCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARISCgppc19kZWZhdWx0GAUgASgIEioKBnN0YXR1cxgUIAEoDjIaLmlkZW50aXR5LnYxLlByb2plY3RTdGF0dXMSPgoVZGVsZXRpb25fc2NoZWR1bGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEhcKCmNyZWF0ZWRfYnkYKCABKAlIAogBARIXCgp1cGRhdGVkX2J5GCkgASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGQoMZGlzcGxheV9uYW1lGDwgASgJSASIAQESFQoIbG9nb191cmwYPSABKAlIBYgBARIaCg1wcmltYXJ5X2NvbG9yGD4gASgJSAaIAQESFgoJZnJvbV9uYW1lGD8gASgJSAeIAQESFQoIcmVwbHlfdG8YQCABKAlICIgBARIaCg1zdXBwb3J0X2VtYWlsGEEgASgJSAmIAQESGQoMYXBwX2Jhc2VfdXJsGEIgASgJSAqIAQESFwoKZnJvbV9lbWFpbBhDIAEoCUgLiAEBEiIKFXJlc2VuZF9rZXlfc2VjcmV0X3JlZhhEIAEoCUgMiAEBEisKHmN1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZBhGIAEoCEgNiAEBEiYKGWN1c3RvbWVyX3Bhc3N3b3JkX2VuYWJsZWQYUSABKAhIDogBARIhChRjdXN0b21lcl9vdHBfZW5hYmxlZBhSIAEoCEgPiAEBEiwKC3NpZ251cF9tb2RlGFMgASgOMhcuaWRlbnRpdHkudjEuU2lnbnVwTW9kZRJBChNzaWdudXBfcmVzdHJpY3Rpb25zGFQgASgLMh8uaWRlbnRpdHkudjEuU2lnbnVwUmVzdHJpY3Rpb25zSBCIAQESJQoYbm90ZV9zY3JlZW5zaG90c19lbmFibGVkGFUgASgISBGIAQESJAoXYW5vbnltb3VzX25vdGVzX2VuYWJsZWQYViABKAhIEogBARIVCghncm91cF9pZBhaIAEoCUgTiAEBQg4KDF9kZXNjcmlwdGlvbkIYChZfZGVsZXRpb25fc2NoZWR1bGVkX2F0Qg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5Qg8KDV9kaXNwbGF5X25hbWVCCwoJX2xvZ29fdXJsQhAKDl9wcmltYXJ5X2NvbG9yQgwKCl9mcm9tX25hbWVCCwoJX3JlcGx5X3RvQhAKDl9zdXBwb3J0X2VtYWlsQg8KDV9hcHBfYmFzZV91cmxCDQoLX2Zyb21fZW1haWxCGAoWX3Jlc2VuZF9rZXlfc2VjcmV0X3JlZkIhCh9fY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkQhwKGl9jdXN0b21lcl9wYXNzd29yZF9lbmFibGVkQhcKFV9jdXN0b21lcl9vdHBfZW5hYmxlZEIWChRfc2lnbnVwX3Jlc3RyaWN0aW9uc0IbChlfbm90ZV9zY3JlZW5zaG90c19lbmFibGVkQhoKGF9hbm9ueW1vdXNfbm90ZXNfZW5hYmxlZEILCglfZ3JvdXBfaWRKBAhQEFFSF2N1c3RvbWVyX3NpZ251cF9lbmFibGVkItICCgxQcm9qZWN0R3JvdXASCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEgwKBG5hbWUYAyABKAkSGQoRb3ZlcnJpZGVzX2FsbG93ZWQYBiABKAgSHgoRc291cmNlX3Byb2plY3RfaWQYBSABKAlIAIgBARIXCgpjcmVhdGVkX2J5GCggASgJSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoHbWVtYmVycxg8IAMoCzIfLmlkZW50aXR5LnYxLlByb2plY3RHcm91cE1lbWJlckIUChJfc291cmNlX3Byb2plY3RfaWRCDQoLX2NyZWF0ZWRfYnlKBAgEEAVSBG1vZGUi0wEKElByb2plY3RHcm91cE1lbWJlchIKCgJpZBgBIAEoCRIQCghncm91cF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEjEKBHJvbGUYBCABKA4yIy5pZGVudGl0eS52MS5Qcm9qZWN0R3JvdXBNZW1iZXJSb2xlEhgKC3N0YWdlX29yZGVyGAUgASgFSACIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX3N0YWdlX29yZGVyIvUECgpJbnZpdGF0aW9uEgoKAmlkGAEgASgJEg0KBWVtYWlsGAIgASgJEhEKCXRlbmFudF9pZBgDIAEoCRITCgtwcm9qZWN0X2lkcxgEIAMoCRIsCgtpbnZpdGVfdHlwZRgGIAEoDjIXLmlkZW50aXR5LnYxLkludml0ZVR5cGUSEgoKaW52aXRlZF9ieRgHIAEoCRIUCgdtZXNzYWdlGAggASgJSACIAQESDwoHcm9sZV9pZBgJIAEoCRIQCghyb2xlX2tleRgKIAEoCRIRCglyb2xlX25hbWUYCyABKAkSHQoVZWZmZWN0aXZlX3Blcm1pc3Npb25zGAwgAygJEi0KBnN0YXR1cxgUIAEoDjIdLmlkZW50aXR5LnYxLkludml0YXRpb25TdGF0dXMSLgoKZXhwaXJlc19hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLYWNjZXB0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESOQoQdW5kZWxpdmVyYWJsZV9hdBggIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIhChR1bmRlbGl2ZXJhYmxlX3JlYXNvbhghIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9tZXNzYWdlQg4KDF9hY2NlcHRlZF9hdEITChFfdW5kZWxpdmVyYWJsZV9hdEIXChVfdW5kZWxpdmVyYWJsZV9yZWFzb25KBAgFEAZSBHJvbGUi6QMKEkN1c3RvbWVySW52aXRhdGlvbhIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEgoKcHJvamVjdF9pZBgEIAEoCRIXCgppbnZpdGVkX2J5GAUgASgJSACIAQESFAoHbWVzc2FnZRgGIAEoCUgBiAEBEjUKBnN0YXR1cxgUIAEoDjIlLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvblN0YXR1cxIuCgpleHBpcmVzX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI0CgthY2NlcHRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIhChRhY2NlcHRlZF9jdXN0b21lcl9pZBggIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg0KC19pbnZpdGVkX2J5QgoKCF9tZXNzYWdlQg4KDF9hY2NlcHRlZF9hdEIXChVfYWNjZXB0ZWRfY3VzdG9tZXJfaWQi2QQKBkFwaUtleRIKCgJpZBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSEgoKcHJvamVjdF9pZBgDIAEoCRIMCgRuYW1lGAQgASgJEhIKCmtleV9wcmVmaXgYBSABKAkSKQoIa2V5X3R5cGUYBiABKA4yFy5pZGVudGl0eS52MS5BcGlLZXlUeXBlEhQKB3Jhd19rZXkYCiABKAlIAIgBARIRCglpc19hY3RpdmUYFCABKAgSIAoTcmF0ZV9saW1pdF9wZXJfaG91chgVIAEoBUgBiAEBEjMKCmV4cGlyZXNfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESDgoGc2NvcGVzGBcgAygJEi4KCG1ldGFkYXRhGBggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEjUKDGxhc3RfdXNlZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARITCgt1c2FnZV9jb3VudBgfIAEoBRISCgpjcmVhdGVkX2J5GCggASgJEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9yYXdfa2V5QhYKFF9yYXRlX2xpbWl0X3Blcl9ob3VyQg0KC19leHBpcmVzX2F0QgsKCV9tZXRhZGF0YUIPCg1fbGFzdF91c2VkX2F0IqsDCg5TZXNzaW9uQ29udGV4dBIWCgl0ZW5hbnRfaWQYASABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAIgASgJSAGIAQESJAoEdXNlchgDIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlchIuChFhdmFpbGFibGVfdGVuYW50cxgFIAMoCzITLmlkZW50aXR5LnYxLlRlbmFudBIwChJhdmFpbGFibGVfcHJvamVjdHMYBiADKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Eh0KFWVmZmVjdGl2ZV9wZXJtaXNzaW9ucxgHIAMoCRIVCg1jb250ZW50X3JlYWNoGAkgASgIEjsKDXBlbmRpbmdfZ3JhbnQYCiABKAsyHy5pZGVudGl0eS52MS5JbXBlcnNvbmF0aW9uR3JhbnRIAogBARITCgt0ZW5hbnRfbmFtZRgLIAEoCUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQhAKDl9wZW5kaW5nX2dyYW50SgQIBBAFSgQICBAJUg5lZmZlY3RpdmVfcm9sZVINZmxlZXRfbWFuYWdlZCJ9CgxMb2dpblJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSFgoJdGVuYW50X2lkGAMgASgJSACIAQESFwoKcHJvamVjdF9pZBgEIAEoCUgBiAEBQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWQiXwoNTG9naW5SZXNwb25zZRISCgpzZXNzaW9uX2lkGAEgASgJEhQKDGFjY2Vzc190b2tlbhgCIAEoCRIkCgR1c2VyGAMgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyIn8KE0xvZ2luV2l0aE9UUFJlcXVlc3QSDQoFZW1haWwYASABKAkSCwoDb3RwGAIgASgJEhYKCXRlbmFudF9pZBgDIAEoCUgAiAEBEhcKCnByb2plY3RfaWQYBCABKAlIAYgBAUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkImYKFExvZ2luV2l0aE9UUFJlc3BvbnNlEhIKCnNlc3Npb25faWQYASABKAkSFAoMYWNjZXNzX3Rva2VuGAIgASgJEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIicAoRUmVxdWVzdE9UUFJlcXVlc3QSDQoFZW1haWwYASABKAkSFgoJdGVuYW50X2lkGAIgASgJSACIAQESFwoKcHJvamVjdF9pZBgDIAEoCUgBiAEBQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWQiJQoSUmVxdWVzdE9UUFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiDwoNTG9nb3V0UmVxdWVzdCIhCg5Mb2dvdXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIvwBCg9SZWdpc3RlclJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSFgoJdGVuYW50X2lkGAMgASgJSACIAQESFwoKcHJvamVjdF9pZBgEIAEoCUgBiAEBEhcKCmZpcnN0X25hbWUYBiABKAlIAogBARIWCglsYXN0X25hbWUYByABKAlIA4gBARIUCgdyb2xlX2lkGAggASgJSASIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZEINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQgoKCF9yb2xlX2lkSgQIBRAGUgRyb2xlIjgKEFJlZ2lzdGVyUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciIYChZHZXRTaWdudXBDb25maWdSZXF1ZXN0IsQBChdHZXRTaWdudXBDb25maWdSZXNwb25zZRIgChh3b3Jrc3BhY2Vfc2lnbnVwc19jbG9zZWQYASABKAgSLAoLc2lnbnVwX21vZGUYAiABKA4yFy5pZGVudGl0eS52MS5TaWdudXBNb2RlEkEKE3NpZ251cF9yZXN0cmljdGlvbnMYAyABKAsyHy5pZGVudGl0eS52MS5TaWdudXBSZXN0cmljdGlvbnNIAIgBAUIWChRfc2lnbnVwX3Jlc3RyaWN0aW9ucyIjChJWZXJpZnlFbWFpbFJlcXVlc3QSDQoFdG9rZW4YASABKAkiJgoTVmVyaWZ5RW1haWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiAKHlJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVxdWVzdCIyCh9SZXNlbmRWZXJpZmljYXRpb25FbWFpbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMQogU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlcXVlc3QSDQoFZW1haWwYASABKAkiNAohU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiNQoWVmVyaWZ5RW1haWxDb2RlUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIMCgRjb2RlGAIgASgJIjwKF1ZlcmlmeUVtYWlsQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSEAoIdmVyaWZpZWQYAiABKAgiLAobUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIi8KHFJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI7ChRSZXNldFBhc3N3b3JkUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiKAoVUmVzZXRQYXNzd29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiRwoVVXBkYXRlUGFzc3dvcmRSZXF1ZXN0EhgKEGN1cnJlbnRfcGFzc3dvcmQYASABKAkSFAoMbmV3X3Bhc3N3b3JkGAIgASgJIikKFlVwZGF0ZVBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIaChhHZXRTZXNzaW9uQ29udGV4dFJlcXVlc3QiSQoZR2V0U2Vzc2lvbkNvbnRleHRSZXNwb25zZRIsCgdjb250ZXh0GAEgASgLMhsuaWRlbnRpdHkudjEuU2Vzc2lvbkNvbnRleHQiKAoTU3dpdGNoVGVuYW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiRAoUU3dpdGNoVGVuYW50UmVzcG9uc2USLAoHY29udGV4dBgBIAEoCzIbLmlkZW50aXR5LnYxLlNlc3Npb25Db250ZXh0IioKFFN3aXRjaFByb2plY3RSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiRQoVU3dpdGNoUHJvamVjdFJlc3BvbnNlEiwKB2NvbnRleHQYASABKAsyGy5pZGVudGl0eS52MS5TZXNzaW9uQ29udGV4dCIcChpDbGVhclNlc3Npb25Db250ZXh0UmVxdWVzdCIuChtDbGVhclNlc3Npb25Db250ZXh0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIOCgxHZXRNZVJlcXVlc3QiUwoNR2V0TWVSZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyEhwKFGNhbl9jcmVhdGVfd29ya3NwYWNlGAIgASgIIp4DChFDYXBhYmlsaXR5UmVxdWVzdBIKCgJpZBgBIAEoCRISCgpjYXBhYmlsaXR5GAIgASgJEhUKDWFkbWluX3VzZXJfaWQYAyABKAkSNAoGc3RhdHVzGAQgASgOMiQuaWRlbnRpdHkudjEuQ2FwYWJpbGl0eVJlcXVlc3RTdGF0dXMSEQoEbm90ZRgFIAEoCUgAiAEBEhgKC3Jlc29sdmVkX2J5GAYgASgJSAGIAQESNAoLcmVzb2x2ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASHAoPcmVxdWVzdGVyX2VtYWlsGAkgASgJSAOIAQESGwoOcmVxdWVzdGVyX25hbWUYCiABKAlIBIgBAUIHCgVfbm90ZUIOCgxfcmVzb2x2ZWRfYnlCDgoMX3Jlc29sdmVkX2F0QhIKEF9yZXF1ZXN0ZXJfZW1haWxCEQoPX3JlcXVlc3Rlcl9uYW1lIkoKGFJlcXVlc3RDYXBhYmlsaXR5UmVxdWVzdBISCgpjYXBhYmlsaXR5GAEgASgJEhEKBG5vdGUYAiABKAlIAIgBAUIHCgVfbm90ZSJMChlSZXF1ZXN0Q2FwYWJpbGl0eVJlc3BvbnNlEi8KB3JlcXVlc3QYASABKAsyHi5pZGVudGl0eS52MS5DYXBhYmlsaXR5UmVxdWVzdCIhCh9MaXN0TXlDYXBhYmlsaXR5UmVxdWVzdHNSZXF1ZXN0IlQKIExpc3RNeUNhcGFiaWxpdHlSZXF1ZXN0c1Jlc3BvbnNlEjAKCHJlcXVlc3RzGAEgAygLMh4uaWRlbnRpdHkudjEuQ2FwYWJpbGl0eVJlcXVlc3QiZQodTGlzdENhcGFiaWxpdHlSZXF1ZXN0c1JlcXVlc3QSOQoGc3RhdHVzGAEgASgOMiQuaWRlbnRpdHkudjEuQ2FwYWJpbGl0eVJlcXVlc3RTdGF0dXNIAIgBAUIJCgdfc3RhdHVzIlIKHkxpc3RDYXBhYmlsaXR5UmVxdWVzdHNSZXNwb25zZRIwCghyZXF1ZXN0cxgBIAMoCzIeLmlkZW50aXR5LnYxLkNhcGFiaWxpdHlSZXF1ZXN0Ij4KH1Jlc29sdmVDYXBhYmlsaXR5UmVxdWVzdFJlcXVlc3QSCgoCaWQYASABKAkSDwoHYXBwcm92ZRgCIAEoCCJTCiBSZXNvbHZlQ2FwYWJpbGl0eVJlcXVlc3RSZXNwb25zZRIvCgdyZXF1ZXN0GAEgASgLMh4uaWRlbnRpdHkudjEuQ2FwYWJpbGl0eVJlcXVlc3QiIwohQnVsa0FwcGx5V29ya3NwYWNlQ3JlYXRpb25SZXF1ZXN0IjUKIkJ1bGtBcHBseVdvcmtzcGFjZUNyZWF0aW9uUmVzcG9uc2USDwoHZ3JhbnRlZBgBIAEoBSIkCiJCdWxrUmV2b2tlV29ya3NwYWNlQ3JlYXRpb25SZXF1ZXN0IjYKI0J1bGtSZXZva2VXb3Jrc3BhY2VDcmVhdGlvblJlc3BvbnNlEg8KB3Jldm9rZWQYASABKAUizQEKFkNyZWF0ZUFkbWluVXNlclJlcXVlc3QSDQoFZW1haWwYASABKAkSFwoKZmlyc3RfbmFtZRgCIAEoCUgAiAEBEhYKCWxhc3RfbmFtZRgDIAEoCUgBiAEBEhEKCXRlbmFudF9pZBgEIAEoCRIXCgpwcm9qZWN0X2lkGAUgASgJSAKIAQESDwoHcm9sZV9pZBgHIAEoCUINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19wcm9qZWN0X2lkSgQIBhAHUgRyb2xlIj8KF0NyZWF0ZUFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIiIQoTR2V0QWRtaW5Vc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSI8ChRHZXRBZG1pblVzZXJSZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyItgBChZVcGRhdGVBZG1pblVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhcKCmZpcnN0X25hbWUYAiABKAlIAIgBARIWCglsYXN0X25hbWUYAyABKAlIAYgBARIXCgphdmF0YXJfdXJsGAQgASgJSAKIAQESMQoGc3RhdHVzGAUgASgOMhwuaWRlbnRpdHkudjEuQWRtaW5Vc2VyU3RhdHVzSAOIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUINCgtfYXZhdGFyX3VybEIJCgdfc3RhdHVzIj8KF1VwZGF0ZUFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIi+wEKFUxpc3RBZG1pblVzZXJzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgEIAEoCUgBiAEBEhMKBmJlZm9yZRgFIAEoCUgCiAEBEhIKBWZpcnN0GAYgASgFSAOIAQESEQoEbGFzdBgHIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgCEANKBAgDEARKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXRSBHJvbGVSBnN0YXR1cyKaAQoWTGlzdEFkbWluVXNlcnNSZXNwb25zZRIlCgVpdGVtcxgBIAMoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlchINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iggEKDVJlc29sdmVkQWN0b3ISEQoJYWN0b3JfcmVmGAEgASgJEiQKBGtpbmQYAiABKA4yFi5pZGVudGl0eS52MS5BY3RvcktpbmQSDQoFbGFiZWwYAyABKAkSFQoNYWRtaW5fdXNlcl9pZBgEIAEoCRISCgphdmF0YXJfdXJsGAUgASgJIioKFFJlc29sdmVBY3RvcnNSZXF1ZXN0EhIKCmFjdG9yX3JlZnMYASADKAkiQwoVUmVzb2x2ZUFjdG9yc1Jlc3BvbnNlEioKBmFjdG9ycxgBIAMoCzIaLmlkZW50aXR5LnYxLlJlc29sdmVkQWN0b3IisgEKGExpc3RUZW5hbnRNZW1iZXJzUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBEhMKBnNlYXJjaBgFIAEoCUgEiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEIJCgdfc2VhcmNoImIKDFRlbmFudE1lbWJlchIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyEiwKBmFjY2VzcxgCIAMoCzIcLmlkZW50aXR5LnYxLkFkbWluVXNlckFjY2VzcyKiAQoZTGlzdFRlbmFudE1lbWJlcnNSZXNwb25zZRIqCgdtZW1iZXJzGAEgAygLMhkuaWRlbnRpdHkudjEuVGVuYW50TWVtYmVyEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKDAQoSR3JhbnRBY2Nlc3NSZXF1ZXN0EhUKDWFkbWluX3VzZXJfaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhcKCnByb2plY3RfaWQYAyABKAlIAIgBARIPCgdyb2xlX2lkGAUgASgJQg0KC19wcm9qZWN0X2lkSgQIBBAFUgRyb2xlIkMKE0dyYW50QWNjZXNzUmVzcG9uc2USLAoGYWNjZXNzGAEgASgLMhwuaWRlbnRpdHkudjEuQWRtaW5Vc2VyQWNjZXNzIigKE1Jldm9rZUFjY2Vzc1JlcXVlc3QSEQoJYWNjZXNzX2lkGAEgASgJIicKFFJldm9rZUFjY2Vzc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi3AUKEkltcGVyc29uYXRpb25HcmFudBIKCgJpZBgBIAEoCRISCgpncmFudGVlX2lkGAIgASgJEhEKCXRlbmFudF9pZBgDIAEoCRISCgpncmFudGVkX2J5GAQgASgJEg4KBnJlYXNvbhgFIAEoCRIuCgpleHBpcmVzX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpyZXZva2VkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEhcKCnJldm9rZWRfYnkYCSABKAlIAYgBARI1CgZzdGF0dXMYCiABKA4yJS5pZGVudGl0eS52MS5JbXBlcnNvbmF0aW9uR3JhbnRTdGF0dXMSQQoPYXBwcm92YWxfbWV0aG9kGAsgASgOMiguaWRlbnRpdHkudjEuSW1wZXJzb25hdGlvbkFwcHJvdmFsTWV0aG9kEjQKC2FwcHJvdmVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhgKC2FwcHJvdmVkX2J5GA0gASgJSAOIAQESOwoScmVxdWVzdF9leHBpcmVzX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEh8KF2FkbWluaXN0cmF0b3JzX25vdGlmaWVkGA8gASgFEhMKC3RlbmFudF9uYW1lGBAgASgJEhgKEGdyYW50ZWRfYnlfZW1haWwYESABKAkSFQoNZ3JhbnRlZV9lbWFpbBgSIAEoCUINCgtfcmV2b2tlZF9hdEINCgtfcmV2b2tlZF9ieUIOCgxfYXBwcm92ZWRfYXRCDgoMX2FwcHJvdmVkX2J5QhUKE19yZXF1ZXN0X2V4cGlyZXNfYXQiQAobUmVxdWVzdEltcGVyc29uYXRpb25SZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkiTgocUmVxdWVzdEltcGVyc29uYXRpb25SZXNwb25zZRIuCgVncmFudBgBIAEoCzIfLmlkZW50aXR5LnYxLkltcGVyc29uYXRpb25HcmFudCI9ChtBcHByb3ZlSW1wZXJzb25hdGlvblJlcXVlc3QSEAoIZ3JhbnRfaWQYASABKAkSDAoEY29kZRgCIAEoCSJOChxBcHByb3ZlSW1wZXJzb25hdGlvblJlc3BvbnNlEi4KBWdyYW50GAEgASgLMh8uaWRlbnRpdHkudjEuSW1wZXJzb25hdGlvbkdyYW50IjoKGERlbnlJbXBlcnNvbmF0aW9uUmVxdWVzdBIQCghncmFudF9pZBgBIAEoCRIMCgRjb2RlGAIgASgJIksKGURlbnlJbXBlcnNvbmF0aW9uUmVzcG9uc2USLgoFZ3JhbnQYASABKAsyHy5pZGVudGl0eS52MS5JbXBlcnNvbmF0aW9uR3JhbnQiWgoeQnJlYWtHbGFzc0ltcGVyc29uYXRpb25SZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkSFQoNanVzdGlmaWNhdGlvbhgDIAEoCSJRCh9CcmVha0dsYXNzSW1wZXJzb25hdGlvblJlc3BvbnNlEi4KBWdyYW50GAEgASgLMh8uaWRlbnRpdHkudjEuSW1wZXJzb25hdGlvbkdyYW50IigKGlJldm9rZUltcGVyc29uYXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIk0KG1Jldm9rZUltcGVyc29uYXRpb25SZXNwb25zZRIuCgVncmFudBgBIAEoCzIfLmlkZW50aXR5LnYxLkltcGVyc29uYXRpb25HcmFudCL7AQoeTGlzdEltcGVyc29uYXRpb25HcmFudHNSZXF1ZXN0EhcKCmdyYW50ZWVfaWQYASABKAlIAIgBARIWCgl0ZW5hbnRfaWQYAiABKAlIAYgBARITCgthY3RpdmVfb25seRgDIAEoCBISCgVhZnRlchgEIAEoCUgCiAEBEhMKBmJlZm9yZRgFIAEoCUgDiAEBEhIKBWZpcnN0GAYgASgFSASIAQESEQoEbGFzdBgHIAEoBUgFiAEBQg0KC19ncmFudGVlX2lkQgwKCl90ZW5hbnRfaWRCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Iq0BCh9MaXN0SW1wZXJzb25hdGlvbkdyYW50c1Jlc3BvbnNlEi8KBmdyYW50cxgBIAMoCzIfLmlkZW50aXR5LnYxLkltcGVyc29uYXRpb25HcmFudBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iTwoSRW50ZXJUZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIXCgpwcm9qZWN0X2lkGAIgASgJSACIAQFCDQoLX3Byb2plY3RfaWQivwEKE0VudGVyVGVuYW50UmVzcG9uc2USLAoHY29udGV4dBgBIAEoCzIbLmlkZW50aXR5LnYxLlNlc3Npb25Db250ZXh0EjMKBWdyYW50GAIgASgLMh8uaWRlbnRpdHkudjEuSW1wZXJzb25hdGlvbkdyYW50SACIAQFCCAoGX2dyYW50SgQIAxAESgQIBBAFSgQIBRAGUg1jb250ZW50X3JlYWNoUg1wZW5kaW5nX2dyYW50Ugt0ZW5hbnRfbmFtZSKyAQoaTWludE1jcFdvcmtpbmdUb2tlblJlcXVlc3QSFgoJdGVuYW50X2lkGAEgASgJSACIAQESFwoKcHJvamVjdF9pZBgCIAEoCUgBiAEBEhYKCXJlYWRfb25seRgDIAEoCEgCiAEBEhQKB3N1cmZhY2UYBCABKAlIA4gBAUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQgwKCl9yZWFkX29ubHlCCgoIX3N1cmZhY2UiyAEKG01pbnRNY3BXb3JraW5nVG9rZW5SZXNwb25zZRIVCg13b3JraW5nX3Rva2VuGAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCHJlc291cmNlGAMgASgJEhEKCXRlbmFudF9pZBgEIAEoCRITCgt0ZW5hbnRfbmFtZRgFIAEoCRISCgpwcm9qZWN0X2lkGAYgASgJEhQKDHByb2plY3RfbmFtZRgHIAEoCSJKChVDcmVhdGVDdXN0b21lclJlcXVlc3QSDQoFZW1haWwYASABKAkSFQoIcGFzc3dvcmQYAiABKAlIAIgBAUILCglfcGFzc3dvcmQiQQoWQ3JlYXRlQ3VzdG9tZXJSZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIiAKEkdldEN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCSI+ChNHZXRDdXN0b21lclJlc3BvbnNlEicKCGN1c3RvbWVyGAEgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIisgEKFVVwZGF0ZUN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCRISCgVlbWFpbBgCIAEoCUgAiAEBEjAKBnN0YXR1cxgDIAEoDjIbLmlkZW50aXR5LnYxLkN1c3RvbWVyU3RhdHVzSAGIAQESHQoQcHJlZmVycmVkX2xvY2FsZRgEIAEoCUgCiAEBQggKBl9lbWFpbEIJCgdfc3RhdHVzQhMKEV9wcmVmZXJyZWRfbG9jYWxlIkEKFlVwZGF0ZUN1c3RvbWVyUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciIjChVEZWxldGVDdXN0b21lclJlcXVlc3QSCgoCaWQYASABKAkiKQoWRGVsZXRlQ3VzdG9tZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIu4BChRMaXN0Q3VzdG9tZXJzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgCEANKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXRSBnN0YXR1cyKYAQoVTGlzdEN1c3RvbWVyc1Jlc3BvbnNlEiQKBWl0ZW1zGAEgAygLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXISDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIiQKFlN1c3BlbmRDdXN0b21lclJlcXVlc3QSCgoCaWQYASABKAkiQgoXU3VzcGVuZEN1c3RvbWVyUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciJTChVNZXJnZUN1c3RvbWVyc1JlcXVlc3QSEwoLc3Vydml2b3JfaWQYASABKAkSFAoMZHVwbGljYXRlX2lkGAIgASgJEg8KB2RyeV9ydW4YAyABKAgiaAoWTWVyZ2VDdXN0b21lcnNSZXNwb25zZRIPCgdyZXRpcmVkGAEgASgIEgwKBG5vb3AYAiABKAgSLwoFbW92ZWQYAyABKAsyIC5pZGVudGl0eS52MS5NZXJnZUN1c3RvbWVyc01vdmVkIsEBChNNZXJnZUN1c3RvbWVyc01vdmVkEg8KB3JlY29yZHMYASABKAUSDQoFZmlsZXMYAiABKAUSGwoTcHJvdmlkZXJfaWRlbnRpdGllcxgDIAEoBRIQCghwcm9maWxlcxgEIAEoBRIbChNzZWdtZW50X21lbWJlcnNoaXBzGAYgASgFEhgKEHJvbGVfYXNzaWdubWVudHMYByABKAUSHgoWcmVmcmVzaF90b2tlbnNfcmV2b2tlZBgIIAEoBUoECAUQBiI+ChpTZXRDdXN0b21lclBhc3N3b3JkUmVxdWVzdBIKCgJpZBgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiLgobU2V0Q3VzdG9tZXJQYXNzd29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi3AEKH0NyZWF0ZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSDQoFZW1haWwYASABKAkSFwoKaW52aXRlZF9ieRgCIAEoCUgAiAEBEhQKB21lc3NhZ2UYAyABKAlIAYgBARIXCgpzZW5kX2VtYWlsGAQgASgISAKIAQESIAoTYWNjZXB0X3VybF9vdmVycmlkZRgFIAEoCUgDiAEBQg0KC19pbnZpdGVkX2J5QgoKCF9tZXNzYWdlQg0KC19zZW5kX2VtYWlsQhYKFF9hY2NlcHRfdXJsX292ZXJyaWRlInoKIENyZWF0ZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEjMKCmludml0YXRpb24YASABKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb24SEgoKYWNjZXB0X3VybBgCIAEoCRINCgV0b2tlbhgDIAEoCSL4AQoeTGlzdEN1c3RvbWVySW52aXRhdGlvbnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAIQA0oECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldFIGc2VhcmNoIqwBCh9MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1Jlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIqChxHZXRDdXN0b21lckludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlQKHUdldEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEjMKCmludml0YXRpb24YASABKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb24iLQofUmV2b2tlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIzCiBSZXZva2VDdXN0b21lckludml0YXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIo8BCh9SZXNlbmRDdXN0b21lckludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEhcKCnNlbmRfZW1haWwYAiABKAhIAIgBARIgChNhY2NlcHRfdXJsX292ZXJyaWRlGAMgASgJSAGIAQFCDQoLX3NlbmRfZW1haWxCFgoUX2FjY2VwdF91cmxfb3ZlcnJpZGUiegogUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbhISCgphY2NlcHRfdXJsGAIgASgJEg0KBXRva2VuGAMgASgJIjIKIVZhbGlkYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBINCgV0b2tlbhgBIAEoCSKHAQoiVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXNwb25zZRIzCgppbnZpdGF0aW9uGAEgASgLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uEiwKCXByb3ZpZGVycxgCIAMoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciJUCh9BY2NlcHRDdXN0b21lckludml0YXRpb25SZXF1ZXN0Eg0KBXRva2VuGAEgASgJEhUKCHBhc3N3b3JkGAIgASgJSACIAQFCCwoJX3Bhc3N3b3JkIngKIEFjY2VwdEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEicKCGN1c3RvbWVyGAEgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXISFAoMYWNjZXNzX3Rva2VuGAIgASgJEhUKDXJlZnJlc2hfdG9rZW4YAyABKAkiQAoTQ3JlYXRlVGVuYW50UmVxdWVzdBIMCgRuYW1lGAEgASgJEhsKE293bmVyX2FkbWluX3VzZXJfaWQYAiABKAkiOwoUQ3JlYXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IlIKFkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCRIZCgxwcm9qZWN0X25hbWUYAiABKAlIAIgBAUIPCg1fcHJvamVjdF9uYW1lIm0KF0NyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudBItCg9kZWZhdWx0X3Byb2plY3QYAiABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Ih4KEEdldFRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkiOAoRR2V0VGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IngKE1VwZGF0ZVRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEi4KBnN0YXR1cxgDIAEoDjIZLmlkZW50aXR5LnYxLlRlbmFudFN0YXR1c0gBiAEBQgcKBV9uYW1lQgkKB19zdGF0dXMiOwoUVXBkYXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IssBCiRTZXRUZW5hbnRQcm9qZWN0TGltaXRPdmVycmlkZVJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEiMKFnByb2plY3RfbGltaXRfb3ZlcnJpZGUYAiABKANIAIgBARIsCh9wcm9qZWN0X2xpbWl0X292ZXJyaWRlX2JhbmRfbWF4GAMgASgDSAGIAQFCGQoXX3Byb2plY3RfbGltaXRfb3ZlcnJpZGVCIgogX3Byb2plY3RfbGltaXRfb3ZlcnJpZGVfYmFuZF9tYXgiuQEKJVNldFRlbmFudFByb2plY3RMaW1pdE92ZXJyaWRlUmVzcG9uc2USIwoWcHJvamVjdF9saW1pdF9vdmVycmlkZRgBIAEoA0gAiAEBEiwKH3Byb2plY3RfbGltaXRfb3ZlcnJpZGVfYmFuZF9tYXgYAiABKANIAYgBAUIZChdfcHJvamVjdF9saW1pdF9vdmVycmlkZUIiCiBfcHJvamVjdF9saW1pdF9vdmVycmlkZV9iYW5kX21heCJLCiVTZXRUZW5hbnRBbm9ueW1vdXNOb3Rlc0VuYWJsZWRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIPCgdlbmFibGVkGAIgASgIIkoKJlNldFRlbmFudEFub255bW91c05vdGVzRW5hYmxlZFJlc3BvbnNlEiAKGGFub255bW91c19ub3Rlc19kaXNhYmxlZBgBIAEoCCLvAQoRVGVuYW50RW50aXRsZW1lbnQSEQoJdGVuYW50X2lkGAEgASgJEhMKC2ZlYXR1cmVfa2V5GAIgASgJEjIKBXN0YXRlGAMgASgOMiMuaWRlbnRpdHkudjEuVGVuYW50RW50aXRsZW1lbnRTdGF0ZRIOCgZzZXRfYnkYBCABKAkSDgoGcmVhc29uGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIokBChtTZXRUZW5hbnRFbnRpdGxlbWVudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhMKC2ZlYXR1cmVfa2V5GAIgASgJEjIKBXN0YXRlGAMgASgOMiMuaWRlbnRpdHkudjEuVGVuYW50RW50aXRsZW1lbnRTdGF0ZRIOCgZyZWFzb24YBCABKAkiaAocU2V0VGVuYW50RW50aXRsZW1lbnRSZXNwb25zZRI4CgtlbnRpdGxlbWVudBgBIAEoCzIeLmlkZW50aXR5LnYxLlRlbmFudEVudGl0bGVtZW50SACIAQFCDgoMX2VudGl0bGVtZW50IjIKHUxpc3RUZW5hbnRFbnRpdGxlbWVudHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSJWCh5MaXN0VGVuYW50RW50aXRsZW1lbnRzUmVzcG9uc2USNAoMZW50aXRsZW1lbnRzGAEgAygLMh4uaWRlbnRpdHkudjEuVGVuYW50RW50aXRsZW1lbnQi3gEKEkxpc3RUZW5hbnRzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXQilAEKE0xpc3RUZW5hbnRzUmVzcG9uc2USIgoFaXRlbXMYASADKAsyEy5pZGVudGl0eS52MS5UZW5hbnQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIiEKE0RlbGV0ZVRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlVGVuYW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKiCQoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIYCgtkZXNjcmlwdGlvbhgCIAEoCUgAiAEBEhEKCXRlbmFudF9pZBgDIAEoCRIgChNkZWZhdWx0X2xvY2FsZV9jb2RlGAQgASgJSAGIAQESKAobZGVmYXVsdF9sb2NhbGVfZGlzcGxheV9uYW1lGAUgASgJSAKIAQESJwoaZGVmYXVsdF9sb2NhbGVfbmF0aXZlX25hbWUYBiABKAlIA4gBARIiChVkZWZhdWx0X2xvY2FsZV9pc19ydGwYByABKAhIBIgBARIZCgxkaXNwbGF5X25hbWUYCiABKAlIBYgBARIVCghsb2dvX3VybBgLIAEoCUgGiAEBEhoKDXByaW1hcnlfY29sb3IYDCABKAlIB4gBARIWCglmcm9tX25hbWUYDSABKAlICIgBARIVCghyZXBseV90bxgOIAEoCUgJiAEBEhoKDXN1cHBvcnRfZW1haWwYDyABKAlICogBARIZCgxhcHBfYmFzZV91cmwYECABKAlIC4gBARIrCh5jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWQYFCABKAhIDIgBARImChljdXN0b21lcl9wYXNzd29yZF9lbmFibGVkGB8gASgISA2IAQESIQoUY3VzdG9tZXJfb3RwX2VuYWJsZWQYICABKAhIDogBARIxCgtzaWdudXBfbW9kZRghIAEoDjIXLmlkZW50aXR5LnYxLlNpZ251cE1vZGVID4gBARJBChNzaWdudXBfcmVzdHJpY3Rpb25zGCIgASgLMh8uaWRlbnRpdHkudjEuU2lnbnVwUmVzdHJpY3Rpb25zSBCIAQESJQoYbm90ZV9zY3JlZW5zaG90c19lbmFibGVkGCMgASgISBGIAQESJAoXYW5vbnltb3VzX25vdGVzX2VuYWJsZWQYJCABKAhIEogBAUIOCgxfZGVzY3JpcHRpb25CFgoUX2RlZmF1bHRfbG9jYWxlX2NvZGVCHgocX2RlZmF1bHRfbG9jYWxlX2Rpc3BsYXlfbmFtZUIdChtfZGVmYXVsdF9sb2NhbGVfbmF0aXZlX25hbWVCGAoWX2RlZmF1bHRfbG9jYWxlX2lzX3J0bEIPCg1fZGlzcGxheV9uYW1lQgsKCV9sb2dvX3VybEIQCg5fcHJpbWFyeV9jb2xvckIMCgpfZnJvbV9uYW1lQgsKCV9yZXBseV90b0IQCg5fc3VwcG9ydF9lbWFpbEIPCg1fYXBwX2Jhc2VfdXJsQiEKH19jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWRCHAoaX2N1c3RvbWVyX3Bhc3N3b3JkX2VuYWJsZWRCFwoVX2N1c3RvbWVyX290cF9lbmFibGVkQg4KDF9zaWdudXBfbW9kZUIWChRfc2lnbnVwX3Jlc3RyaWN0aW9uc0IbChlfbm90ZV9zY3JlZW5zaG90c19lbmFibGVkQhoKGF9hbm9ueW1vdXNfbm90ZXNfZW5hYmxlZEoECB4QH1IXY3VzdG9tZXJfc2lnbnVwX2VuYWJsZWQiPgoVQ3JlYXRlUHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Ih8KEUdldFByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJIjsKEkdldFByb2plY3RSZXNwb25zZRIlCgdwcm9qZWN0GAEgASgLMhQuaWRlbnRpdHkudjEuUHJvamVjdCLBCAoUVXBkYXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESLwoGc3RhdHVzGAQgASgOMhouaWRlbnRpdHkudjEuUHJvamVjdFN0YXR1c0gCiAEBEhkKDGRpc3BsYXlfbmFtZRgKIAEoCUgDiAEBEhUKCGxvZ29fdXJsGAsgASgJSASIAQESGgoNcHJpbWFyeV9jb2xvchgMIAEoCUgFiAEBEhYKCWZyb21fbmFtZRgNIAEoCUgGiAEBEhUKCHJlcGx5X3RvGA4gASgJSAeIAQESGgoNc3VwcG9ydF9lbWFpbBgPIAEoCUgIiAEBEhkKDGFwcF9iYXNlX3VybBgQIAEoCUgJiAEBEhcKCmZyb21fZW1haWwYESABKAlICogBARIiChVyZXNlbmRfa2V5X3NlY3JldF9yZWYYEiABKAlIC4gBARIrCh5jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWQYFCABKAhIDIgBARImChljdXN0b21lcl9wYXNzd29yZF9lbmFibGVkGB8gASgISA2IAQESIQoUY3VzdG9tZXJfb3RwX2VuYWJsZWQYICABKAhIDogBARIxCgtzaWdudXBfbW9kZRghIAEoDjIXLmlkZW50aXR5LnYxLlNpZ251cE1vZGVID4gBARJBChNzaWdudXBfcmVzdHJpY3Rpb25zGCIgASgLMh8uaWRlbnRpdHkudjEuU2lnbnVwUmVzdHJpY3Rpb25zSBCIAQESJQoYbm90ZV9zY3JlZW5zaG90c19lbmFibGVkGCMgASgISBGIAQESJAoXYW5vbnltb3VzX25vdGVzX2VuYWJsZWQYJCABKAhIEogBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCQoHX3N0YXR1c0IPCg1fZGlzcGxheV9uYW1lQgsKCV9sb2dvX3VybEIQCg5fcHJpbWFyeV9jb2xvckIMCgpfZnJvbV9uYW1lQgsKCV9yZXBseV90b0IQCg5fc3VwcG9ydF9lbWFpbEIPCg1fYXBwX2Jhc2VfdXJsQg0KC19mcm9tX2VtYWlsQhgKFl9yZXNlbmRfa2V5X3NlY3JldF9yZWZCIQofX2N1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZEIcChpfY3VzdG9tZXJfcGFzc3dvcmRfZW5hYmxlZEIXChVfY3VzdG9tZXJfb3RwX2VuYWJsZWRCDgoMX3NpZ251cF9tb2RlQhYKFF9zaWdudXBfcmVzdHJpY3Rpb25zQhsKGV9ub3RlX3NjcmVlbnNob3RzX2VuYWJsZWRCGgoYX2Fub255bW91c19ub3Rlc19lbmFibGVkSgQIHhAfUhdjdXN0b21lcl9zaWdudXBfZW5hYmxlZCI+ChVVcGRhdGVQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3Qi8gEKE0xpc3RQcm9qZWN0c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEisKBXdoZXJlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldCKWAQoUTGlzdFByb2plY3RzUmVzcG9uc2USIwoFaXRlbXMYASADKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIiChREZWxldGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSIoChVEZWxldGVQcm9qZWN0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJMChNQdXJnZVByb2plY3RSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEg4KBnJlYXNvbhgDIAEoCSInChRQdXJnZVByb2plY3RSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIi0KGEdldERlZmF1bHRQcm9qZWN0UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiQgoZR2V0RGVmYXVsdFByb2plY3RSZXNwb25zZRIlCgdwcm9qZWN0GAEgASgLMhQuaWRlbnRpdHkudjEuUHJvamVjdCIuChhTZXREZWZhdWx0UHJvamVjdFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJCChlTZXREZWZhdWx0UHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0IpkBChlDcmVhdGVQcm9qZWN0R3JvdXBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJEhkKEW92ZXJyaWRlc19hbGxvd2VkGAUgASgIEh4KEXNvdXJjZV9wcm9qZWN0X2lkGAQgASgJSACIAQFCFAoSX3NvdXJjZV9wcm9qZWN0X2lkSgQIAxAEUgRtb2RlIkYKGkNyZWF0ZVByb2plY3RHcm91cFJlc3BvbnNlEigKBWdyb3VwGAEgASgLMhkuaWRlbnRpdHkudjEuUHJvamVjdEdyb3VwIiQKFkdldFByb2plY3RHcm91cFJlcXVlc3QSCgoCaWQYASABKAkiQwoXR2V0UHJvamVjdEdyb3VwUmVzcG9uc2USKAoFZ3JvdXAYASABKAsyGS5pZGVudGl0eS52MS5Qcm9qZWN0R3JvdXAiLQoYTGlzdFByb2plY3RHcm91cHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSJUChlMaXN0UHJvamVjdEdyb3Vwc1Jlc3BvbnNlEigKBWl0ZW1zGAEgAygLMhkuaWRlbnRpdHkudjEuUHJvamVjdEdyb3VwEg0KBXRvdGFsGAIgASgFIrsBChlVcGRhdGVQcm9qZWN0R3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIeChFzb3VyY2VfcHJvamVjdF9pZBgDIAEoCUgBiAEBEh4KEW92ZXJyaWRlc19hbGxvd2VkGAUgASgISAKIAQFCBwoFX25hbWVCFAoSX3NvdXJjZV9wcm9qZWN0X2lkQhQKEl9vdmVycmlkZXNfYWxsb3dlZEoECAQQBVIEbW9kZSJGChpVcGRhdGVQcm9qZWN0R3JvdXBSZXNwb25zZRIoCgVncm91cBgBIAEoCzIZLmlkZW50aXR5LnYxLlByb2plY3RHcm91cCInChlEZWxldGVQcm9qZWN0R3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJIi0KGkRlbGV0ZVByb2plY3RHcm91cFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAginQEKGEFkZFByb2plY3RUb0dyb3VwUmVxdWVzdBIQCghncm91cF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEjEKBHJvbGUYAyABKA4yIy5pZGVudGl0eS52MS5Qcm9qZWN0R3JvdXBNZW1iZXJSb2xlEhgKC3N0YWdlX29yZGVyGAQgASgFSACIAQFCDgoMX3N0YWdlX29yZGVyIkwKGUFkZFByb2plY3RUb0dyb3VwUmVzcG9uc2USLwoGbWVtYmVyGAEgASgLMh8uaWRlbnRpdHkudjEuUHJvamVjdEdyb3VwTWVtYmVyIkUKHVJlbW92ZVByb2plY3RGcm9tR3JvdXBSZXF1ZXN0EhAKCGdyb3VwX2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkiMQoeUmVtb3ZlUHJvamVjdEZyb21Hcm91cFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgisAMKD1Byb2plY3RCcmFuZGluZxIZCgxkaXNwbGF5X25hbWUYASABKAlIAIgBARIVCghsb2dvX3VybBgCIAEoCUgBiAEBEhoKDXByaW1hcnlfY29sb3IYAyABKAlIAogBARIWCglmcm9tX25hbWUYBCABKAlIA4gBARIaCg1zdXBwb3J0X2VtYWlsGAUgASgJSASIAQESGQoMYXBwX2Jhc2VfdXJsGAYgASgJSAWIAQESJgoZY3VzdG9tZXJfcGFzc3dvcmRfZW5hYmxlZBgIIAEoCEgGiAEBEiEKFGN1c3RvbWVyX290cF9lbmFibGVkGAkgASgISAeIAQFCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUIQCg5fc3VwcG9ydF9lbWFpbEIPCg1fYXBwX2Jhc2VfdXJsQhwKGl9jdXN0b21lcl9wYXNzd29yZF9lbmFibGVkQhcKFV9jdXN0b21lcl9vdHBfZW5hYmxlZEoECAcQCFIXY3VzdG9tZXJfc2lnbnVwX2VuYWJsZWQipgEKE1Byb3Zpc2lvblN0ZXBTdGF0dXMSFwoPY3JlYXRlZF9wcm9qZWN0GAEgASgIEhQKDGJyYW5kaW5nX3NldBgCIAEoCBIVCg1hcHBfaW5zdGFsbGVkGAMgASgIEhYKDnNlY3JldF93cml0dGVuGAQgASgIEhQKDGdyb3VwX2pvaW5lZBgFIAEoCBIbChNhbGxvd19saXN0X2V4dGVuZGVkGAYgASgIIrkDChdQcm92aXNpb25Qcm9qZWN0UmVxdWVzdBIUCgxwcm92aXNpb25faWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhAKCGdyb3VwX2lkGAMgASgJEgwKBG5hbWUYBCABKAkSMwoIYnJhbmRpbmcYBSABKAsyHC5pZGVudGl0eS52MS5Qcm9qZWN0QnJhbmRpbmdIAIgBARITCgZhcHBfaWQYBiABKAlIAYgBARIdChBhcHBfc2VjcmV0X2xhYmVsGAcgASgJSAKIAQESHQoQYXBwX3NlY3JldF92YWx1ZRgIIAEoCUgDiAEBEhkKDG1hbmlmZXN0X3VybBgJIAEoCUgEiAEBEjIKDGFwcF9tYXBwaW5ncxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIaChJhbGxvd19saXN0X2tleV9pZHMYCyADKAlCCwoJX2JyYW5kaW5nQgkKB19hcHBfaWRCEwoRX2FwcF9zZWNyZXRfbGFiZWxCEwoRX2FwcF9zZWNyZXRfdmFsdWVCDwoNX21hbmlmZXN0X3VybEIPCg1fYXBwX21hcHBpbmdzIrMBChhQcm92aXNpb25Qcm9qZWN0UmVzcG9uc2USFAoMcHJvdmlzaW9uX2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFgoOc2NoZW1hX3ZlcnNpb24YAyABKAkSDgoGc3RhdHVzGAUgASgJEi8KBXN0ZXBzGAYgASgLMiAuaWRlbnRpdHkudjEuUHJvdmlzaW9uU3RlcFN0YXR1c0oECAQQBVIOZGVwbG95X3ZlcnNpb24iMQoZR2V0UHJvdmlzaW9uU3RhdHVzUmVxdWVzdBIUCgxwcm92aXNpb25faWQYASABKAkitQEKGkdldFByb3Zpc2lvblN0YXR1c1Jlc3BvbnNlEhQKDHByb3Zpc2lvbl9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhYKDnNjaGVtYV92ZXJzaW9uGAMgASgJEg4KBnN0YXR1cxgFIAEoCRIvCgVzdGVwcxgGIAEoCzIgLmlkZW50aXR5LnYxLlByb3Zpc2lvblN0ZXBTdGF0dXNKBAgEEAVSDmRlcGxveV92ZXJzaW9uIr0BChdDcmVhdGVJbnZpdGF0aW9uUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSEwoLcHJvamVjdF9pZHMYAyADKAkSLAoLaW52aXRlX3R5cGUYBSABKA4yFy5pZGVudGl0eS52MS5JbnZpdGVUeXBlEhQKB21lc3NhZ2UYBiABKAlIAIgBARIPCgdyb2xlX2lkGAcgASgJQgoKCF9tZXNzYWdlSgQIBBAFUgRyb2xlIkcKGENyZWF0ZUludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiL1AQoWTGlzdEludml0YXRpb25zUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSKwoFd2hlcmUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0IpwBChdMaXN0SW52aXRhdGlvbnNSZXNwb25zZRImCgVpdGVtcxgBIAMoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIqoBCgxNeUludml0YXRpb24SKwoKaW52aXRhdGlvbhgBIAEoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24SEwoLdGVuYW50X25hbWUYAiABKAkSGgoNaW52aXRlcl9lbWFpbBgDIAEoCUgAiAEBEhkKDGludml0ZXJfbmFtZRgEIAEoCUgBiAEBQhAKDl9pbnZpdGVyX2VtYWlsQg8KDV9pbnZpdGVyX25hbWUiGgoYTGlzdE15SW52aXRhdGlvbnNSZXF1ZXN0IksKGUxpc3RNeUludml0YXRpb25zUmVzcG9uc2USLgoLaW52aXRhdGlvbnMYASADKAsyGS5pZGVudGl0eS52MS5NeUludml0YXRpb24iMAoXUmV2b2tlSW52aXRhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCSIrChhSZXZva2VJbnZpdGF0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJMChdBY2NlcHRJbnZpdGF0aW9uUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIVCghwYXNzd29yZBgCIAEoCUgAiAEBQgsKCV9wYXNzd29yZCJUChhBY2NlcHRJbnZpdGF0aW9uUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlchISCgpzZXNzaW9uX2lkGAIgASgJIioKGVZhbGlkYXRlSW52aXRhdGlvblJlcXVlc3QSDQoFdG9rZW4YASABKAkidAoaVmFsaWRhdGVJbnZpdGF0aW9uUmVzcG9uc2USKwoKaW52aXRhdGlvbhgBIAEoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24SEwoLdGVuYW50X25hbWUYAiABKAkSFAoMaW52aXRlcl9uYW1lGAMgASgJIssCChNDcmVhdGVBcGlLZXlSZXF1ZXN0EgwKBG5hbWUYASABKAkSKQoIa2V5X3R5cGUYAiABKA4yFy5pZGVudGl0eS52MS5BcGlLZXlUeXBlEg4KBnNjb3BlcxgDIAMoCRIgChNyYXRlX2xpbWl0X3Blcl9ob3VyGAQgASgFSACIAQESMwoKZXhwaXJlc19hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIWCg5hbGxvd2VkX21vZGVscxgGIAMoCRIaChJhbGxvd2VkX2ZpbGVfdHlwZXMYByADKAkSFgoJY29uZmlnX2lkGAggASgJSAKIAQESEwoLcHJvamVjdF9pZHMYCSADKAlCFgoUX3JhdGVfbGltaXRfcGVyX2hvdXJCDQoLX2V4cGlyZXNfYXRCDAoKX2NvbmZpZ19pZCI8ChRDcmVhdGVBcGlLZXlSZXNwb25zZRIkCgdhcGlfa2V5GAEgASgLMhMuaWRlbnRpdHkudjEuQXBpS2V5Ih4KEEdldEFwaUtleVJlcXVlc3QSCgoCaWQYASABKAkiOQoRR2V0QXBpS2V5UmVzcG9uc2USJAoHYXBpX2tleRgBIAEoCzITLmlkZW50aXR5LnYxLkFwaUtleSLDAQoSTGlzdEFwaUtleXNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQESKwoFd2hlcmUYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QggKBl93aGVyZSKUAQoTTGlzdEFwaUtleXNSZXNwb25zZRIiCgVpdGVtcxgBIAMoCzITLmlkZW50aXR5LnYxLkFwaUtleRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ixAEKE1VwZGF0ZUFwaUtleVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhYKCWlzX2FjdGl2ZRgDIAEoCEgBiAEBEg4KBnNjb3BlcxgEIAMoCRIVCg11cGRhdGVfc2NvcGVzGAYgASgIEiAKE3JhdGVfbGltaXRfcGVyX2hvdXIYBSABKAVIAogBAUIHCgVfbmFtZUIMCgpfaXNfYWN0aXZlQhYKFF9yYXRlX2xpbWl0X3Blcl9ob3VyIjwKFFVwZGF0ZUFwaUtleVJlc3BvbnNlEiQKB2FwaV9rZXkYASABKAsyEy5pZGVudGl0eS52MS5BcGlLZXkiIQoTUm90YXRlQXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCSI8ChRSb3RhdGVBcGlLZXlSZXNwb25zZRIkCgdhcGlfa2V5GAEgASgLMhMuaWRlbnRpdHkudjEuQXBpS2V5IiEKE1Jldm9rZUFwaUtleVJlcXVlc3QSCgoCaWQYASABKAkiJwoUUmV2b2tlQXBpS2V5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKxBQoMQXV0aFByb3ZpZGVyEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEgwKBHR5cGUYBCABKAkSJwoGY29uZmlnGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgdlbmFibGVkGAYgASgIEhIKCmlzX2RlZmF1bHQYByABKAgSEAoIcHJpb3JpdHkYCCABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgAiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIAYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI2ChBwdWJsaXNoZWRfY29uZmlnGDwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEh4KEXB1Ymxpc2hlZF9lbmFibGVkGD0gASgISAOIAQESPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg/IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUITChFfcHVibGlzaGVkX2NvbmZpZ0IUChJfcHVibGlzaGVkX2VuYWJsZWRCFwoVX3NjaGVkdWxlZF9wdWJsaXNoX2F0QhkKF19zY2hlZHVsZWRfdW5wdWJsaXNoX2F0IvIBChhMaXN0QXV0aFByb3ZpZGVyc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIAhADSgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0UgZzZWFyY2gipAEKGUxpc3RBdXRoUHJvdmlkZXJzUmVzcG9uc2USLAoJcHJvdmlkZXJzGAEgAygLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIkChZHZXRBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJIkYKF0dldEF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIoECChlDcmVhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHR5cGUYAyABKAkSJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgdlbmFibGVkGAUgASgISACIAQESFwoKaXNfZGVmYXVsdBgGIAEoCEgBiAEBEhUKCHByaW9yaXR5GAcgASgFSAKIAQESFgoJY29uZmlnX2lkGAggASgJSAOIAQFCCgoIX2VuYWJsZWRCDQoLX2lzX2RlZmF1bHRCCwoJX3ByaW9yaXR5QgwKCl9jb25maWdfaWQiSQoaQ3JlYXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIi6gEKGVVwZGF0ZUF1dGhQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEiwKBmNvbmZpZxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIUCgdlbmFibGVkGAQgASgISAKIAQESFwoKaXNfZGVmYXVsdBgFIAEoCEgDiAEBEhUKCHByaW9yaXR5GAYgASgFSASIAQFCBwoFX25hbWVCCQoHX2NvbmZpZ0IKCghfZW5hYmxlZEINCgtfaXNfZGVmYXVsdEILCglfcHJpb3JpdHkiSQoaVXBkYXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiJwoZRGVsZXRlQXV0aFByb3ZpZGVyUmVxdWVzdBIKCgJpZBgBIAEoCSItChpEZWxldGVBdXRoUHJvdmlkZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIigKGlB1Ymxpc2hBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJIoABChtQdWJsaXNoQXV0aFByb3ZpZGVyUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXISNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiKgocVW5wdWJsaXNoQXV0aFByb3ZpZGVyUmVxdWVzdBIKCgJpZBgBIAEoCSJMCh1VbnB1Ymxpc2hBdXRoUHJvdmlkZXJSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciIxCiNHZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzUmVxdWVzdBIKCgJpZBgBIAEoCSJRCiRHZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzUmVzcG9uc2USKQoGc3RhdHVzGAEgASgLMhkucHVibGlzaC52MS5QdWJsaXNoU3RhdHVzItoCChNBdXRoUHJvdmlkZXJWZXJzaW9uEgoKAmlkGAEgASgJEhgKEGF1dGhfcHJvdmlkZXJfaWQYAiABKAkSFgoOdmVyc2lvbl9udW1iZXIYAyABKAUSKQoIc25hcHNob3QYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGNvbnRlbnRfaGFzaBgFIAEoCRIeChFzb3VyY2VfdmVyc2lvbl9pZBgGIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgHIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYCSABKAlIAogBAUIUChJfc291cmNlX3ZlcnNpb25faWRCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkINCgtfY3JlYXRlZF9ieSIrCh1HZXRBdXRoUHJvdmlkZXJWZXJzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJTCh5HZXRBdXRoUHJvdmlkZXJWZXJzaW9uUmVzcG9uc2USMQoHdmVyc2lvbhgBIAEoCzIgLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlclZlcnNpb24iswEKH0xpc3RBdXRoUHJvdmlkZXJWZXJzaW9uc1JlcXVlc3QSGAoQYXV0aF9wcm92aWRlcl9pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKxAQogTGlzdEF1dGhQcm92aWRlclZlcnNpb25zUmVzcG9uc2USMgoIdmVyc2lvbnMYASADKAsyIC5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXJWZXJzaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJvCiFSZXN0b3JlQXV0aFByb3ZpZGVyVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIogBCiJSZXN0b3JlQXV0aFByb3ZpZGVyVmVyc2lvblJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyEjUKC25ld192ZXJzaW9uGAIgASgLMiAuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyVmVyc2lvbiKoAQoiU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCJSCiNTY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2hSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciI3CilDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJZCipDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiTAocRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVxdWVzdBIaCg1wbGF0Zm9ybV9sYW5lGAEgASgISACIAQFCEAoOX3BsYXRmb3JtX2xhbmUiMgodRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVzcG9uc2USEQoJcHJvdmlkZXJzGAEgAygJIjAKHk1pbnRTZXJ2aWNlVG9rZW5TY29wZU5hcnJvd2luZxIOCgZzY29wZXMYASADKAkicAoXTWludFNlcnZpY2VUb2tlblJlcXVlc3QSDwoHcHVycG9zZRgBIAEoCRJECg9zY29wZV9uYXJyb3dpbmcYAiABKAsyKy5pZGVudGl0eS52MS5NaW50U2VydmljZVRva2VuU2NvcGVOYXJyb3dpbmciTgoYTWludFNlcnZpY2VUb2tlblJlc3BvbnNlEg0KBXRva2VuGAEgASgJEg8KB3B1cnBvc2UYAiABKAkSEgoKZXhwaXJlc19hdBgDIAEoCSLCAQoWVXBkYXRlTXlQcm9maWxlUmVxdWVzdBIXCgpmaXJzdF9uYW1lGAEgASgJSACIAQESFgoJbGFzdF9uYW1lGAIgASgJSAGIAQESFwoKYXZhdGFyX3VybBgDIAEoCUgCiAEBEh0KEHByZWZlcnJlZF9sb2NhbGUYBCABKAlIA4gBAUINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19hdmF0YXJfdXJsQhMKEV9wcmVmZXJyZWRfbG9jYWxlIj8KF1VwZGF0ZU15UHJvZmlsZVJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIizgEKHUxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXF1ZXN0EhIKBWZpcnN0GAEgASgFSACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARIRCgRsYXN0GAMgASgFSAKIAQESEwoGYmVmb3JlGAQgASgJSAOIAQESKwoFd2hlcmUYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCAoGX2ZpcnN0QggKBl9hZnRlckIHCgVfbGFzdEIJCgdfYmVmb3JlQggKBl93aGVyZSKNAQoPT0F1dGhDb25uZWN0aW9uEhAKCHByb3ZpZGVyGAEgASgJEhgKEHByb3ZpZGVyX3VzZXJfaWQYAiABKAkSEgoFZW1haWwYAyABKAlIAIgBARIwCgxjb25uZWN0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl9lbWFpbCKuAQoeTGlzdE15T0F1dGhDb25uZWN0aW9uc1Jlc3BvbnNlEjEKC2Nvbm5lY3Rpb25zGAEgAygLMhwuaWRlbnRpdHkudjEuT0F1dGhDb25uZWN0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIuChpVbmxpbmtPQXV0aFByb3ZpZGVyUmVxdWVzdBIQCghwcm92aWRlchgBIAEoCSIuChtVbmxpbmtPQXV0aFByb3ZpZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIuCh1DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVxdWVzdBINCgVlbWFpbBgBIAEoCSIzCh5DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVzcG9uc2USEQoJYXZhaWxhYmxlGAEgASgIIo8BChtDb21wbGV0ZUFjY291bnRTZXR1cFJlcXVlc3QSFwoKZmlyc3RfbmFtZRgBIAEoCUgAiAEBEhYKCWxhc3RfbmFtZRgCIAEoCUgBiAEBEhUKCHBhc3N3b3JkGAMgASgJSAKIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUILCglfcGFzc3dvcmQiWwocQ29tcGxldGVBY2NvdW50U2V0dXBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhkKDHJlZGlyZWN0X3VybBgCIAEoCUgAiAEBQg8KDV9yZWRpcmVjdF91cmwiLQoaQ3JlYXRlU2lnbnVwU2Vzc2lvblJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCSIuChtDcmVhdGVTaWdudXBTZXNzaW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCItChpSZXNlbmRBY2NvdW50QWNjZXNzUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJIroBChtSZXNlbmRBY2NvdW50QWNjZXNzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBI7CgRraW5kGAIgASgOMi0uaWRlbnRpdHkudjEuUmVzZW5kQWNjb3VudEFjY2Vzc1Jlc3BvbnNlLktpbmQiTQoES2luZBIUChBLSU5EX1VOU1BFQ0lGSUVEEAASFgoSS0lORF9BQ0NPVU5UX1NFVFVQEAESFwoTS0lORF9QQVNTV09SRF9SRVNFVBACIjAKF1Jlc2VuZEludml0YXRpb25SZXF1ZXN0EhUKDWludml0YXRpb25faWQYASABKAkiKwoYUmVzZW5kSW52aXRhdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiIgoUR2V0SW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkiRAoVR2V0SW52aXRhdGlvblJlc3BvbnNlEisKCmludml0YXRpb24YASABKAsyFy5pZGVudGl0eS52MS5JbnZpdGF0aW9uIioKFUFjdGl2YXRlVGVuYW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiPQoWQWN0aXZhdGVUZW5hbnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiMQocUmVxdWVzdFRlbmFudERlbGV0aW9uUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiRAodUmVxdWVzdFRlbmFudERlbGV0aW9uUmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IiQKIkdldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1c1JlcXVlc3Qi2wEKGEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1cxIhChluYXRpdmVfbWFuYWdlbWVudF9lbmFibGVkGAEgASgIEiIKFWV4dGVybmFsX3Byb3ZpZGVyX3VybBgCIAEoCUgAiAEBEiMKFmV4dGVybmFsX3Byb3ZpZGVyX25hbWUYAyABKAlIAYgBARITCgZyZWFzb24YBCABKAlIAogBAUIYChZfZXh0ZXJuYWxfcHJvdmlkZXJfdXJsQhkKF19leHRlcm5hbF9wcm92aWRlcl9uYW1lQgkKB19yZWFzb24iXAojR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzUmVzcG9uc2USNQoGc3RhdHVzGAEgASgLMiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzIigKFVZhbGlkYXRlQXBpS2V5UmVxdWVzdBIPCgdhcGlfa2V5GAEgASgJIoMCChZWYWxpZGF0ZUFwaUtleVJlc3BvbnNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhIKCnByb2plY3RfaWQYBCABKAkSEAoIa2V5X3R5cGUYBSABKAkSDgoGc2NvcGVzGAYgAygJEhYKDmFsbG93ZWRfbW9kZWxzGAcgAygJEhoKEmFsbG93ZWRfZmlsZV90eXBlcxgIIAMoCRIbChNyYXRlX2xpbWl0X3Blcl9ob3VyGAkgASgFEhMKC3Byb2plY3RfaWRzGAogAygJEiAKGHBsYW5fcmF0ZV9saW1pdF9wZXJfaG91chgLIAEoBSI3ChRDdXN0b21lckxvZ2luUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCSJtChVDdXN0b21lckxvZ2luUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkSJwoIY3VzdG9tZXIYAyABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciJ/ChdDdXN0b21lclJlZ2lzdGVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIyCgxwcm9maWxlX2RhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCDwoNX3Byb2ZpbGVfZGF0YSJwChhDdXN0b21lclJlZ2lzdGVyUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkSJwoIY3VzdG9tZXIYAyABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciI0ChtDdXN0b21lclJlZnJlc2hUb2tlblJlcXVlc3QSFQoNcmVmcmVzaF90b2tlbhgBIAEoCSJLChxDdXN0b21lclJlZnJlc2hUb2tlblJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJIioKGUN1c3RvbWVyUmVxdWVzdE9UUFJlcXVlc3QSDQoFZW1haWwYASABKAkiKgoaQ3VzdG9tZXJSZXF1ZXN0T1RQUmVzcG9uc2USDAoEc2VudBgBIAEoCCI7ChhDdXN0b21lclZlcmlmeU9UUFJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIb3RwX2NvZGUYAiABKAkicQoZQ3VzdG9tZXJWZXJpZnlPVFBSZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSFQoNcmVmcmVzaF90b2tlbhgCIAEoCRInCghjdXN0b21lchgDIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIjQKI0N1c3RvbWVyUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIjQKJEN1c3RvbWVyUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXNwb25zZRIMCgRzZW50GAEgASgIIkMKHEN1c3RvbWVyUmVzZXRQYXNzd29yZFJlcXVlc3QSDQoFdG9rZW4YASABKAkSFAoMbmV3X3Bhc3N3b3JkGAIgASgJIjAKHUN1c3RvbWVyUmVzZXRQYXNzd29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiVAoeVXBkYXRlTXlDdXN0b21lclByb2ZpbGVSZXF1ZXN0Eh0KEHByZWZlcnJlZF9sb2NhbGUYASABKAlIAIgBAUITChFfcHJlZmVycmVkX2xvY2FsZSJKCh9VcGRhdGVNeUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEicKCGN1c3RvbWVyGAEgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiTQoWRGVsZXRlTXlBY2NvdW50UmVxdWVzdBIVCghwYXNzd29yZBgBIAEoCUgAiAEBEg8KB2NvbmZpcm0YAiABKAhCCwoJX3Bhc3N3b3JkIloKF0RlbGV0ZU15QWNjb3VudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSFwoPcmVjb3Jkc19kZWxldGVkGAIgASgDEhUKDWZpbGVzX2RlbGV0ZWQYAyABKAMi2QEKGVN0b3JlUHJvdmlkZXJUb2tlblJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSFAoMcHJvdmlkZXJfa2V5GAIgASgJEhQKDGFjY2Vzc190b2tlbhgDIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAQgASgJEhAKCGlkX3Rva2VuGAUgASgJEg4KBnNjb3BlcxgGIAEoCRIzCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg0KC19leHBpcmVzX2F0IhwKGlN0b3JlUHJvdmlkZXJUb2tlblJlc3BvbnNlIoMBChlTdGFydFByb3ZpZGVyTG9naW5SZXF1ZXN0EhQKDHByb3ZpZGVyX2tleRgBIAEoCRIWCglyZXR1cm5fdG8YAiABKAlIAIgBARIZCgxyZWRpcmVjdF91cmkYAyABKAlIAYgBAUIMCgpfcmV0dXJuX3RvQg8KDV9yZWRpcmVjdF91cmkiMgoaU3RhcnRQcm92aWRlckxvZ2luUmVzcG9uc2USFAoMcmVkaXJlY3RfdXJsGAEgASgJIk8KGkZpbmlzaFByb3ZpZGVyTG9naW5SZXF1ZXN0EhQKDHByb3ZpZGVyX2tleRgBIAEoCRIMCgRjb2RlGAIgASgJEg0KBXN0YXRlGAMgASgJIm4KG0ZpbmlzaFByb3ZpZGVyTG9naW5SZXNwb25zZRITCgtjdXN0b21lcl9pZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAyABKAkSFQoNcmVmcmVzaF90b2tlbhgEIAEoCSKCAQohU3RhcnRDdXN0b21lckxvZ2luV2l0aEZvaXJSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRIUCgxyZWRpcmVjdF91cmkYAiABKAkSDgoGc2NvcGVzGAMgAygJEhYKCXJldHVybl90bxgEIAEoCUgAiAEBQgwKCl9yZXR1cm5fdG8iOgoiU3RhcnRDdXN0b21lckxvZ2luV2l0aEZvaXJSZXNwb25zZRIUCgxyZWRpcmVjdF91cmwYASABKAkiQwokQ29tcGxldGVDdXN0b21lckxvZ2luV2l0aEZvaXJSZXF1ZXN0EgwKBGNvZGUYASABKAkSDQoFc3RhdGUYAiABKAkingEKJUNvbXBsZXRlQ3VzdG9tZXJMb2dpbldpdGhGb2lyUmVzcG9uc2USEwoLY3VzdG9tZXJfaWQYASABKAkSDQoFZW1haWwYAiABKAkSFAoMYWNjZXNzX3Rva2VuGAMgASgJEhUKDXJlZnJlc2hfdG9rZW4YBCABKAkSFgoJcmV0dXJuX3RvGAUgASgJSACIAQFCDAoKX3JldHVybl90byJ/Ch5TdGFydEFkbWluTG9naW5XaXRoRm9pclJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhQKDHJlZGlyZWN0X3VyaRgCIAEoCRIOCgZzY29wZXMYAyADKAkSFgoJcmV0dXJuX3RvGAQgASgJSACIAQFCDAoKX3JldHVybl90byI3Ch9TdGFydEFkbWluTG9naW5XaXRoRm9pclJlc3BvbnNlEhQKDHJlZGlyZWN0X3VybBgBIAEoCSJACiFDb21wbGV0ZUFkbWluTG9naW5XaXRoRm9pclJlcXVlc3QSDAoEY29kZRgBIAEoCRINCgVzdGF0ZRgCIAEoCSK9AQoiQ29tcGxldGVBZG1pbkxvZ2luV2l0aEZvaXJSZXNwb25zZRIVCg1hZG1pbl91c2VyX2lkGAEgASgJEhQKDGFjY2Vzc190b2tlbhgCIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAMgASgJEg4KBnNjb3BlcxgEIAMoCRIdChVpc19maXJzdF9wYXJ0eV9jbGllbnQYBSABKAgSFgoJcmV0dXJuX3RvGAYgASgJSACIAQFCDAoKX3JldHVybl90byImChJCZWdpblN0ZXBVcFJlcXVlc3QSEAoIcGFzc3dvcmQYASABKAkiZAoTQmVnaW5TdGVwVXBSZXNwb25zZRIOCgZoYW5kbGUYASABKAkSEAoId2ViYXV0aG4YAiABKAgSDAoEdG90cBgDIAEoCBIdChV3ZWJhdXRobl9vcHRpb25zX2pzb24YBCABKAkiWwoVQ29tcGxldGVTdGVwVXBSZXF1ZXN0Eg4KBmhhbmRsZRgBIAEoCRIfChd3ZWJhdXRobl9hc3NlcnRpb25fanNvbhgCIAEoCRIRCgl0b3RwX2NvZGUYAyABKAkiOQoWQ29tcGxldGVTdGVwVXBSZXNwb25zZRISCgpzdGVwcGVkX3VwGAEgASgIEgsKA2FtchgCIAMoCSI9ChlCZWdpbk1mYUVucm9sbG1lbnRSZXF1ZXN0EhAKCHBhc3N3b3JkGAEgASgJEg4KBm1ldGhvZBgCIAEoCSJxChpCZWdpbk1mYUVucm9sbG1lbnRSZXNwb25zZRIOCgZoYW5kbGUYASABKAkSHQoVd2ViYXV0aG5fb3B0aW9uc19qc29uGAIgASgJEhMKC3RvdHBfc2VjcmV0GAMgASgJEg8KB3RvdHBfcXIYBCABKAkiegocQ29tcGxldGVNZmFFbnJvbGxtZW50UmVxdWVzdBIOCgZoYW5kbGUYASABKAkSIQoZd2ViYXV0aG5fYXR0ZXN0YXRpb25fanNvbhgCIAEoCRIRCgl0b3RwX2NvZGUYAyABKAkSFAoMZGlzcGxheV9uYW1lGAQgASgJIjEKHUNvbXBsZXRlTWZhRW5yb2xsbWVudFJlc3BvbnNlEhAKCGVucm9sbGVkGAEgASgIIkQKF0dldFByb3ZpZGVyVG9rZW5SZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEhQKDHByb3ZpZGVyX2tleRgCIAEoCSKtAQoYR2V0UHJvdmlkZXJUb2tlblJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEhAKCGlkX3Rva2VuGAMgASgJEg4KBnNjb3BlcxgEIAEoCRIzCgpleHBpcmVzX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg0KC19leHBpcmVzX2F0IjIKG0RlbGV0ZVByb3ZpZGVyVG9rZW5zUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCSIeChxEZWxldGVQcm92aWRlclRva2Vuc1Jlc3BvbnNlInQKGFJlbHlpbmdQYXJ0eUxvZ2luTWV0aG9kcxIVCghwYXNzd29yZBgBIAEoCEgAiAEBEhAKA290cBgCIAEoCEgBiAEBEhoKEmRpc2FibGVkX3Byb3ZpZGVycxgDIAMoCUILCglfcGFzc3dvcmRCBgoEX290cCLqBAoMUmVseWluZ1BhcnR5EgoKAmlkGAEgASgJEhYKDnByaW5jaXBhbF9raW5kGAIgASgJEhYKCXRlbmFudF9pZBgDIAEoCUgAiAEBEhcKCnByb2plY3RfaWQYBCABKAlIAYgBARIRCgljbGllbnRfaWQYBSABKAkSDAoEbmFtZRgGIAEoCRIVCg1yZWRpcmVjdF91cmlzGAcgAygJEhYKDmFsbG93ZWRfc2NvcGVzGAggAygJEhYKDmlzX2ZpcnN0X3BhcnR5GAkgASgIEhQKDHJlcXVpcmVzX21mYRgKIAEoCBJBCg1sb2dpbl9tZXRob2RzGAsgASgLMiUuaWRlbnRpdHkudjEuUmVseWluZ1BhcnR5TG9naW5NZXRob2RzSAKIAQESFwoKY3JlYXRlZF9ieRgMIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjQKC2Rpc2FibGVkX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEhsKDnBvc3RfbG9naW5fdXJsGBAgASgJSAWIAQESFwoPYWxsb3dlZF9vcmlnaW5zGBEgAygJQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCEAoOX2xvZ2luX21ldGhvZHNCDQoLX2NyZWF0ZWRfYnlCDgoMX2Rpc2FibGVkX2F0QhEKD19wb3N0X2xvZ2luX3VybCL5AQoZTGlzdFJlbHlpbmdQYXJ0aWVzUmVxdWVzdBIWCg5wcmluY2lwYWxfa2luZBgBIAEoCRIWCgl0ZW5hbnRfaWQYAiABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAMgASgJSAGIAQESEgoFYWZ0ZXIYBCABKAlIAogBARITCgZiZWZvcmUYBSABKAlIA4gBARISCgVmaXJzdBgGIAEoBUgEiAEBEhEKBGxhc3QYByABKAVIBYgBAUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKhAQoaTGlzdFJlbHlpbmdQYXJ0aWVzUmVzcG9uc2USKAoFaXRlbXMYASADKAsyGS5pZGVudGl0eS52MS5SZWx5aW5nUGFydHkSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIkMKFkdldFJlbHlpbmdQYXJ0eVJlcXVlc3QSFgoOcHJpbmNpcGFsX2tpbmQYASABKAkSEQoJY2xpZW50X2lkGAIgASgJIksKF0dldFJlbHlpbmdQYXJ0eVJlc3BvbnNlEjAKDXJlbHlpbmdfcGFydHkYASABKAsyGS5pZGVudGl0eS52MS5SZWx5aW5nUGFydHkiJgoTUmVseWluZ1BhcnR5T3JpZ2lucxIPCgdvcmlnaW5zGAEgAygJIp0DChlDcmVhdGVSZWx5aW5nUGFydHlSZXF1ZXN0EhYKDnByaW5jaXBhbF9raW5kGAEgASgJEhYKCXRlbmFudF9pZBgCIAEoCUgAiAEBEhcKCnByb2plY3RfaWQYAyABKAlIAYgBARIRCgljbGllbnRfaWQYBCABKAkSDAoEbmFtZRgFIAEoCRIVCg1yZWRpcmVjdF91cmlzGAYgAygJEhYKDmFsbG93ZWRfc2NvcGVzGAcgAygJEhYKDmlzX2ZpcnN0X3BhcnR5GAggASgIEhQKDHJlcXVpcmVzX21mYRgJIAEoCBJBCg1sb2dpbl9tZXRob2RzGAogASgLMiUuaWRlbnRpdHkudjEuUmVseWluZ1BhcnR5TG9naW5NZXRob2RzSAKIAQESGwoOcG9zdF9sb2dpbl91cmwYCyABKAlIA4gBARIXCg9hbGxvd2VkX29yaWdpbnMYDCADKAlCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZEIQCg5fbG9naW5fbWV0aG9kc0IRCg9fcG9zdF9sb2dpbl91cmwiTgoaQ3JlYXRlUmVseWluZ1BhcnR5UmVzcG9uc2USMAoNcmVseWluZ19wYXJ0eRgBIAEoCzIZLmlkZW50aXR5LnYxLlJlbHlpbmdQYXJ0eSKWAwoZVXBkYXRlUmVseWluZ1BhcnR5UmVxdWVzdBIWCg5wcmluY2lwYWxfa2luZBgBIAEoCRIRCgljbGllbnRfaWQYAiABKAkSEQoEbmFtZRgDIAEoCUgAiAEBEhUKDXJlZGlyZWN0X3VyaXMYBCADKAkSFgoOYWxsb3dlZF9zY29wZXMYBSADKAkSGQoMcmVxdWlyZXNfbWZhGAYgASgISAGIAQESQQoNbG9naW5fbWV0aG9kcxgHIAEoCzIlLmlkZW50aXR5LnYxLlJlbHlpbmdQYXJ0eUxvZ2luTWV0aG9kc0gCiAEBEhsKDnBvc3RfbG9naW5fdXJsGAggASgJSAOIAQESPgoPYWxsb3dlZF9vcmlnaW5zGAkgASgLMiAuaWRlbnRpdHkudjEuUmVseWluZ1BhcnR5T3JpZ2luc0gEiAEBQgcKBV9uYW1lQg8KDV9yZXF1aXJlc19tZmFCEAoOX2xvZ2luX21ldGhvZHNCEQoPX3Bvc3RfbG9naW5fdXJsQhIKEF9hbGxvd2VkX29yaWdpbnMiTgoaVXBkYXRlUmVseWluZ1BhcnR5UmVzcG9uc2USMAoNcmVseWluZ19wYXJ0eRgBIAEoCzIZLmlkZW50aXR5LnYxLlJlbHlpbmdQYXJ0eSJHChpEaXNhYmxlUmVseWluZ1BhcnR5UmVxdWVzdBIWCg5wcmluY2lwYWxfa2luZBgBIAEoCRIRCgljbGllbnRfaWQYAiABKAkiHQobRGlzYWJsZVJlbHlpbmdQYXJ0eVJlc3BvbnNlIoADCgxDdXN0b21Eb21haW4SCgoCaWQYASABKAkSGAoQcmVseWluZ19wYXJ0eV9pZBgCIAEoCRIMCgRraW5kGAMgASgJEhEKCXRlbmFudF9pZBgEIAEoCRISCgpwcm9qZWN0X2lkGAUgASgJEhAKCGhvc3RuYW1lGAYgASgJEg4KBnN0YXR1cxgHIAEoCRIRCgl0eHRfdG9rZW4YCCABKAkSNAoLdmVyaWZpZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESFwoKY3JlYXRlZF9ieRgKIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmFwcF90YXJnZXQYDSABKAlCDgoMX3ZlcmlmaWVkX2F0Qg0KC19jcmVhdGVkX2J5In8KG1JlZ2lzdGVyQ3VzdG9tRG9tYWluUmVxdWVzdBIYChByZWx5aW5nX3BhcnR5X2lkGAEgASgJEhAKCGhvc3RuYW1lGAIgASgJEgwKBGtpbmQYAyABKAkSEgoKcHJvamVjdF9pZBgEIAEoCRISCgphcHBfdGFyZ2V0GAUgASgJIlAKHFJlZ2lzdGVyQ3VzdG9tRG9tYWluUmVzcG9uc2USMAoNY3VzdG9tX2RvbWFpbhgBIAEoCzIZLmlkZW50aXR5LnYxLkN1c3RvbURvbWFpbiInChlWZXJpZnlDdXN0b21Eb21haW5SZXF1ZXN0EgoKAmlkGAEgASgJImAKGlZlcmlmeUN1c3RvbURvbWFpblJlc3BvbnNlEjAKDWN1c3RvbV9kb21haW4YASABKAsyGS5pZGVudGl0eS52MS5DdXN0b21Eb21haW4SEAoIdmVyaWZpZWQYAiABKAgiJwoZRGVsZXRlQ3VzdG9tRG9tYWluUmVxdWVzdBIKCgJpZBgBIAEoCSIcChpEZWxldGVDdXN0b21Eb21haW5SZXNwb25zZSJCCiBHZXRDdXN0b21Eb21haW5CeUhvc3RuYW1lUmVxdWVzdBIQCghob3N0bmFtZRgBIAEoCRIMCgRraW5kGAIgASgJIlUKIUdldEN1c3RvbURvbWFpbkJ5SG9zdG5hbWVSZXNwb25zZRIwCg1jdXN0b21fZG9tYWluGAEgASgLMhkuaWRlbnRpdHkudjEuQ3VzdG9tRG9tYWluIkgKGExpc3RDdXN0b21Eb21haW5zUmVxdWVzdBIYChByZWx5aW5nX3BhcnR5X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkiRQoZTGlzdEN1c3RvbURvbWFpbnNSZXNwb25zZRIoCgVpdGVtcxgBIAMoCzIZLmlkZW50aXR5LnYxLkN1c3RvbURvbWFpbiLiAgoPQ3VzdG9tZXJTZXNzaW9uEgoKAmlkGAEgASgJEhMKC2N1c3RvbWVyX2lkGAIgASgJEhgKEHJlbHlpbmdfcGFydHlfaWQYAyABKAkSEQoJdGVuYW50X2lkGAQgASgJEhIKCnByb2plY3RfaWQYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMbGFzdF9zZWVuX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgppcF9hZGRyZXNzGAkgASgJSACIAQESFwoKdXNlcl9hZ2VudBgKIAEoCUgBiAEBEgsKA2FtchgLIAMoCUINCgtfaXBfYWRkcmVzc0INCgtfdXNlcl9hZ2VudCI3ChtMaXN0Q3VzdG9tZXJTZXNzaW9uc1JlcXVlc3QSGAoQcmVseWluZ19wYXJ0eV9pZBgBIAEoCSJLChxMaXN0Q3VzdG9tZXJTZXNzaW9uc1Jlc3BvbnNlEisKBWl0ZW1zGAEgAygLMhwuaWRlbnRpdHkudjEuQ3VzdG9tZXJTZXNzaW9uIioKHFJldm9rZUN1c3RvbWVyU2Vzc2lvblJlcXVlc3QSCgoCaWQYASABKAkiHwodUmV2b2tlQ3VzdG9tZXJTZXNzaW9uUmVzcG9uc2UinQIKEVJlbHlpbmdQYXJ0eUdyYW50EgoKAmlkGAEgASgJEhUKDWFkbWluX3VzZXJfaWQYAiABKAkSEQoJY2xpZW50X2lkGAMgASgJEg4KBnNjb3BlcxgEIAMoCRIXCgpncmFudGVkX2J5GAUgASgJSACIAQESLgoKZ3JhbnRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoKcmV2b2tlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIXCgpyZXZva2VkX2J5GAggASgJSAKIAQFCDQoLX2dyYW50ZWRfYnlCDQoLX3Jldm9rZWRfYXRCDQoLX3Jldm9rZWRfYnkiTQodTGlzdFJlbHlpbmdQYXJ0eUdyYW50c1JlcXVlc3QSGgoNYWRtaW5fdXNlcl9pZBgBIAEoCUgAiAEBQhAKDl9hZG1pbl91c2VyX2lkIl4KHkxpc3RSZWx5aW5nUGFydHlHcmFudHNSZXNwb25zZRItCgVpdGVtcxgBIAMoCzIeLmlkZW50aXR5LnYxLlJlbHlpbmdQYXJ0eUdyYW50Eg0KBXRvdGFsGAIgASgFIlQKGEdyYW50UmVseWluZ1BhcnR5UmVxdWVzdBIVCg1hZG1pbl91c2VyX2lkGAEgASgJEhEKCWNsaWVudF9pZBgCIAEoCRIOCgZzY29wZXMYAyADKAkiSgoZR3JhbnRSZWx5aW5nUGFydHlSZXNwb25zZRItCgVncmFudBgBIAEoCzIeLmlkZW50aXR5LnYxLlJlbHlpbmdQYXJ0eUdyYW50IiwKHlJldm9rZVJlbHlpbmdQYXJ0eUdyYW50UmVxdWVzdBIKCgJpZBgBIAEoCSIhCh9SZXZva2VSZWx5aW5nUGFydHlHcmFudFJlc3BvbnNlItsCCgRSb2xlEgoKAmlkGAEgASgJEjYKDnByaW5jaXBhbF9raW5kGAIgASgOMh4uaWRlbnRpdHkudjEuUm9sZVByaW5jaXBhbEtpbmQSEQoJdGVuYW50X2lkGAMgASgJEhIKCnByb2plY3RfaWQYBCABKAkSCwoDa2V5GAUgASgJEgwKBG5hbWUYBiABKAkSEwoLcGVybWlzc2lvbnMYByADKAkSEgoKaXNfZGVmYXVsdBgIIAEoCBIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI0CgtkaXNhYmxlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIOCgxfZGlzYWJsZWRfYXQi+QEKEExpc3RSb2xlc1JlcXVlc3QSNgoOcHJpbmNpcGFsX2tpbmQYASABKA4yHi5pZGVudGl0eS52MS5Sb2xlUHJpbmNpcGFsS2luZBIrCgV3aGVyZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVmaXJzdBgDIAEoBUgBiAEBEhIKBWFmdGVyGAQgASgJSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBEhMKBmJlZm9yZRgGIAEoCUgEiAEBQggKBl93aGVyZUIICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmUikAEKEUxpc3RSb2xlc1Jlc3BvbnNlEiAKBWl0ZW1zGAEgAygLMhEuaWRlbnRpdHkudjEuUm9sZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iHAoOR2V0Um9sZVJlcXVlc3QSCgoCaWQYASABKAkiMgoPR2V0Um9sZVJlc3BvbnNlEh8KBHJvbGUYASABKAsyES5pZGVudGl0eS52MS5Sb2xlIrYBChFDcmVhdGVSb2xlUmVxdWVzdBI2Cg5wcmluY2lwYWxfa2luZBgBIAEoDjIeLmlkZW50aXR5LnYxLlJvbGVQcmluY2lwYWxLaW5kEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEgsKA2tleRgEIAEoCRIMCgRuYW1lGAUgASgJEhMKC3Blcm1pc3Npb25zGAYgAygJEhIKCmlzX2RlZmF1bHQYByABKAgiNQoSQ3JlYXRlUm9sZVJlc3BvbnNlEh8KBHJvbGUYASABKAsyES5pZGVudGl0eS52MS5Sb2xlIngKEVVwZGF0ZVJvbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARITCgtwZXJtaXNzaW9ucxgDIAMoCRIXCgppc19kZWZhdWx0GAQgASgISAGIAQFCBwoFX25hbWVCDQoLX2lzX2RlZmF1bHQiNQoSVXBkYXRlUm9sZVJlc3BvbnNlEh8KBHJvbGUYASABKAsyES5pZGVudGl0eS52MS5Sb2xlIiAKEkRpc2FibGVSb2xlUmVxdWVzdBIKCgJpZBgBIAEoCSIVChNEaXNhYmxlUm9sZVJlc3BvbnNlIuQCCg5Sb2xlQXNzaWdubWVudBIKCgJpZBgBIAEoCRI2Cg5wcmluY2lwYWxfa2luZBgCIAEoDjIeLmlkZW50aXR5LnYxLlJvbGVQcmluY2lwYWxLaW5kEhQKDHByaW5jaXBhbF9pZBgDIAEoCRIPCgdyb2xlX2lkGAQgASgJEi4KCmdyYW50ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmdyYW50ZWRfYnkYBiABKAlIAIgBARIzCgpyZXZva2VkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEhcKCnJldm9rZWRfYnkYCCABKAlIAogBARIQCghyb2xlX2tleRgJIAEoCRIRCglyb2xlX25hbWUYCiABKAlCDQoLX2dyYW50ZWRfYnlCDQoLX3Jldm9rZWRfYXRCDQoLX3Jldm9rZWRfYnkicgoRQXNzaWduUm9sZVJlcXVlc3QSNgoOcHJpbmNpcGFsX2tpbmQYASABKA4yHi5pZGVudGl0eS52MS5Sb2xlUHJpbmNpcGFsS2luZBIUCgxwcmluY2lwYWxfaWQYAiABKAkSDwoHcm9sZV9pZBgDIAEoCSJFChJBc3NpZ25Sb2xlUmVzcG9uc2USLwoKYXNzaWdubWVudBgBIAEoCzIbLmlkZW50aXR5LnYxLlJvbGVBc3NpZ25tZW50IikKG1Jldm9rZVJvbGVBc3NpZ25tZW50UmVxdWVzdBIKCgJpZBgBIAEoCSIeChxSZXZva2VSb2xlQXNzaWdubWVudFJlc3BvbnNlIoMCChpMaXN0Um9sZUFzc2lnbm1lbnRzUmVxdWVzdBI2Cg5wcmluY2lwYWxfa2luZBgBIAEoDjIeLmlkZW50aXR5LnYxLlJvbGVQcmluY2lwYWxLaW5kEisKBXdoZXJlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWZpcnN0GAMgASgFSAGIAQESEgoFYWZ0ZXIYBCABKAlIAogBARIRCgRsYXN0GAUgASgFSAOIAQESEwoGYmVmb3JlGAYgASgJSASIAQFCCAoGX3doZXJlQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZSKkAQobTGlzdFJvbGVBc3NpZ25tZW50c1Jlc3BvbnNlEioKBWl0ZW1zGAEgAygLMhsuaWRlbnRpdHkudjEuUm9sZUFzc2lnbm1lbnQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIt4CCg1XYWl0bGlzdEVudHJ5EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIXCgpwcm9qZWN0X2lkGAMgASgJSACIAQESDQoFZW1haWwYBCABKAkSKwoGc3RhdHVzGAUgASgOMhsuaWRlbnRpdHkudjEuV2FpdGxpc3RTdGF0dXMSFwoKZGVjaWRlZF9ieRgGIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmRlY2lkZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQFCDQoLX3Byb2plY3RfaWRCDQoLX2RlY2lkZWRfYnlCDQoLX2RlY2lkZWRfYXQiJAoTSm9pbldhaXRsaXN0UmVxdWVzdBINCgVlbWFpbBgBIAEoCSJBChRKb2luV2FpdGxpc3RSZXNwb25zZRIpCgVlbnRyeRgBIAEoCzIaLmlkZW50aXR5LnYxLldhaXRsaXN0RW50cnkiIQofR2V0Q3VzdG9tZXJTaWdudXBDb250ZXh0UmVxdWVzdCJQCiBHZXRDdXN0b21lclNpZ251cENvbnRleHRSZXNwb25zZRIsCgtzaWdudXBfbW9kZRgBIAEoDjIXLmlkZW50aXR5LnYxLlNpZ251cE1vZGUiKQoYSm9pbkFkbWluV2FpdGxpc3RSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIkYKGUpvaW5BZG1pbldhaXRsaXN0UmVzcG9uc2USKQoFZW50cnkYASABKAsyGi5pZGVudGl0eS52MS5XYWl0bGlzdEVudHJ5IuMBChpMaXN0V2FpdGxpc3RFbnRyaWVzUmVxdWVzdBIwCgZzdGF0dXMYASABKA4yGy5pZGVudGl0eS52MS5XYWl0bGlzdFN0YXR1c0gAiAEBEhAKCHBsYXRmb3JtGAIgASgIEhIKBWZpcnN0GAMgASgFSAGIAQESEgoFYWZ0ZXIYBCABKAlIAogBARIRCgRsYXN0GAUgASgFSAOIAQESEwoGYmVmb3JlGAYgASgJSASIAQFCCQoHX3N0YXR1c0IICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmUipQEKG0xpc3RXYWl0bGlzdEVudHJpZXNSZXNwb25zZRIrCgdlbnRyaWVzGAEgAygLMhouaWRlbnRpdHkudjEuV2FpdGxpc3RFbnRyeRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iKQobQXBwcm92ZVdhaXRsaXN0RW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIkkKHEFwcHJvdmVXYWl0bGlzdEVudHJ5UmVzcG9uc2USKQoFZW50cnkYASABKAsyGi5pZGVudGl0eS52MS5XYWl0bGlzdEVudHJ5IiYKGERlbnlXYWl0bGlzdEVudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJGChlEZW55V2FpdGxpc3RFbnRyeVJlc3BvbnNlEikKBWVudHJ5GAEgASgLMhouaWRlbnRpdHkudjEuV2FpdGxpc3RFbnRyeSJwCg9TZWN1cml0eVN1bW1hcnkSFAoMdG90YWxfbG9naW5zGAEgASgFEhUKDWZhaWxlZF9sb2dpbnMYAiABKAUSGAoQYWNjb3VudF9sb2Nrb3V0cxgDIAEoBRIWCg5zdXNwaWNpb3VzX2lwcxgEIAEoBSJuCg9TdXNwaWNpb3VzTG9naW4SDQoFZW1haWwYASABKAkSEAoIaXBfY291bnQYAiABKAUSCwoDaXBzGAMgAygJEi0KCWxhc3Rfc2VlbhgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiYgoLRmFpbGVkTG9naW4SEgoKaWRlbnRpZmllchgBIAEoCRINCgVjb3VudBgCIAEoBRIwCgxsYXN0X2F0dGVtcHQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIm4KDkFjY291bnRMb2Nrb3V0Eg0KBWVtYWlsGAEgASgJEi0KCWxvY2tlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoGcmVhc29uGAMgASgJSACIAQFCCQoHX3JlYXNvbiKtAQoZR2V0U2VjdXJpdHlTdW1tYXJ5UmVxdWVzdBItCgRmcm9tGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEisKAnRvGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEhYKCXRlbmFudF9pZBgDIAEoCUgCiAEBQgcKBV9mcm9tQgUKA190b0IMCgpfdGVuYW50X2lkIksKGkdldFNlY3VyaXR5U3VtbWFyeVJlc3BvbnNlEi0KB3N1bW1hcnkYASABKAsyHC5pZGVudGl0eS52MS5TZWN1cml0eVN1bW1hcnkiugEKGkdldFN1c3BpY2lvdXNMb2dpbnNSZXF1ZXN0EhIKBWFmdGVyGAMgASgJSACIAQESEwoGYmVmb3JlGAQgASgJSAGIAQESEgoFZmlyc3QYBSABKAVIAogBARIRCgRsYXN0GAYgASgFSAOIAQESFgoJdGVuYW50X2lkGAIgASgJSASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QgwKCl90ZW5hbnRfaWQilwEKG0dldFN1c3BpY2lvdXNMb2dpbnNSZXNwb25zZRIsCgZsb2dpbnMYASADKAsyHC5pZGVudGl0eS52MS5TdXNwaWNpb3VzTG9naW4SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIs4BChZHZXRGYWlsZWRMb2dpbnNSZXF1ZXN0Eg8KAmJ5GAEgASgJSACIAQESEgoFYWZ0ZXIYBCABKAlIAYgBARITCgZiZWZvcmUYBSABKAlIAogBARISCgVmaXJzdBgGIAEoBUgDiAEBEhEKBGxhc3QYByABKAVIBIgBARIWCgl0ZW5hbnRfaWQYAyABKAlIBYgBAUIFCgNfYnlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QgwKCl90ZW5hbnRfaWQikAEKF0dldEZhaWxlZExvZ2luc1Jlc3BvbnNlEikKB2VudHJpZXMYASADKAsyGC5pZGVudGl0eS52MS5GYWlsZWRMb2dpbhIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAMgAygJQgwKCl9wYWdlX2luZm8iuQEKGUdldEFjY291bnRMb2Nrb3V0c1JlcXVlc3QSEgoFYWZ0ZXIYAyABKAlIAIgBARITCgZiZWZvcmUYBCABKAlIAYgBARISCgVmaXJzdBgFIAEoBUgCiAEBEhEKBGxhc3QYBiABKAVIA4gBARIWCgl0ZW5hbnRfaWQYAiABKAlIBIgBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RCDAoKX3RlbmFudF9pZCKXAQoaR2V0QWNjb3VudExvY2tvdXRzUmVzcG9uc2USLQoIbG9ja291dHMYASADKAsyGy5pZGVudGl0eS52MS5BY2NvdW50TG9ja291dBIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAMgAygJQgwKCl9wYWdlX2luZm8ijQEKH0dldFRlbmFudFNlY3VyaXR5U3VtbWFyeVJlcXVlc3QSLQoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIrCgJ0bxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIHCgVfZnJvbUIFCgNfdG8imgEKIEdldFRlbmFudFN1c3BpY2lvdXNMb2dpbnNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Iq4BChxHZXRUZW5hbnRGYWlsZWRMb2dpbnNSZXF1ZXN0Eg8KAmJ5GAEgASgJSACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIFCgNfYnlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IlEKIEdldFRlbmFudFNlY3VyaXR5U3VtbWFyeVJlc3BvbnNlEi0KB3N1bW1hcnkYASABKAsyHC5pZGVudGl0eS52MS5TZWN1cml0eVN1bW1hcnkinQEKIUdldFRlbmFudFN1c3BpY2lvdXNMb2dpbnNSZXNwb25zZRIsCgZsb2dpbnMYASADKAsyHC5pZGVudGl0eS52MS5TdXNwaWNpb3VzTG9naW4SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIpYBCh1HZXRUZW5hbnRGYWlsZWRMb2dpbnNSZXNwb25zZRIpCgdlbnRyaWVzGAEgAygLMhguaWRlbnRpdHkudjEuRmFpbGVkTG9naW4SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvKrEBCg9BZG1pblVzZXJTdGF0dXMSIQodQURNSU5fVVNFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIcChhBRE1JTl9VU0VSX1NUQVRVU19BQ1RJVkUQARIdChlBRE1JTl9VU0VSX1NUQVRVU19QRU5ESU5HEAISHwobQURNSU5fVVNFUl9TVEFUVVNfU1VTUEVOREVEEAMSHQoZQURNSU5fVVNFUl9TVEFUVVNfREVMRVRFRBAEKokBCg5DdXN0b21lclN0YXR1cxIfChtDVVNUT01FUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZDVVNUT01FUl9TVEFUVVNfQUNUSVZFEAESGwoXQ1VTVE9NRVJfU1RBVFVTX1BFTkRJTkcQAhIdChlDVVNUT01FUl9TVEFUVVNfU1VTUEVOREVEEAMq2QEKDFRlbmFudFN0YXR1cxIdChlURU5BTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobVEVOQU5UX1NUQVRVU19QRU5ESU5HX1NFVFVQEAESGAoUVEVOQU5UX1NUQVRVU19BQ1RJVkUQAhIaChZURU5BTlRfU1RBVFVTX1BBU1RfRFVFEAMSGwoXVEVOQU5UX1NUQVRVU19TVVNQRU5ERUQQBBIbChdURU5BTlRfU1RBVFVTX0NBTkNFTExFRBAFEhkKFVRFTkFOVF9TVEFUVVNfQ0hVUk5FRBAGKmYKDVByb2plY3RTdGF0dXMSHgoaUFJPSkVDVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIZChVQUk9KRUNUX1NUQVRVU19BQ1RJVkUQARIaChZQUk9KRUNUX1NUQVRVU19ERUxFVEVEEAIqjwEKClNpZ251cE1vZGUSGwoXU0lHTlVQX01PREVfVU5TUEVDSUZJRUQQABIWChJTSUdOVVBfTU9ERV9QVUJMSUMQARIaChZTSUdOVVBfTU9ERV9SRVNUUklDVEVEEAISGAoUU0lHTlVQX01PREVfV0FJVExJU1QQAxIWChJTSUdOVVBfTU9ERV9DTE9TRUQQBCqIAQoOV2FpdGxpc3RTdGF0dXMSHwobV0FJVExJU1RfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGwoXV0FJVExJU1RfU1RBVFVTX1BFTkRJTkcQARIcChhXQUlUTElTVF9TVEFUVVNfQVBQUk9WRUQQAhIaChZXQUlUTElTVF9TVEFUVVNfREVOSUVEEAMqjwEKFlByb2plY3RHcm91cE1lbWJlclJvbGUSKQolUFJPSkVDVF9HUk9VUF9NRU1CRVJfUk9MRV9VTlNQRUNJRklFRBAAEiQKIFBST0pFQ1RfR1JPVVBfTUVNQkVSX1JPTEVfU09VUkNFEAESJAogUFJPSkVDVF9HUk9VUF9NRU1CRVJfUk9MRV9UQVJHRVQQAipnCgpJbnZpdGVUeXBlEhsKF0lOVklURV9UWVBFX1VOU1BFQ0lGSUVEEAASHwobSU5WSVRFX1RZUEVfV09SS1NQQUNFX09XTkVSEAESGwoXSU5WSVRFX1RZUEVfVEVBTV9NRU1CRVIQAiqyAQoQSW52aXRhdGlvblN0YXR1cxIhCh1JTlZJVEFUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEh0KGUlOVklUQVRJT05fU1RBVFVTX1BFTkRJTkcQARIeChpJTlZJVEFUSU9OX1NUQVRVU19BQ0NFUFRFRBACEh0KGUlOVklUQVRJT05fU1RBVFVTX0VYUElSRUQQAxIdChlJTlZJVEFUSU9OX1NUQVRVU19SRVZPS0VEEAQq5wEKGEN1c3RvbWVySW52aXRhdGlvblN0YXR1cxIqCiZDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEiYKIkNVU1RPTUVSX0lOVklUQVRJT05fU1RBVFVTX1BFTkRJTkcQARInCiNDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19BQ0NFUFRFRBACEiYKIkNVU1RPTUVSX0lOVklUQVRJT05fU1RBVFVTX0VYUElSRUQQAxImCiJDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19SRVZPS0VEEAQqtgEKCkFwaUtleVR5cGUSHAoYQVBJX0tFWV9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTQVBJX0tFWV9UWVBFX1BVQkxJQxABEhcKE0FQSV9LRVlfVFlQRV9TRUNSRVQQAhIYChRBUElfS0VZX1RZUEVfQ09OVFJPTBADEh4KGkFQSV9LRVlfVFlQRV9QVUJMSUNfVEVOQU5UEAQSHgoaQVBJX0tFWV9UWVBFX1NFQ1JFVF9URU5BTlQQBSq5AQoXQ2FwYWJpbGl0eVJlcXVlc3RTdGF0dXMSKQolQ0FQQUJJTElUWV9SRVFVRVNUX1NUQVRVU19VTlNQRUNJRklFRBAAEiUKIUNBUEFCSUxJVFlfUkVRVUVTVF9TVEFUVVNfUEVORElORxABEiYKIkNBUEFCSUxJVFlfUkVRVUVTVF9TVEFUVVNfQVBQUk9WRUQQAhIkCiBDQVBBQklMSVRZX1JFUVVFU1RfU1RBVFVTX0RFTklFRBADKqoBCglBY3RvcktpbmQSGgoWQUNUT1JfS0lORF9VTlNQRUNJRklFRBAAEhUKEUFDVE9SX0tJTkRfTUVNQkVSEAESIAocQUNUT1JfS0lORF9QTEFURk9STV9PUEVSQVRPUhACEhYKEkFDVE9SX0tJTkRfTUFDSElORRADEhYKEkFDVE9SX0tJTkRfVU5LTk9XThAEEhgKFEFDVE9SX0tJTkRfQVNTSVNUQU5UEAUqqQEKG0ltcGVyc29uYXRpb25BcHByb3ZhbE1ldGhvZBItCilJTVBFUlNPTkFUSU9OX0FQUFJPVkFMX01FVEhPRF9VTlNQRUNJRklFRBAAEiwKKElNUEVSU09OQVRJT05fQVBQUk9WQUxfTUVUSE9EX1RFTkFOVF9PVFAQARItCilJTVBFUlNPTkFUSU9OX0FQUFJPVkFMX01FVEhPRF9CUkVBS19HTEFTUxACKowCChhJbXBlcnNvbmF0aW9uR3JhbnRTdGF0dXMSKgomSU1QRVJTT05BVElPTl9HUkFOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABImCiJJTVBFUlNPTkFUSU9OX0dSQU5UX1NUQVRVU19QRU5ESU5HEAESJQohSU1QRVJTT05BVElPTl9HUkFOVF9TVEFUVVNfQUNUSVZFEAISJgoiSU1QRVJTT05BVElPTl9HUkFOVF9TVEFUVVNfRVhQSVJFRBADEiYKIklNUEVSU09OQVRJT05fR1JBTlRfU1RBVFVTX1JFVk9LRUQQBBIlCiFJTVBFUlNPTkFUSU9OX0dSQU5UX1NUQVRVU19ERU5JRUQQBSqJAQoWVGVuYW50RW50aXRsZW1lbnRTdGF0ZRIoCiRURU5BTlRfRU5USVRMRU1FTlRfU1RBVEVfVU5TUEVDSUZJRUQQABIiCh5URU5BTlRfRU5USVRMRU1FTlRfU1RBVEVfR1JBTlQQARIhCh1URU5BTlRfRU5USVRMRU1FTlRfU1RBVEVfREVOWRACKnkKEVJvbGVQcmluY2lwYWxLaW5kEiMKH1JPTEVfUFJJTkNJUEFMX0tJTkRfVU5TUEVDSUZJRUQQABIgChxST0xFX1BSSU5DSVBBTF9LSU5EX0NVU1RPTUVSEAESHQoZUk9MRV9QUklOQ0lQQUxfS0lORF9BRE1JThACMo2PAQoPSWRlbnRpdHlTZXJ2aWNlEj4KBUxvZ2luEhkuaWRlbnRpdHkudjEuTG9naW5SZXF1ZXN0GhouaWRlbnRpdHkudjEuTG9naW5SZXNwb25zZRJTCgxMb2dpbldpdGhPVFASIC5pZGVudGl0eS52MS5Mb2dpbldpdGhPVFBSZXF1ZXN0GiEuaWRlbnRpdHkudjEuTG9naW5XaXRoT1RQUmVzcG9uc2USTQoKUmVxdWVzdE9UUBIeLmlkZW50aXR5LnYxLlJlcXVlc3RPVFBSZXF1ZXN0Gh8uaWRlbnRpdHkudjEuUmVxdWVzdE9UUFJlc3BvbnNlEkEKBkxvZ291dBIaLmlkZW50aXR5LnYxLkxvZ291dFJlcXVlc3QaGy5pZGVudGl0eS52MS5Mb2dvdXRSZXNwb25zZRJHCghSZWdpc3RlchIcLmlkZW50aXR5LnYxLlJlZ2lzdGVyUmVxdWVzdBodLmlkZW50aXR5LnYxLlJlZ2lzdGVyUmVzcG9uc2USXAoPR2V0U2lnbnVwQ29uZmlnEiMuaWRlbnRpdHkudjEuR2V0U2lnbnVwQ29uZmlnUmVxdWVzdBokLmlkZW50aXR5LnYxLkdldFNpZ251cENvbmZpZ1Jlc3BvbnNlElAKC1ZlcmlmeUVtYWlsEh8uaWRlbnRpdHkudjEuVmVyaWZ5RW1haWxSZXF1ZXN0GiAuaWRlbnRpdHkudjEuVmVyaWZ5RW1haWxSZXNwb25zZRJ0ChdSZXNlbmRWZXJpZmljYXRpb25FbWFpbBIrLmlkZW50aXR5LnYxLlJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVxdWVzdBosLmlkZW50aXR5LnYxLlJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVzcG9uc2USegoZU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZRItLmlkZW50aXR5LnYxLlNlbmRFbWFpbFZlcmlmaWNhdGlvbkNvZGVSZXF1ZXN0Gi4uaWRlbnRpdHkudjEuU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlc3BvbnNlElwKD1ZlcmlmeUVtYWlsQ29kZRIjLmlkZW50aXR5LnYxLlZlcmlmeUVtYWlsQ29kZVJlcXVlc3QaJC5pZGVudGl0eS52MS5WZXJpZnlFbWFpbENvZGVSZXNwb25zZRJrChRSZXF1ZXN0UGFzc3dvcmRSZXNldBIoLmlkZW50aXR5LnYxLlJlcXVlc3RQYXNzd29yZFJlc2V0UmVxdWVzdBopLmlkZW50aXR5LnYxLlJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USVgoNUmVzZXRQYXNzd29yZBIhLmlkZW50aXR5LnYxLlJlc2V0UGFzc3dvcmRSZXF1ZXN0GiIuaWRlbnRpdHkudjEuUmVzZXRQYXNzd29yZFJlc3BvbnNlElkKDlVwZGF0ZVBhc3N3b3JkEiIuaWRlbnRpdHkudjEuVXBkYXRlUGFzc3dvcmRSZXF1ZXN0GiMuaWRlbnRpdHkudjEuVXBkYXRlUGFzc3dvcmRSZXNwb25zZRJiChFHZXRTZXNzaW9uQ29udGV4dBIlLmlkZW50aXR5LnYxLkdldFNlc3Npb25Db250ZXh0UmVxdWVzdBomLmlkZW50aXR5LnYxLkdldFNlc3Npb25Db250ZXh0UmVzcG9uc2USUwoMU3dpdGNoVGVuYW50EiAuaWRlbnRpdHkudjEuU3dpdGNoVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLlN3aXRjaFRlbmFudFJlc3BvbnNlElYKDVN3aXRjaFByb2plY3QSIS5pZGVudGl0eS52MS5Td2l0Y2hQcm9qZWN0UmVxdWVzdBoiLmlkZW50aXR5LnYxLlN3aXRjaFByb2plY3RSZXNwb25zZRJoChNDbGVhclNlc3Npb25Db250ZXh0EicuaWRlbnRpdHkudjEuQ2xlYXJTZXNzaW9uQ29udGV4dFJlcXVlc3QaKC5pZGVudGl0eS52MS5DbGVhclNlc3Npb25Db250ZXh0UmVzcG9uc2USPgoFR2V0TWUSGS5pZGVudGl0eS52MS5HZXRNZVJlcXVlc3QaGi5pZGVudGl0eS52MS5HZXRNZVJlc3BvbnNlElwKD0NyZWF0ZUFkbWluVXNlchIjLmlkZW50aXR5LnYxLkNyZWF0ZUFkbWluVXNlclJlcXVlc3QaJC5pZGVudGl0eS52MS5DcmVhdGVBZG1pblVzZXJSZXNwb25zZRJTCgxHZXRBZG1pblVzZXISIC5pZGVudGl0eS52MS5HZXRBZG1pblVzZXJSZXF1ZXN0GiEuaWRlbnRpdHkudjEuR2V0QWRtaW5Vc2VyUmVzcG9uc2USXAoPVXBkYXRlQWRtaW5Vc2VyEiMuaWRlbnRpdHkudjEuVXBkYXRlQWRtaW5Vc2VyUmVxdWVzdBokLmlkZW50aXR5LnYxLlVwZGF0ZUFkbWluVXNlclJlc3BvbnNlElkKDkxpc3RBZG1pblVzZXJzEiIuaWRlbnRpdHkudjEuTGlzdEFkbWluVXNlcnNSZXF1ZXN0GiMuaWRlbnRpdHkudjEuTGlzdEFkbWluVXNlcnNSZXNwb25zZRJWCg1SZXNvbHZlQWN0b3JzEiEuaWRlbnRpdHkudjEuUmVzb2x2ZUFjdG9yc1JlcXVlc3QaIi5pZGVudGl0eS52MS5SZXNvbHZlQWN0b3JzUmVzcG9uc2USYgoRTGlzdFRlbmFudE1lbWJlcnMSJS5pZGVudGl0eS52MS5MaXN0VGVuYW50TWVtYmVyc1JlcXVlc3QaJi5pZGVudGl0eS52MS5MaXN0VGVuYW50TWVtYmVyc1Jlc3BvbnNlElAKC0dyYW50QWNjZXNzEh8uaWRlbnRpdHkudjEuR3JhbnRBY2Nlc3NSZXF1ZXN0GiAuaWRlbnRpdHkudjEuR3JhbnRBY2Nlc3NSZXNwb25zZRJTCgxSZXZva2VBY2Nlc3MSIC5pZGVudGl0eS52MS5SZXZva2VBY2Nlc3NSZXF1ZXN0GiEuaWRlbnRpdHkudjEuUmV2b2tlQWNjZXNzUmVzcG9uc2USaAoTUmV2b2tlSW1wZXJzb25hdGlvbhInLmlkZW50aXR5LnYxLlJldm9rZUltcGVyc29uYXRpb25SZXF1ZXN0GiguaWRlbnRpdHkudjEuUmV2b2tlSW1wZXJzb25hdGlvblJlc3BvbnNlEnQKF0xpc3RJbXBlcnNvbmF0aW9uR3JhbnRzEisuaWRlbnRpdHkudjEuTGlzdEltcGVyc29uYXRpb25HcmFudHNSZXF1ZXN0GiwuaWRlbnRpdHkudjEuTGlzdEltcGVyc29uYXRpb25HcmFudHNSZXNwb25zZRJrChRSZXF1ZXN0SW1wZXJzb25hdGlvbhIoLmlkZW50aXR5LnYxLlJlcXVlc3RJbXBlcnNvbmF0aW9uUmVxdWVzdBopLmlkZW50aXR5LnYxLlJlcXVlc3RJbXBlcnNvbmF0aW9uUmVzcG9uc2USawoUQXBwcm92ZUltcGVyc29uYXRpb24SKC5pZGVudGl0eS52MS5BcHByb3ZlSW1wZXJzb25hdGlvblJlcXVlc3QaKS5pZGVudGl0eS52MS5BcHByb3ZlSW1wZXJzb25hdGlvblJlc3BvbnNlEmIKEURlbnlJbXBlcnNvbmF0aW9uEiUuaWRlbnRpdHkudjEuRGVueUltcGVyc29uYXRpb25SZXF1ZXN0GiYuaWRlbnRpdHkudjEuRGVueUltcGVyc29uYXRpb25SZXNwb25zZRJ0ChdCcmVha0dsYXNzSW1wZXJzb25hdGlvbhIrLmlkZW50aXR5LnYxLkJyZWFrR2xhc3NJbXBlcnNvbmF0aW9uUmVxdWVzdBosLmlkZW50aXR5LnYxLkJyZWFrR2xhc3NJbXBlcnNvbmF0aW9uUmVzcG9uc2USUAoLRW50ZXJUZW5hbnQSHy5pZGVudGl0eS52MS5FbnRlclRlbmFudFJlcXVlc3QaIC5pZGVudGl0eS52MS5FbnRlclRlbmFudFJlc3BvbnNlEmgKE01pbnRNY3BXb3JraW5nVG9rZW4SJy5pZGVudGl0eS52MS5NaW50TWNwV29ya2luZ1Rva2VuUmVxdWVzdBooLmlkZW50aXR5LnYxLk1pbnRNY3BXb3JraW5nVG9rZW5SZXNwb25zZRJZCg5DcmVhdGVDdXN0b21lchIiLmlkZW50aXR5LnYxLkNyZWF0ZUN1c3RvbWVyUmVxdWVzdBojLmlkZW50aXR5LnYxLkNyZWF0ZUN1c3RvbWVyUmVzcG9uc2USUAoLR2V0Q3VzdG9tZXISHy5pZGVudGl0eS52MS5HZXRDdXN0b21lclJlcXVlc3QaIC5pZGVudGl0eS52MS5HZXRDdXN0b21lclJlc3BvbnNlElkKDlVwZGF0ZUN1c3RvbWVyEiIuaWRlbnRpdHkudjEuVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0GiMuaWRlbnRpdHkudjEuVXBkYXRlQ3VzdG9tZXJSZXNwb25zZRJZCg5EZWxldGVDdXN0b21lchIiLmlkZW50aXR5LnYxLkRlbGV0ZUN1c3RvbWVyUmVxdWVzdBojLmlkZW50aXR5LnYxLkRlbGV0ZUN1c3RvbWVyUmVzcG9uc2USVgoNTGlzdEN1c3RvbWVycxIhLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lcnNSZXF1ZXN0GiIuaWRlbnRpdHkudjEuTGlzdEN1c3RvbWVyc1Jlc3BvbnNlElwKD1N1c3BlbmRDdXN0b21lchIjLmlkZW50aXR5LnYxLlN1c3BlbmRDdXN0b21lclJlcXVlc3QaJC5pZGVudGl0eS52MS5TdXNwZW5kQ3VzdG9tZXJSZXNwb25zZRJZCg5NZXJnZUN1c3RvbWVycxIiLmlkZW50aXR5LnYxLk1lcmdlQ3VzdG9tZXJzUmVxdWVzdBojLmlkZW50aXR5LnYxLk1lcmdlQ3VzdG9tZXJzUmVzcG9uc2USaAoTU2V0Q3VzdG9tZXJQYXNzd29yZBInLmlkZW50aXR5LnYxLlNldEN1c3RvbWVyUGFzc3dvcmRSZXF1ZXN0GiguaWRlbnRpdHkudjEuU2V0Q3VzdG9tZXJQYXNzd29yZFJlc3BvbnNlEncKGENyZWF0ZUN1c3RvbWVySW52aXRhdGlvbhIsLmlkZW50aXR5LnYxLkNyZWF0ZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaLS5pZGVudGl0eS52MS5DcmVhdGVDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ0ChdMaXN0Q3VzdG9tZXJJbnZpdGF0aW9ucxIrLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lckludml0YXRpb25zUmVxdWVzdBosLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lckludml0YXRpb25zUmVzcG9uc2USbgoVR2V0Q3VzdG9tZXJJbnZpdGF0aW9uEikuaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBoqLmlkZW50aXR5LnYxLkdldEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEncKGFJldm9rZUN1c3RvbWVySW52aXRhdGlvbhIsLmlkZW50aXR5LnYxLlJldm9rZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaLS5pZGVudGl0eS52MS5SZXZva2VDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ3ChhSZXNlbmRDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5SZXNlbmRDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USfQoaVmFsaWRhdGVDdXN0b21lckludml0YXRpb24SLi5pZGVudGl0eS52MS5WYWxpZGF0ZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaLy5pZGVudGl0eS52MS5WYWxpZGF0ZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEncKGEFjY2VwdEN1c3RvbWVySW52aXRhdGlvbhIsLmlkZW50aXR5LnYxLkFjY2VwdEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaLS5pZGVudGl0eS52MS5BY2NlcHRDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ3ChhHZXRDdXN0b21lclNpZ251cENvbnRleHQSLC5pZGVudGl0eS52MS5HZXRDdXN0b21lclNpZ251cENvbnRleHRSZXF1ZXN0Gi0uaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJTaWdudXBDb250ZXh0UmVzcG9uc2USUwoMSm9pbldhaXRsaXN0EiAuaWRlbnRpdHkudjEuSm9pbldhaXRsaXN0UmVxdWVzdBohLmlkZW50aXR5LnYxLkpvaW5XYWl0bGlzdFJlc3BvbnNlEmIKEUpvaW5BZG1pbldhaXRsaXN0EiUuaWRlbnRpdHkudjEuSm9pbkFkbWluV2FpdGxpc3RSZXF1ZXN0GiYuaWRlbnRpdHkudjEuSm9pbkFkbWluV2FpdGxpc3RSZXNwb25zZRJoChNMaXN0V2FpdGxpc3RFbnRyaWVzEicuaWRlbnRpdHkudjEuTGlzdFdhaXRsaXN0RW50cmllc1JlcXVlc3QaKC5pZGVudGl0eS52MS5MaXN0V2FpdGxpc3RFbnRyaWVzUmVzcG9uc2USawoUQXBwcm92ZVdhaXRsaXN0RW50cnkSKC5pZGVudGl0eS52MS5BcHByb3ZlV2FpdGxpc3RFbnRyeVJlcXVlc3QaKS5pZGVudGl0eS52MS5BcHByb3ZlV2FpdGxpc3RFbnRyeVJlc3BvbnNlEmIKEURlbnlXYWl0bGlzdEVudHJ5EiUuaWRlbnRpdHkudjEuRGVueVdhaXRsaXN0RW50cnlSZXF1ZXN0GiYuaWRlbnRpdHkudjEuRGVueVdhaXRsaXN0RW50cnlSZXNwb25zZRJTCgxDcmVhdGVUZW5hbnQSIC5pZGVudGl0eS52MS5DcmVhdGVUZW5hbnRSZXF1ZXN0GiEuaWRlbnRpdHkudjEuQ3JlYXRlVGVuYW50UmVzcG9uc2USXAoPQ3JlYXRlV29ya3NwYWNlEiMuaWRlbnRpdHkudjEuQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBokLmlkZW50aXR5LnYxLkNyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlEkoKCUdldFRlbmFudBIdLmlkZW50aXR5LnYxLkdldFRlbmFudFJlcXVlc3QaHi5pZGVudGl0eS52MS5HZXRUZW5hbnRSZXNwb25zZRJTCgxVcGRhdGVUZW5hbnQSIC5pZGVudGl0eS52MS5VcGRhdGVUZW5hbnRSZXF1ZXN0GiEuaWRlbnRpdHkudjEuVXBkYXRlVGVuYW50UmVzcG9uc2UShgEKHVNldFRlbmFudFByb2plY3RMaW1pdE92ZXJyaWRlEjEuaWRlbnRpdHkudjEuU2V0VGVuYW50UHJvamVjdExpbWl0T3ZlcnJpZGVSZXF1ZXN0GjIuaWRlbnRpdHkudjEuU2V0VGVuYW50UHJvamVjdExpbWl0T3ZlcnJpZGVSZXNwb25zZRKJAQoeU2V0VGVuYW50QW5vbnltb3VzTm90ZXNFbmFibGVkEjIuaWRlbnRpdHkudjEuU2V0VGVuYW50QW5vbnltb3VzTm90ZXNFbmFibGVkUmVxdWVzdBozLmlkZW50aXR5LnYxLlNldFRlbmFudEFub255bW91c05vdGVzRW5hYmxlZFJlc3BvbnNlEmsKFFNldFRlbmFudEVudGl0bGVtZW50EiguaWRlbnRpdHkudjEuU2V0VGVuYW50RW50aXRsZW1lbnRSZXF1ZXN0GikuaWRlbnRpdHkudjEuU2V0VGVuYW50RW50aXRsZW1lbnRSZXNwb25zZRJxChZMaXN0VGVuYW50RW50aXRsZW1lbnRzEiouaWRlbnRpdHkudjEuTGlzdFRlbmFudEVudGl0bGVtZW50c1JlcXVlc3QaKy5pZGVudGl0eS52MS5MaXN0VGVuYW50RW50aXRsZW1lbnRzUmVzcG9uc2USUAoLTGlzdFRlbmFudHMSHy5pZGVudGl0eS52MS5MaXN0VGVuYW50c1JlcXVlc3QaIC5pZGVudGl0eS52MS5MaXN0VGVuYW50c1Jlc3BvbnNlElMKDERlbGV0ZVRlbmFudBIgLmlkZW50aXR5LnYxLkRlbGV0ZVRlbmFudFJlcXVlc3QaIS5pZGVudGl0eS52MS5EZWxldGVUZW5hbnRSZXNwb25zZRJWCg1DcmVhdGVQcm9qZWN0EiEuaWRlbnRpdHkudjEuQ3JlYXRlUHJvamVjdFJlcXVlc3QaIi5pZGVudGl0eS52MS5DcmVhdGVQcm9qZWN0UmVzcG9uc2USTQoKR2V0UHJvamVjdBIeLmlkZW50aXR5LnYxLkdldFByb2plY3RSZXF1ZXN0Gh8uaWRlbnRpdHkudjEuR2V0UHJvamVjdFJlc3BvbnNlElYKDVVwZGF0ZVByb2plY3QSIS5pZGVudGl0eS52MS5VcGRhdGVQcm9qZWN0UmVxdWVzdBoiLmlkZW50aXR5LnYxLlVwZGF0ZVByb2plY3RSZXNwb25zZRJTCgxMaXN0UHJvamVjdHMSIC5pZGVudGl0eS52MS5MaXN0UHJvamVjdHNSZXF1ZXN0GiEuaWRlbnRpdHkudjEuTGlzdFByb2plY3RzUmVzcG9uc2USVgoNRGVsZXRlUHJvamVjdBIhLmlkZW50aXR5LnYxLkRlbGV0ZVByb2plY3RSZXF1ZXN0GiIuaWRlbnRpdHkudjEuRGVsZXRlUHJvamVjdFJlc3BvbnNlElMKDFB1cmdlUHJvamVjdBIgLmlkZW50aXR5LnYxLlB1cmdlUHJvamVjdFJlcXVlc3QaIS5pZGVudGl0eS52MS5QdXJnZVByb2plY3RSZXNwb25zZRJiChFHZXREZWZhdWx0UHJvamVjdBIlLmlkZW50aXR5LnYxLkdldERlZmF1bHRQcm9qZWN0UmVxdWVzdBomLmlkZW50aXR5LnYxLkdldERlZmF1bHRQcm9qZWN0UmVzcG9uc2USYgoRU2V0RGVmYXVsdFByb2plY3QSJS5pZGVudGl0eS52MS5TZXREZWZhdWx0UHJvamVjdFJlcXVlc3QaJi5pZGVudGl0eS52MS5TZXREZWZhdWx0UHJvamVjdFJlc3BvbnNlEmUKEkNyZWF0ZVByb2plY3RHcm91cBImLmlkZW50aXR5LnYxLkNyZWF0ZVByb2plY3RHcm91cFJlcXVlc3QaJy5pZGVudGl0eS52MS5DcmVhdGVQcm9qZWN0R3JvdXBSZXNwb25zZRJcCg9HZXRQcm9qZWN0R3JvdXASIy5pZGVudGl0eS52MS5HZXRQcm9qZWN0R3JvdXBSZXF1ZXN0GiQuaWRlbnRpdHkudjEuR2V0UHJvamVjdEdyb3VwUmVzcG9uc2USYgoRTGlzdFByb2plY3RHcm91cHMSJS5pZGVudGl0eS52MS5MaXN0UHJvamVjdEdyb3Vwc1JlcXVlc3QaJi5pZGVudGl0eS52MS5MaXN0UHJvamVjdEdyb3Vwc1Jlc3BvbnNlEmUKElVwZGF0ZVByb2plY3RHcm91cBImLmlkZW50aXR5LnYxLlVwZGF0ZVByb2plY3RHcm91cFJlcXVlc3QaJy5pZGVudGl0eS52MS5VcGRhdGVQcm9qZWN0R3JvdXBSZXNwb25zZRJlChJEZWxldGVQcm9qZWN0R3JvdXASJi5pZGVudGl0eS52MS5EZWxldGVQcm9qZWN0R3JvdXBSZXF1ZXN0GicuaWRlbnRpdHkudjEuRGVsZXRlUHJvamVjdEdyb3VwUmVzcG9uc2USYgoRQWRkUHJvamVjdFRvR3JvdXASJS5pZGVudGl0eS52MS5BZGRQcm9qZWN0VG9Hcm91cFJlcXVlc3QaJi5pZGVudGl0eS52MS5BZGRQcm9qZWN0VG9Hcm91cFJlc3BvbnNlEnEKFlJlbW92ZVByb2plY3RGcm9tR3JvdXASKi5pZGVudGl0eS52MS5SZW1vdmVQcm9qZWN0RnJvbUdyb3VwUmVxdWVzdBorLmlkZW50aXR5LnYxLlJlbW92ZVByb2plY3RGcm9tR3JvdXBSZXNwb25zZRJfChBQcm92aXNpb25Qcm9qZWN0EiQuaWRlbnRpdHkudjEuUHJvdmlzaW9uUHJvamVjdFJlcXVlc3QaJS5pZGVudGl0eS52MS5Qcm92aXNpb25Qcm9qZWN0UmVzcG9uc2USZQoSR2V0UHJvdmlzaW9uU3RhdHVzEiYuaWRlbnRpdHkudjEuR2V0UHJvdmlzaW9uU3RhdHVzUmVxdWVzdBonLmlkZW50aXR5LnYxLkdldFByb3Zpc2lvblN0YXR1c1Jlc3BvbnNlEl8KEENyZWF0ZUludml0YXRpb24SJC5pZGVudGl0eS52MS5DcmVhdGVJbnZpdGF0aW9uUmVxdWVzdBolLmlkZW50aXR5LnYxLkNyZWF0ZUludml0YXRpb25SZXNwb25zZRJcCg9MaXN0SW52aXRhdGlvbnMSIy5pZGVudGl0eS52MS5MaXN0SW52aXRhdGlvbnNSZXF1ZXN0GiQuaWRlbnRpdHkudjEuTGlzdEludml0YXRpb25zUmVzcG9uc2USYgoRTGlzdE15SW52aXRhdGlvbnMSJS5pZGVudGl0eS52MS5MaXN0TXlJbnZpdGF0aW9uc1JlcXVlc3QaJi5pZGVudGl0eS52MS5MaXN0TXlJbnZpdGF0aW9uc1Jlc3BvbnNlEl8KEFJldm9rZUludml0YXRpb24SJC5pZGVudGl0eS52MS5SZXZva2VJbnZpdGF0aW9uUmVxdWVzdBolLmlkZW50aXR5LnYxLlJldm9rZUludml0YXRpb25SZXNwb25zZRJfChBBY2NlcHRJbnZpdGF0aW9uEiQuaWRlbnRpdHkudjEuQWNjZXB0SW52aXRhdGlvblJlcXVlc3QaJS5pZGVudGl0eS52MS5BY2NlcHRJbnZpdGF0aW9uUmVzcG9uc2USZQoSVmFsaWRhdGVJbnZpdGF0aW9uEiYuaWRlbnRpdHkudjEuVmFsaWRhdGVJbnZpdGF0aW9uUmVxdWVzdBonLmlkZW50aXR5LnYxLlZhbGlkYXRlSW52aXRhdGlvblJlc3BvbnNlElMKDENyZWF0ZUFwaUtleRIgLmlkZW50aXR5LnYxLkNyZWF0ZUFwaUtleVJlcXVlc3QaIS5pZGVudGl0eS52MS5DcmVhdGVBcGlLZXlSZXNwb25zZRJKCglHZXRBcGlLZXkSHS5pZGVudGl0eS52MS5HZXRBcGlLZXlSZXF1ZXN0Gh4uaWRlbnRpdHkudjEuR2V0QXBpS2V5UmVzcG9uc2USUAoLTGlzdEFwaUtleXMSHy5pZGVudGl0eS52MS5MaXN0QXBpS2V5c1JlcXVlc3QaIC5pZGVudGl0eS52MS5MaXN0QXBpS2V5c1Jlc3BvbnNlElMKDFVwZGF0ZUFwaUtleRIgLmlkZW50aXR5LnYxLlVwZGF0ZUFwaUtleVJlcXVlc3QaIS5pZGVudGl0eS52MS5VcGRhdGVBcGlLZXlSZXNwb25zZRJTCgxSb3RhdGVBcGlLZXkSIC5pZGVudGl0eS52MS5Sb3RhdGVBcGlLZXlSZXF1ZXN0GiEuaWRlbnRpdHkudjEuUm90YXRlQXBpS2V5UmVzcG9uc2USUwoMUmV2b2tlQXBpS2V5EiAuaWRlbnRpdHkudjEuUmV2b2tlQXBpS2V5UmVxdWVzdBohLmlkZW50aXR5LnYxLlJldm9rZUFwaUtleVJlc3BvbnNlEmIKEUxpc3RBdXRoUHJvdmlkZXJzEiUuaWRlbnRpdHkudjEuTGlzdEF1dGhQcm92aWRlcnNSZXF1ZXN0GiYuaWRlbnRpdHkudjEuTGlzdEF1dGhQcm92aWRlcnNSZXNwb25zZRJcCg9HZXRBdXRoUHJvdmlkZXISIy5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJSZXF1ZXN0GiQuaWRlbnRpdHkudjEuR2V0QXV0aFByb3ZpZGVyUmVzcG9uc2USZQoSQ3JlYXRlQXV0aFByb3ZpZGVyEiYuaWRlbnRpdHkudjEuQ3JlYXRlQXV0aFByb3ZpZGVyUmVxdWVzdBonLmlkZW50aXR5LnYxLkNyZWF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEmUKElVwZGF0ZUF1dGhQcm92aWRlchImLmlkZW50aXR5LnYxLlVwZGF0ZUF1dGhQcm92aWRlclJlcXVlc3QaJy5pZGVudGl0eS52MS5VcGRhdGVBdXRoUHJvdmlkZXJSZXNwb25zZRJlChJEZWxldGVBdXRoUHJvdmlkZXISJi5pZGVudGl0eS52MS5EZWxldGVBdXRoUHJvdmlkZXJSZXF1ZXN0GicuaWRlbnRpdHkudjEuRGVsZXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USaAoTUHVibGlzaEF1dGhQcm92aWRlchInLmlkZW50aXR5LnYxLlB1Ymxpc2hBdXRoUHJvdmlkZXJSZXF1ZXN0GiguaWRlbnRpdHkudjEuUHVibGlzaEF1dGhQcm92aWRlclJlc3BvbnNlEm4KFVVucHVibGlzaEF1dGhQcm92aWRlchIpLmlkZW50aXR5LnYxLlVucHVibGlzaEF1dGhQcm92aWRlclJlcXVlc3QaKi5pZGVudGl0eS52MS5VbnB1Ymxpc2hBdXRoUHJvdmlkZXJSZXNwb25zZRKDAQocR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1cxIwLmlkZW50aXR5LnYxLkdldEF1dGhQcm92aWRlclB1Ymxpc2hTdGF0dXNSZXF1ZXN0GjEuaWRlbnRpdHkudjEuR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1Jlc3BvbnNlEoABChtTY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2gSLy5pZGVudGl0eS52MS5TY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2hSZXF1ZXN0GjAuaWRlbnRpdHkudjEuU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USlQEKIkNhbmNlbFNjaGVkdWxlZEF1dGhQcm92aWRlclB1Ymxpc2gSNi5pZGVudGl0eS52MS5DYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBo3LmlkZW50aXR5LnYxLkNhbmNlbFNjaGVkdWxlZEF1dGhQcm92aWRlclB1Ymxpc2hSZXNwb25zZRJxChZHZXRBdXRoUHJvdmlkZXJWZXJzaW9uEiouaWRlbnRpdHkudjEuR2V0QXV0aFByb3ZpZGVyVmVyc2lvblJlcXVlc3QaKy5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJWZXJzaW9uUmVzcG9uc2USdwoYTGlzdEF1dGhQcm92aWRlclZlcnNpb25zEiwuaWRlbnRpdHkudjEuTGlzdEF1dGhQcm92aWRlclZlcnNpb25zUmVxdWVzdBotLmlkZW50aXR5LnYxLkxpc3RBdXRoUHJvdmlkZXJWZXJzaW9uc1Jlc3BvbnNlEn0KGlJlc3RvcmVBdXRoUHJvdmlkZXJWZXJzaW9uEi4uaWRlbnRpdHkudjEuUmVzdG9yZUF1dGhQcm92aWRlclZlcnNpb25SZXF1ZXN0Gi8uaWRlbnRpdHkudjEuUmVzdG9yZUF1dGhQcm92aWRlclZlcnNpb25SZXNwb25zZRJuChVFbmFibGVkT0F1dGhQcm92aWRlcnMSKS5pZGVudGl0eS52MS5FbmFibGVkT0F1dGhQcm92aWRlcnNSZXF1ZXN0GiouaWRlbnRpdHkudjEuRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVzcG9uc2USXwoQTWludFNlcnZpY2VUb2tlbhIkLmlkZW50aXR5LnYxLk1pbnRTZXJ2aWNlVG9rZW5SZXF1ZXN0GiUuaWRlbnRpdHkudjEuTWludFNlcnZpY2VUb2tlblJlc3BvbnNlElwKD1VwZGF0ZU15UHJvZmlsZRIjLmlkZW50aXR5LnYxLlVwZGF0ZU15UHJvZmlsZVJlcXVlc3QaJC5pZGVudGl0eS52MS5VcGRhdGVNeVByb2ZpbGVSZXNwb25zZRJxChZMaXN0TXlPQXV0aENvbm5lY3Rpb25zEiouaWRlbnRpdHkudjEuTGlzdE15T0F1dGhDb25uZWN0aW9uc1JlcXVlc3QaKy5pZGVudGl0eS52MS5MaXN0TXlPQXV0aENvbm5lY3Rpb25zUmVzcG9uc2USaAoTVW5saW5rT0F1dGhQcm92aWRlchInLmlkZW50aXR5LnYxLlVubGlua09BdXRoUHJvdmlkZXJSZXF1ZXN0GiguaWRlbnRpdHkudjEuVW5saW5rT0F1dGhQcm92aWRlclJlc3BvbnNlEnEKFkNoZWNrRW1haWxBdmFpbGFiaWxpdHkSKi5pZGVudGl0eS52MS5DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVxdWVzdBorLmlkZW50aXR5LnYxLkNoZWNrRW1haWxBdmFpbGFiaWxpdHlSZXNwb25zZRJrChRDb21wbGV0ZUFjY291bnRTZXR1cBIoLmlkZW50aXR5LnYxLkNvbXBsZXRlQWNjb3VudFNldHVwUmVxdWVzdBopLmlkZW50aXR5LnYxLkNvbXBsZXRlQWNjb3VudFNldHVwUmVzcG9uc2USaAoTQ3JlYXRlU2lnbnVwU2Vzc2lvbhInLmlkZW50aXR5LnYxLkNyZWF0ZVNpZ251cFNlc3Npb25SZXF1ZXN0GiguaWRlbnRpdHkudjEuQ3JlYXRlU2lnbnVwU2Vzc2lvblJlc3BvbnNlEl8KEFJlc2VuZEludml0YXRpb24SJC5pZGVudGl0eS52MS5SZXNlbmRJbnZpdGF0aW9uUmVxdWVzdBolLmlkZW50aXR5LnYxLlJlc2VuZEludml0YXRpb25SZXNwb25zZRJoChNSZXNlbmRBY2NvdW50QWNjZXNzEicuaWRlbnRpdHkudjEuUmVzZW5kQWNjb3VudEFjY2Vzc1JlcXVlc3QaKC5pZGVudGl0eS52MS5SZXNlbmRBY2NvdW50QWNjZXNzUmVzcG9uc2USVgoNR2V0SW52aXRhdGlvbhIhLmlkZW50aXR5LnYxLkdldEludml0YXRpb25SZXF1ZXN0GiIuaWRlbnRpdHkudjEuR2V0SW52aXRhdGlvblJlc3BvbnNlElkKDkFjdGl2YXRlVGVuYW50EiIuaWRlbnRpdHkudjEuQWN0aXZhdGVUZW5hbnRSZXF1ZXN0GiMuaWRlbnRpdHkudjEuQWN0aXZhdGVUZW5hbnRSZXNwb25zZRJuChVSZXF1ZXN0VGVuYW50RGVsZXRpb24SKS5pZGVudGl0eS52MS5SZXF1ZXN0VGVuYW50RGVsZXRpb25SZXF1ZXN0GiouaWRlbnRpdHkudjEuUmVxdWVzdFRlbmFudERlbGV0aW9uUmVzcG9uc2USgAEKG0dldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1cxIvLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1c1JlcXVlc3QaMC5pZGVudGl0eS52MS5HZXRDdXN0b21lck1hbmFnZW1lbnRTdGF0dXNSZXNwb25zZRJZCg5WYWxpZGF0ZUFwaUtleRIiLmlkZW50aXR5LnYxLlZhbGlkYXRlQXBpS2V5UmVxdWVzdBojLmlkZW50aXR5LnYxLlZhbGlkYXRlQXBpS2V5UmVzcG9uc2USVgoNQ3VzdG9tZXJMb2dpbhIhLmlkZW50aXR5LnYxLkN1c3RvbWVyTG9naW5SZXF1ZXN0GiIuaWRlbnRpdHkudjEuQ3VzdG9tZXJMb2dpblJlc3BvbnNlEl8KEEN1c3RvbWVyUmVnaXN0ZXISJC5pZGVudGl0eS52MS5DdXN0b21lclJlZ2lzdGVyUmVxdWVzdBolLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVnaXN0ZXJSZXNwb25zZRJrChRDdXN0b21lclJlZnJlc2hUb2tlbhIoLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVmcmVzaFRva2VuUmVxdWVzdBopLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVmcmVzaFRva2VuUmVzcG9uc2USZQoSQ3VzdG9tZXJSZXF1ZXN0T1RQEiYuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0T1RQUmVxdWVzdBonLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVxdWVzdE9UUFJlc3BvbnNlEmIKEUN1c3RvbWVyVmVyaWZ5T1RQEiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJWZXJpZnlPVFBSZXF1ZXN0GiYuaWRlbnRpdHkudjEuQ3VzdG9tZXJWZXJpZnlPVFBSZXNwb25zZRKDAQocQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldBIwLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0GjEuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldFJlc3BvbnNlEm4KFUN1c3RvbWVyUmVzZXRQYXNzd29yZBIpLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVzZXRQYXNzd29yZFJlcXVlc3QaKi5pZGVudGl0eS52MS5DdXN0b21lclJlc2V0UGFzc3dvcmRSZXNwb25zZRJ0ChdVcGRhdGVNeUN1c3RvbWVyUHJvZmlsZRIrLmlkZW50aXR5LnYxLlVwZGF0ZU15Q3VzdG9tZXJQcm9maWxlUmVxdWVzdBosLmlkZW50aXR5LnYxLlVwZGF0ZU15Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USXAoPRGVsZXRlTXlBY2NvdW50EiMuaWRlbnRpdHkudjEuRGVsZXRlTXlBY2NvdW50UmVxdWVzdBokLmlkZW50aXR5LnYxLkRlbGV0ZU15QWNjb3VudFJlc3BvbnNlEmUKElN0b3JlUHJvdmlkZXJUb2tlbhImLmlkZW50aXR5LnYxLlN0b3JlUHJvdmlkZXJUb2tlblJlcXVlc3QaJy5pZGVudGl0eS52MS5TdG9yZVByb3ZpZGVyVG9rZW5SZXNwb25zZRJfChBHZXRQcm92aWRlclRva2VuEiQuaWRlbnRpdHkudjEuR2V0UHJvdmlkZXJUb2tlblJlcXVlc3QaJS5pZGVudGl0eS52MS5HZXRQcm92aWRlclRva2VuUmVzcG9uc2USawoURGVsZXRlUHJvdmlkZXJUb2tlbnMSKC5pZGVudGl0eS52MS5EZWxldGVQcm92aWRlclRva2Vuc1JlcXVlc3QaKS5pZGVudGl0eS52MS5EZWxldGVQcm92aWRlclRva2Vuc1Jlc3BvbnNlEmUKElN0YXJ0UHJvdmlkZXJMb2dpbhImLmlkZW50aXR5LnYxLlN0YXJ0UHJvdmlkZXJMb2dpblJlcXVlc3QaJy5pZGVudGl0eS52MS5TdGFydFByb3ZpZGVyTG9naW5SZXNwb25zZRJoChNGaW5pc2hQcm92aWRlckxvZ2luEicuaWRlbnRpdHkudjEuRmluaXNoUHJvdmlkZXJMb2dpblJlcXVlc3QaKC5pZGVudGl0eS52MS5GaW5pc2hQcm92aWRlckxvZ2luUmVzcG9uc2USfQoaU3RhcnRDdXN0b21lckxvZ2luV2l0aEZvaXISLi5pZGVudGl0eS52MS5TdGFydEN1c3RvbWVyTG9naW5XaXRoRm9pclJlcXVlc3QaLy5pZGVudGl0eS52MS5TdGFydEN1c3RvbWVyTG9naW5XaXRoRm9pclJlc3BvbnNlEoYBCh1Db21wbGV0ZUN1c3RvbWVyTG9naW5XaXRoRm9pchIxLmlkZW50aXR5LnYxLkNvbXBsZXRlQ3VzdG9tZXJMb2dpbldpdGhGb2lyUmVxdWVzdBoyLmlkZW50aXR5LnYxLkNvbXBsZXRlQ3VzdG9tZXJMb2dpbldpdGhGb2lyUmVzcG9uc2USdAoXU3RhcnRBZG1pbkxvZ2luV2l0aEZvaXISKy5pZGVudGl0eS52MS5TdGFydEFkbWluTG9naW5XaXRoRm9pclJlcXVlc3QaLC5pZGVudGl0eS52MS5TdGFydEFkbWluTG9naW5XaXRoRm9pclJlc3BvbnNlEn0KGkNvbXBsZXRlQWRtaW5Mb2dpbldpdGhGb2lyEi4uaWRlbnRpdHkudjEuQ29tcGxldGVBZG1pbkxvZ2luV2l0aEZvaXJSZXF1ZXN0Gi8uaWRlbnRpdHkudjEuQ29tcGxldGVBZG1pbkxvZ2luV2l0aEZvaXJSZXNwb25zZRJQCgtCZWdpblN0ZXBVcBIfLmlkZW50aXR5LnYxLkJlZ2luU3RlcFVwUmVxdWVzdBogLmlkZW50aXR5LnYxLkJlZ2luU3RlcFVwUmVzcG9uc2USWQoOQ29tcGxldGVTdGVwVXASIi5pZGVudGl0eS52MS5Db21wbGV0ZVN0ZXBVcFJlcXVlc3QaIy5pZGVudGl0eS52MS5Db21wbGV0ZVN0ZXBVcFJlc3BvbnNlEmUKEkJlZ2luTWZhRW5yb2xsbWVudBImLmlkZW50aXR5LnYxLkJlZ2luTWZhRW5yb2xsbWVudFJlcXVlc3QaJy5pZGVudGl0eS52MS5CZWdpbk1mYUVucm9sbG1lbnRSZXNwb25zZRJuChVDb21wbGV0ZU1mYUVucm9sbG1lbnQSKS5pZGVudGl0eS52MS5Db21wbGV0ZU1mYUVucm9sbG1lbnRSZXF1ZXN0GiouaWRlbnRpdHkudjEuQ29tcGxldGVNZmFFbnJvbGxtZW50UmVzcG9uc2USZQoSTGlzdFJlbHlpbmdQYXJ0aWVzEiYuaWRlbnRpdHkudjEuTGlzdFJlbHlpbmdQYXJ0aWVzUmVxdWVzdBonLmlkZW50aXR5LnYxLkxpc3RSZWx5aW5nUGFydGllc1Jlc3BvbnNlElwKD0dldFJlbHlpbmdQYXJ0eRIjLmlkZW50aXR5LnYxLkdldFJlbHlpbmdQYXJ0eVJlcXVlc3QaJC5pZGVudGl0eS52MS5HZXRSZWx5aW5nUGFydHlSZXNwb25zZRJlChJDcmVhdGVSZWx5aW5nUGFydHkSJi5pZGVudGl0eS52MS5DcmVhdGVSZWx5aW5nUGFydHlSZXF1ZXN0GicuaWRlbnRpdHkudjEuQ3JlYXRlUmVseWluZ1BhcnR5UmVzcG9uc2USZQoSVXBkYXRlUmVseWluZ1BhcnR5EiYuaWRlbnRpdHkudjEuVXBkYXRlUmVseWluZ1BhcnR5UmVxdWVzdBonLmlkZW50aXR5LnYxLlVwZGF0ZVJlbHlpbmdQYXJ0eVJlc3BvbnNlEmgKE0Rpc2FibGVSZWx5aW5nUGFydHkSJy5pZGVudGl0eS52MS5EaXNhYmxlUmVseWluZ1BhcnR5UmVxdWVzdBooLmlkZW50aXR5LnYxLkRpc2FibGVSZWx5aW5nUGFydHlSZXNwb25zZRJrChRSZWdpc3RlckN1c3RvbURvbWFpbhIoLmlkZW50aXR5LnYxLlJlZ2lzdGVyQ3VzdG9tRG9tYWluUmVxdWVzdBopLmlkZW50aXR5LnYxLlJlZ2lzdGVyQ3VzdG9tRG9tYWluUmVzcG9uc2USegoZR2V0Q3VzdG9tRG9tYWluQnlIb3N0bmFtZRItLmlkZW50aXR5LnYxLkdldEN1c3RvbURvbWFpbkJ5SG9zdG5hbWVSZXF1ZXN0Gi4uaWRlbnRpdHkudjEuR2V0Q3VzdG9tRG9tYWluQnlIb3N0bmFtZVJlc3BvbnNlEmUKElZlcmlmeUN1c3RvbURvbWFpbhImLmlkZW50aXR5LnYxLlZlcmlmeUN1c3RvbURvbWFpblJlcXVlc3QaJy5pZGVudGl0eS52MS5WZXJpZnlDdXN0b21Eb21haW5SZXNwb25zZRJlChJEZWxldGVDdXN0b21Eb21haW4SJi5pZGVudGl0eS52MS5EZWxldGVDdXN0b21Eb21haW5SZXF1ZXN0GicuaWRlbnRpdHkudjEuRGVsZXRlQ3VzdG9tRG9tYWluUmVzcG9uc2USYgoRTGlzdEN1c3RvbURvbWFpbnMSJS5pZGVudGl0eS52MS5MaXN0Q3VzdG9tRG9tYWluc1JlcXVlc3QaJi5pZGVudGl0eS52MS5MaXN0Q3VzdG9tRG9tYWluc1Jlc3BvbnNlEmsKFExpc3RDdXN0b21lclNlc3Npb25zEiguaWRlbnRpdHkudjEuTGlzdEN1c3RvbWVyU2Vzc2lvbnNSZXF1ZXN0GikuaWRlbnRpdHkudjEuTGlzdEN1c3RvbWVyU2Vzc2lvbnNSZXNwb25zZRJuChVSZXZva2VDdXN0b21lclNlc3Npb24SKS5pZGVudGl0eS52MS5SZXZva2VDdXN0b21lclNlc3Npb25SZXF1ZXN0GiouaWRlbnRpdHkudjEuUmV2b2tlQ3VzdG9tZXJTZXNzaW9uUmVzcG9uc2UScQoWTGlzdFJlbHlpbmdQYXJ0eUdyYW50cxIqLmlkZW50aXR5LnYxLkxpc3RSZWx5aW5nUGFydHlHcmFudHNSZXF1ZXN0GisuaWRlbnRpdHkudjEuTGlzdFJlbHlpbmdQYXJ0eUdyYW50c1Jlc3BvbnNlEmIKEUdyYW50UmVseWluZ1BhcnR5EiUuaWRlbnRpdHkudjEuR3JhbnRSZWx5aW5nUGFydHlSZXF1ZXN0GiYuaWRlbnRpdHkudjEuR3JhbnRSZWx5aW5nUGFydHlSZXNwb25zZRJ0ChdSZXZva2VSZWx5aW5nUGFydHlHcmFudBIrLmlkZW50aXR5LnYxLlJldm9rZVJlbHlpbmdQYXJ0eUdyYW50UmVxdWVzdBosLmlkZW50aXR5LnYxLlJldm9rZVJlbHlpbmdQYXJ0eUdyYW50UmVzcG9uc2USSgoJTGlzdFJvbGVzEh0uaWRlbnRpdHkudjEuTGlzdFJvbGVzUmVxdWVzdBoeLmlkZW50aXR5LnYxLkxpc3RSb2xlc1Jlc3BvbnNlEkQKB0dldFJvbGUSGy5pZGVudGl0eS52MS5HZXRSb2xlUmVxdWVzdBocLmlkZW50aXR5LnYxLkdldFJvbGVSZXNwb25zZRJNCgpDcmVhdGVSb2xlEh4uaWRlbnRpdHkudjEuQ3JlYXRlUm9sZVJlcXVlc3QaHy5pZGVudGl0eS52MS5DcmVhdGVSb2xlUmVzcG9uc2USTQoKVXBkYXRlUm9sZRIeLmlkZW50aXR5LnYxLlVwZGF0ZVJvbGVSZXF1ZXN0Gh8uaWRlbnRpdHkudjEuVXBkYXRlUm9sZVJlc3BvbnNlElAKC0Rpc2FibGVSb2xlEh8uaWRlbnRpdHkudjEuRGlzYWJsZVJvbGVSZXF1ZXN0GiAuaWRlbnRpdHkudjEuRGlzYWJsZVJvbGVSZXNwb25zZRJNCgpBc3NpZ25Sb2xlEh4uaWRlbnRpdHkudjEuQXNzaWduUm9sZVJlcXVlc3QaHy5pZGVudGl0eS52MS5Bc3NpZ25Sb2xlUmVzcG9uc2USawoUUmV2b2tlUm9sZUFzc2lnbm1lbnQSKC5pZGVudGl0eS52MS5SZXZva2VSb2xlQXNzaWdubWVudFJlcXVlc3QaKS5pZGVudGl0eS52MS5SZXZva2VSb2xlQXNzaWdubWVudFJlc3BvbnNlEmgKE0xpc3RSb2xlQXNzaWdubWVudHMSJy5pZGVudGl0eS52MS5MaXN0Um9sZUFzc2lnbm1lbnRzUmVxdWVzdBooLmlkZW50aXR5LnYxLkxpc3RSb2xlQXNzaWdubWVudHNSZXNwb25zZRJiChFSZXF1ZXN0Q2FwYWJpbGl0eRIlLmlkZW50aXR5LnYxLlJlcXVlc3RDYXBhYmlsaXR5UmVxdWVzdBomLmlkZW50aXR5LnYxLlJlcXVlc3RDYXBhYmlsaXR5UmVzcG9uc2USdwoYTGlzdE15Q2FwYWJpbGl0eVJlcXVlc3RzEiwuaWRlbnRpdHkudjEuTGlzdE15Q2FwYWJpbGl0eVJlcXVlc3RzUmVxdWVzdBotLmlkZW50aXR5LnYxLkxpc3RNeUNhcGFiaWxpdHlSZXF1ZXN0c1Jlc3BvbnNlEnEKFkxpc3RDYXBhYmlsaXR5UmVxdWVzdHMSKi5pZGVudGl0eS52MS5MaXN0Q2FwYWJpbGl0eVJlcXVlc3RzUmVxdWVzdBorLmlkZW50aXR5LnYxLkxpc3RDYXBhYmlsaXR5UmVxdWVzdHNSZXNwb25zZRJ3ChhSZXNvbHZlQ2FwYWJpbGl0eVJlcXVlc3QSLC5pZGVudGl0eS52MS5SZXNvbHZlQ2FwYWJpbGl0eVJlcXVlc3RSZXF1ZXN0Gi0uaWRlbnRpdHkudjEuUmVzb2x2ZUNhcGFiaWxpdHlSZXF1ZXN0UmVzcG9uc2USfQoaQnVsa0FwcGx5V29ya3NwYWNlQ3JlYXRpb24SLi5pZGVudGl0eS52MS5CdWxrQXBwbHlXb3Jrc3BhY2VDcmVhdGlvblJlcXVlc3QaLy5pZGVudGl0eS52MS5CdWxrQXBwbHlXb3Jrc3BhY2VDcmVhdGlvblJlc3BvbnNlEoABChtCdWxrUmV2b2tlV29ya3NwYWNlQ3JlYXRpb24SLy5pZGVudGl0eS52MS5CdWxrUmV2b2tlV29ya3NwYWNlQ3JlYXRpb25SZXF1ZXN0GjAuaWRlbnRpdHkudjEuQnVsa1Jldm9rZVdvcmtzcGFjZUNyZWF0aW9uUmVzcG9uc2USZQoSR2V0U2VjdXJpdHlTdW1tYXJ5EiYuaWRlbnRpdHkudjEuR2V0U2VjdXJpdHlTdW1tYXJ5UmVxdWVzdBonLmlkZW50aXR5LnYxLkdldFNlY3VyaXR5U3VtbWFyeVJlc3BvbnNlEmgKE0dldFN1c3BpY2lvdXNMb2dpbnMSJy5pZGVudGl0eS52MS5HZXRTdXNwaWNpb3VzTG9naW5zUmVxdWVzdBooLmlkZW50aXR5LnYxLkdldFN1c3BpY2lvdXNMb2dpbnNSZXNwb25zZRJcCg9HZXRGYWlsZWRMb2dpbnMSIy5pZGVudGl0eS52MS5HZXRGYWlsZWRMb2dpbnNSZXF1ZXN0GiQuaWRlbnRpdHkudjEuR2V0RmFpbGVkTG9naW5zUmVzcG9uc2USZQoSR2V0QWNjb3VudExvY2tvdXRzEiYuaWRlbnRpdHkudjEuR2V0QWNjb3VudExvY2tvdXRzUmVxdWVzdBonLmlkZW50aXR5LnYxLkdldEFjY291bnRMb2Nrb3V0c1Jlc3BvbnNlEncKGEdldFRlbmFudFNlY3VyaXR5U3VtbWFyeRIsLmlkZW50aXR5LnYxLkdldFRlbmFudFNlY3VyaXR5U3VtbWFyeVJlcXVlc3QaLS5pZGVudGl0eS52MS5HZXRUZW5hbnRTZWN1cml0eVN1bW1hcnlSZXNwb25zZRJ6ChlHZXRUZW5hbnRTdXNwaWNpb3VzTG9naW5zEi0uaWRlbnRpdHkudjEuR2V0VGVuYW50U3VzcGljaW91c0xvZ2luc1JlcXVlc3QaLi5pZGVudGl0eS52MS5HZXRUZW5hbnRTdXNwaWNpb3VzTG9naW5zUmVzcG9uc2USbgoVR2V0VGVuYW50RmFpbGVkTG9naW5zEikuaWRlbnRpdHkudjEuR2V0VGVuYW50RmFpbGVkTG9naW5zUmVxdWVzdBoqLmlkZW50aXR5LnYxLkdldFRlbmFudEZhaWxlZExvZ2luc1Jlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9pZGVudGl0eS92MTtpZGVudGl0eXYxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp2, file_publish_v1_publish, file_common_v1_pagination]);
|
|
680
698
|
var CustomerSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 2);
|
|
681
699
|
var TenantSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 3);
|
|
682
700
|
var ApiKeySchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 10);
|
|
@@ -739,99 +757,100 @@ var CreateWorkspaceRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1
|
|
|
739
757
|
var GetTenantRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 131);
|
|
740
758
|
var UpdateTenantRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 133);
|
|
741
759
|
var SetTenantProjectLimitOverrideRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 135);
|
|
742
|
-
var
|
|
743
|
-
var
|
|
744
|
-
var
|
|
745
|
-
var
|
|
746
|
-
var
|
|
747
|
-
var
|
|
748
|
-
var
|
|
749
|
-
var
|
|
750
|
-
var
|
|
751
|
-
var
|
|
752
|
-
var
|
|
753
|
-
var
|
|
754
|
-
var
|
|
755
|
-
var
|
|
756
|
-
var
|
|
757
|
-
var
|
|
758
|
-
var
|
|
759
|
-
var
|
|
760
|
-
var
|
|
761
|
-
var
|
|
762
|
-
var
|
|
763
|
-
var
|
|
764
|
-
var
|
|
765
|
-
var
|
|
766
|
-
var
|
|
767
|
-
var
|
|
768
|
-
var
|
|
769
|
-
var
|
|
770
|
-
var
|
|
771
|
-
var
|
|
772
|
-
var
|
|
773
|
-
var
|
|
774
|
-
var
|
|
775
|
-
var
|
|
776
|
-
var
|
|
777
|
-
var
|
|
778
|
-
var
|
|
779
|
-
var
|
|
780
|
-
var
|
|
781
|
-
var
|
|
782
|
-
var
|
|
783
|
-
var
|
|
784
|
-
var
|
|
785
|
-
var
|
|
786
|
-
var
|
|
787
|
-
var
|
|
788
|
-
var
|
|
789
|
-
var
|
|
790
|
-
var
|
|
791
|
-
var
|
|
792
|
-
var
|
|
793
|
-
var
|
|
794
|
-
var
|
|
795
|
-
var
|
|
796
|
-
var
|
|
797
|
-
var
|
|
798
|
-
var
|
|
799
|
-
var
|
|
800
|
-
var
|
|
801
|
-
var
|
|
802
|
-
var
|
|
803
|
-
var
|
|
804
|
-
var
|
|
805
|
-
var
|
|
806
|
-
var
|
|
807
|
-
var
|
|
808
|
-
var
|
|
809
|
-
var
|
|
810
|
-
var
|
|
811
|
-
var
|
|
812
|
-
var
|
|
813
|
-
var
|
|
814
|
-
var
|
|
815
|
-
var
|
|
816
|
-
var
|
|
817
|
-
var
|
|
818
|
-
var
|
|
819
|
-
var
|
|
820
|
-
var
|
|
821
|
-
var
|
|
822
|
-
var
|
|
823
|
-
var
|
|
824
|
-
var
|
|
825
|
-
var
|
|
826
|
-
var
|
|
827
|
-
var
|
|
828
|
-
var
|
|
829
|
-
var
|
|
830
|
-
var
|
|
831
|
-
var
|
|
832
|
-
var
|
|
833
|
-
var
|
|
834
|
-
var
|
|
760
|
+
var SetTenantAnonymousNotesEnabledRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 137);
|
|
761
|
+
var SetTenantEntitlementRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 140);
|
|
762
|
+
var ListTenantEntitlementsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 142);
|
|
763
|
+
var ListTenantsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 144);
|
|
764
|
+
var DeleteTenantRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 146);
|
|
765
|
+
var CreateProjectRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 148);
|
|
766
|
+
var GetProjectRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 150);
|
|
767
|
+
var UpdateProjectRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 152);
|
|
768
|
+
var ListProjectsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 154);
|
|
769
|
+
var DeleteProjectRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 156);
|
|
770
|
+
var PurgeProjectRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 158);
|
|
771
|
+
var GetDefaultProjectRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 160);
|
|
772
|
+
var SetDefaultProjectRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 162);
|
|
773
|
+
var CreateProjectGroupRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 164);
|
|
774
|
+
var GetProjectGroupRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 166);
|
|
775
|
+
var ListProjectGroupsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 168);
|
|
776
|
+
var UpdateProjectGroupRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 170);
|
|
777
|
+
var DeleteProjectGroupRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 172);
|
|
778
|
+
var AddProjectToGroupRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 174);
|
|
779
|
+
var RemoveProjectFromGroupRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 176);
|
|
780
|
+
var ProvisionProjectRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 180);
|
|
781
|
+
var GetProvisionStatusRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 182);
|
|
782
|
+
var CreateInvitationRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 184);
|
|
783
|
+
var ListInvitationsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 186);
|
|
784
|
+
var ListMyInvitationsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 189);
|
|
785
|
+
var RevokeInvitationRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 191);
|
|
786
|
+
var AcceptInvitationRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 193);
|
|
787
|
+
var ValidateInvitationRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 195);
|
|
788
|
+
var CreateApiKeyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 197);
|
|
789
|
+
var GetApiKeyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 199);
|
|
790
|
+
var ListApiKeysRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 201);
|
|
791
|
+
var UpdateApiKeyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 203);
|
|
792
|
+
var RotateApiKeyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 205);
|
|
793
|
+
var RevokeApiKeyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 207);
|
|
794
|
+
var AuthProviderSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 209);
|
|
795
|
+
var ListAuthProvidersRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 210);
|
|
796
|
+
var GetAuthProviderRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 212);
|
|
797
|
+
var CreateAuthProviderRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 214);
|
|
798
|
+
var UpdateAuthProviderRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 216);
|
|
799
|
+
var DeleteAuthProviderRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 218);
|
|
800
|
+
var PublishAuthProviderRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 220);
|
|
801
|
+
var UnpublishAuthProviderRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 222);
|
|
802
|
+
var GetAuthProviderPublishStatusRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 224);
|
|
803
|
+
var GetAuthProviderVersionRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 227);
|
|
804
|
+
var ListAuthProviderVersionsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 229);
|
|
805
|
+
var RestoreAuthProviderVersionRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 231);
|
|
806
|
+
var ScheduleAuthProviderPublishRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 233);
|
|
807
|
+
var CancelScheduledAuthProviderPublishRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 235);
|
|
808
|
+
var EnabledOAuthProvidersRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 237);
|
|
809
|
+
var MintServiceTokenRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 240);
|
|
810
|
+
var UpdateMyProfileRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 242);
|
|
811
|
+
var ListMyOAuthConnectionsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 244);
|
|
812
|
+
var UnlinkOAuthProviderRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 247);
|
|
813
|
+
var CheckEmailAvailabilityRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 249);
|
|
814
|
+
var CompleteAccountSetupRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 251);
|
|
815
|
+
var CreateSignupSessionRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 253);
|
|
816
|
+
var ResendAccountAccessRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 255);
|
|
817
|
+
var ResendInvitationRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 257);
|
|
818
|
+
var ActivateTenantRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 261);
|
|
819
|
+
var RequestTenantDeletionRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 263);
|
|
820
|
+
var GetCustomerManagementStatusRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 265);
|
|
821
|
+
var BeginStepUpRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 302);
|
|
822
|
+
var CompleteStepUpRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 304);
|
|
823
|
+
var BeginMfaEnrollmentRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 306);
|
|
824
|
+
var CompleteMfaEnrollmentRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 308);
|
|
825
|
+
var ListRelyingPartiesRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 316);
|
|
826
|
+
var GetRelyingPartyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 318);
|
|
827
|
+
var CreateRelyingPartyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 321);
|
|
828
|
+
var UpdateRelyingPartyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 323);
|
|
829
|
+
var DisableRelyingPartyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 325);
|
|
830
|
+
var RegisterCustomDomainRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 328);
|
|
831
|
+
var VerifyCustomDomainRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 330);
|
|
832
|
+
var DeleteCustomDomainRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 332);
|
|
833
|
+
var ListCustomDomainsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 336);
|
|
834
|
+
var ListCustomerSessionsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 339);
|
|
835
|
+
var RevokeCustomerSessionRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 341);
|
|
836
|
+
var ListRelyingPartyGrantsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 344);
|
|
837
|
+
var GrantRelyingPartyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 346);
|
|
838
|
+
var RevokeRelyingPartyGrantRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 348);
|
|
839
|
+
var RoleSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 350);
|
|
840
|
+
var ListRolesRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 351);
|
|
841
|
+
var GetRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 353);
|
|
842
|
+
var CreateRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 355);
|
|
843
|
+
var UpdateRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 357);
|
|
844
|
+
var DisableRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 359);
|
|
845
|
+
var RoleAssignmentSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 361);
|
|
846
|
+
var AssignRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 362);
|
|
847
|
+
var RevokeRoleAssignmentRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 364);
|
|
848
|
+
var ListRoleAssignmentsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 366);
|
|
849
|
+
var JoinWaitlistRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 369);
|
|
850
|
+
var JoinAdminWaitlistRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 373);
|
|
851
|
+
var ListWaitlistEntriesRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 375);
|
|
852
|
+
var ApproveWaitlistEntryRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 377);
|
|
853
|
+
var DenyWaitlistEntryRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 379);
|
|
835
854
|
var SignupModeSchema = /* @__PURE__ */ enumDesc2(file_identity_v1_identity, 4);
|
|
836
855
|
var SignupMode = /* @__PURE__ */ tsEnum2(SignupModeSchema);
|
|
837
856
|
var CapabilityRequestStatusSchema = /* @__PURE__ */ enumDesc2(file_identity_v1_identity, 11);
|
|
@@ -849,7 +868,7 @@ import { fileDesc as fileDesc4, messageDesc as messageDesc4 } from "@bufbuild/pr
|
|
|
849
868
|
var file_common_v1_access = /* @__PURE__ */ fileDesc4("ChZjb21tb24vdjEvYWNjZXNzLnByb3RvEgljb21tb24udjEiKgoLRmllbGRBY2Nlc3MSDAoEcmVhZBgBIAMoCRINCgV3cml0ZRgCIAMoCUI5WjdnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vY29tbW9uL3YxO2NvbW1vbnYxYgZwcm90bzM");
|
|
850
869
|
|
|
851
870
|
// ../../packages/proto-ts/src/models/v1/models_pb.js
|
|
852
|
-
var file_models_v1_models = /* @__PURE__ */ fileDesc5("ChZtb2RlbHMvdjEvbW9kZWxzLnByb3RvEgltb2RlbHMudjEiYQoSUmVsYXRpb25zaGlwQ29uZmlnEikKBGtpbmQYASABKA4yGy5tb2RlbHMudjEuUmVsYXRpb25zaGlwS2luZBIUCgdpbnZlcnNlGAIgASgJSACIAQFCCgoIX2ludmVyc2Ui0gUKBUZpZWxkEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgR0eXBlGAQgASgJEhAKCHJlcXVpcmVkGAUgASgIEhYKCWhlbHBfdGV4dBgGIAEoCUgAiAEBEhgKC3BsYWNlaG9sZGVyGAcgASgJSAGIAQESMgoNZGVmYXVsdF92YWx1ZRgIIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUgCiAEBEicKBmNvbmZpZxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFgoJaXRlbV90eXBlGAogASgJSAOIAQESFAoHc3RvcmFnZRgLIAEoCUgEiAEBEhoKDXRlbXBsYXRlX3pvbmUYDCABKAlIBYgBARIXCgp6b25lX29yZGVyGA0gASgFSAaIAQESNgoQcmVmZXJlbmNlX2ZpbHRlchgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIvCgp2YWxpZGF0aW9uGA8gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlSAiIAQESFgoJcXVlcnlhYmxlGBAgASgISAmIAQESJgoGYWNjZXNzGBEgASgLMhYuY29tbW9uLnYxLkZpZWxkQWNjZXNzEjgKDHJlbGF0aW9uc2hpcBgSIAEoCzIdLm1vZGVscy52MS5SZWxhdGlvbnNoaXBDb25maWdICogBAUIMCgpfaGVscF90ZXh0Qg4KDF9wbGFjZWhvbGRlckIQCg5fZGVmYXVsdF92YWx1ZUIMCgpfaXRlbV90eXBlQgoKCF9zdG9yYWdlQhAKDl90ZW1wbGF0ZV96b25lQg0KC196b25lX29yZGVyQhMKEV9yZWZlcmVuY2VfZmlsdGVyQg0KC192YWxpZGF0aW9uQgwKCl9xdWVyeWFibGVCDwoNX3JlbGF0aW9uc2hpcCJyCgxBY2Nlc3NDb25maWcSKgoLb3duZXJfcGxhbmUYASABKA4yFS5tb2RlbHMudjEuT3duZXJQbGFuZRIfChJkZWZhdWx0X3Zpc2liaWxpdHkYAiABKAlIAIgBAUIVChNfZGVmYXVsdF92aXNpYmlsaXR5IsIGCgtNb2RlbENvbmZpZxISCgp2ZXJzaW9uaW5nGAEgASgIEhIKCnB1Ymxpc2hpbmcYAiABKAgSEAoIdmFyaWFudHMYAyABKAgSDgoGaW5saW5lGAQgASgIEhgKC3BsdXJhbF9uYW1lGAcgASgJSACIAQESGAoLZGVzY3JpcHRpb24YCCABKAlIAYgBARIVCghjYXRlZ29yeRgJIAEoCUgCiAEBEhEKBGljb24YCiABKAlIA4gBARIaCg1kaXNwbGF5X2ZpZWxkGAsgASgJSASIAQESFQoNc3lzdGVtX2VudGl0eRgNIAEoCBIWCglkZWxldGFibGUYDiABKAhIBYgBARIVCghlZGl0YWJsZRgPIAEoCEgGiAEBEjUKD21ldGFkYXRhX3NjaGVtYRgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIrCgVob29rcxgRIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICIgBARIXCgpwbHVyYWxfa2V5GBIgASgJSAmIAQESLAoHbG9va3VwcxgTIAMoCzIbLm1vZGVscy52MS5Mb29rdXBEZWZpbml0aW9uEjkKDWNhY2hlX2NvbnRyb2wYFCABKAsyHS5tb2RlbHMudjEuQ2FjaGVDb250cm9sQ29uZmlnSAqIAQESLAoGYWNjZXNzGBUgASgLMhcubW9kZWxzLnYxLkFjY2Vzc0NvbmZpZ0gLiAEBEhEKCXNpbmdsZXRvbhgWIAEoCEIOCgxfcGx1cmFsX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgsKCV9jYXRlZ29yeUIHCgVfaWNvbkIQCg5fZGlzcGxheV9maWVsZEIMCgpfZGVsZXRhYmxlQgsKCV9lZGl0YWJsZUISChBfbWV0YWRhdGFfc2NoZW1hQggKBl9ob29rc0INCgtfcGx1cmFsX2tleUIQCg5fY2FjaGVfY29udHJvbEIJCgdfYWNjZXNzSgQIBRAGSgQIBhAHSgQIDBANSgQIFxAYUhBjdXN0b21lcl9jb250ZXh0Ug9jdXN0b21lcl9zY29wZWRSEW5hdHVyYWxfa2V5X2ZpZWxkUgdzaGFyaW5nIlIKEkNhY2hlQ29udHJvbENvbmZpZxIPCgdtYXhfYWdlGAEgASgFEisKBXNjb3BlGAIgASgOMhwubW9kZWxzLnYxLkNhY2hlQ29udHJvbFNjb3BlIj4KEExvb2t1cERlZmluaXRpb24SDgoGa2V5X2J5GAEgAygJEhEKBG5hbWUYAiABKAlIAIgBAUIHCgVfbmFtZSKxAQoRTW9kZWxDYXBhYmlsaXRpZXMSFAoMaXNfdmVyc2lvbmVkGAEgASgIEhYKDmlzX3B1Ymxpc2hhYmxlGAIgASgIEhQKDGhhc192YXJpYW50cxgDIAEoCBIqCgtvd25lcl9wbGFuZRgGIAEoDjIVLm1vZGVscy52MS5Pd25lclBsYW5lSgQIBBAFSgQIBRAGUg9jdXN0b21lcl9zY29wZWRSD3NoYXJpbmdfZW5hYmxlZCKFCAoFTW9kZWwSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSIAoGZmllbGRzGAQgAygLMhAubW9kZWxzLnYxLkZpZWxkEiYKBmNvbmZpZxgFIAEoCzIWLm1vZGVscy52MS5Nb2RlbENvbmZpZxIWCgljb25maWdfaWQYBiABKAlIAIgBARIyCgxjYXBhYmlsaXRpZXMYByABKAsyHC5tb2RlbHMudjEuTW9kZWxDYXBhYmlsaXRpZXMSHwoSY3VycmVudF92ZXJzaW9uX2lkGAggASgJSAGIAQESJQoYcHVibGlzaGVkX3ZlcnNpb25fbnVtYmVyGAkgASgFSAKIAQESEQoJdGVuYW50X2lkGAogASgJEhIKCnByb2plY3RfaWQYCyABKAkSFwoKY3JlYXRlZF9ieRgUIAEoCUgDiAEBEhcKCnVwZGF0ZWRfYnkYFSABKAlIBIgBARIuCgpjcmVhdGVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsChJsYXN0X3B1c2hlZF9maWVsZHMYKCADKAsyEC5tb2RlbHMudjEuRmllbGQSNwoObGFzdF9wdXNoZWRfYXQYKSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESIQoUcHVibGlzaGVkX3ZlcnNpb25faWQYKiABKAlIBogBARI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBgrIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIB4gBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GCwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgIiAEBEhcKCm93bmVyX2tpbmQYLiABKAlICYgBARIVCghvd25lcl9pZBgvIAEoCUgKiAEBEhIKCm92ZXJyaWRkZW4YMCABKAhCDAoKX2NvbmZpZ19pZEIVChNfY3VycmVudF92ZXJzaW9uX2lkQhsKGV9wdWJsaXNoZWRfdmVyc2lvbl9udW1iZXJCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCEQoPX2xhc3RfcHVzaGVkX2F0QhcKFV9wdWJsaXNoZWRfdmVyc2lvbl9pZEIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXRCDQoLX293bmVyX2tpbmRCCwoJX293bmVyX2lkSgQILRAuUg5zY2hlbWFfZHJpZnRlZCLCAgoMTW9kZWxWZXJzaW9uEgoKAmlkGAEgASgJEhAKCG1vZGVsX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEiAKBmZpZWxkcxgEIAMoCzIQLm1vZGVscy52MS5GaWVsZBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnki8QEKEkNyZWF0ZU1vZGVsUmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIgCgZmaWVsZHMYAyADKAsyEC5tb2RlbHMudjEuRmllbGQSKwoGY29uZmlnGAQgASgLMhYubW9kZWxzLnYxLk1vZGVsQ29uZmlnSACIAQESFgoJY29uZmlnX2lkGAUgASgJSAGIAQESHAoUdXBkYXRlX3B1c2hfc25hcHNob3QYBiABKAgSFQoIZ3JvdXBfaWQYByABKAlIAogBAUIJCgdfY29uZmlnQgwKCl9jb25maWdfaWRCCwoJX2dyb3VwX2lkIjYKE0NyZWF0ZU1vZGVsUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiHQoPR2V0TW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJIjMKEEdldE1vZGVsUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiIwoUR2V0TW9kZWxCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIjgKFUdldE1vZGVsQnlLZXlSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCKMAgoRTGlzdE1vZGVsc1JlcXVlc3QSEgoFYWZ0ZXIYBiABKAlIAIgBARITCgZiZWZvcmUYByABKAlIAYgBARISCgVmaXJzdBgIIAEoBUgCiAEBEhEKBGxhc3QYCSABKAVIA4gBARIrCgV3aGVyZRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RCCAoGX3doZXJlSgQIARACSgQIAhADSgQIAxAESgQIBBAFSgQIBRAGUghjYXRlZ29yeVIJY29uZmlnX2lkUgVsaW1pdFIGb2Zmc2V0UgZzZWFyY2gikQEKEkxpc3RNb2RlbHNSZXNwb25zZRIgCgZtb2RlbHMYASADKAsyEC5tb2RlbHMudjEuTW9kZWwSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIqECCg9Nb2RlbERlZmluaXRpb24SCgoCaWQYASABKAkSEgoKb3duZXJfa2luZBgCIAEoCRIWCg5sYXllcl9vd25lcl9pZBgDIAEoCRIRCgl0ZW5hbnRfaWQYBCABKAkSCwoDa2V5GAUgASgJEgwKBG5hbWUYBiABKAkSIAoGZmllbGRzGAcgAygLMhAubW9kZWxzLnYxLkZpZWxkEiYKBmNvbmZpZxgIIAEoCzIWLm1vZGVscy52MS5Nb2RlbENvbmZpZxIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLMAQobTGlzdE1vZGVsRGVmaW5pdGlvbnNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQESKwoFd2hlcmUYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QggKBl93aGVyZSKqAQocTGlzdE1vZGVsRGVmaW5pdGlvbnNSZXNwb25zZRIvCgtkZWZpbml0aW9ucxgBIAMoCzIaLm1vZGVscy52MS5Nb2RlbERlZmluaXRpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIvICChJVcGRhdGVNb2RlbFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEiAKBmZpZWxkcxgDIAMoCzIQLm1vZGVscy52MS5GaWVsZBIrCgZjb25maWcYBCABKAsyFi5tb2RlbHMudjEuTW9kZWxDb25maWdIAYgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBSABKAlIAogBARIVCg11cGRhdGVfZmllbGRzGAYgASgIEhwKFHVwZGF0ZV9wdXNoX3NuYXBzaG90GAcgASgIEhUKDXNuYXBzaG90X29ubHkYCCABKAgSHAoUYWxsb3dfbG9va3VwX3JlYnVpbGQYCSABKAgSIAoTZXhwZWN0ZWRfdmVyc2lvbl9pZBgKIAEoCUgDiAEBQgcKBV9uYW1lQgkKB19jb25maWdCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkIWChRfZXhwZWN0ZWRfdmVyc2lvbl9pZCI2ChNVcGRhdGVNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIigKGlJlbW92ZU1vZGVsT3ZlcnJpZGVSZXF1ZXN0EgoKAmlkGAEgASgJIj4KG1JlbW92ZU1vZGVsT3ZlcnJpZGVSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCIqChxEZWxldGVNb2RlbERlZmluaXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjAKHURlbGV0ZU1vZGVsRGVmaW5pdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi7wEKHFVwZGF0ZU1vZGVsRGVmaW5pdGlvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEiAKBmZpZWxkcxgDIAMoCzIQLm1vZGVscy52MS5GaWVsZBIrCgZjb25maWcYBCABKAsyFi5tb2RlbHMudjEuTW9kZWxDb25maWdIAYgBARIVCg11cGRhdGVfZmllbGRzGAUgASgIEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgGIAEoCUgCiAEBQgcKBV9uYW1lQgkKB19jb25maWdCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiJACh1VcGRhdGVNb2RlbERlZmluaXRpb25SZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCKZAQoZTW9kZWxFZmZlY3RpdmVDb25maWdFbnRyeRIQCghtb2RlbF9pZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRISCgpvd25lcl9raW5kGAQgASgJEhAKCG93bmVyX2lkGAUgASgJEhIKCm92ZXJyaWRkZW4YBiABKAgSFQoNZGVmaW5pdGlvbl9pZBgHIAEoCSJKCiBHZXRQcm9qZWN0RWZmZWN0aXZlQ29uZmlnUmVxdWVzdBIXCgpwcm9qZWN0X2lkGAEgASgJSACIAQFCDQoLX3Byb2plY3RfaWQiwAEKIUdldFByb2plY3RFZmZlY3RpdmVDb25maWdSZXNwb25zZRI0CgZtb2RlbHMYASADKAsyJC5tb2RlbHMudjEuTW9kZWxFZmZlY3RpdmVDb25maWdFbnRyeRIVCghncm91cF9pZBgCIAEoCUgAiAEBEhcKCmdyb3VwX25hbWUYAyABKAlIAYgBARIZChFvdmVycmlkZXNfYWxsb3dlZBgEIAEoCEILCglfZ3JvdXBfaWRCDQoLX2dyb3VwX25hbWUiIAoSRGVsZXRlTW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJIiYKE0RlbGV0ZU1vZGVsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJGChVEdXBsaWNhdGVNb2RlbFJlcXVlc3QSCgoCaWQYASABKAkSDwoHbmV3X2tleRgCIAEoCRIQCghuZXdfbmFtZRgDIAEoCSI5ChZEdXBsaWNhdGVNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIqQBChhMaXN0TW9kZWxWZXJzaW9uc1JlcXVlc3QSEAoIbW9kZWxfaWQYASABKAkSEgoFYWZ0ZXIYAiABKAlIAIgBARITCgZiZWZvcmUYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBEhEKBGxhc3QYBSABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QioQEKGUxpc3RNb2RlbFZlcnNpb25zUmVzcG9uc2USKQoIdmVyc2lvbnMYASADKAsyFy5tb2RlbHMudjEuTW9kZWxWZXJzaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyI+ChZHZXRNb2RlbFZlcnNpb25SZXF1ZXN0EhAKCG1vZGVsX2lkGAEgASgJEhIKCnZlcnNpb25faWQYAiABKAkiQwoXR2V0TW9kZWxWZXJzaW9uUmVzcG9uc2USKAoHdmVyc2lvbhgBIAEoCzIXLm1vZGVscy52MS5Nb2RlbFZlcnNpb24iQgoaUmVzdG9yZU1vZGVsVmVyc2lvblJlcXVlc3QSEAoIbW9kZWxfaWQYASABKAkSEgoKdmVyc2lvbl9pZBgCIAEoCSI+ChtSZXN0b3JlTW9kZWxWZXJzaW9uUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiYwoURGVwcmVjYXRlZEZpZWxkVG91Y2gSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEQoJbW9kZWxfa2V5GAMgASgJEhEKCWZpZWxkX2tleRgEIAEoCSJWCiJNYXJrRGVwcmVjYXRlZEZpZWxkc1F1ZXJpZWRSZXF1ZXN0EjAKB3RvdWNoZXMYASADKAsyHy5tb2RlbHMudjEuRGVwcmVjYXRlZEZpZWxkVG91Y2giNgojTWFya0RlcHJlY2F0ZWRGaWVsZHNRdWVyaWVkUmVzcG9uc2USDwoHdXBkYXRlZBgBIAEoBSIhChNQdWJsaXNoTW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJIm0KFFB1Ymxpc2hNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIiMKFFB1Ymxpc2hNb2RlbHNSZXF1ZXN0EgsKA2lkcxgBIAMoCSJvChVQdWJsaXNoTW9kZWxzUmVzcG9uc2USIAoGbW9kZWxzGAEgAygLMhAubW9kZWxzLnYxLk1vZGVsEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIiMKFVVucHVibGlzaE1vZGVsUmVxdWVzdBIKCgJpZBgBIAEoCSI5ChZVbnB1Ymxpc2hNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIioKHEdldE1vZGVsUHVibGlzaFN0YXR1c1JlcXVlc3QSCgoCaWQYASABKAkiSgodR2V0TW9kZWxQdWJsaXNoU3RhdHVzUmVzcG9uc2USKQoGc3RhdHVzGAEgASgLMhkucHVibGlzaC52MS5QdWJsaXNoU3RhdHVzIiEKE0Rpc2NhcmREcmFmdFJlcXVlc3QSCgoCaWQYASABKAkiNwoURGlzY2FyZERyYWZ0UmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwioQEKG1NjaGVkdWxlTW9kZWxQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCI/ChxTY2hlZHVsZU1vZGVsUHVibGlzaFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIjAKIkNhbmNlbFNjaGVkdWxlZE1vZGVsUHVibGlzaFJlcXVlc3QSCgoCaWQYASABKAkiRgojQ2FuY2VsU2NoZWR1bGVkTW9kZWxQdWJsaXNoUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwqkgMKCUZpZWxkVHlwZRIaChZGSUVMRF9UWVBFX1VOU1BFQ0lGSUVEEAASEwoPRklFTERfVFlQRV9URVhUEAESFQoRRklFTERfVFlQRV9OVU1CRVIQAhIWChJGSUVMRF9UWVBFX0JPT0xFQU4QAxITCg9GSUVMRF9UWVBFX0RBVEUQBBIVChFGSUVMRF9UWVBFX1NFTEVDVBAFEhMKD0ZJRUxEX1RZUEVfSlNPThAGEhMKD0ZJRUxEX1RZUEVfTElTVBAHEhQKEEZJRUxEX1RZUEVfTU9ERUwQCBIYChRGSUVMRF9UWVBFX1JFRkVSRU5DRRAJEhMKD0ZJRUxEX1RZUEVfRklMRRAKEhQKEEZJRUxEX1RZUEVfSU1BR0UQCxIUChBGSUVMRF9UWVBFX1ZJREVPEAwSFwoTRklFTERfVFlQRV9GTEVYSUJMRRANEhMKD0ZJRUxEX1RZUEVfRU5VTRAOEhcKE0ZJRUxEX1RZUEVfUklDSFRFWFQQDxIXChNGSUVMRF9UWVBFX0dFT1BPSU5UEBAqowEKEFJlbGF0aW9uc2hpcEtpbmQSIQodUkVMQVRJT05TSElQX0tJTkRfVU5TUEVDSUZJRUQQABIhCh1SRUxBVElPTlNISVBfS0lORF9BU1NPQ0lBVElPThABEiEKHVJFTEFUSU9OU0hJUF9LSU5EX0NPTVBPU0lUSU9OEAISJgoiUkVMQVRJT05TSElQX0tJTkRfQVNTT0NJQVRJT05fUkVBRBADKnMKCk93bmVyUGxhbmUSGwoXT1dORVJfUExBTkVfVU5TUEVDSUZJRUQQABIYChRPV05FUl9QTEFORV9DVVNUT01FUhABEhUKEU9XTkVSX1BMQU5FX0FETUlOEAISFwoTT1dORVJfUExBTkVfUFJPSkVDVBADKpsBChFDYWNoZUNvbnRyb2xTY29wZRIjCh9DQUNIRV9DT05UUk9MX1NDT1BFX1VOU1BFQ0lGSUVEEAASHgoaQ0FDSEVfQ09OVFJPTF9TQ09QRV9QVUJMSUMQARIfChtDQUNIRV9DT05UUk9MX1NDT1BFX1BSSVZBVEUQAhIgChxDQUNIRV9DT05UUk9MX1NDT1BFX05PX0NBQ0hFEAMykREKDU1vZGVsc1NlcnZpY2USQwoIR2V0TW9kZWwSGi5tb2RlbHMudjEuR2V0TW9kZWxSZXF1ZXN0GhsubW9kZWxzLnYxLkdldE1vZGVsUmVzcG9uc2USUgoNR2V0TW9kZWxCeUtleRIfLm1vZGVscy52MS5HZXRNb2RlbEJ5S2V5UmVxdWVzdBogLm1vZGVscy52MS5HZXRNb2RlbEJ5S2V5UmVzcG9uc2USSQoKTGlzdE1vZGVscxIcLm1vZGVscy52MS5MaXN0TW9kZWxzUmVxdWVzdBodLm1vZGVscy52MS5MaXN0TW9kZWxzUmVzcG9uc2USZwoUTGlzdE1vZGVsRGVmaW5pdGlvbnMSJi5tb2RlbHMudjEuTGlzdE1vZGVsRGVmaW5pdGlvbnNSZXF1ZXN0GicubW9kZWxzLnYxLkxpc3RNb2RlbERlZmluaXRpb25zUmVzcG9uc2USTAoLQ3JlYXRlTW9kZWwSHS5tb2RlbHMudjEuQ3JlYXRlTW9kZWxSZXF1ZXN0Gh4ubW9kZWxzLnYxLkNyZWF0ZU1vZGVsUmVzcG9uc2USTAoLVXBkYXRlTW9kZWwSHS5tb2RlbHMudjEuVXBkYXRlTW9kZWxSZXF1ZXN0Gh4ubW9kZWxzLnYxLlVwZGF0ZU1vZGVsUmVzcG9uc2USTAoLRGVsZXRlTW9kZWwSHS5tb2RlbHMudjEuRGVsZXRlTW9kZWxSZXF1ZXN0Gh4ubW9kZWxzLnYxLkRlbGV0ZU1vZGVsUmVzcG9uc2USVQoORHVwbGljYXRlTW9kZWwSIC5tb2RlbHMudjEuRHVwbGljYXRlTW9kZWxSZXF1ZXN0GiEubW9kZWxzLnYxLkR1cGxpY2F0ZU1vZGVsUmVzcG9uc2USZAoTUmVtb3ZlTW9kZWxPdmVycmlkZRIlLm1vZGVscy52MS5SZW1vdmVNb2RlbE92ZXJyaWRlUmVxdWVzdBomLm1vZGVscy52MS5SZW1vdmVNb2RlbE92ZXJyaWRlUmVzcG9uc2USagoVRGVsZXRlTW9kZWxEZWZpbml0aW9uEicubW9kZWxzLnYxLkRlbGV0ZU1vZGVsRGVmaW5pdGlvblJlcXVlc3QaKC5tb2RlbHMudjEuRGVsZXRlTW9kZWxEZWZpbml0aW9uUmVzcG9uc2USagoVVXBkYXRlTW9kZWxEZWZpbml0aW9uEicubW9kZWxzLnYxLlVwZGF0ZU1vZGVsRGVmaW5pdGlvblJlcXVlc3QaKC5tb2RlbHMudjEuVXBkYXRlTW9kZWxEZWZpbml0aW9uUmVzcG9uc2USdgoZR2V0UHJvamVjdEVmZmVjdGl2ZUNvbmZpZxIrLm1vZGVscy52MS5HZXRQcm9qZWN0RWZmZWN0aXZlQ29uZmlnUmVxdWVzdBosLm1vZGVscy52MS5HZXRQcm9qZWN0RWZmZWN0aXZlQ29uZmlnUmVzcG9uc2USWAoPR2V0TW9kZWxWZXJzaW9uEiEubW9kZWxzLnYxLkdldE1vZGVsVmVyc2lvblJlcXVlc3QaIi5tb2RlbHMudjEuR2V0TW9kZWxWZXJzaW9uUmVzcG9uc2USXgoRTGlzdE1vZGVsVmVyc2lvbnMSIy5tb2RlbHMudjEuTGlzdE1vZGVsVmVyc2lvbnNSZXF1ZXN0GiQubW9kZWxzLnYxLkxpc3RNb2RlbFZlcnNpb25zUmVzcG9uc2USZAoTUmVzdG9yZU1vZGVsVmVyc2lvbhIlLm1vZGVscy52MS5SZXN0b3JlTW9kZWxWZXJzaW9uUmVxdWVzdBomLm1vZGVscy52MS5SZXN0b3JlTW9kZWxWZXJzaW9uUmVzcG9uc2USTwoMUHVibGlzaE1vZGVsEh4ubW9kZWxzLnYxLlB1Ymxpc2hNb2RlbFJlcXVlc3QaHy5tb2RlbHMudjEuUHVibGlzaE1vZGVsUmVzcG9uc2USUgoNUHVibGlzaE1vZGVscxIfLm1vZGVscy52MS5QdWJsaXNoTW9kZWxzUmVxdWVzdBogLm1vZGVscy52MS5QdWJsaXNoTW9kZWxzUmVzcG9uc2USVQoOVW5wdWJsaXNoTW9kZWwSIC5tb2RlbHMudjEuVW5wdWJsaXNoTW9kZWxSZXF1ZXN0GiEubW9kZWxzLnYxLlVucHVibGlzaE1vZGVsUmVzcG9uc2USagoVR2V0TW9kZWxQdWJsaXNoU3RhdHVzEicubW9kZWxzLnYxLkdldE1vZGVsUHVibGlzaFN0YXR1c1JlcXVlc3QaKC5tb2RlbHMudjEuR2V0TW9kZWxQdWJsaXNoU3RhdHVzUmVzcG9uc2USTwoMRGlzY2FyZERyYWZ0Eh4ubW9kZWxzLnYxLkRpc2NhcmREcmFmdFJlcXVlc3QaHy5tb2RlbHMudjEuRGlzY2FyZERyYWZ0UmVzcG9uc2USZwoUU2NoZWR1bGVNb2RlbFB1Ymxpc2gSJi5tb2RlbHMudjEuU2NoZWR1bGVNb2RlbFB1Ymxpc2hSZXF1ZXN0GicubW9kZWxzLnYxLlNjaGVkdWxlTW9kZWxQdWJsaXNoUmVzcG9uc2USfAobQ2FuY2VsU2NoZWR1bGVkTW9kZWxQdWJsaXNoEi0ubW9kZWxzLnYxLkNhbmNlbFNjaGVkdWxlZE1vZGVsUHVibGlzaFJlcXVlc3QaLi5tb2RlbHMudjEuQ2FuY2VsU2NoZWR1bGVkTW9kZWxQdWJsaXNoUmVzcG9uc2USfAobTWFya0RlcHJlY2F0ZWRGaWVsZHNRdWVyaWVkEi0ubW9kZWxzLnYxLk1hcmtEZXByZWNhdGVkRmllbGRzUXVlcmllZFJlcXVlc3QaLi5tb2RlbHMudjEuTWFya0RlcHJlY2F0ZWRGaWVsZHNRdWVyaWVkUmVzcG9uc2VCOVo3Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL21vZGVscy92MTttb2RlbHN2MWIGcHJvdG8z", [file_google_protobuf_struct2, file_google_protobuf_timestamp3, file_publish_v1_publish, file_common_v1_pagination, file_common_v1_access]);
|
|
871
|
+
var file_models_v1_models = /* @__PURE__ */ fileDesc5("ChZtb2RlbHMvdjEvbW9kZWxzLnByb3RvEgltb2RlbHMudjEiYQoSUmVsYXRpb25zaGlwQ29uZmlnEikKBGtpbmQYASABKA4yGy5tb2RlbHMudjEuUmVsYXRpb25zaGlwS2luZBIUCgdpbnZlcnNlGAIgASgJSACIAQFCCgoIX2ludmVyc2Ui8AUKBUZpZWxkEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgR0eXBlGAQgASgJEhAKCHJlcXVpcmVkGAUgASgIEhYKCWhlbHBfdGV4dBgGIAEoCUgAiAEBEhgKC3BsYWNlaG9sZGVyGAcgASgJSAGIAQESMgoNZGVmYXVsdF92YWx1ZRgIIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUgCiAEBEicKBmNvbmZpZxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFgoJaXRlbV90eXBlGAogASgJSAOIAQESFAoHc3RvcmFnZRgLIAEoCUgEiAEBEhoKDXRlbXBsYXRlX3pvbmUYDCABKAlIBYgBARIXCgp6b25lX29yZGVyGA0gASgFSAaIAQESNgoQcmVmZXJlbmNlX2ZpbHRlchgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIvCgp2YWxpZGF0aW9uGA8gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlSAiIAQESFgoJcXVlcnlhYmxlGBAgASgISAmIAQESJgoGYWNjZXNzGBEgASgLMhYuY29tbW9uLnYxLkZpZWxkQWNjZXNzEjgKDHJlbGF0aW9uc2hpcBgSIAEoCzIdLm1vZGVscy52MS5SZWxhdGlvbnNoaXBDb25maWdICogBARISCgVlbWJlZBgTIAEoCEgLiAEBQgwKCl9oZWxwX3RleHRCDgoMX3BsYWNlaG9sZGVyQhAKDl9kZWZhdWx0X3ZhbHVlQgwKCl9pdGVtX3R5cGVCCgoIX3N0b3JhZ2VCEAoOX3RlbXBsYXRlX3pvbmVCDQoLX3pvbmVfb3JkZXJCEwoRX3JlZmVyZW5jZV9maWx0ZXJCDQoLX3ZhbGlkYXRpb25CDAoKX3F1ZXJ5YWJsZUIPCg1fcmVsYXRpb25zaGlwQggKBl9lbWJlZCJyCgxBY2Nlc3NDb25maWcSKgoLb3duZXJfcGxhbmUYASABKA4yFS5tb2RlbHMudjEuT3duZXJQbGFuZRIfChJkZWZhdWx0X3Zpc2liaWxpdHkYAiABKAlIAIgBAUIVChNfZGVmYXVsdF92aXNpYmlsaXR5IukGCgtNb2RlbENvbmZpZxISCgp2ZXJzaW9uaW5nGAEgASgIEhIKCnB1Ymxpc2hpbmcYAiABKAgSEAoIdmFyaWFudHMYAyABKAgSDgoGaW5saW5lGAQgASgIEhgKC3BsdXJhbF9uYW1lGAcgASgJSACIAQESGAoLZGVzY3JpcHRpb24YCCABKAlIAYgBARIVCghjYXRlZ29yeRgJIAEoCUgCiAEBEhEKBGljb24YCiABKAlIA4gBARIaCg1kaXNwbGF5X2ZpZWxkGAsgASgJSASIAQESFQoNc3lzdGVtX2VudGl0eRgNIAEoCBIWCglkZWxldGFibGUYDiABKAhIBYgBARIVCghlZGl0YWJsZRgPIAEoCEgGiAEBEjUKD21ldGFkYXRhX3NjaGVtYRgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIrCgVob29rcxgRIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICIgBARIXCgpwbHVyYWxfa2V5GBIgASgJSAmIAQESLAoHbG9va3VwcxgTIAMoCzIbLm1vZGVscy52MS5Mb29rdXBEZWZpbml0aW9uEjkKDWNhY2hlX2NvbnRyb2wYFCABKAsyHS5tb2RlbHMudjEuQ2FjaGVDb250cm9sQ29uZmlnSAqIAQESLAoGYWNjZXNzGBUgASgLMhcubW9kZWxzLnYxLkFjY2Vzc0NvbmZpZ0gLiAEBEhEKCXNpbmdsZXRvbhgWIAEoCBISCgplbWJlZGRpbmdzGBggASgIEhEKCWhpZXJhcmNoeRgZIAEoCEIOCgxfcGx1cmFsX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgsKCV9jYXRlZ29yeUIHCgVfaWNvbkIQCg5fZGlzcGxheV9maWVsZEIMCgpfZGVsZXRhYmxlQgsKCV9lZGl0YWJsZUISChBfbWV0YWRhdGFfc2NoZW1hQggKBl9ob29rc0INCgtfcGx1cmFsX2tleUIQCg5fY2FjaGVfY29udHJvbEIJCgdfYWNjZXNzSgQIBRAGSgQIBhAHSgQIDBANSgQIFxAYUhBjdXN0b21lcl9jb250ZXh0Ug9jdXN0b21lcl9zY29wZWRSEW5hdHVyYWxfa2V5X2ZpZWxkUgdzaGFyaW5nIlIKEkNhY2hlQ29udHJvbENvbmZpZxIPCgdtYXhfYWdlGAEgASgFEisKBXNjb3BlGAIgASgOMhwubW9kZWxzLnYxLkNhY2hlQ29udHJvbFNjb3BlIj4KEExvb2t1cERlZmluaXRpb24SDgoGa2V5X2J5GAEgAygJEhEKBG5hbWUYAiABKAlIAIgBAUIHCgVfbmFtZSKxAQoRTW9kZWxDYXBhYmlsaXRpZXMSFAoMaXNfdmVyc2lvbmVkGAEgASgIEhYKDmlzX3B1Ymxpc2hhYmxlGAIgASgIEhQKDGhhc192YXJpYW50cxgDIAEoCBIqCgtvd25lcl9wbGFuZRgGIAEoDjIVLm1vZGVscy52MS5Pd25lclBsYW5lSgQIBBAFSgQIBRAGUg9jdXN0b21lcl9zY29wZWRSD3NoYXJpbmdfZW5hYmxlZCKFCAoFTW9kZWwSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSIAoGZmllbGRzGAQgAygLMhAubW9kZWxzLnYxLkZpZWxkEiYKBmNvbmZpZxgFIAEoCzIWLm1vZGVscy52MS5Nb2RlbENvbmZpZxIWCgljb25maWdfaWQYBiABKAlIAIgBARIyCgxjYXBhYmlsaXRpZXMYByABKAsyHC5tb2RlbHMudjEuTW9kZWxDYXBhYmlsaXRpZXMSHwoSY3VycmVudF92ZXJzaW9uX2lkGAggASgJSAGIAQESJQoYcHVibGlzaGVkX3ZlcnNpb25fbnVtYmVyGAkgASgFSAKIAQESEQoJdGVuYW50X2lkGAogASgJEhIKCnByb2plY3RfaWQYCyABKAkSFwoKY3JlYXRlZF9ieRgUIAEoCUgDiAEBEhcKCnVwZGF0ZWRfYnkYFSABKAlIBIgBARIuCgpjcmVhdGVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsChJsYXN0X3B1c2hlZF9maWVsZHMYKCADKAsyEC5tb2RlbHMudjEuRmllbGQSNwoObGFzdF9wdXNoZWRfYXQYKSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESIQoUcHVibGlzaGVkX3ZlcnNpb25faWQYKiABKAlIBogBARI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBgrIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIB4gBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GCwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgIiAEBEhcKCm93bmVyX2tpbmQYLiABKAlICYgBARIVCghvd25lcl9pZBgvIAEoCUgKiAEBEhIKCm92ZXJyaWRkZW4YMCABKAhCDAoKX2NvbmZpZ19pZEIVChNfY3VycmVudF92ZXJzaW9uX2lkQhsKGV9wdWJsaXNoZWRfdmVyc2lvbl9udW1iZXJCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCEQoPX2xhc3RfcHVzaGVkX2F0QhcKFV9wdWJsaXNoZWRfdmVyc2lvbl9pZEIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXRCDQoLX293bmVyX2tpbmRCCwoJX293bmVyX2lkSgQILRAuUg5zY2hlbWFfZHJpZnRlZCLCAgoMTW9kZWxWZXJzaW9uEgoKAmlkGAEgASgJEhAKCG1vZGVsX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEiAKBmZpZWxkcxgEIAMoCzIQLm1vZGVscy52MS5GaWVsZBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnki8QEKEkNyZWF0ZU1vZGVsUmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIgCgZmaWVsZHMYAyADKAsyEC5tb2RlbHMudjEuRmllbGQSKwoGY29uZmlnGAQgASgLMhYubW9kZWxzLnYxLk1vZGVsQ29uZmlnSACIAQESFgoJY29uZmlnX2lkGAUgASgJSAGIAQESHAoUdXBkYXRlX3B1c2hfc25hcHNob3QYBiABKAgSFQoIZ3JvdXBfaWQYByABKAlIAogBAUIJCgdfY29uZmlnQgwKCl9jb25maWdfaWRCCwoJX2dyb3VwX2lkIjYKE0NyZWF0ZU1vZGVsUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiHQoPR2V0TW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJIjMKEEdldE1vZGVsUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiIwoUR2V0TW9kZWxCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIjgKFUdldE1vZGVsQnlLZXlSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCKMAgoRTGlzdE1vZGVsc1JlcXVlc3QSEgoFYWZ0ZXIYBiABKAlIAIgBARITCgZiZWZvcmUYByABKAlIAYgBARISCgVmaXJzdBgIIAEoBUgCiAEBEhEKBGxhc3QYCSABKAVIA4gBARIrCgV3aGVyZRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RCCAoGX3doZXJlSgQIARACSgQIAhADSgQIAxAESgQIBBAFSgQIBRAGUghjYXRlZ29yeVIJY29uZmlnX2lkUgVsaW1pdFIGb2Zmc2V0UgZzZWFyY2gikQEKEkxpc3RNb2RlbHNSZXNwb25zZRIgCgZtb2RlbHMYASADKAsyEC5tb2RlbHMudjEuTW9kZWwSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIqECCg9Nb2RlbERlZmluaXRpb24SCgoCaWQYASABKAkSEgoKb3duZXJfa2luZBgCIAEoCRIWCg5sYXllcl9vd25lcl9pZBgDIAEoCRIRCgl0ZW5hbnRfaWQYBCABKAkSCwoDa2V5GAUgASgJEgwKBG5hbWUYBiABKAkSIAoGZmllbGRzGAcgAygLMhAubW9kZWxzLnYxLkZpZWxkEiYKBmNvbmZpZxgIIAEoCzIWLm1vZGVscy52MS5Nb2RlbENvbmZpZxIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLMAQobTGlzdE1vZGVsRGVmaW5pdGlvbnNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQESKwoFd2hlcmUYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QggKBl93aGVyZSKqAQocTGlzdE1vZGVsRGVmaW5pdGlvbnNSZXNwb25zZRIvCgtkZWZpbml0aW9ucxgBIAMoCzIaLm1vZGVscy52MS5Nb2RlbERlZmluaXRpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIvICChJVcGRhdGVNb2RlbFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEiAKBmZpZWxkcxgDIAMoCzIQLm1vZGVscy52MS5GaWVsZBIrCgZjb25maWcYBCABKAsyFi5tb2RlbHMudjEuTW9kZWxDb25maWdIAYgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBSABKAlIAogBARIVCg11cGRhdGVfZmllbGRzGAYgASgIEhwKFHVwZGF0ZV9wdXNoX3NuYXBzaG90GAcgASgIEhUKDXNuYXBzaG90X29ubHkYCCABKAgSHAoUYWxsb3dfbG9va3VwX3JlYnVpbGQYCSABKAgSIAoTZXhwZWN0ZWRfdmVyc2lvbl9pZBgKIAEoCUgDiAEBQgcKBV9uYW1lQgkKB19jb25maWdCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkIWChRfZXhwZWN0ZWRfdmVyc2lvbl9pZCI2ChNVcGRhdGVNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIigKGlJlbW92ZU1vZGVsT3ZlcnJpZGVSZXF1ZXN0EgoKAmlkGAEgASgJIj4KG1JlbW92ZU1vZGVsT3ZlcnJpZGVSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCIqChxEZWxldGVNb2RlbERlZmluaXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjAKHURlbGV0ZU1vZGVsRGVmaW5pdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi7wEKHFVwZGF0ZU1vZGVsRGVmaW5pdGlvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEiAKBmZpZWxkcxgDIAMoCzIQLm1vZGVscy52MS5GaWVsZBIrCgZjb25maWcYBCABKAsyFi5tb2RlbHMudjEuTW9kZWxDb25maWdIAYgBARIVCg11cGRhdGVfZmllbGRzGAUgASgIEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgGIAEoCUgCiAEBQgcKBV9uYW1lQgkKB19jb25maWdCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiJACh1VcGRhdGVNb2RlbERlZmluaXRpb25SZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCKZAQoZTW9kZWxFZmZlY3RpdmVDb25maWdFbnRyeRIQCghtb2RlbF9pZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRISCgpvd25lcl9raW5kGAQgASgJEhAKCG93bmVyX2lkGAUgASgJEhIKCm92ZXJyaWRkZW4YBiABKAgSFQoNZGVmaW5pdGlvbl9pZBgHIAEoCSJKCiBHZXRQcm9qZWN0RWZmZWN0aXZlQ29uZmlnUmVxdWVzdBIXCgpwcm9qZWN0X2lkGAEgASgJSACIAQFCDQoLX3Byb2plY3RfaWQiwAEKIUdldFByb2plY3RFZmZlY3RpdmVDb25maWdSZXNwb25zZRI0CgZtb2RlbHMYASADKAsyJC5tb2RlbHMudjEuTW9kZWxFZmZlY3RpdmVDb25maWdFbnRyeRIVCghncm91cF9pZBgCIAEoCUgAiAEBEhcKCmdyb3VwX25hbWUYAyABKAlIAYgBARIZChFvdmVycmlkZXNfYWxsb3dlZBgEIAEoCEILCglfZ3JvdXBfaWRCDQoLX2dyb3VwX25hbWUiIAoSRGVsZXRlTW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJIiYKE0RlbGV0ZU1vZGVsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJGChVEdXBsaWNhdGVNb2RlbFJlcXVlc3QSCgoCaWQYASABKAkSDwoHbmV3X2tleRgCIAEoCRIQCghuZXdfbmFtZRgDIAEoCSI5ChZEdXBsaWNhdGVNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIqQBChhMaXN0TW9kZWxWZXJzaW9uc1JlcXVlc3QSEAoIbW9kZWxfaWQYASABKAkSEgoFYWZ0ZXIYAiABKAlIAIgBARITCgZiZWZvcmUYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBEhEKBGxhc3QYBSABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QioQEKGUxpc3RNb2RlbFZlcnNpb25zUmVzcG9uc2USKQoIdmVyc2lvbnMYASADKAsyFy5tb2RlbHMudjEuTW9kZWxWZXJzaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyI+ChZHZXRNb2RlbFZlcnNpb25SZXF1ZXN0EhAKCG1vZGVsX2lkGAEgASgJEhIKCnZlcnNpb25faWQYAiABKAkiQwoXR2V0TW9kZWxWZXJzaW9uUmVzcG9uc2USKAoHdmVyc2lvbhgBIAEoCzIXLm1vZGVscy52MS5Nb2RlbFZlcnNpb24iQgoaUmVzdG9yZU1vZGVsVmVyc2lvblJlcXVlc3QSEAoIbW9kZWxfaWQYASABKAkSEgoKdmVyc2lvbl9pZBgCIAEoCSI+ChtSZXN0b3JlTW9kZWxWZXJzaW9uUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiYwoURGVwcmVjYXRlZEZpZWxkVG91Y2gSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEQoJbW9kZWxfa2V5GAMgASgJEhEKCWZpZWxkX2tleRgEIAEoCSJWCiJNYXJrRGVwcmVjYXRlZEZpZWxkc1F1ZXJpZWRSZXF1ZXN0EjAKB3RvdWNoZXMYASADKAsyHy5tb2RlbHMudjEuRGVwcmVjYXRlZEZpZWxkVG91Y2giNgojTWFya0RlcHJlY2F0ZWRGaWVsZHNRdWVyaWVkUmVzcG9uc2USDwoHdXBkYXRlZBgBIAEoBSIhChNQdWJsaXNoTW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJIm0KFFB1Ymxpc2hNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIiMKFFB1Ymxpc2hNb2RlbHNSZXF1ZXN0EgsKA2lkcxgBIAMoCSJvChVQdWJsaXNoTW9kZWxzUmVzcG9uc2USIAoGbW9kZWxzGAEgAygLMhAubW9kZWxzLnYxLk1vZGVsEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIiMKFVVucHVibGlzaE1vZGVsUmVxdWVzdBIKCgJpZBgBIAEoCSI5ChZVbnB1Ymxpc2hNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIioKHEdldE1vZGVsUHVibGlzaFN0YXR1c1JlcXVlc3QSCgoCaWQYASABKAkiSgodR2V0TW9kZWxQdWJsaXNoU3RhdHVzUmVzcG9uc2USKQoGc3RhdHVzGAEgASgLMhkucHVibGlzaC52MS5QdWJsaXNoU3RhdHVzIiEKE0Rpc2NhcmREcmFmdFJlcXVlc3QSCgoCaWQYASABKAkiNwoURGlzY2FyZERyYWZ0UmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwioQEKG1NjaGVkdWxlTW9kZWxQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCI/ChxTY2hlZHVsZU1vZGVsUHVibGlzaFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIjAKIkNhbmNlbFNjaGVkdWxlZE1vZGVsUHVibGlzaFJlcXVlc3QSCgoCaWQYASABKAkiRgojQ2FuY2VsU2NoZWR1bGVkTW9kZWxQdWJsaXNoUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwqqAMKCUZpZWxkVHlwZRIaChZGSUVMRF9UWVBFX1VOU1BFQ0lGSUVEEAASEwoPRklFTERfVFlQRV9URVhUEAESFQoRRklFTERfVFlQRV9OVU1CRVIQAhIWChJGSUVMRF9UWVBFX0JPT0xFQU4QAxITCg9GSUVMRF9UWVBFX0RBVEUQBBIVChFGSUVMRF9UWVBFX1NFTEVDVBAFEhMKD0ZJRUxEX1RZUEVfSlNPThAGEhMKD0ZJRUxEX1RZUEVfTElTVBAHEhQKEEZJRUxEX1RZUEVfTU9ERUwQCBIYChRGSUVMRF9UWVBFX1JFRkVSRU5DRRAJEhMKD0ZJRUxEX1RZUEVfRklMRRAKEhQKEEZJRUxEX1RZUEVfSU1BR0UQCxIUChBGSUVMRF9UWVBFX1ZJREVPEAwSFwoTRklFTERfVFlQRV9GTEVYSUJMRRANEhMKD0ZJRUxEX1RZUEVfRU5VTRAOEhcKE0ZJRUxEX1RZUEVfUklDSFRFWFQQDxIXChNGSUVMRF9UWVBFX0dFT1BPSU5UEBASFAoQRklFTERfVFlQRV9QUk9TRRARKqMBChBSZWxhdGlvbnNoaXBLaW5kEiEKHVJFTEFUSU9OU0hJUF9LSU5EX1VOU1BFQ0lGSUVEEAASIQodUkVMQVRJT05TSElQX0tJTkRfQVNTT0NJQVRJT04QARIhCh1SRUxBVElPTlNISVBfS0lORF9DT01QT1NJVElPThACEiYKIlJFTEFUSU9OU0hJUF9LSU5EX0FTU09DSUFUSU9OX1JFQUQQAypzCgpPd25lclBsYW5lEhsKF09XTkVSX1BMQU5FX1VOU1BFQ0lGSUVEEAASGAoUT1dORVJfUExBTkVfQ1VTVE9NRVIQARIVChFPV05FUl9QTEFORV9BRE1JThACEhcKE09XTkVSX1BMQU5FX1BST0pFQ1QQAyqbAQoRQ2FjaGVDb250cm9sU2NvcGUSIwofQ0FDSEVfQ09OVFJPTF9TQ09QRV9VTlNQRUNJRklFRBAAEh4KGkNBQ0hFX0NPTlRST0xfU0NPUEVfUFVCTElDEAESHwobQ0FDSEVfQ09OVFJPTF9TQ09QRV9QUklWQVRFEAISIAocQ0FDSEVfQ09OVFJPTF9TQ09QRV9OT19DQUNIRRADMpERCg1Nb2RlbHNTZXJ2aWNlEkMKCEdldE1vZGVsEhoubW9kZWxzLnYxLkdldE1vZGVsUmVxdWVzdBobLm1vZGVscy52MS5HZXRNb2RlbFJlc3BvbnNlElIKDUdldE1vZGVsQnlLZXkSHy5tb2RlbHMudjEuR2V0TW9kZWxCeUtleVJlcXVlc3QaIC5tb2RlbHMudjEuR2V0TW9kZWxCeUtleVJlc3BvbnNlEkkKCkxpc3RNb2RlbHMSHC5tb2RlbHMudjEuTGlzdE1vZGVsc1JlcXVlc3QaHS5tb2RlbHMudjEuTGlzdE1vZGVsc1Jlc3BvbnNlEmcKFExpc3RNb2RlbERlZmluaXRpb25zEiYubW9kZWxzLnYxLkxpc3RNb2RlbERlZmluaXRpb25zUmVxdWVzdBonLm1vZGVscy52MS5MaXN0TW9kZWxEZWZpbml0aW9uc1Jlc3BvbnNlEkwKC0NyZWF0ZU1vZGVsEh0ubW9kZWxzLnYxLkNyZWF0ZU1vZGVsUmVxdWVzdBoeLm1vZGVscy52MS5DcmVhdGVNb2RlbFJlc3BvbnNlEkwKC1VwZGF0ZU1vZGVsEh0ubW9kZWxzLnYxLlVwZGF0ZU1vZGVsUmVxdWVzdBoeLm1vZGVscy52MS5VcGRhdGVNb2RlbFJlc3BvbnNlEkwKC0RlbGV0ZU1vZGVsEh0ubW9kZWxzLnYxLkRlbGV0ZU1vZGVsUmVxdWVzdBoeLm1vZGVscy52MS5EZWxldGVNb2RlbFJlc3BvbnNlElUKDkR1cGxpY2F0ZU1vZGVsEiAubW9kZWxzLnYxLkR1cGxpY2F0ZU1vZGVsUmVxdWVzdBohLm1vZGVscy52MS5EdXBsaWNhdGVNb2RlbFJlc3BvbnNlEmQKE1JlbW92ZU1vZGVsT3ZlcnJpZGUSJS5tb2RlbHMudjEuUmVtb3ZlTW9kZWxPdmVycmlkZVJlcXVlc3QaJi5tb2RlbHMudjEuUmVtb3ZlTW9kZWxPdmVycmlkZVJlc3BvbnNlEmoKFURlbGV0ZU1vZGVsRGVmaW5pdGlvbhInLm1vZGVscy52MS5EZWxldGVNb2RlbERlZmluaXRpb25SZXF1ZXN0GigubW9kZWxzLnYxLkRlbGV0ZU1vZGVsRGVmaW5pdGlvblJlc3BvbnNlEmoKFVVwZGF0ZU1vZGVsRGVmaW5pdGlvbhInLm1vZGVscy52MS5VcGRhdGVNb2RlbERlZmluaXRpb25SZXF1ZXN0GigubW9kZWxzLnYxLlVwZGF0ZU1vZGVsRGVmaW5pdGlvblJlc3BvbnNlEnYKGUdldFByb2plY3RFZmZlY3RpdmVDb25maWcSKy5tb2RlbHMudjEuR2V0UHJvamVjdEVmZmVjdGl2ZUNvbmZpZ1JlcXVlc3QaLC5tb2RlbHMudjEuR2V0UHJvamVjdEVmZmVjdGl2ZUNvbmZpZ1Jlc3BvbnNlElgKD0dldE1vZGVsVmVyc2lvbhIhLm1vZGVscy52MS5HZXRNb2RlbFZlcnNpb25SZXF1ZXN0GiIubW9kZWxzLnYxLkdldE1vZGVsVmVyc2lvblJlc3BvbnNlEl4KEUxpc3RNb2RlbFZlcnNpb25zEiMubW9kZWxzLnYxLkxpc3RNb2RlbFZlcnNpb25zUmVxdWVzdBokLm1vZGVscy52MS5MaXN0TW9kZWxWZXJzaW9uc1Jlc3BvbnNlEmQKE1Jlc3RvcmVNb2RlbFZlcnNpb24SJS5tb2RlbHMudjEuUmVzdG9yZU1vZGVsVmVyc2lvblJlcXVlc3QaJi5tb2RlbHMudjEuUmVzdG9yZU1vZGVsVmVyc2lvblJlc3BvbnNlEk8KDFB1Ymxpc2hNb2RlbBIeLm1vZGVscy52MS5QdWJsaXNoTW9kZWxSZXF1ZXN0Gh8ubW9kZWxzLnYxLlB1Ymxpc2hNb2RlbFJlc3BvbnNlElIKDVB1Ymxpc2hNb2RlbHMSHy5tb2RlbHMudjEuUHVibGlzaE1vZGVsc1JlcXVlc3QaIC5tb2RlbHMudjEuUHVibGlzaE1vZGVsc1Jlc3BvbnNlElUKDlVucHVibGlzaE1vZGVsEiAubW9kZWxzLnYxLlVucHVibGlzaE1vZGVsUmVxdWVzdBohLm1vZGVscy52MS5VbnB1Ymxpc2hNb2RlbFJlc3BvbnNlEmoKFUdldE1vZGVsUHVibGlzaFN0YXR1cxInLm1vZGVscy52MS5HZXRNb2RlbFB1Ymxpc2hTdGF0dXNSZXF1ZXN0GigubW9kZWxzLnYxLkdldE1vZGVsUHVibGlzaFN0YXR1c1Jlc3BvbnNlEk8KDERpc2NhcmREcmFmdBIeLm1vZGVscy52MS5EaXNjYXJkRHJhZnRSZXF1ZXN0Gh8ubW9kZWxzLnYxLkRpc2NhcmREcmFmdFJlc3BvbnNlEmcKFFNjaGVkdWxlTW9kZWxQdWJsaXNoEiYubW9kZWxzLnYxLlNjaGVkdWxlTW9kZWxQdWJsaXNoUmVxdWVzdBonLm1vZGVscy52MS5TY2hlZHVsZU1vZGVsUHVibGlzaFJlc3BvbnNlEnwKG0NhbmNlbFNjaGVkdWxlZE1vZGVsUHVibGlzaBItLm1vZGVscy52MS5DYW5jZWxTY2hlZHVsZWRNb2RlbFB1Ymxpc2hSZXF1ZXN0Gi4ubW9kZWxzLnYxLkNhbmNlbFNjaGVkdWxlZE1vZGVsUHVibGlzaFJlc3BvbnNlEnwKG01hcmtEZXByZWNhdGVkRmllbGRzUXVlcmllZBItLm1vZGVscy52MS5NYXJrRGVwcmVjYXRlZEZpZWxkc1F1ZXJpZWRSZXF1ZXN0Gi4ubW9kZWxzLnYxLk1hcmtEZXByZWNhdGVkRmllbGRzUXVlcmllZFJlc3BvbnNlQjlaN2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9tb2RlbHMvdjE7bW9kZWxzdjFiBnByb3RvMw", [file_google_protobuf_struct2, file_google_protobuf_timestamp3, file_publish_v1_publish, file_common_v1_pagination, file_common_v1_access]);
|
|
853
872
|
var RelationshipConfigSchema = /* @__PURE__ */ messageDesc5(file_models_v1_models, 0);
|
|
854
873
|
var FieldSchema = /* @__PURE__ */ messageDesc5(file_models_v1_models, 1);
|
|
855
874
|
var AccessConfigSchema = /* @__PURE__ */ messageDesc5(file_models_v1_models, 2);
|
|
@@ -899,7 +918,7 @@ var RuleExpressionSchema = /* @__PURE__ */ messageDesc6(file_expressions_v1_expr
|
|
|
899
918
|
var RuleOperandSchema = /* @__PURE__ */ messageDesc6(file_expressions_v1_expressions, 1);
|
|
900
919
|
|
|
901
920
|
// ../../packages/proto-ts/src/records/v1/records_pb.js
|
|
902
|
-
var file_records_v1_records = /* @__PURE__ */ fileDesc7("ChhyZWNvcmRzL3YxL3JlY29yZHMucHJvdG8SCnJlY29yZHMudjEi2g0KBlJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIWCglwYXJlbnRfaWQYBCABKAlIAYgBARIrCgtyZWNvcmRfdHlwZRgFIAEoDjIWLnJlY29yZHMudjEuUmVjb3JkVHlwZRIlCgRkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIVCghvd25lcl9pZBgIIAEoCUgDiAEBEhcKCm93bmVyX2tpbmQYCSABKAlIBIgBARIRCgl0ZW5hbnRfaWQYCiABKAkSEgoKcHJvamVjdF9pZBgLIAEoCRIXCgpjcmVhdGVkX2J5GBQgASgJSAWIAQESFwoKdXBkYXRlZF9ieRgVIAEoCUgGiAEBEi4KCmNyZWF0ZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKDnZlcnNpb25fbnVtYmVyGCggASgFSAeIAQESGQoMY29udGVudF9oYXNoGCkgASgJSAiIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGCogASgJSAmIAQESGwoOcHVibGlzaF9zdGF0dXMYKyABKAlICogBARI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBgsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIC4gBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GC0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgMiAEBEh0KEHB1Ymxpc2hfYmF0Y2hfaWQYLiABKAlIDYgBARIYCgt2YXJpYW50X2tleRgyIAEoCUgOiAEBEhkKDHZhcmlhbnRfbmFtZRgzIAEoCUgPiAEBEiAKE3ZhcmlhbnRfZGVzY3JpcHRpb24YNCABKAlIEIgBARIXCgpjYXRhbG9nX2lkGDUgASgJSBGIAQESFQoIcHJpb3JpdHkYNiABKAVIEogBARI8Cg90YXJnZXRpbmdfcnVsZXMYNyABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbkgTiAEBEhcKCmlzX2RlZmF1bHQYOCABKAhIFIgBARIfChJjdXJyZW50X3ZlcnNpb25faWQYPCABKAlIFYgBARIhChRwdWJsaXNoZWRfdmVyc2lvbl9pZBg9IAEoCUgWiAEBEiUKGHB1Ymxpc2hlZF92ZXJzaW9uX251bWJlchg+IAEoBUgXiAEBEjUKDHB1Ymxpc2hlZF9hdBg/IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIGIgBARIZCgxwdWJsaXNoZWRfYnkYQCABKAlIGYgBARITCgtjYW5fcHVibGlzaBhBIAEoCBIVCg1jYW5fdW5wdWJsaXNoGEIgASgIEh8KF2hhc191bnB1Ymxpc2hlZF9jaGFuZ2VzGEMgASgIEh0KEG1vZGVsX3ZlcnNpb25faWQYRiABKAlIGogBAUIOCgxfbmF0dXJhbF9rZXlCDAoKX3BhcmVudF9pZEILCglfbWV0YWRhdGFCCwoJX293bmVyX2lkQg0KC19vd25lcl9raW5kQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5QhEKD192ZXJzaW9uX251bWJlckIPCg1fY29udGVudF9oYXNoQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CEQoPX3B1Ymxpc2hfc3RhdHVzQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdEITChFfcHVibGlzaF9iYXRjaF9pZEIOCgxfdmFyaWFudF9rZXlCDwoNX3ZhcmlhbnRfbmFtZUIWChRfdmFyaWFudF9kZXNjcmlwdGlvbkINCgtfY2F0YWxvZ19pZEILCglfcHJpb3JpdHlCEgoQX3RhcmdldGluZ19ydWxlc0INCgtfaXNfZGVmYXVsdEIVChNfY3VycmVudF92ZXJzaW9uX2lkQhcKFV9wdWJsaXNoZWRfdmVyc2lvbl9pZEIbChlfcHVibGlzaGVkX3ZlcnNpb25fbnVtYmVyQg8KDV9wdWJsaXNoZWRfYXRCDwoNX3B1Ymxpc2hlZF9ieUITChFfbW9kZWxfdmVyc2lvbl9pZCL1AQoPUHVibGlzaFNjaGVkdWxlEhIKCnZlcnNpb25faWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYBSABKAlIAYgBAUIPCg1fdW5wdWJsaXNoX2F0Qg0KC19jcmVhdGVkX2J5Ii4KCVNvcnRGaWVsZBINCgVmaWVsZBgBIAEoCRISCgpkZXNjZW5kaW5nGAIgASgIIv8BCg5CYXRjaE9wZXJhdGlvbhIsCgR0eXBlGAEgASgOMh4ucmVjb3Jkcy52MS5CYXRjaE9wZXJhdGlvblR5cGUSDwoCaWQYAiABKAlIAIgBARIWCgltb2RlbF9rZXkYAyABKAlIAYgBARIYCgtuYXR1cmFsX2tleRgEIAEoCUgCiAEBEioKBGRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESFQoIb3duZXJfaWQYBiABKAlIBIgBAUIFCgNfaWRCDAoKX21vZGVsX2tleUIOCgxfbmF0dXJhbF9rZXlCBwoFX2RhdGFCCwoJX293bmVyX2lkIogBChRCYXRjaE9wZXJhdGlvblJlc3VsdBINCgVpbmRleBgBIAEoBRIPCgdzdWNjZXNzGAIgASgIEicKBnJlY29yZBgDIAEoCzISLnJlY29yZHMudjEuUmVjb3JkSACIAQESEgoFZXJyb3IYBCABKAlIAYgBAUIJCgdfcmVjb3JkQggKBl9lcnJvciKSAgoTQ3JlYXRlUmVjb3JkUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSGAoLbmF0dXJhbF9rZXkYAiABKAlIAIgBARIlCgRkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIVCghvd25lcl9pZBgEIAEoCUgBiAEBEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgGIAEoCUgDiAEBQg4KDF9uYXR1cmFsX2tleUILCglfb3duZXJfaWRCCwoJX21ldGFkYXRhQhUKE19jaGFuZ2VfZGVzY3JpcHRpb24ipgEKFENyZWF0ZVJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkEigKB3ZhcmlhbnQYAiABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgAiAEBEigKB3ZlcnNpb24YAyABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgBiAEBQgoKCF92YXJpYW50QgoKCF92ZXJzaW9uIh4KEEdldFJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkiNwoRR2V0UmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiPwoVR2V0UmVjb3JkQnlLZXlSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRITCgtuYXR1cmFsX2tleRgCIAEoCSI8ChZHZXRSZWNvcmRCeUtleVJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIkIKGUdldFJlY29yZEJ5S2V5T3JJZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhIKCmlkZW50aWZpZXIYAiABKAkiQAoaR2V0UmVjb3JkQnlLZXlPcklkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQi4gIKEkxpc3RSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSIwoEc29ydBgCIAMoCzIVLnJlY29yZHMudjEuU29ydEZpZWxkEhUKCG93bmVyX2lkGAMgASgJSACIAQESEwoGc2VhcmNoGAQgASgJSAGIAQESDwoHcHJldmlldxgFIAEoCBIrCgV3aGVyZRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARISCgVhZnRlchgHIAEoCUgDiAEBEhMKBmJlZm9yZRgIIAEoCUgEiAEBEhIKBWZpcnN0GAkgASgFSAWIAQESEQoEbGFzdBgKIAEoBUgGiAEBQgsKCV9vd25lcl9pZEIJCgdfc2VhcmNoQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgLEAxKBAgMEA1KBAgNEA4ilQEKE0xpc3RSZWNvcmRzUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyLYAgoTVXBkYXRlUmVjb3JkUmVxdWVzdBIKCgJpZBgBIAEoCRInCgZ1cGRhdGUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESGAoLdmFyaWFudF9rZXkYBCABKAlIAYgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBSABKAlIAogBARIyCgxyZXBsYWNlX2RhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCDgoMX25hdHVyYWxfa2V5Qg4KDF92YXJpYW50X2tleUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQg8KDV9yZXBsYWNlX2RhdGFCCwoJX21ldGFkYXRhIjoKFFVwZGF0ZVJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIkoKFUF1dG9TYXZlUmVjb3JkUmVxdWVzdBIKCgJpZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJDChZBdXRvU2F2ZVJlY29yZFJlc3BvbnNlEhEKCXBlcnNpc3RlZBgBIAEoCBIWCg5za2lwcGVkX3JlYXNvbhgCIAEoCSIhChNEZWxldGVSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJIicKFERlbGV0ZVJlY29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgipwEKE1Vwc2VydFJlY29yZFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEQoJbW9kZWxfa2V5GAMgASgJEhMKC25hdHVyYWxfa2V5GAQgASgJEiUKBGRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhoKEmNoYW5nZV9kZXNjcmlwdGlvbhgGIAEoCSJLChRVcHNlcnRSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIPCgdjcmVhdGVkGAIgASgIIk4KHEJhdGNoUmVjb3JkT3BlcmF0aW9uc1JlcXVlc3QSLgoKb3BlcmF0aW9ucxgBIAMoCzIaLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb24iUgodQmF0Y2hSZWNvcmRPcGVyYXRpb25zUmVzcG9uc2USMQoHcmVzdWx0cxgBIAMoCzIgLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb25SZXN1bHQitwEKGEJ1bGtVcGRhdGVSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSKwoFd2hlcmUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLAoGdXBkYXRlGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBQggKBl93aGVyZUIJCgdfdXBkYXRlSgQIBBAFSgQIBRAGUgx0eXBlZF91cGRhdGUiNwoZQnVsa1VwZGF0ZVJlY29yZHNSZXNwb25zZRINCgVjb3VudBgBIAEoBRILCgNpZHMYAiADKAkiMgodQmFja2ZpbGxRdWVyeWFibGVJbmRleFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJIjkKHkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXNwb25zZRIXCg9yZWNvcmRzX2luZGV4ZWQYASABKAUiMAobQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSJhChxCYWNrZmlsbE1vZGVsSW5kZXhlc1Jlc3BvbnNlEh4KFmxvb2t1cHNfcmVjb3Jkc193YWxrZWQYASABKAUSIQoZcXVlcnlhYmxlX3JlY29yZHNfaW5kZXhlZBgCIAEoBSJWChZEdXBsaWNhdGVSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhwKD25ld19uYXR1cmFsX2tleRgCIAEoCUgAiAEBQhIKEF9uZXdfbmF0dXJhbF9rZXkiPQoXRHVwbGljYXRlUmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiUAobRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXF1ZXN0EgsKA2lkcxgBIAMoCRIWCgltb2RlbF9rZXkYAiABKAlIAIgBAUIMCgpfbW9kZWxfa2V5IkMKHER1cGxpY2F0ZVJlY29yZHNCdWxrUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkIisKFVB1Ymxpc2hWZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJIjwKFlB1Ymxpc2hWZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiKwoWVW5wdWJsaXNoUmVjb3JkUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiKgoXVW5wdWJsaXNoUmVjb3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChZSZXZlcnRUb1ZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiPQoXUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQipgEKGUxpc3RSZWNvcmRWZXJzaW9uc1JlcXVlc3QSEQoJcGFyZW50X2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEwoGYmVmb3JlGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBARIRCgRsYXN0GAUgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Ip0BChpMaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRIkCgh2ZXJzaW9ucxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJlChRDcmVhdGVWYXJpYW50UmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEwoLdmFyaWFudF9rZXkYAiABKAkSJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPAoVQ3JlYXRlVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJbCh5DYXB0dXJlRGVmYXVsdEFzVmFyaWFudFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSEAoDa2V5GAMgASgJSACIAQFCBgoEX2tleSJ7Ch9DYXB0dXJlRGVmYXVsdEFzVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIYChBjYXRhbG9nX2VudHJ5X2lkGAIgASgJEhkKEWNhdGFsb2dfZW50cnlfa2V5GAMgASgJIpoBChRVcGRhdGVWYXJpYW50UmVxdWVzdBISCgp2YXJpYW50X2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKDm1ldGFkYXRhX3BhdGNoGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQhEKD19tZXRhZGF0YV9wYXRjaCI8ChVVcGRhdGVWYXJpYW50UmVzcG9uc2USIwoHdmFyaWFudBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIioKFERlbGV0ZVZhcmlhbnRSZXF1ZXN0EhIKCnZhcmlhbnRfaWQYASABKAkiKAoVRGVsZXRlVmFyaWFudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgidgoVU2V0UmVjb3JkT3duZXJSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIVCghvd25lcl9pZBgCIAEoCUgAiAEBEhcKCm93bmVyX2tpbmQYAyABKAlIAYgBAUILCglfb3duZXJfaWRCDQoLX293bmVyX2tpbmQiPAoWU2V0UmVjb3JkT3duZXJSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJBChhTZXREZWZhdWx0VmFyaWFudFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhIKCnZhcmlhbnRfaWQYAiABKAkiPwoZU2V0RGVmYXVsdFZhcmlhbnRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCKmAQoZTGlzdFJlY29yZFZhcmlhbnRzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEgoFYWZ0ZXIYAiABKAlIAIgBARITCgZiZWZvcmUYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBEhEKBGxhc3QYBSABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QinQEKGkxpc3RSZWNvcmRWYXJpYW50c1Jlc3BvbnNlEiQKCHZhcmlhbnRzGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIqoBChxTY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiRAodU2NoZWR1bGVSZWNvcmRQdWJsaXNoUmVzcG9uc2USIwoHdmVyc2lvbhgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIjkKI0NhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiSwokQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlc3BvbnNlEiMKB3ZlcnNpb24YASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCKpAgodTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1JlcXVlc3QSLQoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIrCgJ0bxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIWCgltb2RlbF9rZXkYAyABKAlIAogBARISCgVhZnRlchgEIAEoCUgDiAEBEhMKBmJlZm9yZRgFIAEoCUgEiAEBEhIKBWZpcnN0GAYgASgFSAWIAQESEQoEbGFzdBgHIAEoBUgGiAEBQgcKBV9mcm9tQgUKA190b0IMCgpfbW9kZWxfa2V5QggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKhAQoeTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIjAKGkdldFNjaGVkdWxlZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiTAobR2V0U2NoZWR1bGVkUHVibGlzaFJlc3BvbnNlEi0KCHNjaGVkdWxlGAEgASgLMhsucmVjb3Jkcy52MS5QdWJsaXNoU2NoZWR1bGUijQIKGExpc3REcmFmdFZlcnNpb25zUmVxdWVzdBIWCgltb2RlbF9rZXkYASABKAlIAIgBARITCgZzZWFyY2gYAiABKAlIAYgBARISCgVhZnRlchgGIAEoCUgCiAEBEhMKBmJlZm9yZRgHIAEoCUgDiAEBEhIKBWZpcnN0GAggASgFSASIAQESEQoEbGFzdBgJIAEoBUgFiAEBEhgKEGRlZHVwZV9ieV9wYXJlbnQYBSABKAhCDAoKX21vZGVsX2tleUIJCgdfc2VhcmNoQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAMQBEoECAQQBVIFbGltaXRSBm9mZnNldCKcAQoZTGlzdERyYWZ0VmVyc2lvbnNSZXNwb25zZRIkCgh2ZXJzaW9ucxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIyChtCYXRjaFB1Ymxpc2hWZXJzaW9uc1JlcXVlc3QSEwoLdmVyc2lvbl9pZHMYASADKAkiXAocQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXNwb25zZRIjCgdyZWNvcmRzGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSFwoPcHVibGlzaGVkX2NvdW50GAIgASgFIt8BChpCYXRjaFJlc29sdmVSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEgoKcmVjb3JkX2lkcxgCIAMoCRIYCgtjdXN0b21lcl9pZBgDIAEoCUgAiAEBEi0KB2NvbnRleHQYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESDwoHcHJldmlldxgFIAEoCBISCgp1bnJlc29sdmVkGAcgASgIQg4KDF9jdXN0b21lcl9pZEIKCghfY29udGV4dEoECAYQB1IKdmlld2VyX2tleSJKChtCYXRjaFJlc29sdmVSZWNvcmRzUmVzcG9uc2USKwoHcmVjb3JkcxgBIAMoCzIaLnJlY29yZHMudjEuUmVzb2x2ZWRSZWNvcmQixwEKFVJlc29sdmVDb250ZW50UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLY3VzdG9tZXJfaWQYAyABKAlIAIgBARItCgdjb250ZXh0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEg8KB3ByZXZpZXcYBSABKAhCDgoMX2N1c3RvbWVyX2lkQgoKCF9jb250ZXh0Ij8KFlJlc29sdmVDb250ZW50UmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiswUKDlJlc29sdmVkUmVjb3JkEhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIlCgRkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFwoKdmFyaWFudF9pZBgGIAEoCUgBiAEBEhEKCWhhc19kcmFmdBgIIAEoCBIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCghvd25lcl9pZBgLIAEoCUgCiAEBEhcKCm93bmVyX2tpbmQYDCABKAlIA4gBARIYCgt2YXJpYW50X2tleRgNIAEoCUgEiAEBEjoKCHNlZ21lbnRzGA4gAygLMigucmVjb3Jkcy52MS5SZXNvbHZlZFJlY29yZC5TZWdtZW50c0VudHJ5EisKC3Jlc29sdmVkX2J5GA8gASgOMhYucmVjb3Jkcy52MS5SZXNvbHZlZEJ5EjkKDmZpZWxkX3ZhcmlhbnRzGBAgAygLMiEucmVjb3Jkcy52MS5GaWVsZFZhcmlhbnRTZWxlY3Rpb24aLwoNU2VnbWVudHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAg6AjgBQg4KDF9uYXR1cmFsX2tleUINCgtfdmFyaWFudF9pZEILCglfb3duZXJfaWRCDQoLX293bmVyX2tpbmRCDgoMX3ZhcmlhbnRfa2V5SgQIBxAIUhNleHBlcmltZW50X2V4cG9zdXJlIkAKFUZpZWxkVmFyaWFudFNlbGVjdGlvbhISCgpmaWVsZF9wYXRoGAEgASgJEhMKC3ZhcmlhbnRfa2V5GAIgASgJIi8KGUxvb2t1cFJlY29yZE1vZGVsc1JlcXVlc3QSEgoKcmVjb3JkX2lkcxgBIAMoCSI4ChBSZWNvcmRNb2RlbEVudHJ5EhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkiSwoaTG9va3VwUmVjb3JkTW9kZWxzUmVzcG9uc2USLQoHZW50cmllcxgBIAMoCzIcLnJlY29yZHMudjEuUmVjb3JkTW9kZWxFbnRyeSLWAQoTR2xvYmFsU2VhcmNoUmVxdWVzdBINCgVxdWVyeRgBIAEoCRISCgptb2RlbF9rZXlzGAIgAygJEhIKBWFmdGVyGAMgASgJSACIAQESEwoGYmVmb3JlGAQgASgJSAGIAQESEgoFZmlyc3QYBSABKAVIAogBARIRCgRsYXN0GAYgASgFSAOIAQESFwoPY3Jvc3Nfd29ya3NwYWNlGAcgASgIQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAoQC1IFbGltaXQiuAEKEFNlYXJjaFJlc3VsdEl0ZW0SCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDQoFc2NvcmUYBSABKAESEQoJdGVuYW50X2lkGAYgASgJEhIKCnByb2plY3RfaWQYByABKAlCDgoMX25hdHVyYWxfa2V5IqABChRHbG9iYWxTZWFyY2hSZXNwb25zZRItCgdyZWNvcmRzGAEgAygLMhwucmVjb3Jkcy52MS5TZWFyY2hSZXN1bHRJdGVtEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKhAQoORW1iZWRkaW5nU3RhdHMSEQoJbW9kZWxfa2V5GAEgASgJEhUKDXRvdGFsX3JlY29yZHMYAiABKAUSGAoQZW1iZWRkZWRfcmVjb3JkcxgDIAEoBRIXCg9wZW5kaW5nX3JlY29yZHMYBCABKAUSHQoQbGFzdF9lbWJlZGRlZF9hdBgFIAEoCUgAiAEBQhMKEV9sYXN0X2VtYmVkZGVkX2F0InUKD1JlY29yZEVtYmVkZGluZxIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhIKCmRpbWVuc2lvbnMYAyABKAUSGAoLZW1iZWRkZWRfYXQYBCABKAlIAIgBAUIOCgxfZW1iZWRkZWRfYXQikwEKDVNpbWlsYXJSZWNvcmQSCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoKc2ltaWxhcml0eRgFIAEoAUIOCgxfbmF0dXJhbF9rZXkiQAoYR2V0RW1iZWRkaW5nU3RhdHNSZXF1ZXN0EhYKCW1vZGVsX2tleRgBIAEoCUgAiAEBQgwKCl9tb2RlbF9rZXkiRgoZR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRIpCgVzdGF0cxgBIAMoCzIaLnJlY29yZHMudjEuRW1iZWRkaW5nU3RhdHMiLwoaR2V0UmVjb3JkRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJIk4KG0dldFJlY29yZEVtYmVkZGluZ3NSZXNwb25zZRIvCgplbWJlZGRpbmdzGAEgAygLMhsucmVjb3Jkcy52MS5SZWNvcmRFbWJlZGRpbmci2QEKGUZpbmRTaW1pbGFyUmVjb3Jkc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhYKCW1vZGVsX2tleRgCIAEoCUgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCDAoKX21vZGVsX2tleUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgKEAtSBWxpbWl0IpQBChpGaW5kU2ltaWxhclJlY29yZHNSZXNwb25zZRIqCgdyZWNvcmRzGAEgAygLMhkucmVjb3Jkcy52MS5TaW1pbGFyUmVjb3JkEisKCXBhZ2VfaW5mbxgCIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYAyADKAlCDAoKX3BhZ2VfaW5mbyLhAQoWV3JpdGVFbWJlZGRpbmdzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSDgoGdmVjdG9yGAIgAygCEhIKCmRpbWVuc2lvbnMYAyABKAUSFQoIcHJvdmlkZXIYBCABKAlIAIgBARIXCgptb2RlbF9uYW1lGAUgASgJSAGIAQESEAoDa2V5GAYgASgJSAKIAQESGQoMY29udGVudF9oYXNoGAcgASgJSAOIAQFCCwoJX3Byb3ZpZGVyQg0KC19tb2RlbF9uYW1lQgYKBF9rZXlCDwoNX2NvbnRlbnRfaGFzaCIqChdXcml0ZUVtYmVkZGluZ3NSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiwKF0RlbGV0ZUVtYmVkZGluZ3NSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCSIrChhEZWxldGVFbWJlZGRpbmdzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJnCh9FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSEwoGc291cmNlGAMgASgJSACIAQFCCQoHX3NvdXJjZSI0CiBFbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXNwb25zZRIQCghlbnF1ZXVlZBgBIAEoCCLaAQoXU2VhcmNoRW1iZWRkaW5nc1JlcXVlc3QSFAoMcXVlcnlfdmVjdG9yGAEgAygCEhYKCW1vZGVsX2tleRgCIAEoCUgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCDAoKX21vZGVsX2tleUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgKEAtSBWxpbWl0IpIBChhTZWFyY2hFbWJlZGRpbmdzUmVzcG9uc2USKgoHcmVzdWx0cxgBIAMoCzIZLnJlY29yZHMudjEuU2ltaWxhclJlY29yZBIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAMgAygJQgwKCl9wYWdlX2luZm8iiQEKHlJlY29yZHNNaXNzaW5nRW1iZWRkaW5nUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEAoDa2V5GAIgASgJSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBQgYKBF9rZXlCCAoGX2FmdGVyQggKBl9maXJzdCJVChZNaXNzaW5nRW1iZWRkaW5nUmVjb3JkEhEKCXJlY29yZF9pZBgBIAEoCRIYCgtuYXR1cmFsX2tleRgCIAEoCUgAiAEBQg4KDF9uYXR1cmFsX2tleSKxAQofUmVjb3Jkc01pc3NpbmdFbWJlZGRpbmdSZXNwb25zZRIzCgdyZWNvcmRzGAEgAygLMiIucmVjb3Jkcy52MS5NaXNzaW5nRW1iZWRkaW5nUmVjb3JkEisKCXBhZ2VfaW5mbxgCIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYAyADKAkSDQoFdG90YWwYBCABKAVCDAoKX3BhZ2VfaW5mbyJtChdFbWJlZGRpbmdEaWdlc3RzUmVxdWVzdBISCgpyZWNvcmRfaWRzGAEgAygJEhAKA2tleRgCIAEoCUgAiAEBEhYKCW1vZGVsX2tleRgDIAEoCUgBiAEBQgYKBF9rZXlCDAoKX21vZGVsX2tleSJQCg9FbWJlZGRpbmdEaWdlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhkKDGNvbnRlbnRfaGFzaBgCIAEoCUgAiAEBQg8KDV9jb250ZW50X2hhc2giSAoYRW1iZWRkaW5nRGlnZXN0c1Jlc3BvbnNlEiwKB2RpZ2VzdHMYASADKAsyGy5yZWNvcmRzLnYxLkVtYmVkZGluZ0RpZ2VzdCKXAQoMTmVhcmJ5UmVjb3JkEgoKAmlkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBEiUKBGRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKD2Rpc3RhbmNlX21ldGVycxgFIAEoAUIOCgxfbmF0dXJhbF9rZXkimQIKF1NlYXJjaEJ5TG9jYXRpb25SZXF1ZXN0EgsKA2xhdBgBIAEoARILCgNsbmcYAiABKAESGgoNcmFkaXVzX21ldGVycxgDIAEoAUgAiAEBEhYKCW1vZGVsX2tleRgEIAEoCUgBiAEBEhAKA2tleRgFIAEoCUgCiAEBEhIKBWFmdGVyGAYgASgJSAOIAQESEwoGYmVmb3JlGAcgASgJSASIAQESEgoFZmlyc3QYCCABKAVIBYgBARIRCgRsYXN0GAkgASgFSAaIAQFCEAoOX3JhZGl1c19tZXRlcnNCDAoKX21vZGVsX2tleUIGCgRfa2V5QggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKRAQoYU2VhcmNoQnlMb2NhdGlvblJlc3BvbnNlEikKB3Jlc3VsdHMYASADKAsyGC5yZWNvcmRzLnYxLk5lYXJieVJlY29yZBIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAMgAygJQgwKCl9wYWdlX2luZm8i+gEKGUZpbmROZWFyZXN0UmVjb3Jkc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhoKDXJhZGl1c19tZXRlcnMYAiABKAFIAIgBARIWCgltb2RlbF9rZXkYAyABKAlIAYgBARISCgVhZnRlchgEIAEoCUgCiAEBEhMKBmJlZm9yZRgFIAEoCUgDiAEBEhIKBWZpcnN0GAYgASgFSASIAQESEQoEbGFzdBgHIAEoBUgFiAEBQhAKDl9yYWRpdXNfbWV0ZXJzQgwKCl9tb2RlbF9rZXlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpMBChpGaW5kTmVhcmVzdFJlY29yZHNSZXNwb25zZRIpCgdyZWNvcmRzGAEgAygLMhgucmVjb3Jkcy52MS5OZWFyYnlSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIlQKFU1pc3NpbmdHZW9tZXRyeVJlY29yZBIRCglyZWNvcmRfaWQYASABKAkSGAoLbmF0dXJhbF9rZXkYAiABKAlIAIgBAUIOCgxfbmF0dXJhbF9rZXkiiAEKHVJlY29yZHNNaXNzaW5nR2VvbWV0cnlSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRIQCgNrZXkYAiABKAlIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQFCBgoEX2tleUIICgZfYWZ0ZXJCCAoGX2ZpcnN0Iq8BCh5SZWNvcmRzTWlzc2luZ0dlb21ldHJ5UmVzcG9uc2USMgoHcmVjb3JkcxgBIAMoCzIhLnJlY29yZHMudjEuTWlzc2luZ0dlb21ldHJ5UmVjb3JkEisKCXBhZ2VfaW5mbxgCIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYAyADKAkSDQoFdG90YWwYBCABKAVCDAoKX3BhZ2VfaW5mbyIyCh1CYWNrZmlsbFJlY29yZEdlb21ldHJ5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiOQoeQmFja2ZpbGxSZWNvcmRHZW9tZXRyeVJlc3BvbnNlEhcKD3JlY29yZHNfaW5kZXhlZBgBIAEoBSKfAgoTTG9va3VwUmVjb3JkUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbG9va3VwX25hbWUYAiABKAkSEAoIa2V5X2hhc2gYAyABKAwSDwoHY2hhbm5lbBgEIAEoCRIXCgp2YXJpYW50X2lkGAUgASgJSACIAQESEwoGbG9jYWxlGAYgASgJSAGIAQESGAoLY3VzdG9tZXJfaWQYByABKAlIAogBARI2ChBjdXN0b21lcl9jb250ZXh0GAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg0KC192YXJpYW50X2lkQgkKB19sb2NhbGVCDgoMX2N1c3RvbWVyX2lkQhMKEV9jdXN0b21lcl9jb250ZXh0IjwKFExvb2t1cFJlY29yZFJlc3BvbnNlEhYKCXJlY29yZF9pZBgBIAEoCUgAiAEBQgwKCl9yZWNvcmRfaWQi6QEKHkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbG9va3VwX25hbWUYAiABKAkSEAoIa2V5X2hhc2gYAyABKAwSDwoHY2hhbm5lbBgEIAEoCRIXCgp2YXJpYW50X2lkGAUgASgJSACIAQESEwoGbG9jYWxlGAYgASgJSAGIAQESHgoRZXhjbHVkZV9yZWNvcmRfaWQYByABKAlIAogBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlQhQKEl9leGNsdWRlX3JlY29yZF9pZCI0Ch9DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlc3BvbnNlEhEKCWF2YWlsYWJsZRgBIAEoCCKXAQoUTG9va3VwQ29uZmxpY3REZXRhaWwSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEg8KB2NoYW5uZWwYAyABKAkSFwoKdmFyaWFudF9pZBgEIAEoCUgAiAEBEhMKBmxvY2FsZRgFIAEoCUgBiAEBQg0KC192YXJpYW50X2lkQgkKB19sb2NhbGUi4gEKGkxpc3RMb29rdXBDb25mbGljdHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRIYCgtsb29rdXBfbmFtZRgCIAEoCUgAiAEBEg8KB2NoYW5uZWwYAyABKAkSEgoFZmlyc3QYBCABKAVIAYgBARISCgVhZnRlchgFIAEoCUgCiAEBEhEKBGxhc3QYBiABKAVIA4gBARITCgZiZWZvcmUYByABKAlIBIgBAUIOCgxfbG9va3VwX25hbWVCCAoGX2ZpcnN0QggKBl9hZnRlckIHCgVfbGFzdEIJCgdfYmVmb3JlIqMBChtMaXN0TG9va3VwQ29uZmxpY3RzUmVzcG9uc2USKQoGZ3JvdXBzGAEgAygLMhkucmVjb3Jkcy52MS5Db25mbGljdEdyb3VwEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKVAQoNQ29uZmxpY3RHcm91cBITCgtlbmNvZGVkX2tleRgBIAEoCRIPCgdjaGFubmVsGAIgASgJEhcKCnZhcmlhbnRfaWQYAyABKAlIAIgBARIVCghvd25lcl9pZBgEIAEoCUgBiAEBEhIKCnJlY29yZF9pZHMYBSADKAlCDQoLX3ZhcmlhbnRfaWRCCwoJX293bmVyX2lkIi8KGlJlYnVpbGRNb2RlbExvb2t1cHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSI1ChtSZWJ1aWxkTW9kZWxMb29rdXBzUmVzcG9uc2USFgoOcmVjb3Jkc193YWxrZWQYASABKAUiTgoZUHVyZ2VSZXNwb25zZUNhY2hlUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEQoJaWRfb3Jfa2V5GAIgASgJEgsKA2FsbBgDIAEoCCJ+ChpQdXJnZVJlc3BvbnNlQ2FjaGVSZXNwb25zZRINCgVzY29wZRgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhEKCW1vZGVsX2tleRgDIAEoCRIRCglyZWNvcmRfaWQYBCABKAkSFwoPcmVjb3Jkc19zY2FubmVkGAUgASgFIo0BCiJMaXN0U2xvd1F1ZXJ5QWR2aXNvckVudHJpZXNSZXF1ZXN0EhUKDXJlc291cmNlX3R5cGUYASABKAkSGQoMcmVzb3VyY2Vfa2V5GAIgASgJSACIAQESFgoJcm93X2xpbWl0GAMgASgFSAGIAQFCDwoNX3Jlc291cmNlX2tleUIMCgpfcm93X2xpbWl0IlkKI0xpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1Jlc3BvbnNlEjIKB2VudHJpZXMYASADKAsyIS5yZWNvcmRzLnYxLlNsb3dRdWVyeUFkdmlzb3JFbnRyeSKrAQoVU2xvd1F1ZXJ5QWR2aXNvckVudHJ5EhUKDXJlc291cmNlX3R5cGUYASABKAkSFAoMcmVzb3VyY2Vfa2V5GAIgASgJEhIKCmZpZWxkX3BhdGgYAyABKAkSEAoIb3BlcmF0b3IYBCABKAkSDQoFY291bnQYBSABKAMSMAoMbGFzdF9zZWVuX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCI3Ch5TbG93UXVlcnlBZHZpc29yU3VtbWFyeVJlcXVlc3QSFQoNcmVzb3VyY2VfdHlwZRgBIAEoCSJhCh9TbG93UXVlcnlBZHZpc29yU3VtbWFyeVJlc3BvbnNlEj4KCXJlc291cmNlcxgBIAMoCzIrLnJlY29yZHMudjEuU2xvd1F1ZXJ5QWR2aXNvclJlc291cmNlU3VtbWFyeSJgCh9TbG93UXVlcnlBZHZpc29yUmVzb3VyY2VTdW1tYXJ5EhQKDHJlc291cmNlX2tleRgBIAEoCRITCgtlbnRyeV9jb3VudBgCIAEoBRISCgp0b3RhbF9oaXRzGAMgASgDIowBCiFDbGVhclNsb3dRdWVyeUFkdmlzb3JFbnRyeVJlcXVlc3QSFQoNcmVzb3VyY2VfdHlwZRgBIAEoCRIZCgxyZXNvdXJjZV9rZXkYAiABKAlIAIgBARISCgpmaWVsZF9wYXRoGAMgASgJEhAKCG9wZXJhdG9yGAQgASgJQg8KDV9yZXNvdXJjZV9rZXkiJAoiQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnlSZXNwb25zZSKZAQohUmVjb3Jkc1VzaW5nVmFyaWFudENhdGFsb2dSZXF1ZXN0EhIKCmNhdGFsb2dfaWQYASABKAkSFgoJbW9kZWxfa2V5GAIgASgJSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBQgwKCl9tb2RlbF9rZXlCCAoGX2FmdGVyQggKBl9maXJzdCKAAQoZVmFyaWFudENhdGFsb2dVc2FnZVJlY29yZBIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESEwoLdXNhZ2VfbGV2ZWwYBCABKAlCDgoMX25hdHVyYWxfa2V5IrcBCiJSZWNvcmRzVXNpbmdWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEjYKB3JlY29yZHMYASADKAsyJS5yZWNvcmRzLnYxLlZhcmlhbnRDYXRhbG9nVXNhZ2VSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCRINCgV0b3RhbBgEIAEoBUIMCgpfcGFnZV9pbmZvInwKG1JlY29yZHNNaXNzaW5nTG9jYWxlUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSDgoGbG9jYWxlGAIgASgJEhIKBWFmdGVyGAMgASgJSACIAQESEgoFZmlyc3QYBCABKAVIAYgBAUIICgZfYWZ0ZXJCCAoGX2ZpcnN0IlIKE01pc3NpbmdMb2NhbGVSZWNvcmQSEQoJcmVjb3JkX2lkGAEgASgJEhgKC25hdHVyYWxfa2V5GAIgASgJSACIAQFCDgoMX25hdHVyYWxfa2V5IqsBChxSZWNvcmRzTWlzc2luZ0xvY2FsZVJlc3BvbnNlEjAKB3JlY29yZHMYASADKAsyHy5yZWNvcmRzLnYxLk1pc3NpbmdMb2NhbGVSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCRINCgV0b3RhbBgEIAEoBUIMCgpfcGFnZV9pbmZvKnMKClJlY29yZFR5cGUSGwoXUkVDT1JEX1RZUEVfVU5TUEVDSUZJRUQQABIWChJSRUNPUkRfVFlQRV9SRUNPUkQQARIXChNSRUNPUkRfVFlQRV9WQVJJQU5UEAISFwoTUkVDT1JEX1RZUEVfVkVSU0lPThADKp0BChJCYXRjaE9wZXJhdGlvblR5cGUSJAogQkFUQ0hfT1BFUkFUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIfChtCQVRDSF9PUEVSQVRJT05fVFlQRV9DUkVBVEUQARIfChtCQVRDSF9PUEVSQVRJT05fVFlQRV9VUERBVEUQAhIfChtCQVRDSF9PUEVSQVRJT05fVFlQRV9ERUxFVEUQAyp2CgpSZXNvbHZlZEJ5EhsKF1JFU09MVkVEX0JZX1VOU1BFQ0lGSUVEEAASGAoUUkVTT0xWRURfQllfVEFSR0VURUQQARIXChNSRVNPTFZFRF9CWV9ERUZBVUxUEAISGAoUUkVTT0xWRURfQllfRkFMTEJBQ0sQAzKrLgoOUmVjb3Jkc1NlcnZpY2USUQoMQ3JlYXRlUmVjb3JkEh8ucmVjb3Jkcy52MS5DcmVhdGVSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5DcmVhdGVSZWNvcmRSZXNwb25zZRJICglHZXRSZWNvcmQSHC5yZWNvcmRzLnYxLkdldFJlY29yZFJlcXVlc3QaHS5yZWNvcmRzLnYxLkdldFJlY29yZFJlc3BvbnNlElcKDkdldFJlY29yZEJ5S2V5EiEucmVjb3Jkcy52MS5HZXRSZWNvcmRCeUtleVJlcXVlc3QaIi5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5UmVzcG9uc2USYwoSR2V0UmVjb3JkQnlLZXlPcklkEiUucmVjb3Jkcy52MS5HZXRSZWNvcmRCeUtleU9ySWRSZXF1ZXN0GiYucmVjb3Jkcy52MS5HZXRSZWNvcmRCeUtleU9ySWRSZXNwb25zZRJOCgtMaXN0UmVjb3JkcxIeLnJlY29yZHMudjEuTGlzdFJlY29yZHNSZXF1ZXN0Gh8ucmVjb3Jkcy52MS5MaXN0UmVjb3Jkc1Jlc3BvbnNlElEKDFVwZGF0ZVJlY29yZBIfLnJlY29yZHMudjEuVXBkYXRlUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuVXBkYXRlUmVjb3JkUmVzcG9uc2USVwoOQXV0b1NhdmVSZWNvcmQSIS5yZWNvcmRzLnYxLkF1dG9TYXZlUmVjb3JkUmVxdWVzdBoiLnJlY29yZHMudjEuQXV0b1NhdmVSZWNvcmRSZXNwb25zZRJRCgxVcHNlcnRSZWNvcmQSHy5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlc3BvbnNlElEKDERlbGV0ZVJlY29yZBIfLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVzcG9uc2USVwoOU2V0UmVjb3JkT3duZXISIS5yZWNvcmRzLnYxLlNldFJlY29yZE93bmVyUmVxdWVzdBoiLnJlY29yZHMudjEuU2V0UmVjb3JkT3duZXJSZXNwb25zZRJsChVCYXRjaFJlY29yZE9wZXJhdGlvbnMSKC5yZWNvcmRzLnYxLkJhdGNoUmVjb3JkT3BlcmF0aW9uc1JlcXVlc3QaKS5yZWNvcmRzLnYxLkJhdGNoUmVjb3JkT3BlcmF0aW9uc1Jlc3BvbnNlEmAKEUJ1bGtVcGRhdGVSZWNvcmRzEiQucmVjb3Jkcy52MS5CdWxrVXBkYXRlUmVjb3Jkc1JlcXVlc3QaJS5yZWNvcmRzLnYxLkJ1bGtVcGRhdGVSZWNvcmRzUmVzcG9uc2USbwoWQmFja2ZpbGxRdWVyeWFibGVJbmRleBIpLnJlY29yZHMudjEuQmFja2ZpbGxRdWVyeWFibGVJbmRleFJlcXVlc3QaKi5yZWNvcmRzLnYxLkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXNwb25zZRJpChRCYWNrZmlsbE1vZGVsSW5kZXhlcxInLnJlY29yZHMudjEuQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXF1ZXN0GigucmVjb3Jkcy52MS5CYWNrZmlsbE1vZGVsSW5kZXhlc1Jlc3BvbnNlEn4KG0xpc3RTbG93UXVlcnlBZHZpc29yRW50cmllcxIuLnJlY29yZHMudjEuTGlzdFNsb3dRdWVyeUFkdmlzb3JFbnRyaWVzUmVxdWVzdBovLnJlY29yZHMudjEuTGlzdFNsb3dRdWVyeUFkdmlzb3JFbnRyaWVzUmVzcG9uc2UScgoXU2xvd1F1ZXJ5QWR2aXNvclN1bW1hcnkSKi5yZWNvcmRzLnYxLlNsb3dRdWVyeUFkdmlzb3JTdW1tYXJ5UmVxdWVzdBorLnJlY29yZHMudjEuU2xvd1F1ZXJ5QWR2aXNvclN1bW1hcnlSZXNwb25zZRJ7ChpDbGVhclNsb3dRdWVyeUFkdmlzb3JFbnRyeRItLnJlY29yZHMudjEuQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnlSZXF1ZXN0Gi4ucmVjb3Jkcy52MS5DbGVhclNsb3dRdWVyeUFkdmlzb3JFbnRyeVJlc3BvbnNlEloKD0R1cGxpY2F0ZVJlY29yZBIiLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3JkUmVxdWVzdBojLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3JkUmVzcG9uc2USaQoURHVwbGljYXRlUmVjb3Jkc0J1bGsSJy5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZHNCdWxrUmVxdWVzdBooLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXNwb25zZRJXCg5QdWJsaXNoVmVyc2lvbhIhLnJlY29yZHMudjEuUHVibGlzaFZlcnNpb25SZXF1ZXN0GiIucmVjb3Jkcy52MS5QdWJsaXNoVmVyc2lvblJlc3BvbnNlEloKD1VucHVibGlzaFJlY29yZBIiLnJlY29yZHMudjEuVW5wdWJsaXNoUmVjb3JkUmVxdWVzdBojLnJlY29yZHMudjEuVW5wdWJsaXNoUmVjb3JkUmVzcG9uc2USWgoPUmV2ZXJ0VG9WZXJzaW9uEiIucmVjb3Jkcy52MS5SZXZlcnRUb1ZlcnNpb25SZXF1ZXN0GiMucmVjb3Jkcy52MS5SZXZlcnRUb1ZlcnNpb25SZXNwb25zZRJjChJMaXN0UmVjb3JkVmVyc2lvbnMSJS5yZWNvcmRzLnYxLkxpc3RSZWNvcmRWZXJzaW9uc1JlcXVlc3QaJi5yZWNvcmRzLnYxLkxpc3RSZWNvcmRWZXJzaW9uc1Jlc3BvbnNlElQKDUNyZWF0ZVZhcmlhbnQSIC5yZWNvcmRzLnYxLkNyZWF0ZVZhcmlhbnRSZXF1ZXN0GiEucmVjb3Jkcy52MS5DcmVhdGVWYXJpYW50UmVzcG9uc2UScgoXQ2FwdHVyZURlZmF1bHRBc1ZhcmlhbnQSKi5yZWNvcmRzLnYxLkNhcHR1cmVEZWZhdWx0QXNWYXJpYW50UmVxdWVzdBorLnJlY29yZHMudjEuQ2FwdHVyZURlZmF1bHRBc1ZhcmlhbnRSZXNwb25zZRJUCg1VcGRhdGVWYXJpYW50EiAucmVjb3Jkcy52MS5VcGRhdGVWYXJpYW50UmVxdWVzdBohLnJlY29yZHMudjEuVXBkYXRlVmFyaWFudFJlc3BvbnNlElQKDURlbGV0ZVZhcmlhbnQSIC5yZWNvcmRzLnYxLkRlbGV0ZVZhcmlhbnRSZXF1ZXN0GiEucmVjb3Jkcy52MS5EZWxldGVWYXJpYW50UmVzcG9uc2USYAoRU2V0RGVmYXVsdFZhcmlhbnQSJC5yZWNvcmRzLnYxLlNldERlZmF1bHRWYXJpYW50UmVxdWVzdBolLnJlY29yZHMudjEuU2V0RGVmYXVsdFZhcmlhbnRSZXNwb25zZRJjChJMaXN0UmVjb3JkVmFyaWFudHMSJS5yZWNvcmRzLnYxLkxpc3RSZWNvcmRWYXJpYW50c1JlcXVlc3QaJi5yZWNvcmRzLnYxLkxpc3RSZWNvcmRWYXJpYW50c1Jlc3BvbnNlEmwKFVNjaGVkdWxlUmVjb3JkUHVibGlzaBIoLnJlY29yZHMudjEuU2NoZWR1bGVSZWNvcmRQdWJsaXNoUmVxdWVzdBopLnJlY29yZHMudjEuU2NoZWR1bGVSZWNvcmRQdWJsaXNoUmVzcG9uc2USgQEKHENhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2gSLy5yZWNvcmRzLnYxLkNhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXF1ZXN0GjAucmVjb3Jkcy52MS5DYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoUmVzcG9uc2USbwoWTGlzdFNjaGVkdWxlZFB1Ymxpc2hlcxIpLnJlY29yZHMudjEuTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1JlcXVlc3QaKi5yZWNvcmRzLnYxLkxpc3RTY2hlZHVsZWRQdWJsaXNoZXNSZXNwb25zZRJmChNHZXRTY2hlZHVsZWRQdWJsaXNoEiYucmVjb3Jkcy52MS5HZXRTY2hlZHVsZWRQdWJsaXNoUmVxdWVzdBonLnJlY29yZHMudjEuR2V0U2NoZWR1bGVkUHVibGlzaFJlc3BvbnNlEmAKEUxpc3REcmFmdFZlcnNpb25zEiQucmVjb3Jkcy52MS5MaXN0RHJhZnRWZXJzaW9uc1JlcXVlc3QaJS5yZWNvcmRzLnYxLkxpc3REcmFmdFZlcnNpb25zUmVzcG9uc2USaQoUQmF0Y2hQdWJsaXNoVmVyc2lvbnMSJy5yZWNvcmRzLnYxLkJhdGNoUHVibGlzaFZlcnNpb25zUmVxdWVzdBooLnJlY29yZHMudjEuQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXNwb25zZRJmChNCYXRjaFJlc29sdmVSZWNvcmRzEiYucmVjb3Jkcy52MS5CYXRjaFJlc29sdmVSZWNvcmRzUmVxdWVzdBonLnJlY29yZHMudjEuQmF0Y2hSZXNvbHZlUmVjb3Jkc1Jlc3BvbnNlElcKDlJlc29sdmVDb250ZW50EiEucmVjb3Jkcy52MS5SZXNvbHZlQ29udGVudFJlcXVlc3QaIi5yZWNvcmRzLnYxLlJlc29sdmVDb250ZW50UmVzcG9uc2USYwoSTG9va3VwUmVjb3JkTW9kZWxzEiUucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXNwb25zZRJRCgxHbG9iYWxTZWFyY2gSHy5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlcXVlc3QaIC5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlc3BvbnNlElEKDExvb2t1cFJlY29yZBIfLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVzcG9uc2UScgoXQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHkSKi5yZWNvcmRzLnYxLkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVxdWVzdBorLnJlY29yZHMudjEuQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXNwb25zZRJmChNMaXN0TG9va3VwQ29uZmxpY3RzEiYucmVjb3Jkcy52MS5MaXN0TG9va3VwQ29uZmxpY3RzUmVxdWVzdBonLnJlY29yZHMudjEuTGlzdExvb2t1cENvbmZsaWN0c1Jlc3BvbnNlEmYKE1JlYnVpbGRNb2RlbExvb2t1cHMSJi5yZWNvcmRzLnYxLlJlYnVpbGRNb2RlbExvb2t1cHNSZXF1ZXN0GicucmVjb3Jkcy52MS5SZWJ1aWxkTW9kZWxMb29rdXBzUmVzcG9uc2USYwoSUHVyZ2VSZXNwb25zZUNhY2hlEiUucmVjb3Jkcy52MS5QdXJnZVJlc3BvbnNlQ2FjaGVSZXF1ZXN0GiYucmVjb3Jkcy52MS5QdXJnZVJlc3BvbnNlQ2FjaGVSZXNwb25zZRJgChFHZXRFbWJlZGRpbmdTdGF0cxIkLnJlY29yZHMudjEuR2V0RW1iZWRkaW5nU3RhdHNSZXF1ZXN0GiUucmVjb3Jkcy52MS5HZXRFbWJlZGRpbmdTdGF0c1Jlc3BvbnNlEmYKE0dldFJlY29yZEVtYmVkZGluZ3MSJi5yZWNvcmRzLnYxLkdldFJlY29yZEVtYmVkZGluZ3NSZXF1ZXN0GicucmVjb3Jkcy52MS5HZXRSZWNvcmRFbWJlZGRpbmdzUmVzcG9uc2USYwoSRmluZFNpbWlsYXJSZWNvcmRzEiUucmVjb3Jkcy52MS5GaW5kU2ltaWxhclJlY29yZHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5GaW5kU2ltaWxhclJlY29yZHNSZXNwb25zZRJaCg9Xcml0ZUVtYmVkZGluZ3MSIi5yZWNvcmRzLnYxLldyaXRlRW1iZWRkaW5nc1JlcXVlc3QaIy5yZWNvcmRzLnYxLldyaXRlRW1iZWRkaW5nc1Jlc3BvbnNlEl0KEERlbGV0ZUVtYmVkZGluZ3MSIy5yZWNvcmRzLnYxLkRlbGV0ZUVtYmVkZGluZ3NSZXF1ZXN0GiQucmVjb3Jkcy52MS5EZWxldGVFbWJlZGRpbmdzUmVzcG9uc2USXQoQU2VhcmNoRW1iZWRkaW5ncxIjLnJlY29yZHMudjEuU2VhcmNoRW1iZWRkaW5nc1JlcXVlc3QaJC5yZWNvcmRzLnYxLlNlYXJjaEVtYmVkZGluZ3NSZXNwb25zZRJyChdSZWNvcmRzTWlzc2luZ0VtYmVkZGluZxIqLnJlY29yZHMudjEuUmVjb3Jkc01pc3NpbmdFbWJlZGRpbmdSZXF1ZXN0GisucmVjb3Jkcy52MS5SZWNvcmRzTWlzc2luZ0VtYmVkZGluZ1Jlc3BvbnNlEl0KEEVtYmVkZGluZ0RpZ2VzdHMSIy5yZWNvcmRzLnYxLkVtYmVkZGluZ0RpZ2VzdHNSZXF1ZXN0GiQucmVjb3Jkcy52MS5FbWJlZGRpbmdEaWdlc3RzUmVzcG9uc2USdQoYRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nEisucmVjb3Jkcy52MS5FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXF1ZXN0GiwucmVjb3Jkcy52MS5FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXNwb25zZRJdChBTZWFyY2hCeUxvY2F0aW9uEiMucmVjb3Jkcy52MS5TZWFyY2hCeUxvY2F0aW9uUmVxdWVzdBokLnJlY29yZHMudjEuU2VhcmNoQnlMb2NhdGlvblJlc3BvbnNlEmMKEkZpbmROZWFyZXN0UmVjb3JkcxIlLnJlY29yZHMudjEuRmluZE5lYXJlc3RSZWNvcmRzUmVxdWVzdBomLnJlY29yZHMudjEuRmluZE5lYXJlc3RSZWNvcmRzUmVzcG9uc2USbwoWUmVjb3Jkc01pc3NpbmdHZW9tZXRyeRIpLnJlY29yZHMudjEuUmVjb3Jkc01pc3NpbmdHZW9tZXRyeVJlcXVlc3QaKi5yZWNvcmRzLnYxLlJlY29yZHNNaXNzaW5nR2VvbWV0cnlSZXNwb25zZRJvChZCYWNrZmlsbFJlY29yZEdlb21ldHJ5EikucmVjb3Jkcy52MS5CYWNrZmlsbFJlY29yZEdlb21ldHJ5UmVxdWVzdBoqLnJlY29yZHMudjEuQmFja2ZpbGxSZWNvcmRHZW9tZXRyeVJlc3BvbnNlEnsKGlJlY29yZHNVc2luZ1ZhcmlhbnRDYXRhbG9nEi0ucmVjb3Jkcy52MS5SZWNvcmRzVXNpbmdWYXJpYW50Q2F0YWxvZ1JlcXVlc3QaLi5yZWNvcmRzLnYxLlJlY29yZHNVc2luZ1ZhcmlhbnRDYXRhbG9nUmVzcG9uc2USaQoUUmVjb3Jkc01pc3NpbmdMb2NhbGUSJy5yZWNvcmRzLnYxLlJlY29yZHNNaXNzaW5nTG9jYWxlUmVxdWVzdBooLnJlY29yZHMudjEuUmVjb3Jkc01pc3NpbmdMb2NhbGVSZXNwb25zZUI7WjlnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vcmVjb3Jkcy92MTtyZWNvcmRzdjFiBnByb3RvMw", [file_google_protobuf_struct3, file_google_protobuf_timestamp4, file_common_v1_pagination, file_expressions_v1_expressions]);
|
|
921
|
+
var file_records_v1_records = /* @__PURE__ */ fileDesc7("ChhyZWNvcmRzL3YxL3JlY29yZHMucHJvdG8SCnJlY29yZHMudjEi2g0KBlJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIWCglwYXJlbnRfaWQYBCABKAlIAYgBARIrCgtyZWNvcmRfdHlwZRgFIAEoDjIWLnJlY29yZHMudjEuUmVjb3JkVHlwZRIlCgRkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIVCghvd25lcl9pZBgIIAEoCUgDiAEBEhcKCm93bmVyX2tpbmQYCSABKAlIBIgBARIRCgl0ZW5hbnRfaWQYCiABKAkSEgoKcHJvamVjdF9pZBgLIAEoCRIXCgpjcmVhdGVkX2J5GBQgASgJSAWIAQESFwoKdXBkYXRlZF9ieRgVIAEoCUgGiAEBEi4KCmNyZWF0ZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKDnZlcnNpb25fbnVtYmVyGCggASgFSAeIAQESGQoMY29udGVudF9oYXNoGCkgASgJSAiIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGCogASgJSAmIAQESGwoOcHVibGlzaF9zdGF0dXMYKyABKAlICogBARI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBgsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIC4gBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GC0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgMiAEBEh0KEHB1Ymxpc2hfYmF0Y2hfaWQYLiABKAlIDYgBARIYCgt2YXJpYW50X2tleRgyIAEoCUgOiAEBEhkKDHZhcmlhbnRfbmFtZRgzIAEoCUgPiAEBEiAKE3ZhcmlhbnRfZGVzY3JpcHRpb24YNCABKAlIEIgBARIXCgpjYXRhbG9nX2lkGDUgASgJSBGIAQESFQoIcHJpb3JpdHkYNiABKAVIEogBARI8Cg90YXJnZXRpbmdfcnVsZXMYNyABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbkgTiAEBEhcKCmlzX2RlZmF1bHQYOCABKAhIFIgBARIfChJjdXJyZW50X3ZlcnNpb25faWQYPCABKAlIFYgBARIhChRwdWJsaXNoZWRfdmVyc2lvbl9pZBg9IAEoCUgWiAEBEiUKGHB1Ymxpc2hlZF92ZXJzaW9uX251bWJlchg+IAEoBUgXiAEBEjUKDHB1Ymxpc2hlZF9hdBg/IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIGIgBARIZCgxwdWJsaXNoZWRfYnkYQCABKAlIGYgBARITCgtjYW5fcHVibGlzaBhBIAEoCBIVCg1jYW5fdW5wdWJsaXNoGEIgASgIEh8KF2hhc191bnB1Ymxpc2hlZF9jaGFuZ2VzGEMgASgIEh0KEG1vZGVsX3ZlcnNpb25faWQYRiABKAlIGogBAUIOCgxfbmF0dXJhbF9rZXlCDAoKX3BhcmVudF9pZEILCglfbWV0YWRhdGFCCwoJX293bmVyX2lkQg0KC19vd25lcl9raW5kQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5QhEKD192ZXJzaW9uX251bWJlckIPCg1fY29udGVudF9oYXNoQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CEQoPX3B1Ymxpc2hfc3RhdHVzQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdEITChFfcHVibGlzaF9iYXRjaF9pZEIOCgxfdmFyaWFudF9rZXlCDwoNX3ZhcmlhbnRfbmFtZUIWChRfdmFyaWFudF9kZXNjcmlwdGlvbkINCgtfY2F0YWxvZ19pZEILCglfcHJpb3JpdHlCEgoQX3RhcmdldGluZ19ydWxlc0INCgtfaXNfZGVmYXVsdEIVChNfY3VycmVudF92ZXJzaW9uX2lkQhcKFV9wdWJsaXNoZWRfdmVyc2lvbl9pZEIbChlfcHVibGlzaGVkX3ZlcnNpb25fbnVtYmVyQg8KDV9wdWJsaXNoZWRfYXRCDwoNX3B1Ymxpc2hlZF9ieUITChFfbW9kZWxfdmVyc2lvbl9pZCL1AQoPUHVibGlzaFNjaGVkdWxlEhIKCnZlcnNpb25faWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYBSABKAlIAYgBAUIPCg1fdW5wdWJsaXNoX2F0Qg0KC19jcmVhdGVkX2J5Ii4KCVNvcnRGaWVsZBINCgVmaWVsZBgBIAEoCRISCgpkZXNjZW5kaW5nGAIgASgIIv8BCg5CYXRjaE9wZXJhdGlvbhIsCgR0eXBlGAEgASgOMh4ucmVjb3Jkcy52MS5CYXRjaE9wZXJhdGlvblR5cGUSDwoCaWQYAiABKAlIAIgBARIWCgltb2RlbF9rZXkYAyABKAlIAYgBARIYCgtuYXR1cmFsX2tleRgEIAEoCUgCiAEBEioKBGRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESFQoIb3duZXJfaWQYBiABKAlIBIgBAUIFCgNfaWRCDAoKX21vZGVsX2tleUIOCgxfbmF0dXJhbF9rZXlCBwoFX2RhdGFCCwoJX293bmVyX2lkIogBChRCYXRjaE9wZXJhdGlvblJlc3VsdBINCgVpbmRleBgBIAEoBRIPCgdzdWNjZXNzGAIgASgIEicKBnJlY29yZBgDIAEoCzISLnJlY29yZHMudjEuUmVjb3JkSACIAQESEgoFZXJyb3IYBCABKAlIAYgBAUIJCgdfcmVjb3JkQggKBl9lcnJvciKSAgoTQ3JlYXRlUmVjb3JkUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSGAoLbmF0dXJhbF9rZXkYAiABKAlIAIgBARIlCgRkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIVCghvd25lcl9pZBgEIAEoCUgBiAEBEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgGIAEoCUgDiAEBQg4KDF9uYXR1cmFsX2tleUILCglfb3duZXJfaWRCCwoJX21ldGFkYXRhQhUKE19jaGFuZ2VfZGVzY3JpcHRpb24ipgEKFENyZWF0ZVJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkEigKB3ZhcmlhbnQYAiABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgAiAEBEigKB3ZlcnNpb24YAyABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgBiAEBQgoKCF92YXJpYW50QgoKCF92ZXJzaW9uIh4KEEdldFJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkiNwoRR2V0UmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiPwoVR2V0UmVjb3JkQnlLZXlSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRITCgtuYXR1cmFsX2tleRgCIAEoCSI8ChZHZXRSZWNvcmRCeUtleVJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIkIKGUdldFJlY29yZEJ5S2V5T3JJZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhIKCmlkZW50aWZpZXIYAiABKAkiQAoaR2V0UmVjb3JkQnlLZXlPcklkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQi4gIKEkxpc3RSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSIwoEc29ydBgCIAMoCzIVLnJlY29yZHMudjEuU29ydEZpZWxkEhUKCG93bmVyX2lkGAMgASgJSACIAQESEwoGc2VhcmNoGAQgASgJSAGIAQESDwoHcHJldmlldxgFIAEoCBIrCgV3aGVyZRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARISCgVhZnRlchgHIAEoCUgDiAEBEhMKBmJlZm9yZRgIIAEoCUgEiAEBEhIKBWZpcnN0GAkgASgFSAWIAQESEQoEbGFzdBgKIAEoBUgGiAEBQgsKCV9vd25lcl9pZEIJCgdfc2VhcmNoQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgLEAxKBAgMEA1KBAgNEA4ilQEKE0xpc3RSZWNvcmRzUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyLYAgoTVXBkYXRlUmVjb3JkUmVxdWVzdBIKCgJpZBgBIAEoCRInCgZ1cGRhdGUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESGAoLdmFyaWFudF9rZXkYBCABKAlIAYgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBSABKAlIAogBARIyCgxyZXBsYWNlX2RhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCDgoMX25hdHVyYWxfa2V5Qg4KDF92YXJpYW50X2tleUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQg8KDV9yZXBsYWNlX2RhdGFCCwoJX21ldGFkYXRhIjoKFFVwZGF0ZVJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIkoKFUF1dG9TYXZlUmVjb3JkUmVxdWVzdBIKCgJpZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJDChZBdXRvU2F2ZVJlY29yZFJlc3BvbnNlEhEKCXBlcnNpc3RlZBgBIAEoCBIWCg5za2lwcGVkX3JlYXNvbhgCIAEoCSIhChNEZWxldGVSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJIicKFERlbGV0ZVJlY29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgipwEKE1Vwc2VydFJlY29yZFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEQoJbW9kZWxfa2V5GAMgASgJEhMKC25hdHVyYWxfa2V5GAQgASgJEiUKBGRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhoKEmNoYW5nZV9kZXNjcmlwdGlvbhgGIAEoCSJLChRVcHNlcnRSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIPCgdjcmVhdGVkGAIgASgIIk4KHEJhdGNoUmVjb3JkT3BlcmF0aW9uc1JlcXVlc3QSLgoKb3BlcmF0aW9ucxgBIAMoCzIaLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb24iUgodQmF0Y2hSZWNvcmRPcGVyYXRpb25zUmVzcG9uc2USMQoHcmVzdWx0cxgBIAMoCzIgLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb25SZXN1bHQitwEKGEJ1bGtVcGRhdGVSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSKwoFd2hlcmUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLAoGdXBkYXRlGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBQggKBl93aGVyZUIJCgdfdXBkYXRlSgQIBBAFSgQIBRAGUgx0eXBlZF91cGRhdGUiNwoZQnVsa1VwZGF0ZVJlY29yZHNSZXNwb25zZRINCgVjb3VudBgBIAEoBRILCgNpZHMYAiADKAkiMgodQmFja2ZpbGxRdWVyeWFibGVJbmRleFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJIjkKHkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXNwb25zZRIXCg9yZWNvcmRzX2luZGV4ZWQYASABKAUiMAobQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSJhChxCYWNrZmlsbE1vZGVsSW5kZXhlc1Jlc3BvbnNlEh4KFmxvb2t1cHNfcmVjb3Jkc193YWxrZWQYASABKAUSIQoZcXVlcnlhYmxlX3JlY29yZHNfaW5kZXhlZBgCIAEoBSJWChZEdXBsaWNhdGVSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhwKD25ld19uYXR1cmFsX2tleRgCIAEoCUgAiAEBQhIKEF9uZXdfbmF0dXJhbF9rZXkiPQoXRHVwbGljYXRlUmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiUAobRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXF1ZXN0EgsKA2lkcxgBIAMoCRIWCgltb2RlbF9rZXkYAiABKAlIAIgBAUIMCgpfbW9kZWxfa2V5IkMKHER1cGxpY2F0ZVJlY29yZHNCdWxrUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkIisKFVB1Ymxpc2hWZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJIjwKFlB1Ymxpc2hWZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiKwoWVW5wdWJsaXNoUmVjb3JkUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiKgoXVW5wdWJsaXNoUmVjb3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChZSZXZlcnRUb1ZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiPQoXUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQipgEKGUxpc3RSZWNvcmRWZXJzaW9uc1JlcXVlc3QSEQoJcGFyZW50X2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEwoGYmVmb3JlGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBARIRCgRsYXN0GAUgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Ip0BChpMaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRIkCgh2ZXJzaW9ucxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJlChRDcmVhdGVWYXJpYW50UmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEwoLdmFyaWFudF9rZXkYAiABKAkSJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPAoVQ3JlYXRlVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJbCh5DYXB0dXJlRGVmYXVsdEFzVmFyaWFudFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSEAoDa2V5GAMgASgJSACIAQFCBgoEX2tleSJ7Ch9DYXB0dXJlRGVmYXVsdEFzVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIYChBjYXRhbG9nX2VudHJ5X2lkGAIgASgJEhkKEWNhdGFsb2dfZW50cnlfa2V5GAMgASgJIpoBChRVcGRhdGVWYXJpYW50UmVxdWVzdBISCgp2YXJpYW50X2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKDm1ldGFkYXRhX3BhdGNoGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQhEKD19tZXRhZGF0YV9wYXRjaCI8ChVVcGRhdGVWYXJpYW50UmVzcG9uc2USIwoHdmFyaWFudBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIioKFERlbGV0ZVZhcmlhbnRSZXF1ZXN0EhIKCnZhcmlhbnRfaWQYASABKAkiKAoVRGVsZXRlVmFyaWFudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgidgoVU2V0UmVjb3JkT3duZXJSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIVCghvd25lcl9pZBgCIAEoCUgAiAEBEhcKCm93bmVyX2tpbmQYAyABKAlIAYgBAUILCglfb3duZXJfaWRCDQoLX293bmVyX2tpbmQiPAoWU2V0UmVjb3JkT3duZXJSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJBChhTZXREZWZhdWx0VmFyaWFudFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhIKCnZhcmlhbnRfaWQYAiABKAkiPwoZU2V0RGVmYXVsdFZhcmlhbnRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCKmAQoZTGlzdFJlY29yZFZhcmlhbnRzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEgoFYWZ0ZXIYAiABKAlIAIgBARITCgZiZWZvcmUYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBEhEKBGxhc3QYBSABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QinQEKGkxpc3RSZWNvcmRWYXJpYW50c1Jlc3BvbnNlEiQKCHZhcmlhbnRzGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIqoBChxTY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiRAodU2NoZWR1bGVSZWNvcmRQdWJsaXNoUmVzcG9uc2USIwoHdmVyc2lvbhgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIjkKI0NhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiSwokQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlc3BvbnNlEiMKB3ZlcnNpb24YASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCKpAgodTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1JlcXVlc3QSLQoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIrCgJ0bxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIWCgltb2RlbF9rZXkYAyABKAlIAogBARISCgVhZnRlchgEIAEoCUgDiAEBEhMKBmJlZm9yZRgFIAEoCUgEiAEBEhIKBWZpcnN0GAYgASgFSAWIAQESEQoEbGFzdBgHIAEoBUgGiAEBQgcKBV9mcm9tQgUKA190b0IMCgpfbW9kZWxfa2V5QggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKhAQoeTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIjAKGkdldFNjaGVkdWxlZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiTAobR2V0U2NoZWR1bGVkUHVibGlzaFJlc3BvbnNlEi0KCHNjaGVkdWxlGAEgASgLMhsucmVjb3Jkcy52MS5QdWJsaXNoU2NoZWR1bGUijQIKGExpc3REcmFmdFZlcnNpb25zUmVxdWVzdBIWCgltb2RlbF9rZXkYASABKAlIAIgBARITCgZzZWFyY2gYAiABKAlIAYgBARISCgVhZnRlchgGIAEoCUgCiAEBEhMKBmJlZm9yZRgHIAEoCUgDiAEBEhIKBWZpcnN0GAggASgFSASIAQESEQoEbGFzdBgJIAEoBUgFiAEBEhgKEGRlZHVwZV9ieV9wYXJlbnQYBSABKAhCDAoKX21vZGVsX2tleUIJCgdfc2VhcmNoQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAMQBEoECAQQBVIFbGltaXRSBm9mZnNldCKcAQoZTGlzdERyYWZ0VmVyc2lvbnNSZXNwb25zZRIkCgh2ZXJzaW9ucxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIyChtCYXRjaFB1Ymxpc2hWZXJzaW9uc1JlcXVlc3QSEwoLdmVyc2lvbl9pZHMYASADKAkiXAocQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXNwb25zZRIjCgdyZWNvcmRzGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSFwoPcHVibGlzaGVkX2NvdW50GAIgASgFIt8BChpCYXRjaFJlc29sdmVSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEgoKcmVjb3JkX2lkcxgCIAMoCRIYCgtjdXN0b21lcl9pZBgDIAEoCUgAiAEBEi0KB2NvbnRleHQYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESDwoHcHJldmlldxgFIAEoCBISCgp1bnJlc29sdmVkGAcgASgIQg4KDF9jdXN0b21lcl9pZEIKCghfY29udGV4dEoECAYQB1IKdmlld2VyX2tleSJKChtCYXRjaFJlc29sdmVSZWNvcmRzUmVzcG9uc2USKwoHcmVjb3JkcxgBIAMoCzIaLnJlY29yZHMudjEuUmVzb2x2ZWRSZWNvcmQixwEKFVJlc29sdmVDb250ZW50UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLY3VzdG9tZXJfaWQYAyABKAlIAIgBARItCgdjb250ZXh0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEg8KB3ByZXZpZXcYBSABKAhCDgoMX2N1c3RvbWVyX2lkQgoKCF9jb250ZXh0Ij8KFlJlc29sdmVDb250ZW50UmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiswUKDlJlc29sdmVkUmVjb3JkEhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIlCgRkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFwoKdmFyaWFudF9pZBgGIAEoCUgBiAEBEhEKCWhhc19kcmFmdBgIIAEoCBIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCghvd25lcl9pZBgLIAEoCUgCiAEBEhcKCm93bmVyX2tpbmQYDCABKAlIA4gBARIYCgt2YXJpYW50X2tleRgNIAEoCUgEiAEBEjoKCHNlZ21lbnRzGA4gAygLMigucmVjb3Jkcy52MS5SZXNvbHZlZFJlY29yZC5TZWdtZW50c0VudHJ5EisKC3Jlc29sdmVkX2J5GA8gASgOMhYucmVjb3Jkcy52MS5SZXNvbHZlZEJ5EjkKDmZpZWxkX3ZhcmlhbnRzGBAgAygLMiEucmVjb3Jkcy52MS5GaWVsZFZhcmlhbnRTZWxlY3Rpb24aLwoNU2VnbWVudHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAg6AjgBQg4KDF9uYXR1cmFsX2tleUINCgtfdmFyaWFudF9pZEILCglfb3duZXJfaWRCDQoLX293bmVyX2tpbmRCDgoMX3ZhcmlhbnRfa2V5SgQIBxAIUhNleHBlcmltZW50X2V4cG9zdXJlIkAKFUZpZWxkVmFyaWFudFNlbGVjdGlvbhISCgpmaWVsZF9wYXRoGAEgASgJEhMKC3ZhcmlhbnRfa2V5GAIgASgJIi8KGUxvb2t1cFJlY29yZE1vZGVsc1JlcXVlc3QSEgoKcmVjb3JkX2lkcxgBIAMoCSI4ChBSZWNvcmRNb2RlbEVudHJ5EhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkiSwoaTG9va3VwUmVjb3JkTW9kZWxzUmVzcG9uc2USLQoHZW50cmllcxgBIAMoCzIcLnJlY29yZHMudjEuUmVjb3JkTW9kZWxFbnRyeSLWAQoTR2xvYmFsU2VhcmNoUmVxdWVzdBINCgVxdWVyeRgBIAEoCRISCgptb2RlbF9rZXlzGAIgAygJEhIKBWFmdGVyGAMgASgJSACIAQESEwoGYmVmb3JlGAQgASgJSAGIAQESEgoFZmlyc3QYBSABKAVIAogBARIRCgRsYXN0GAYgASgFSAOIAQESFwoPY3Jvc3Nfd29ya3NwYWNlGAcgASgIQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAoQC1IFbGltaXQiuAEKEFNlYXJjaFJlc3VsdEl0ZW0SCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDQoFc2NvcmUYBSABKAESEQoJdGVuYW50X2lkGAYgASgJEhIKCnByb2plY3RfaWQYByABKAlCDgoMX25hdHVyYWxfa2V5IqABChRHbG9iYWxTZWFyY2hSZXNwb25zZRItCgdyZWNvcmRzGAEgAygLMhwucmVjb3Jkcy52MS5TZWFyY2hSZXN1bHRJdGVtEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKhAQoORW1iZWRkaW5nU3RhdHMSEQoJbW9kZWxfa2V5GAEgASgJEhUKDXRvdGFsX3JlY29yZHMYAiABKAUSGAoQZW1iZWRkZWRfcmVjb3JkcxgDIAEoBRIXCg9wZW5kaW5nX3JlY29yZHMYBCABKAUSHQoQbGFzdF9lbWJlZGRlZF9hdBgFIAEoCUgAiAEBQhMKEV9sYXN0X2VtYmVkZGVkX2F0IvgBCg9SZWNvcmRFbWJlZGRpbmcSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRISCgpkaW1lbnNpb25zGAMgASgFEhgKC2VtYmVkZGVkX2F0GAQgASgJSACIAQESDgoGbG9jYWxlGAUgASgJEhYKDnJlY29yZF92YXJpYW50GAYgASgJEg0KBWZpZWxkGAcgASgJEhUKDWZpZWxkX3ZhcmlhbnQYCCABKAkSEAoIcHJvdmlkZXIYCSABKAkSEgoKbW9kZWxfbmFtZRgKIAEoCRINCgVlbnRyeRgLIAEoCUIOCgxfZW1iZWRkZWRfYXQimgIKDVNpbWlsYXJSZWNvcmQSCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoKc2ltaWxhcml0eRgFIAEoARIOCgZsb2NhbGUYBiABKAkSFgoOcmVjb3JkX3ZhcmlhbnQYByABKAkSDQoFZmllbGQYCCABKAkSFQoNZmllbGRfdmFyaWFudBgJIAEoCRIYCgtmaWVsZF9zY29yZRgKIAEoAUgBiAEBEg0KBWVudHJ5GAsgASgJQg4KDF9uYXR1cmFsX2tleUIOCgxfZmllbGRfc2NvcmUiQAoYR2V0RW1iZWRkaW5nU3RhdHNSZXF1ZXN0EhYKCW1vZGVsX2tleRgBIAEoCUgAiAEBQgwKCl9tb2RlbF9rZXkiRgoZR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRIpCgVzdGF0cxgBIAMoCzIaLnJlY29yZHMudjEuRW1iZWRkaW5nU3RhdHMiLwoaR2V0UmVjb3JkRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJIk4KG0dldFJlY29yZEVtYmVkZGluZ3NSZXNwb25zZRIvCgplbWJlZGRpbmdzGAEgAygLMhsucmVjb3Jkcy52MS5SZWNvcmRFbWJlZGRpbmcivgIKGUZpbmRTaW1pbGFyUmVjb3Jkc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhYKCW1vZGVsX2tleRgCIAEoCUgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQESGAoLY3VzdG9tZXJfaWQYByABKAlIBYgBARItCgdjb250ZXh0GAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBQgwKCl9tb2RlbF9rZXlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Qg4KDF9jdXN0b21lcl9pZEIKCghfY29udGV4dEoECAoQC1IFbGltaXQilAEKGkZpbmRTaW1pbGFyUmVjb3Jkc1Jlc3BvbnNlEioKB3JlY29yZHMYASADKAsyGS5yZWNvcmRzLnYxLlNpbWlsYXJSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIuEBChZXcml0ZUVtYmVkZGluZ3NSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIOCgZ2ZWN0b3IYAiADKAISEgoKZGltZW5zaW9ucxgDIAEoBRIVCghwcm92aWRlchgEIAEoCUgAiAEBEhcKCm1vZGVsX25hbWUYBSABKAlIAYgBARIQCgNrZXkYBiABKAlIAogBARIZCgxjb250ZW50X2hhc2gYByABKAlIA4gBAUILCglfcHJvdmlkZXJCDQoLX21vZGVsX25hbWVCBgoEX2tleUIPCg1fY29udGVudF9oYXNoIioKF1dyaXRlRW1iZWRkaW5nc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLAoXRGVsZXRlRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJIisKGERlbGV0ZUVtYmVkZGluZ3NSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIImcKH0VucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRITCgZzb3VyY2UYAyABKAlIAIgBAUIJCgdfc291cmNlIjQKIEVucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1Jlc3BvbnNlEhAKCGVucXVldWVkGAEgASgIIucCChdTZWFyY2hFbWJlZGRpbmdzUmVxdWVzdBIUCgxxdWVyeV92ZWN0b3IYASADKAISFgoJbW9kZWxfa2V5GAIgASgJSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBARIXCgpxdWVyeV90ZXh0GAcgASgJSAWIAQESGAoLY3VzdG9tZXJfaWQYCCABKAlIBogBARItCgdjb250ZXh0GAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBQgwKCl9tb2RlbF9rZXlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Qg0KC19xdWVyeV90ZXh0Qg4KDF9jdXN0b21lcl9pZEIKCghfY29udGV4dEoECAoQC1IFbGltaXQikgEKGFNlYXJjaEVtYmVkZGluZ3NSZXNwb25zZRIqCgdyZXN1bHRzGAEgAygLMhkucmVjb3Jkcy52MS5TaW1pbGFyUmVjb3JkEisKCXBhZ2VfaW5mbxgCIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYAyADKAlCDAoKX3BhZ2VfaW5mbyKJAQoeUmVjb3Jkc01pc3NpbmdFbWJlZGRpbmdSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRIQCgNrZXkYAiABKAlIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQFCBgoEX2tleUIICgZfYWZ0ZXJCCAoGX2ZpcnN0IlUKFk1pc3NpbmdFbWJlZGRpbmdSZWNvcmQSEQoJcmVjb3JkX2lkGAEgASgJEhgKC25hdHVyYWxfa2V5GAIgASgJSACIAQFCDgoMX25hdHVyYWxfa2V5IrEBCh9SZWNvcmRzTWlzc2luZ0VtYmVkZGluZ1Jlc3BvbnNlEjMKB3JlY29yZHMYASADKAsyIi5yZWNvcmRzLnYxLk1pc3NpbmdFbWJlZGRpbmdSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCRINCgV0b3RhbBgEIAEoBUIMCgpfcGFnZV9pbmZvIm0KF0VtYmVkZGluZ0RpZ2VzdHNSZXF1ZXN0EhIKCnJlY29yZF9pZHMYASADKAkSEAoDa2V5GAIgASgJSACIAQESFgoJbW9kZWxfa2V5GAMgASgJSAGIAQFCBgoEX2tleUIMCgpfbW9kZWxfa2V5IlAKD0VtYmVkZGluZ0RpZ2VzdBIRCglyZWNvcmRfaWQYASABKAkSGQoMY29udGVudF9oYXNoGAIgASgJSACIAQFCDwoNX2NvbnRlbnRfaGFzaCJIChhFbWJlZGRpbmdEaWdlc3RzUmVzcG9uc2USLAoHZGlnZXN0cxgBIAMoCzIbLnJlY29yZHMudjEuRW1iZWRkaW5nRGlnZXN0IjUKIEVzdGltYXRlRW1iZWRkaW5nQmFja2ZpbGxSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSKQAQohRXN0aW1hdGVFbWJlZGRpbmdCYWNrZmlsbFJlc3BvbnNlEhQKDHJlY29yZF9jb3VudBgBIAEoBRIYChBlc3RpbWF0ZWRfdG9rZW5zGAIgASgDEhkKEWVzdGltYXRlZF9jcmVkaXRzGAMgASgFEiAKGGFscmVhZHlfZW1iZWRkZWRfcmVjb3JkcxgEIAEoBSIyCh1TdGFydEVtYmVkZGluZ0JhY2tmaWxsUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiSAoeU3RhcnRFbWJlZGRpbmdCYWNrZmlsbFJlc3BvbnNlEhAKCGVucXVldWVkGAEgASgIEhQKDHJlY29yZF9jb3VudBgCIAEoBSKXAQoMTmVhcmJ5UmVjb3JkEgoKAmlkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBEiUKBGRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKD2Rpc3RhbmNlX21ldGVycxgFIAEoAUIOCgxfbmF0dXJhbF9rZXkimQIKF1NlYXJjaEJ5TG9jYXRpb25SZXF1ZXN0EgsKA2xhdBgBIAEoARILCgNsbmcYAiABKAESGgoNcmFkaXVzX21ldGVycxgDIAEoAUgAiAEBEhYKCW1vZGVsX2tleRgEIAEoCUgBiAEBEhAKA2tleRgFIAEoCUgCiAEBEhIKBWFmdGVyGAYgASgJSAOIAQESEwoGYmVmb3JlGAcgASgJSASIAQESEgoFZmlyc3QYCCABKAVIBYgBARIRCgRsYXN0GAkgASgFSAaIAQFCEAoOX3JhZGl1c19tZXRlcnNCDAoKX21vZGVsX2tleUIGCgRfa2V5QggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKRAQoYU2VhcmNoQnlMb2NhdGlvblJlc3BvbnNlEikKB3Jlc3VsdHMYASADKAsyGC5yZWNvcmRzLnYxLk5lYXJieVJlY29yZBIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAMgAygJQgwKCl9wYWdlX2luZm8i+gEKGUZpbmROZWFyZXN0UmVjb3Jkc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhoKDXJhZGl1c19tZXRlcnMYAiABKAFIAIgBARIWCgltb2RlbF9rZXkYAyABKAlIAYgBARISCgVhZnRlchgEIAEoCUgCiAEBEhMKBmJlZm9yZRgFIAEoCUgDiAEBEhIKBWZpcnN0GAYgASgFSASIAQESEQoEbGFzdBgHIAEoBUgFiAEBQhAKDl9yYWRpdXNfbWV0ZXJzQgwKCl9tb2RlbF9rZXlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpMBChpGaW5kTmVhcmVzdFJlY29yZHNSZXNwb25zZRIpCgdyZWNvcmRzGAEgAygLMhgucmVjb3Jkcy52MS5OZWFyYnlSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIlQKFU1pc3NpbmdHZW9tZXRyeVJlY29yZBIRCglyZWNvcmRfaWQYASABKAkSGAoLbmF0dXJhbF9rZXkYAiABKAlIAIgBAUIOCgxfbmF0dXJhbF9rZXkiiAEKHVJlY29yZHNNaXNzaW5nR2VvbWV0cnlSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRIQCgNrZXkYAiABKAlIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQFCBgoEX2tleUIICgZfYWZ0ZXJCCAoGX2ZpcnN0Iq8BCh5SZWNvcmRzTWlzc2luZ0dlb21ldHJ5UmVzcG9uc2USMgoHcmVjb3JkcxgBIAMoCzIhLnJlY29yZHMudjEuTWlzc2luZ0dlb21ldHJ5UmVjb3JkEisKCXBhZ2VfaW5mbxgCIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYAyADKAkSDQoFdG90YWwYBCABKAVCDAoKX3BhZ2VfaW5mbyIyCh1CYWNrZmlsbFJlY29yZEdlb21ldHJ5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiOQoeQmFja2ZpbGxSZWNvcmRHZW9tZXRyeVJlc3BvbnNlEhcKD3JlY29yZHNfaW5kZXhlZBgBIAEoBSKfAgoTTG9va3VwUmVjb3JkUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbG9va3VwX25hbWUYAiABKAkSEAoIa2V5X2hhc2gYAyABKAwSDwoHY2hhbm5lbBgEIAEoCRIXCgp2YXJpYW50X2lkGAUgASgJSACIAQESEwoGbG9jYWxlGAYgASgJSAGIAQESGAoLY3VzdG9tZXJfaWQYByABKAlIAogBARI2ChBjdXN0b21lcl9jb250ZXh0GAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg0KC192YXJpYW50X2lkQgkKB19sb2NhbGVCDgoMX2N1c3RvbWVyX2lkQhMKEV9jdXN0b21lcl9jb250ZXh0IjwKFExvb2t1cFJlY29yZFJlc3BvbnNlEhYKCXJlY29yZF9pZBgBIAEoCUgAiAEBQgwKCl9yZWNvcmRfaWQi6QEKHkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbG9va3VwX25hbWUYAiABKAkSEAoIa2V5X2hhc2gYAyABKAwSDwoHY2hhbm5lbBgEIAEoCRIXCgp2YXJpYW50X2lkGAUgASgJSACIAQESEwoGbG9jYWxlGAYgASgJSAGIAQESHgoRZXhjbHVkZV9yZWNvcmRfaWQYByABKAlIAogBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlQhQKEl9leGNsdWRlX3JlY29yZF9pZCI0Ch9DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlc3BvbnNlEhEKCWF2YWlsYWJsZRgBIAEoCCKXAQoUTG9va3VwQ29uZmxpY3REZXRhaWwSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEg8KB2NoYW5uZWwYAyABKAkSFwoKdmFyaWFudF9pZBgEIAEoCUgAiAEBEhMKBmxvY2FsZRgFIAEoCUgBiAEBQg0KC192YXJpYW50X2lkQgkKB19sb2NhbGUi4gEKGkxpc3RMb29rdXBDb25mbGljdHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRIYCgtsb29rdXBfbmFtZRgCIAEoCUgAiAEBEg8KB2NoYW5uZWwYAyABKAkSEgoFZmlyc3QYBCABKAVIAYgBARISCgVhZnRlchgFIAEoCUgCiAEBEhEKBGxhc3QYBiABKAVIA4gBARITCgZiZWZvcmUYByABKAlIBIgBAUIOCgxfbG9va3VwX25hbWVCCAoGX2ZpcnN0QggKBl9hZnRlckIHCgVfbGFzdEIJCgdfYmVmb3JlIqMBChtMaXN0TG9va3VwQ29uZmxpY3RzUmVzcG9uc2USKQoGZ3JvdXBzGAEgAygLMhkucmVjb3Jkcy52MS5Db25mbGljdEdyb3VwEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKVAQoNQ29uZmxpY3RHcm91cBITCgtlbmNvZGVkX2tleRgBIAEoCRIPCgdjaGFubmVsGAIgASgJEhcKCnZhcmlhbnRfaWQYAyABKAlIAIgBARIVCghvd25lcl9pZBgEIAEoCUgBiAEBEhIKCnJlY29yZF9pZHMYBSADKAlCDQoLX3ZhcmlhbnRfaWRCCwoJX293bmVyX2lkIi8KGlJlYnVpbGRNb2RlbExvb2t1cHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSI1ChtSZWJ1aWxkTW9kZWxMb29rdXBzUmVzcG9uc2USFgoOcmVjb3Jkc193YWxrZWQYASABKAUiTgoZUHVyZ2VSZXNwb25zZUNhY2hlUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEQoJaWRfb3Jfa2V5GAIgASgJEgsKA2FsbBgDIAEoCCJ+ChpQdXJnZVJlc3BvbnNlQ2FjaGVSZXNwb25zZRINCgVzY29wZRgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhEKCW1vZGVsX2tleRgDIAEoCRIRCglyZWNvcmRfaWQYBCABKAkSFwoPcmVjb3Jkc19zY2FubmVkGAUgASgFIo0BCiJMaXN0U2xvd1F1ZXJ5QWR2aXNvckVudHJpZXNSZXF1ZXN0EhUKDXJlc291cmNlX3R5cGUYASABKAkSGQoMcmVzb3VyY2Vfa2V5GAIgASgJSACIAQESFgoJcm93X2xpbWl0GAMgASgFSAGIAQFCDwoNX3Jlc291cmNlX2tleUIMCgpfcm93X2xpbWl0IlkKI0xpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1Jlc3BvbnNlEjIKB2VudHJpZXMYASADKAsyIS5yZWNvcmRzLnYxLlNsb3dRdWVyeUFkdmlzb3JFbnRyeSKrAQoVU2xvd1F1ZXJ5QWR2aXNvckVudHJ5EhUKDXJlc291cmNlX3R5cGUYASABKAkSFAoMcmVzb3VyY2Vfa2V5GAIgASgJEhIKCmZpZWxkX3BhdGgYAyABKAkSEAoIb3BlcmF0b3IYBCABKAkSDQoFY291bnQYBSABKAMSMAoMbGFzdF9zZWVuX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCI3Ch5TbG93UXVlcnlBZHZpc29yU3VtbWFyeVJlcXVlc3QSFQoNcmVzb3VyY2VfdHlwZRgBIAEoCSJhCh9TbG93UXVlcnlBZHZpc29yU3VtbWFyeVJlc3BvbnNlEj4KCXJlc291cmNlcxgBIAMoCzIrLnJlY29yZHMudjEuU2xvd1F1ZXJ5QWR2aXNvclJlc291cmNlU3VtbWFyeSJgCh9TbG93UXVlcnlBZHZpc29yUmVzb3VyY2VTdW1tYXJ5EhQKDHJlc291cmNlX2tleRgBIAEoCRITCgtlbnRyeV9jb3VudBgCIAEoBRISCgp0b3RhbF9oaXRzGAMgASgDIowBCiFDbGVhclNsb3dRdWVyeUFkdmlzb3JFbnRyeVJlcXVlc3QSFQoNcmVzb3VyY2VfdHlwZRgBIAEoCRIZCgxyZXNvdXJjZV9rZXkYAiABKAlIAIgBARISCgpmaWVsZF9wYXRoGAMgASgJEhAKCG9wZXJhdG9yGAQgASgJQg8KDV9yZXNvdXJjZV9rZXkiJAoiQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnlSZXNwb25zZSKZAQohUmVjb3Jkc1VzaW5nVmFyaWFudENhdGFsb2dSZXF1ZXN0EhIKCmNhdGFsb2dfaWQYASABKAkSFgoJbW9kZWxfa2V5GAIgASgJSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBQgwKCl9tb2RlbF9rZXlCCAoGX2FmdGVyQggKBl9maXJzdCKAAQoZVmFyaWFudENhdGFsb2dVc2FnZVJlY29yZBIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESEwoLdXNhZ2VfbGV2ZWwYBCABKAlCDgoMX25hdHVyYWxfa2V5IrcBCiJSZWNvcmRzVXNpbmdWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEjYKB3JlY29yZHMYASADKAsyJS5yZWNvcmRzLnYxLlZhcmlhbnRDYXRhbG9nVXNhZ2VSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCRINCgV0b3RhbBgEIAEoBUIMCgpfcGFnZV9pbmZvInwKG1JlY29yZHNNaXNzaW5nTG9jYWxlUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSDgoGbG9jYWxlGAIgASgJEhIKBWFmdGVyGAMgASgJSACIAQESEgoFZmlyc3QYBCABKAVIAYgBAUIICgZfYWZ0ZXJCCAoGX2ZpcnN0IlIKE01pc3NpbmdMb2NhbGVSZWNvcmQSEQoJcmVjb3JkX2lkGAEgASgJEhgKC25hdHVyYWxfa2V5GAIgASgJSACIAQFCDgoMX25hdHVyYWxfa2V5IqsBChxSZWNvcmRzTWlzc2luZ0xvY2FsZVJlc3BvbnNlEjAKB3JlY29yZHMYASADKAsyHy5yZWNvcmRzLnYxLk1pc3NpbmdMb2NhbGVSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCRINCgV0b3RhbBgEIAEoBUIMCgpfcGFnZV9pbmZvIh4KHFJlY29yZHNMb2NhbGVDb3ZlcmFnZVJlcXVlc3QiNwoOTG9jYWxlQ292ZXJhZ2USDgoGbG9jYWxlGAEgASgJEhUKDW1pc3NpbmdfY291bnQYAiABKAUiYwodUmVjb3Jkc0xvY2FsZUNvdmVyYWdlUmVzcG9uc2USKwoHbG9jYWxlcxgBIAMoCzIaLnJlY29yZHMudjEuTG9jYWxlQ292ZXJhZ2USFQoNdG90YWxfcmVjb3JkcxgCIAEoBSpzCgpSZWNvcmRUeXBlEhsKF1JFQ09SRF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSUkVDT1JEX1RZUEVfUkVDT1JEEAESFwoTUkVDT1JEX1RZUEVfVkFSSUFOVBACEhcKE1JFQ09SRF9UWVBFX1ZFUlNJT04QAyqdAQoSQmF0Y2hPcGVyYXRpb25UeXBlEiQKIEJBVENIX09QRVJBVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASHwobQkFUQ0hfT1BFUkFUSU9OX1RZUEVfQ1JFQVRFEAESHwobQkFUQ0hfT1BFUkFUSU9OX1RZUEVfVVBEQVRFEAISHwobQkFUQ0hfT1BFUkFUSU9OX1RZUEVfREVMRVRFEAMqdgoKUmVzb2x2ZWRCeRIbChdSRVNPTFZFRF9CWV9VTlNQRUNJRklFRBAAEhgKFFJFU09MVkVEX0JZX1RBUkdFVEVEEAESFwoTUkVTT0xWRURfQllfREVGQVVMVBACEhgKFFJFU09MVkVEX0JZX0ZBTExCQUNLEAMyhDEKDlJlY29yZHNTZXJ2aWNlElEKDENyZWF0ZVJlY29yZBIfLnJlY29yZHMudjEuQ3JlYXRlUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuQ3JlYXRlUmVjb3JkUmVzcG9uc2USSAoJR2V0UmVjb3JkEhwucmVjb3Jkcy52MS5HZXRSZWNvcmRSZXF1ZXN0Gh0ucmVjb3Jkcy52MS5HZXRSZWNvcmRSZXNwb25zZRJXCg5HZXRSZWNvcmRCeUtleRIhLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlSZXF1ZXN0GiIucmVjb3Jkcy52MS5HZXRSZWNvcmRCeUtleVJlc3BvbnNlEmMKEkdldFJlY29yZEJ5S2V5T3JJZBIlLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlPcklkUmVxdWVzdBomLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlPcklkUmVzcG9uc2USTgoLTGlzdFJlY29yZHMSHi5yZWNvcmRzLnYxLkxpc3RSZWNvcmRzUmVxdWVzdBofLnJlY29yZHMudjEuTGlzdFJlY29yZHNSZXNwb25zZRJRCgxVcGRhdGVSZWNvcmQSHy5yZWNvcmRzLnYxLlVwZGF0ZVJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLlVwZGF0ZVJlY29yZFJlc3BvbnNlElcKDkF1dG9TYXZlUmVjb3JkEiEucmVjb3Jkcy52MS5BdXRvU2F2ZVJlY29yZFJlcXVlc3QaIi5yZWNvcmRzLnYxLkF1dG9TYXZlUmVjb3JkUmVzcG9uc2USUQoMVXBzZXJ0UmVjb3JkEh8ucmVjb3Jkcy52MS5VcHNlcnRSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5VcHNlcnRSZWNvcmRSZXNwb25zZRJRCgxEZWxldGVSZWNvcmQSHy5yZWNvcmRzLnYxLkRlbGV0ZVJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLkRlbGV0ZVJlY29yZFJlc3BvbnNlElcKDlNldFJlY29yZE93bmVyEiEucmVjb3Jkcy52MS5TZXRSZWNvcmRPd25lclJlcXVlc3QaIi5yZWNvcmRzLnYxLlNldFJlY29yZE93bmVyUmVzcG9uc2USbAoVQmF0Y2hSZWNvcmRPcGVyYXRpb25zEigucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXF1ZXN0GikucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXNwb25zZRJgChFCdWxrVXBkYXRlUmVjb3JkcxIkLnJlY29yZHMudjEuQnVsa1VwZGF0ZVJlY29yZHNSZXF1ZXN0GiUucmVjb3Jkcy52MS5CdWxrVXBkYXRlUmVjb3Jkc1Jlc3BvbnNlEm8KFkJhY2tmaWxsUXVlcnlhYmxlSW5kZXgSKS5yZWNvcmRzLnYxLkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXF1ZXN0GioucmVjb3Jkcy52MS5CYWNrZmlsbFF1ZXJ5YWJsZUluZGV4UmVzcG9uc2USaQoUQmFja2ZpbGxNb2RlbEluZGV4ZXMSJy5yZWNvcmRzLnYxLkJhY2tmaWxsTW9kZWxJbmRleGVzUmVxdWVzdBooLnJlY29yZHMudjEuQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXNwb25zZRJ+ChtMaXN0U2xvd1F1ZXJ5QWR2aXNvckVudHJpZXMSLi5yZWNvcmRzLnYxLkxpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1JlcXVlc3QaLy5yZWNvcmRzLnYxLkxpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1Jlc3BvbnNlEnIKF1Nsb3dRdWVyeUFkdmlzb3JTdW1tYXJ5EioucmVjb3Jkcy52MS5TbG93UXVlcnlBZHZpc29yU3VtbWFyeVJlcXVlc3QaKy5yZWNvcmRzLnYxLlNsb3dRdWVyeUFkdmlzb3JTdW1tYXJ5UmVzcG9uc2USewoaQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnkSLS5yZWNvcmRzLnYxLkNsZWFyU2xvd1F1ZXJ5QWR2aXNvckVudHJ5UmVxdWVzdBouLnJlY29yZHMudjEuQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnlSZXNwb25zZRJaCg9EdXBsaWNhdGVSZWNvcmQSIi5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZFJlcXVlc3QaIy5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZFJlc3BvbnNlEmkKFER1cGxpY2F0ZVJlY29yZHNCdWxrEicucmVjb3Jkcy52MS5EdXBsaWNhdGVSZWNvcmRzQnVsa1JlcXVlc3QaKC5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZHNCdWxrUmVzcG9uc2USVwoOUHVibGlzaFZlcnNpb24SIS5yZWNvcmRzLnYxLlB1Ymxpc2hWZXJzaW9uUmVxdWVzdBoiLnJlY29yZHMudjEuUHVibGlzaFZlcnNpb25SZXNwb25zZRJaCg9VbnB1Ymxpc2hSZWNvcmQSIi5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlcXVlc3QaIy5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlc3BvbnNlEloKD1JldmVydFRvVmVyc2lvbhIiLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVxdWVzdBojLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USYwoSTGlzdFJlY29yZFZlcnNpb25zEiUucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXF1ZXN0GiYucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRJUCg1DcmVhdGVWYXJpYW50EiAucmVjb3Jkcy52MS5DcmVhdGVWYXJpYW50UmVxdWVzdBohLnJlY29yZHMudjEuQ3JlYXRlVmFyaWFudFJlc3BvbnNlEnIKF0NhcHR1cmVEZWZhdWx0QXNWYXJpYW50EioucmVjb3Jkcy52MS5DYXB0dXJlRGVmYXVsdEFzVmFyaWFudFJlcXVlc3QaKy5yZWNvcmRzLnYxLkNhcHR1cmVEZWZhdWx0QXNWYXJpYW50UmVzcG9uc2USVAoNVXBkYXRlVmFyaWFudBIgLnJlY29yZHMudjEuVXBkYXRlVmFyaWFudFJlcXVlc3QaIS5yZWNvcmRzLnYxLlVwZGF0ZVZhcmlhbnRSZXNwb25zZRJUCg1EZWxldGVWYXJpYW50EiAucmVjb3Jkcy52MS5EZWxldGVWYXJpYW50UmVxdWVzdBohLnJlY29yZHMudjEuRGVsZXRlVmFyaWFudFJlc3BvbnNlEmAKEVNldERlZmF1bHRWYXJpYW50EiQucmVjb3Jkcy52MS5TZXREZWZhdWx0VmFyaWFudFJlcXVlc3QaJS5yZWNvcmRzLnYxLlNldERlZmF1bHRWYXJpYW50UmVzcG9uc2USYwoSTGlzdFJlY29yZFZhcmlhbnRzEiUucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmFyaWFudHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmFyaWFudHNSZXNwb25zZRJsChVTY2hlZHVsZVJlY29yZFB1Ymxpc2gSKC5yZWNvcmRzLnYxLlNjaGVkdWxlUmVjb3JkUHVibGlzaFJlcXVlc3QaKS5yZWNvcmRzLnYxLlNjaGVkdWxlUmVjb3JkUHVibGlzaFJlc3BvbnNlEoEBChxDYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoEi8ucmVjb3Jkcy52MS5DYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoUmVxdWVzdBowLnJlY29yZHMudjEuQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlc3BvbnNlEm8KFkxpc3RTY2hlZHVsZWRQdWJsaXNoZXMSKS5yZWNvcmRzLnYxLkxpc3RTY2hlZHVsZWRQdWJsaXNoZXNSZXF1ZXN0GioucmVjb3Jkcy52MS5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVzcG9uc2USZgoTR2V0U2NoZWR1bGVkUHVibGlzaBImLnJlY29yZHMudjEuR2V0U2NoZWR1bGVkUHVibGlzaFJlcXVlc3QaJy5yZWNvcmRzLnYxLkdldFNjaGVkdWxlZFB1Ymxpc2hSZXNwb25zZRJgChFMaXN0RHJhZnRWZXJzaW9ucxIkLnJlY29yZHMudjEuTGlzdERyYWZ0VmVyc2lvbnNSZXF1ZXN0GiUucmVjb3Jkcy52MS5MaXN0RHJhZnRWZXJzaW9uc1Jlc3BvbnNlEmkKFEJhdGNoUHVibGlzaFZlcnNpb25zEicucmVjb3Jkcy52MS5CYXRjaFB1Ymxpc2hWZXJzaW9uc1JlcXVlc3QaKC5yZWNvcmRzLnYxLkJhdGNoUHVibGlzaFZlcnNpb25zUmVzcG9uc2USZgoTQmF0Y2hSZXNvbHZlUmVjb3JkcxImLnJlY29yZHMudjEuQmF0Y2hSZXNvbHZlUmVjb3Jkc1JlcXVlc3QaJy5yZWNvcmRzLnYxLkJhdGNoUmVzb2x2ZVJlY29yZHNSZXNwb25zZRJXCg5SZXNvbHZlQ29udGVudBIhLnJlY29yZHMudjEuUmVzb2x2ZUNvbnRlbnRSZXF1ZXN0GiIucmVjb3Jkcy52MS5SZXNvbHZlQ29udGVudFJlc3BvbnNlEmMKEkxvb2t1cFJlY29yZE1vZGVscxIlLnJlY29yZHMudjEuTG9va3VwUmVjb3JkTW9kZWxzUmVxdWVzdBomLnJlY29yZHMudjEuTG9va3VwUmVjb3JkTW9kZWxzUmVzcG9uc2USUQoMR2xvYmFsU2VhcmNoEh8ucmVjb3Jkcy52MS5HbG9iYWxTZWFyY2hSZXF1ZXN0GiAucmVjb3Jkcy52MS5HbG9iYWxTZWFyY2hSZXNwb25zZRJRCgxMb29rdXBSZWNvcmQSHy5yZWNvcmRzLnYxLkxvb2t1cFJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLkxvb2t1cFJlY29yZFJlc3BvbnNlEnIKF0NoZWNrTG9va3VwQXZhaWxhYmlsaXR5EioucmVjb3Jkcy52MS5DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlcXVlc3QaKy5yZWNvcmRzLnYxLkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVzcG9uc2USZgoTTGlzdExvb2t1cENvbmZsaWN0cxImLnJlY29yZHMudjEuTGlzdExvb2t1cENvbmZsaWN0c1JlcXVlc3QaJy5yZWNvcmRzLnYxLkxpc3RMb29rdXBDb25mbGljdHNSZXNwb25zZRJmChNSZWJ1aWxkTW9kZWxMb29rdXBzEiYucmVjb3Jkcy52MS5SZWJ1aWxkTW9kZWxMb29rdXBzUmVxdWVzdBonLnJlY29yZHMudjEuUmVidWlsZE1vZGVsTG9va3Vwc1Jlc3BvbnNlEmMKElB1cmdlUmVzcG9uc2VDYWNoZRIlLnJlY29yZHMudjEuUHVyZ2VSZXNwb25zZUNhY2hlUmVxdWVzdBomLnJlY29yZHMudjEuUHVyZ2VSZXNwb25zZUNhY2hlUmVzcG9uc2USYAoRR2V0RW1iZWRkaW5nU3RhdHMSJC5yZWNvcmRzLnYxLkdldEVtYmVkZGluZ1N0YXRzUmVxdWVzdBolLnJlY29yZHMudjEuR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRJmChNHZXRSZWNvcmRFbWJlZGRpbmdzEiYucmVjb3Jkcy52MS5HZXRSZWNvcmRFbWJlZGRpbmdzUmVxdWVzdBonLnJlY29yZHMudjEuR2V0UmVjb3JkRW1iZWRkaW5nc1Jlc3BvbnNlEmMKEkZpbmRTaW1pbGFyUmVjb3JkcxIlLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVxdWVzdBomLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVzcG9uc2USWgoPV3JpdGVFbWJlZGRpbmdzEiIucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXF1ZXN0GiMucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXNwb25zZRJdChBEZWxldGVFbWJlZGRpbmdzEiMucmVjb3Jkcy52MS5EZWxldGVFbWJlZGRpbmdzUmVxdWVzdBokLnJlY29yZHMudjEuRGVsZXRlRW1iZWRkaW5nc1Jlc3BvbnNlEl0KEFNlYXJjaEVtYmVkZGluZ3MSIy5yZWNvcmRzLnYxLlNlYXJjaEVtYmVkZGluZ3NSZXF1ZXN0GiQucmVjb3Jkcy52MS5TZWFyY2hFbWJlZGRpbmdzUmVzcG9uc2UScgoXUmVjb3Jkc01pc3NpbmdFbWJlZGRpbmcSKi5yZWNvcmRzLnYxLlJlY29yZHNNaXNzaW5nRW1iZWRkaW5nUmVxdWVzdBorLnJlY29yZHMudjEuUmVjb3Jkc01pc3NpbmdFbWJlZGRpbmdSZXNwb25zZRJdChBFbWJlZGRpbmdEaWdlc3RzEiMucmVjb3Jkcy52MS5FbWJlZGRpbmdEaWdlc3RzUmVxdWVzdBokLnJlY29yZHMudjEuRW1iZWRkaW5nRGlnZXN0c1Jlc3BvbnNlEnUKGEVucXVldWVHZW5lcmF0ZUVtYmVkZGluZxIrLnJlY29yZHMudjEuRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nUmVxdWVzdBosLnJlY29yZHMudjEuRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nUmVzcG9uc2USeAoZRXN0aW1hdGVFbWJlZGRpbmdCYWNrZmlsbBIsLnJlY29yZHMudjEuRXN0aW1hdGVFbWJlZGRpbmdCYWNrZmlsbFJlcXVlc3QaLS5yZWNvcmRzLnYxLkVzdGltYXRlRW1iZWRkaW5nQmFja2ZpbGxSZXNwb25zZRJvChZTdGFydEVtYmVkZGluZ0JhY2tmaWxsEikucmVjb3Jkcy52MS5TdGFydEVtYmVkZGluZ0JhY2tmaWxsUmVxdWVzdBoqLnJlY29yZHMudjEuU3RhcnRFbWJlZGRpbmdCYWNrZmlsbFJlc3BvbnNlEl0KEFNlYXJjaEJ5TG9jYXRpb24SIy5yZWNvcmRzLnYxLlNlYXJjaEJ5TG9jYXRpb25SZXF1ZXN0GiQucmVjb3Jkcy52MS5TZWFyY2hCeUxvY2F0aW9uUmVzcG9uc2USYwoSRmluZE5lYXJlc3RSZWNvcmRzEiUucmVjb3Jkcy52MS5GaW5kTmVhcmVzdFJlY29yZHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5GaW5kTmVhcmVzdFJlY29yZHNSZXNwb25zZRJvChZSZWNvcmRzTWlzc2luZ0dlb21ldHJ5EikucmVjb3Jkcy52MS5SZWNvcmRzTWlzc2luZ0dlb21ldHJ5UmVxdWVzdBoqLnJlY29yZHMudjEuUmVjb3Jkc01pc3NpbmdHZW9tZXRyeVJlc3BvbnNlEm8KFkJhY2tmaWxsUmVjb3JkR2VvbWV0cnkSKS5yZWNvcmRzLnYxLkJhY2tmaWxsUmVjb3JkR2VvbWV0cnlSZXF1ZXN0GioucmVjb3Jkcy52MS5CYWNrZmlsbFJlY29yZEdlb21ldHJ5UmVzcG9uc2USewoaUmVjb3Jkc1VzaW5nVmFyaWFudENhdGFsb2cSLS5yZWNvcmRzLnYxLlJlY29yZHNVc2luZ1ZhcmlhbnRDYXRhbG9nUmVxdWVzdBouLnJlY29yZHMudjEuUmVjb3Jkc1VzaW5nVmFyaWFudENhdGFsb2dSZXNwb25zZRJpChRSZWNvcmRzTWlzc2luZ0xvY2FsZRInLnJlY29yZHMudjEuUmVjb3Jkc01pc3NpbmdMb2NhbGVSZXF1ZXN0GigucmVjb3Jkcy52MS5SZWNvcmRzTWlzc2luZ0xvY2FsZVJlc3BvbnNlEmwKFVJlY29yZHNMb2NhbGVDb3ZlcmFnZRIoLnJlY29yZHMudjEuUmVjb3Jkc0xvY2FsZUNvdmVyYWdlUmVxdWVzdBopLnJlY29yZHMudjEuUmVjb3Jkc0xvY2FsZUNvdmVyYWdlUmVzcG9uc2VCO1o5Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL3JlY29yZHMvdjE7cmVjb3Jkc3YxYgZwcm90bzM", [file_google_protobuf_struct3, file_google_protobuf_timestamp4, file_common_v1_pagination, file_expressions_v1_expressions]);
|
|
903
922
|
var RecordSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 0);
|
|
904
923
|
var SortFieldSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 2);
|
|
905
924
|
var BatchOperationSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 3);
|
|
@@ -941,61 +960,64 @@ var FindSimilarRecordsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_
|
|
|
941
960
|
var WriteEmbeddingsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 90);
|
|
942
961
|
var DeleteEmbeddingsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 92);
|
|
943
962
|
var SearchEmbeddingsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 96);
|
|
944
|
-
var SearchByLocationRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
945
|
-
var FindNearestRecordsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
946
|
-
var RecordsMissingGeometryRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
947
|
-
var BackfillRecordGeometryRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
948
|
-
var CheckLookupAvailabilityRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
949
|
-
var ListLookupConflictsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
950
|
-
var RebuildModelLookupsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
951
|
-
var PurgeResponseCacheRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
952
|
-
var ListSlowQueryAdvisorEntriesRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
953
|
-
var ClearSlowQueryAdvisorEntryRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
954
|
-
var RecordsUsingVariantCatalogRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
955
|
-
var RecordsMissingLocaleRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records,
|
|
963
|
+
var SearchByLocationRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 109);
|
|
964
|
+
var FindNearestRecordsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 111);
|
|
965
|
+
var RecordsMissingGeometryRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 114);
|
|
966
|
+
var BackfillRecordGeometryRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 116);
|
|
967
|
+
var CheckLookupAvailabilityRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 120);
|
|
968
|
+
var ListLookupConflictsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 123);
|
|
969
|
+
var RebuildModelLookupsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 126);
|
|
970
|
+
var PurgeResponseCacheRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 128);
|
|
971
|
+
var ListSlowQueryAdvisorEntriesRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 130);
|
|
972
|
+
var ClearSlowQueryAdvisorEntryRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 136);
|
|
973
|
+
var RecordsUsingVariantCatalogRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 138);
|
|
974
|
+
var RecordsMissingLocaleRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 141);
|
|
975
|
+
var RecordsLocaleCoverageRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 144);
|
|
956
976
|
var RecordsService = /* @__PURE__ */ serviceDesc3(file_records_v1_records, 0);
|
|
957
977
|
|
|
958
978
|
// ../../packages/proto-ts/src/billing/v1/billing_pb.js
|
|
959
979
|
import { enumDesc as enumDesc5, fileDesc as fileDesc8, messageDesc as messageDesc8, serviceDesc as serviceDesc4, tsEnum as tsEnum5 } from "@bufbuild/protobuf/codegenv2";
|
|
960
980
|
import { file_google_protobuf_struct as file_google_protobuf_struct4, file_google_protobuf_timestamp as file_google_protobuf_timestamp5 } from "@bufbuild/protobuf/wkt";
|
|
961
|
-
var file_billing_v1_billing = /* @__PURE__ */ fileDesc8("ChhiaWxsaW5nL3YxL2JpbGxpbmcucHJvdG8SCmJpbGxpbmcudjEiVwoJUGxhbkxpbWl0Eg4KBm1ldHJpYxgBIAEoCRIQCghpbmNsdWRlZBgCIAEoAxILCgNtYXgYAyABKAMSGwoTb3ZlcmFnZV9wcmljZV9jZW50cxgEIAEoBSJKCg9QbGFuRW50aXRsZW1lbnQSEwoLZmVhdHVyZV9rZXkYASABKAkSDQoFbGFiZWwYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAki4gQKC0JpbGxpbmdQbGFuEgoKAmlkGAEgASgJEgwKBHNsdWcYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhMKC3ByaWNlX2NlbnRzGAUgASgFEjUKEGJpbGxpbmdfaW50ZXJ2YWwYBiABKA4yGy5iaWxsaW5nLnYxLkJpbGxpbmdJbnRlcnZhbBIVCghjdXJyZW5jeRgHIAEoCUgBiAEBEhEKCWlzX2FjdGl2ZRgIIAEoCBISCgpzb3J0X29yZGVyGAkgASgFEiUKBmxpbWl0cxgUIAMoCzIVLmJpbGxpbmcudjEuUGxhbkxpbWl0EjEKDGVudGl0bGVtZW50cxgXIAMoCzIbLmJpbGxpbmcudjEuUGxhbkVudGl0bGVtZW50Eh4KEXN0cmlwZV9wcm9kdWN0X2lkGB4gASgJSAKIAQESHAoPc3RyaXBlX3ByaWNlX2lkGB8gASgJSAOIAQESFgoJdGVuYW50X2lkGCggASgJSASIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQgsKCV9jdXJyZW5jeUIUChJfc3RyaXBlX3Byb2R1Y3RfaWRCEgoQX3N0cmlwZV9wcmljZV9pZEIMCgpfdGVuYW50X2lkSgQIFRAWSgQIFhAXUghmZWF0dXJlc1IMY2FwYWJpbGl0aWVzIu0FCgxTdWJzY3JpcHRpb24SCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhEKCXBsYW5fc2x1ZxgDIAEoCRIeChFjdXN0b21fcGFja2FnZV9pZBgEIAEoCUgAiAEBEiMKFnN0cmlwZV9zdWJzY3JpcHRpb25faWQYBSABKAlIAYgBARIaChJzdHJpcGVfY3VzdG9tZXJfaWQYBiABKAkSLgoGc3RhdHVzGBQgASgOMh4uYmlsbGluZy52MS5TdWJzY3JpcHRpb25TdGF0dXMSPQoUY3VycmVudF9wZXJpb2Rfc3RhcnQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESOwoSY3VycmVudF9wZXJpb2RfZW5kGB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjQKC3RyaWFsX3N0YXJ0GCMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEjIKCXRyaWFsX2VuZBgkIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARI0CgtjYW5jZWxlZF9hdBgoIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdwbGFuX2lkGDwgASgJQhQKEl9jdXN0b21fcGFja2FnZV9pZEIZChdfc3RyaXBlX3N1YnNjcmlwdGlvbl9pZEIXChVfY3VycmVudF9wZXJpb2Rfc3RhcnRCFQoTX2N1cnJlbnRfcGVyaW9kX2VuZEIOCgxfdHJpYWxfc3RhcnRCDAoKX3RyaWFsX2VuZEIOCgxfY2FuY2VsZWRfYXQiigQKDUN1c3RvbVBhY2thZ2USCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhcKCnByb2plY3RfaWQYAyABKAlIAIgBARIMCgRuYW1lGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSAGIAQESHQoQYmFzZV9wcmljZV9jZW50cxgGIAEoBUgCiAEBEjoKEGJpbGxpbmdfaW50ZXJ2YWwYByABKA4yGy5iaWxsaW5nLnYxLkJpbGxpbmdJbnRlcnZhbEgDiAEBEhUKCGN1cnJlbmN5GAggASgJSASIAQESGwoOYmFzZV9wbGFuX3NsdWcYCSABKAlIBYgBARIRCglpc19hY3RpdmUYCiABKAgSLgoGbGltaXRzGBQgAygLMh4uYmlsbGluZy52MS5DdXN0b21QYWNrYWdlTGltaXQSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDQoLX3Byb2plY3RfaWRCDgoMX2Rlc2NyaXB0aW9uQhMKEV9iYXNlX3ByaWNlX2NlbnRzQhMKEV9iaWxsaW5nX2ludGVydmFsQgsKCV9jdXJyZW5jeUIRCg9fYmFzZV9wbGFuX3NsdWci4AEKEkN1c3RvbVBhY2thZ2VMaW1pdBIKCgJpZBgBIAEoCRISCgpwYWNrYWdlX2lkGAIgASgJEg4KBm1ldHJpYxgDIAEoCRIeChFpbmNsdWRlZF9xdWFudGl0eRgEIAEoA0gAiAEBEhkKDG1heF9xdWFudGl0eRgFIAEoA0gBiAEBEiAKE292ZXJhZ2VfcHJpY2VfY2VudHMYBiABKAVIAogBAUIUChJfaW5jbHVkZWRfcXVhbnRpdHlCDwoNX21heF9xdWFudGl0eUIWChRfb3ZlcmFnZV9wcmljZV9jZW50cyK0BAoMVXNhZ2VTdW1tYXJ5EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIXCgpwcm9qZWN0X2lkGAMgASgJSACIAQESMAoMcGVyaW9kX3N0YXJ0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpwZXJpb2RfZW5kGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1yZWNvcmRzX2NvdW50GAYgASgDEhsKE21lZGlhX3N0b3JhZ2VfYnl0ZXMYByABKAMSHQoVbWVkaWFfdHJhbnNmb3JtYXRpb25zGAggASgDEhQKDGFjdGl2ZV91c2VycxgJIAEoBRIWCg5wcm9qZWN0c19jb3VudBgKIAEoBRINCgVzZWF0cxgLIAEoBRIaChJlbWFpbHNfdGhpc19wZXJpb2QYDCABKAUSFwoPYWlfY3JlZGl0c191c2VkGA0gASgDEhsKE2FpX2NyZWRpdHNfaW5jbHVkZWQYDiABKAMSHAoUYWlfY3JlZGl0c19yZW1haW5pbmcYDyABKAMSGgoSYWlfY3JlZGl0c19ncmFudGVkGBAgASgDEisKCG92ZXJhZ2VzGBEgAygLMhkuYmlsbGluZy52MS5NZXRyaWNPdmVyYWdlEh0KFWFjY3J1ZWRfb3ZlcmFnZV9jZW50cxgSIAEoAxITCgttY3BfYWN0aW9ucxgTIAEoA0INCgtfcHJvamVjdF9pZCKYAQoNTWV0cmljT3ZlcmFnZRIOCgZtZXRyaWMYASABKAkSEAoIaW5jbHVkZWQYAiABKAMSCwoDbWF4GAMgASgDEg0KBXVzYWdlGAQgASgDEhUKDW92ZXJhZ2VfdW5pdHMYBSABKAMSGwoTb3ZlcmFnZV9wcmljZV9jZW50cxgGIAEoBRIVCg1hY2NydWVkX2NlbnRzGAcgASgDIooCCgpVc2FnZUFsZXJ0EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIOCgZtZXRyaWMYAyABKAkSEQoJdGhyZXNob2xkGAQgASgFEhUKDWN1cnJlbnRfdXNhZ2UYBSABKAMSEwoLbGltaXRfdmFsdWUYBiABKAMSFAoMcGVyY2VudF91c2VkGAcgASgFEjAKDHBlcmlvZF9zdGFydBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMZGlzbWlzc2VkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV9kaXNtaXNzZWRfYXQi7gEKF0xpc3RCaWxsaW5nUGxhbnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhYKCXRlbmFudF9pZBgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEgoFYWZ0ZXIYBCABKAlIA4gBARIRCgRsYXN0GAUgASgFSASIAQESEwoGYmVmb3JlGAYgASgJSAWIAQFCCAoGX3doZXJlQgwKCl90ZW5hbnRfaWRCCAoGX2ZpcnN0QggKBl9hZnRlckIHCgVfbGFzdEIJCgdfYmVmb3JlIp0BChhMaXN0QmlsbGluZ1BsYW5zUmVzcG9uc2USJgoFcGxhbnMYASADKAsyFy5iaWxsaW5nLnYxLkJpbGxpbmdQbGFuEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIlChVHZXRCaWxsaW5nUGxhblJlcXVlc3QSDAoEc2x1ZxgBIAEoCSI/ChZHZXRCaWxsaW5nUGxhblJlc3BvbnNlEiUKBHBsYW4YASABKAsyFy5iaWxsaW5nLnYxLkJpbGxpbmdQbGFuIhsKGUdldERlZmF1bHRGcmVlUGxhblJlcXVlc3QiQwoaR2V0RGVmYXVsdEZyZWVQbGFuUmVzcG9uc2USJQoEcGxhbhgBIAEoCzIXLmJpbGxpbmcudjEuQmlsbGluZ1BsYW4igwQKGENyZWF0ZUJpbGxpbmdQbGFuUmVxdWVzdBIMCgRzbHVnGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARITCgtwcmljZV9jZW50cxgEIAEoBRI1ChBiaWxsaW5nX2ludGVydmFsGAUgASgOMhsuYmlsbGluZy52MS5CaWxsaW5nSW50ZXJ2YWwSFQoIY3VycmVuY3kYBiABKAlIAYgBARIRCglpc19hY3RpdmUYByABKAgSEgoKc29ydF9vcmRlchgIIAEoBRIlCgZsaW1pdHMYFCADKAsyFS5iaWxsaW5nLnYxLlBsYW5MaW1pdBIxCgxlbnRpdGxlbWVudHMYFyADKAsyGy5iaWxsaW5nLnYxLlBsYW5FbnRpdGxlbWVudBIeChFzdHJpcGVfcHJvZHVjdF9pZBgeIAEoCUgCiAEBEhwKD3N0cmlwZV9wcmljZV9pZBgfIAEoCUgDiAEBEhYKCXRlbmFudF9pZBgoIAEoCUgEiAEBQg4KDF9kZXNjcmlwdGlvbkILCglfY3VycmVuY3lCFAoSX3N0cmlwZV9wcm9kdWN0X2lkQhIKEF9zdHJpcGVfcHJpY2VfaWRCDAoKX3RlbmFudF9pZEoECBUQFkoECBYQF1IIZmVhdHVyZXNSDGNhcGFiaWxpdGllcyJCChlDcmVhdGVCaWxsaW5nUGxhblJlc3BvbnNlEiUKBHBsYW4YASABKAsyFy5iaWxsaW5nLnYxLkJpbGxpbmdQbGFuItsEChhVcGRhdGVCaWxsaW5nUGxhblJlcXVlc3QSCgoCaWQYASABKAkSEQoEc2x1ZxgCIAEoCUgAiAEBEhEKBG5hbWUYAyABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgEIAEoCUgCiAEBEhgKC3ByaWNlX2NlbnRzGAUgASgFSAOIAQESOgoQYmlsbGluZ19pbnRlcnZhbBgGIAEoDjIbLmJpbGxpbmcudjEuQmlsbGluZ0ludGVydmFsSASIAQESFQoIY3VycmVuY3kYByABKAlIBYgBARIWCglpc19hY3RpdmUYCCABKAhIBogBARIXCgpzb3J0X29yZGVyGAkgASgFSAeIAQESJQoGbGltaXRzGBQgAygLMhUuYmlsbGluZy52MS5QbGFuTGltaXQSMQoMZW50aXRsZW1lbnRzGBcgAygLMhsuYmlsbGluZy52MS5QbGFuRW50aXRsZW1lbnQSHgoRc3RyaXBlX3Byb2R1Y3RfaWQYHiABKAlICIgBARIcCg9zdHJpcGVfcHJpY2VfaWQYHyABKAlICYgBAUIHCgVfc2x1Z0IHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDgoMX3ByaWNlX2NlbnRzQhMKEV9iaWxsaW5nX2ludGVydmFsQgsKCV9jdXJyZW5jeUIMCgpfaXNfYWN0aXZlQg0KC19zb3J0X29yZGVyQhQKEl9zdHJpcGVfcHJvZHVjdF9pZEISChBfc3RyaXBlX3ByaWNlX2lkSgQIFRAWSgQIFhAXUghmZWF0dXJlc1IMY2FwYWJpbGl0aWVzIkIKGVVwZGF0ZUJpbGxpbmdQbGFuUmVzcG9uc2USJQoEcGxhbhgBIAEoCzIXLmJpbGxpbmcudjEuQmlsbGluZ1BsYW4iPgoWR2V0U3Vic2NyaXB0aW9uUmVxdWVzdBIWCgl0ZW5hbnRfaWQYASABKAlIAIgBAUIMCgpfdGVuYW50X2lkIkkKF0dldFN1YnNjcmlwdGlvblJlc3BvbnNlEi4KDHN1YnNjcmlwdGlvbhgBIAEoCzIYLmJpbGxpbmcudjEuU3Vic2NyaXB0aW9uIloKHENyZWF0ZUNoZWNrb3V0U2Vzc2lvblJlcXVlc3QSEQoJcGxhbl9zbHVnGAEgASgJEhMKC3N1Y2Nlc3NfdXJsGAIgASgJEhIKCmNhbmNlbF91cmwYAyABKAkiNAodQ3JlYXRlQ2hlY2tvdXRTZXNzaW9uUmVzcG9uc2USEwoLc2Vzc2lvbl91cmwYASABKAkiNwohQ3JlYXRlQmlsbGluZ1BvcnRhbFNlc3Npb25SZXF1ZXN0EhIKCnJldHVybl91cmwYASABKAkiOQoiQ3JlYXRlQmlsbGluZ1BvcnRhbFNlc3Npb25SZXNwb25zZRITCgtzZXNzaW9uX3VybBgBIAEoCSJmChZHZXRVc2FnZVN1bW1hcnlSZXF1ZXN0EhcKCnByb2plY3RfaWQYASABKAlIAIgBARIWCgl0ZW5hbnRfaWQYAiABKAlIAYgBAUINCgtfcHJvamVjdF9pZEIMCgpfdGVuYW50X2lkIkIKF0dldFVzYWdlU3VtbWFyeVJlc3BvbnNlEicKBXVzYWdlGAEgASgLMhguYmlsbGluZy52MS5Vc2FnZVN1bW1hcnkiqgEKFkdldFVzYWdlSGlzdG9yeVJlcXVlc3QSFgoJdGVuYW50X2lkGAEgASgJSACIAQESLQoEZnJvbRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIrCgJ0bxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBAUIMCgpfdGVuYW50X2lkQgcKBV9mcm9tQgUKA190byLaAQoRVXNhZ2VIaXN0b3J5UG9pbnQSLwoLcGVyaW9kX2RhdGUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhUKDXJlY29yZHNfY291bnQYAiABKAMSGwoTbWVkaWFfc3RvcmFnZV9ieXRlcxgDIAEoAxIdChVtZWRpYV90cmFuc2Zvcm1hdGlvbnMYBCABKAMSFAoMYWN0aXZlX3VzZXJzGAUgASgFEhYKDnByb2plY3RzX2NvdW50GAYgASgFEhMKC21jcF9hY3Rpb25zGAcgASgDIkgKF0dldFVzYWdlSGlzdG9yeVJlc3BvbnNlEi0KBnBvaW50cxgBIAMoCzIdLmJpbGxpbmcudjEuVXNhZ2VIaXN0b3J5UG9pbnQitAMKGENyZWF0ZUN1c3RvbVBhY2thZ2VJbnB1dBIMCgRuYW1lGAEgASgJEhgKC2Rlc2NyaXB0aW9uGAIgASgJSACIAQESHQoQYmFzZV9wcmljZV9jZW50cxgDIAEoBUgBiAEBEjoKEGJpbGxpbmdfaW50ZXJ2YWwYBCABKA4yGy5iaWxsaW5nLnYxLkJpbGxpbmdJbnRlcnZhbEgCiAEBEhUKCGN1cnJlbmN5GAUgASgJSAOIAQESGwoOYmFzZV9wbGFuX3NsdWcYBiABKAlIBIgBARIWCgl0ZW5hbnRfaWQYByABKAlIBYgBARIXCgpwcm9qZWN0X2lkGAggASgJSAaIAQESOQoGbGltaXRzGAkgAygLMikuYmlsbGluZy52MS5DcmVhdGVDdXN0b21QYWNrYWdlTGltaXRJbnB1dEIOCgxfZGVzY3JpcHRpb25CEwoRX2Jhc2VfcHJpY2VfY2VudHNCEwoRX2JpbGxpbmdfaW50ZXJ2YWxCCwoJX2N1cnJlbmN5QhEKD19iYXNlX3BsYW5fc2x1Z0IMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkIssBCh1DcmVhdGVDdXN0b21QYWNrYWdlTGltaXRJbnB1dBIOCgZtZXRyaWMYASABKAkSHgoRaW5jbHVkZWRfcXVhbnRpdHkYAiABKANIAIgBARIZCgxtYXhfcXVhbnRpdHkYAyABKANIAYgBARIgChNvdmVyYWdlX3ByaWNlX2NlbnRzGAQgASgFSAKIAQFCFAoSX2luY2x1ZGVkX3F1YW50aXR5Qg8KDV9tYXhfcXVhbnRpdHlCFgoUX292ZXJhZ2VfcHJpY2VfY2VudHMiUQoaQ3JlYXRlQ3VzdG9tUGFja2FnZVJlcXVlc3QSMwoFaW5wdXQYASABKAsyJC5iaWxsaW5nLnYxLkNyZWF0ZUN1c3RvbVBhY2thZ2VJbnB1dCJJChtDcmVhdGVDdXN0b21QYWNrYWdlUmVzcG9uc2USKgoHcGFja2FnZRgBIAEoCzIZLmJpbGxpbmcudjEuQ3VzdG9tUGFja2FnZSKaAwoYVXBkYXRlQ3VzdG9tUGFja2FnZUlucHV0EhEKBG5hbWUYASABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgCIAEoCUgBiAEBEh0KEGJhc2VfcHJpY2VfY2VudHMYAyABKAVIAogBARI6ChBiaWxsaW5nX2ludGVydmFsGAQgASgOMhsuYmlsbGluZy52MS5CaWxsaW5nSW50ZXJ2YWxIA4gBARIVCghjdXJyZW5jeRgFIAEoCUgEiAEBEhsKDmJhc2VfcGxhbl9zbHVnGAYgASgJSAWIAQESFgoJaXNfYWN0aXZlGAcgASgISAaIAQESOQoGbGltaXRzGAggAygLMikuYmlsbGluZy52MS5DcmVhdGVDdXN0b21QYWNrYWdlTGltaXRJbnB1dEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEwoRX2Jhc2VfcHJpY2VfY2VudHNCEwoRX2JpbGxpbmdfaW50ZXJ2YWxCCwoJX2N1cnJlbmN5QhEKD19iYXNlX3BsYW5fc2x1Z0IMCgpfaXNfYWN0aXZlIl0KGlVwZGF0ZUN1c3RvbVBhY2thZ2VSZXF1ZXN0EgoKAmlkGAEgASgJEjMKBWlucHV0GAIgASgLMiQuYmlsbGluZy52MS5VcGRhdGVDdXN0b21QYWNrYWdlSW5wdXQiSQobVXBkYXRlQ3VzdG9tUGFja2FnZVJlc3BvbnNlEioKB3BhY2thZ2UYASABKAsyGS5iaWxsaW5nLnYxLkN1c3RvbVBhY2thZ2UiKAoaRGVsZXRlQ3VzdG9tUGFja2FnZVJlcXVlc3QSCgoCaWQYASABKAkiLgobRGVsZXRlQ3VzdG9tUGFja2FnZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi8AEKGUxpc3RDdXN0b21QYWNrYWdlc1JlcXVlc3QSFgoJdGVuYW50X2lkGAEgASgJSACIAQESEgoFZmlyc3QYAiABKAVIAYgBARISCgVhZnRlchgDIAEoCUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBARITCgZiZWZvcmUYBSABKAlIBIgBARIrCgV3aGVyZRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBAUIMCgpfdGVuYW50X2lkQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZUIICgZfd2hlcmUipAEKGkxpc3RDdXN0b21QYWNrYWdlc1Jlc3BvbnNlEisKCHBhY2thZ2VzGAEgAygLMhkuYmlsbGluZy52MS5DdXN0b21QYWNrYWdlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJKChFBc3NpZ25QbGFuUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEQoJcGxhbl9zbHVnGAIgASgJEg8KB3BsYW5faWQYAyABKAkiRAoSQXNzaWduUGxhblJlc3BvbnNlEi4KDHN1YnNjcmlwdGlvbhgBIAEoCzIYLmJpbGxpbmcudjEuU3Vic2NyaXB0aW9uIkMKGkFzc2lnbkN1c3RvbVBhY2thZ2VSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwYWNrYWdlX2lkGAIgASgJIk0KG0Fzc2lnbkN1c3RvbVBhY2thZ2VSZXNwb25zZRIuCgxzdWJzY3JpcHRpb24YASABKAsyGC5iaWxsaW5nLnYxLlN1YnNjcmlwdGlvbiLHAQoWTGlzdFVzYWdlQWxlcnRzUmVxdWVzdBISCgVmaXJzdBgBIAEoBUgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEQoEbGFzdBgDIAEoBUgCiAEBEhMKBmJlZm9yZRgEIAEoCUgDiAEBEisKBXdoZXJlGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZUIICgZfd2hlcmUinAEKF0xpc3RVc2FnZUFsZXJ0c1Jlc3BvbnNlEiYKBmFsZXJ0cxgBIAMoCzIWLmJpbGxpbmcudjEuVXNhZ2VBbGVydBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iJgoYRGlzbWlzc1VzYWdlQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIiwKGURpc21pc3NVc2FnZUFsZXJ0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJSChVDaGVja0FJQ3JlZGl0c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhcKCnByb2plY3RfaWQYAiABKAlIAIgBAUINCgtfcHJvamVjdF9pZCLEAgoWQ2hlY2tBSUNyZWRpdHNSZXNwb25zZRIPCgdhbGxvd2VkGAEgASgIEhEKCXJlbWFpbmluZxgCIAEoAxINCgVsaW1pdBgDIAEoAxIUCgx3aW5kb3dfc3BlbnQYBCABKAMSFQoNZ3JhbnRfYmFsYW5jZRgFIAEoAxIwCgx3aW5kb3dfc3RhcnQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCndpbmRvd19lbmQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnVuZW5mb3JjZWQYCCABKAgSLAoHcmVmdXNhbBgJIAEoDjIbLmJpbGxpbmcudjEuQUlDcmVkaXRSZWZ1c2FsEhMKC2RhaWx5X3NwZW50GAogASgDEhEKCWRhaWx5X2NhcBgLIAEoAyL0AgoaUmVjb3JkQUlDcmVkaXRTcGVuZFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhcKCnByb2plY3RfaWQYAiABKAlIAIgBARISCgpzb3VyY2VfcmVmGAMgASgJEg0KBW1vZGVsGAQgASgJEhQKDGlucHV0X3Rva2VucxgFIAEoAxIbChNjYWNoZWRfaW5wdXRfdG9rZW5zGAYgASgDEhUKDW91dHB1dF90b2tlbnMYByABKAMSFAoHdXNlcl9pZBgIIAEoCUgBiAEBEhgKC2VudGl0eV90eXBlGAkgASgJSAKIAQESFgoJZW50aXR5X2lkGAogASgJSAOIAQESKQoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhEKCWNvc3Rfb25seRgMIAEoCEINCgtfcHJvamVjdF9pZEIKCghfdXNlcl9pZEIOCgxfZW50aXR5X3R5cGVCDAoKX2VudGl0eV9pZCJUChtSZWNvcmRBSUNyZWRpdFNwZW5kUmVzcG9uc2USDwoHY3JlZGl0cxgBIAEoAxIRCglyZW1haW5pbmcYAiABKAMSEQoJZHVwbGljYXRlGAMgASgIInUKFlJlY29yZE1DUEFjdGlvblJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhcKCnByb2plY3RfaWQYAiABKAlIAIgBARISCgpzb3VyY2VfcmVmGAMgASgJEgwKBHRvb2wYBCABKAlCDQoLX3Byb2plY3RfaWQiLAoXUmVjb3JkTUNQQWN0aW9uUmVzcG9uc2USEQoJZHVwbGljYXRlGAEgASgIIkgKIEdldEFJQ3JlZGl0U3BlbmRCcmVha2Rvd25SZXF1ZXN0EhYKCXRlbmFudF9pZBgBIAEoCUgAiAEBQgwKCl90ZW5hbnRfaWQiSwoSQUlDcmVkaXRTcGVuZFNsaWNlEhMKC2VudGl0eV90eXBlGAEgASgJEg8KB2NyZWRpdHMYAiABKAMSDwoHYWN0aW9ucxgDIAEoAyJOChJBSUNyZWRpdERhaWx5U3BlbmQSJwoDZGF5GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdjcmVkaXRzGAIgASgDIucBCiFHZXRBSUNyZWRpdFNwZW5kQnJlYWtkb3duUmVzcG9uc2USMQoJYnlfYWN0aW9uGAEgAygLMh4uYmlsbGluZy52MS5BSUNyZWRpdFNwZW5kU2xpY2USLQoFZGFpbHkYAiADKAsyHi5iaWxsaW5nLnYxLkFJQ3JlZGl0RGFpbHlTcGVuZBIwCgx3aW5kb3dfc3RhcnQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCndpbmRvd19lbmQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjYKH0dldEFJQ3JlZGl0UGxhdGZvcm1TdGF0c1JlcXVlc3QSEwoLd2luZG93X2RheXMYASABKAUiXAoRQUlDcmVkaXRNb2RlbFN0YXQSDQoFbW9kZWwYASABKAkSDwoHY3JlZGl0cxgCIAEoAxIWCg5jb2dzX21pY3JvX2dicBgDIAEoAxIPCgdhY3Rpb25zGAQgASgDIqEBChJBSUNyZWRpdFRlbmFudFN0YXQSEQoJdGVuYW50X2lkGAEgASgJEhMKC3RlbmFudF9uYW1lGAIgASgJEg8KB2NyZWRpdHMYAyABKAMSFgoOY29nc19taWNyb19nYnAYBCABKAMSDwoHYWN0aW9ucxgFIAEoAxIUCgxwcmV2X2NyZWRpdHMYBiABKAMSEwoLYWlfZGlzYWJsZWQYByABKAgiaQoVQUlDcmVkaXRQbGF0Zm9ybURhaWx5EicKA2RheRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHY3JlZGl0cxgCIAEoAxIWCg5jb2dzX21pY3JvX2dicBgDIAEoAyJGCiBTZXRUZW5hbnRBSUNyZWRpdHNFbmFibGVkUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSDwoHZW5hYmxlZBgCIAEoCCI4CiFTZXRUZW5hbnRBSUNyZWRpdHNFbmFibGVkUmVzcG9uc2USEwoLYWlfZGlzYWJsZWQYASABKAgi1QIKIEdldEFJQ3JlZGl0UGxhdGZvcm1TdGF0c1Jlc3BvbnNlEhUKDXRvdGFsX2NyZWRpdHMYASABKAMSHAoUdG90YWxfY29nc19taWNyb19nYnAYAiABKAMSFQoNdG90YWxfYWN0aW9ucxgDIAEoAxIWCg5hY3RpdmVfdGVuYW50cxgEIAEoBRIeChZjcmVkaXRfdmFsdWVfbWljcm9fZ2JwGAUgASgDEhcKD2dyYW50ZWRfY3JlZGl0cxgGIAEoAxIvCghieV9tb2RlbBgHIAMoCzIdLmJpbGxpbmcudjEuQUlDcmVkaXRNb2RlbFN0YXQSMQoJYnlfdGVuYW50GAggAygLMh4uYmlsbGluZy52MS5BSUNyZWRpdFRlbmFudFN0YXQSMAoFZGFpbHkYCSADKAsyIS5iaWxsaW5nLnYxLkFJQ3JlZGl0UGxhdGZvcm1EYWlseSKvAQogTGlzdEFJQ3JlZGl0U3BlbmRCeVRlbmFudFJlcXVlc3QSEwoLd2luZG93X2RheXMYASABKAUSEgoFYWZ0ZXIYAiABKAlIAIgBARITCgZiZWZvcmUYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBEhEKBGxhc3QYBSABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QirQEKIUxpc3RBSUNyZWRpdFNwZW5kQnlUZW5hbnRSZXNwb25zZRItCgVpdGVtcxgBIAMoCzIeLmJpbGxpbmcudjEuQUlDcmVkaXRUZW5hbnRTdGF0Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJRCgtBSVRvcFVwUGFjaxIKCgJpZBgBIAEoCRIPCgdjcmVkaXRzGAIgASgDEhMKC3ByaWNlX2NlbnRzGAMgASgFEhAKCGN1cnJlbmN5GAQgASgJIhkKF0xpc3RBSVRvcFVwUGFja3NSZXF1ZXN0IkIKGExpc3RBSVRvcFVwUGFja3NSZXNwb25zZRImCgVwYWNrcxgBIAMoCzIXLmJpbGxpbmcudjEuQUlUb3BVcFBhY2siXQohQ3JlYXRlVG9wVXBDaGVja291dFNlc3Npb25SZXF1ZXN0Eg8KB3BhY2tfaWQYASABKAkSEwoLc3VjY2Vzc191cmwYAiABKAkSEgoKY2FuY2VsX3VybBgDIAEoCSI5CiJDcmVhdGVUb3BVcENoZWNrb3V0U2Vzc2lvblJlc3BvbnNlEhMKC3Nlc3Npb25fdXJsGAEgASgJIqACChhTZWxmU2VydmljZVNpZ251cFJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSEwoLdGVuYW50X25hbWUYAyABKAkSFgoJcGxhbl9zbHVnGAQgASgJSACIAQESFwoKZmlyc3RfbmFtZRgFIAEoCUgBiAEBEhYKCWxhc3RfbmFtZRgGIAEoCUgCiAEBEhkKDHByb2plY3RfbmFtZRgHIAEoCUgDiAEBEhsKDmNyZWF0ZV9zZXNzaW9uGAggASgISASIAQFCDAoKX3BsYW5fc2x1Z0INCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg8KDV9wcm9qZWN0X25hbWVCEQoPX2NyZWF0ZV9zZXNzaW9uInUKClNpZ251cFVzZXISCgoCaWQYASABKAkSDQoFZW1haWwYAiABKAkSFwoKZmlyc3RfbmFtZRgDIAEoCUgAiAEBEhYKCWxhc3RfbmFtZRgEIAEoCUgBiAEBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWUiKAoMU2lnbnVwVGVuYW50EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkiKQoNU2lnbnVwUHJvamVjdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJIscBChlTZWxmU2VydmljZVNpZ251cFJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5iaWxsaW5nLnYxLlNpZ251cFVzZXISKAoGdGVuYW50GAIgASgLMhguYmlsbGluZy52MS5TaWdudXBUZW5hbnQSKgoHcHJvamVjdBgDIAEoCzIZLmJpbGxpbmcudjEuU2lnbnVwUHJvamVjdBIuCgxzdWJzY3JpcHRpb24YBCABKAsyGC5iaWxsaW5nLnYxLlN1YnNjcmlwdGlvbiKMAQoNU3RyaXBlUHJvZHVjdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDgoGYWN0aXZlGAQgASgIEicKBnByaWNlcxgFIAMoCzIXLmJpbGxpbmcudjEuU3RyaXBlUHJpY2VCDgoMX2Rlc2NyaXB0aW9uInQKC1N0cmlwZVByaWNlEgoKAmlkGAEgASgJEhMKC3VuaXRfYW1vdW50GAIgASgFEhAKCGN1cnJlbmN5GAMgASgJEhUKCGludGVydmFsGAQgASgJSACIAQESDgoGYWN0aXZlGAUgASgIQgsKCV9pbnRlcnZhbCKTAQoZTGlzdFN0cmlwZVByb2R1Y3RzUmVxdWVzdBISCgVmaXJzdBgBIAEoBUgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEQoEbGFzdBgDIAEoBUgCiAEBEhMKBmJlZm9yZRgEIAEoCUgDiAEBQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZSKkAQoaTGlzdFN0cmlwZVByb2R1Y3RzUmVzcG9uc2USKwoIcHJvZHVjdHMYASADKAsyGS5iaWxsaW5nLnYxLlN0cmlwZVByb2R1Y3QSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvInIKEkZlYXR1cmVSb2xsb3V0UnVsZRITCgtmZWF0dXJlX2tleRgBIAEoCRISCgpwZXJjZW50YWdlGAIgASgFEg8KB2NvaG9ydHMYAyADKAkSDgoGcmVhc29uGAQgASgJEhIKCnVwZGF0ZWRfYXQYBSABKAkiaAocU2V0RmVhdHVyZVJvbGxvdXRSdWxlUmVxdWVzdBITCgtmZWF0dXJlX2tleRgBIAEoCRISCgpwZXJjZW50YWdlGAIgASgFEg8KB2NvaG9ydHMYAyADKAkSDgoGcmVhc29uGAQgASgJIk0KHVNldEZlYXR1cmVSb2xsb3V0UnVsZVJlc3BvbnNlEiwKBHJ1bGUYASABKAsyHi5iaWxsaW5nLnYxLkZlYXR1cmVSb2xsb3V0UnVsZSI2Ch9EZWxldGVGZWF0dXJlUm9sbG91dFJ1bGVSZXF1ZXN0EhMKC2ZlYXR1cmVfa2V5GAEgASgJIiIKIERlbGV0ZUZlYXR1cmVSb2xsb3V0UnVsZVJlc3BvbnNlIiAKHkxpc3RGZWF0dXJlUm9sbG91dFJ1bGVzUmVxdWVzdCJQCh9MaXN0RmVhdHVyZVJvbGxvdXRSdWxlc1Jlc3BvbnNlEi0KBXJ1bGVzGAEgAygLMh4uYmlsbGluZy52MS5GZWF0dXJlUm9sbG91dFJ1bGUiTQoXU2V0VGVuYW50Q29ob3J0c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEg8KB2NvaG9ydHMYAiADKAkSDgoGcmVhc29uGAMgASgJIisKGFNldFRlbmFudENvaG9ydHNSZXNwb25zZRIPCgdjb2hvcnRzGAEgAygJIiwKF0dldFRlbmFudENvaG9ydHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSIrChhHZXRUZW5hbnRDb2hvcnRzUmVzcG9uc2USDwoHY29ob3J0cxgBIAMoCSIZChdMaXN0S25vd25Db2hvcnRzUmVxdWVzdCIrChhMaXN0S25vd25Db2hvcnRzUmVzcG9uc2USDwoHY29ob3J0cxgBIAMoCSJpCgxQcm9qZWN0TGltaXQSEgoKcHJvamVjdF9pZBgBIAEoCRIOCgZtZXRyaWMYAiABKAkSDQoFdmFsdWUYAyABKAMSEgoKY3JlYXRlZF9hdBgEIAEoCRISCgp1cGRhdGVkX2F0GAUgASgJInEKFlNldFByb2plY3RMaW1pdFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIOCgZtZXRyaWMYAiABKAkSDQoFdmFsdWUYAyABKAMSFgoJdGVuYW50X2lkGAQgASgJSACIAQFCDAoKX3RlbmFudF9pZCJCChdTZXRQcm9qZWN0TGltaXRSZXNwb25zZRInCgVsaW1pdBgBIAEoCzIYLmJpbGxpbmcudjEuUHJvamVjdExpbWl0ImQKGENsZWFyUHJvamVjdExpbWl0UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg4KBm1ldHJpYxgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBAUIMCgpfdGVuYW50X2lkIiwKGUNsZWFyUHJvamVjdExpbWl0UmVzcG9uc2USDwoHY2xlYXJlZBgBIAEoCCJoChhMaXN0UHJvamVjdExpbWl0c1JlcXVlc3QSFwoKcHJvamVjdF9pZBgBIAEoCUgAiAEBEhYKCXRlbmFudF9pZBgCIAEoCUgBiAEBQg0KC19wcm9qZWN0X2lkQgwKCl90ZW5hbnRfaWQiXwoZTGlzdFByb2plY3RMaW1pdHNSZXNwb25zZRIoCgZsaW1pdHMYASADKAsyGC5iaWxsaW5nLnYxLlByb2plY3RMaW1pdBIYChBjYXBwYWJsZV9tZXRyaWNzGAIgAygJKuMBChJTdWJzY3JpcHRpb25TdGF0dXMSIwofU1VCU0NSSVBUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEh4KGlNVQlNDUklQVElPTl9TVEFUVVNfQUNUSVZFEAESIAocU1VCU0NSSVBUSU9OX1NUQVRVU19QQVNUX0RVRRACEiAKHFNVQlNDUklQVElPTl9TVEFUVVNfQ0FOQ0VMRUQQAxIgChxTVUJTQ1JJUFRJT05fU1RBVFVTX1RSSUFMSU5HEAQSIgoeU1VCU0NSSVBUSU9OX1NUQVRVU19JTkNPTVBMRVRFEAUqagoPQmlsbGluZ0ludGVydmFsEiAKHEJJTExJTkdfSU5URVJWQUxfVU5TUEVDSUZJRUQQABIaChZCSUxMSU5HX0lOVEVSVkFMX01PTlRIEAESGQoVQklMTElOR19JTlRFUlZBTF9ZRUFSEAIqmwEKD0FJQ3JlZGl0UmVmdXNhbBIhCh1BSV9DUkVESVRfUkVGVVNBTF9VTlNQRUNJRklFRBAAEiQKIEFJX0NSRURJVF9SRUZVU0FMX09VVF9PRl9DUkVESVRTEAESHwobQUlfQ1JFRElUX1JFRlVTQUxfREFJTFlfQ0FQEAISHgoaQUlfQ1JFRElUX1JFRlVTQUxfRElTQUJMRUQQAzK7HgoOQmlsbGluZ1NlcnZpY2USXQoQTGlzdEJpbGxpbmdQbGFucxIjLmJpbGxpbmcudjEuTGlzdEJpbGxpbmdQbGFuc1JlcXVlc3QaJC5iaWxsaW5nLnYxLkxpc3RCaWxsaW5nUGxhbnNSZXNwb25zZRJXCg5HZXRCaWxsaW5nUGxhbhIhLmJpbGxpbmcudjEuR2V0QmlsbGluZ1BsYW5SZXF1ZXN0GiIuYmlsbGluZy52MS5HZXRCaWxsaW5nUGxhblJlc3BvbnNlEmMKEkdldERlZmF1bHRGcmVlUGxhbhIlLmJpbGxpbmcudjEuR2V0RGVmYXVsdEZyZWVQbGFuUmVxdWVzdBomLmJpbGxpbmcudjEuR2V0RGVmYXVsdEZyZWVQbGFuUmVzcG9uc2USYAoRQ3JlYXRlQmlsbGluZ1BsYW4SJC5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdQbGFuUmVxdWVzdBolLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ1BsYW5SZXNwb25zZRJgChFVcGRhdGVCaWxsaW5nUGxhbhIkLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ1BsYW5SZXF1ZXN0GiUuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nUGxhblJlc3BvbnNlEloKD0dldFN1YnNjcmlwdGlvbhIiLmJpbGxpbmcudjEuR2V0U3Vic2NyaXB0aW9uUmVxdWVzdBojLmJpbGxpbmcudjEuR2V0U3Vic2NyaXB0aW9uUmVzcG9uc2USbAoVQ3JlYXRlQ2hlY2tvdXRTZXNzaW9uEiguYmlsbGluZy52MS5DcmVhdGVDaGVja291dFNlc3Npb25SZXF1ZXN0GikuYmlsbGluZy52MS5DcmVhdGVDaGVja291dFNlc3Npb25SZXNwb25zZRJ7ChpDcmVhdGVCaWxsaW5nUG9ydGFsU2Vzc2lvbhItLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ1BvcnRhbFNlc3Npb25SZXF1ZXN0Gi4uYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nUG9ydGFsU2Vzc2lvblJlc3BvbnNlEloKD0dldFVzYWdlU3VtbWFyeRIiLmJpbGxpbmcudjEuR2V0VXNhZ2VTdW1tYXJ5UmVxdWVzdBojLmJpbGxpbmcudjEuR2V0VXNhZ2VTdW1tYXJ5UmVzcG9uc2USWgoPR2V0VXNhZ2VIaXN0b3J5EiIuYmlsbGluZy52MS5HZXRVc2FnZUhpc3RvcnlSZXF1ZXN0GiMuYmlsbGluZy52MS5HZXRVc2FnZUhpc3RvcnlSZXNwb25zZRJaCg9MaXN0VXNhZ2VBbGVydHMSIi5iaWxsaW5nLnYxLkxpc3RVc2FnZUFsZXJ0c1JlcXVlc3QaIy5iaWxsaW5nLnYxLkxpc3RVc2FnZUFsZXJ0c1Jlc3BvbnNlEmAKEURpc21pc3NVc2FnZUFsZXJ0EiQuYmlsbGluZy52MS5EaXNtaXNzVXNhZ2VBbGVydFJlcXVlc3QaJS5iaWxsaW5nLnYxLkRpc21pc3NVc2FnZUFsZXJ0UmVzcG9uc2USZgoTQ3JlYXRlQ3VzdG9tUGFja2FnZRImLmJpbGxpbmcudjEuQ3JlYXRlQ3VzdG9tUGFja2FnZVJlcXVlc3QaJy5iaWxsaW5nLnYxLkNyZWF0ZUN1c3RvbVBhY2thZ2VSZXNwb25zZRJmChNVcGRhdGVDdXN0b21QYWNrYWdlEiYuYmlsbGluZy52MS5VcGRhdGVDdXN0b21QYWNrYWdlUmVxdWVzdBonLmJpbGxpbmcudjEuVXBkYXRlQ3VzdG9tUGFja2FnZVJlc3BvbnNlEmYKE0RlbGV0ZUN1c3RvbVBhY2thZ2USJi5iaWxsaW5nLnYxLkRlbGV0ZUN1c3RvbVBhY2thZ2VSZXF1ZXN0GicuYmlsbGluZy52MS5EZWxldGVDdXN0b21QYWNrYWdlUmVzcG9uc2USYwoSTGlzdEN1c3RvbVBhY2thZ2VzEiUuYmlsbGluZy52MS5MaXN0Q3VzdG9tUGFja2FnZXNSZXF1ZXN0GiYuYmlsbGluZy52MS5MaXN0Q3VzdG9tUGFja2FnZXNSZXNwb25zZRJmChNBc3NpZ25DdXN0b21QYWNrYWdlEiYuYmlsbGluZy52MS5Bc3NpZ25DdXN0b21QYWNrYWdlUmVxdWVzdBonLmJpbGxpbmcudjEuQXNzaWduQ3VzdG9tUGFja2FnZVJlc3BvbnNlEksKCkFzc2lnblBsYW4SHS5iaWxsaW5nLnYxLkFzc2lnblBsYW5SZXF1ZXN0Gh4uYmlsbGluZy52MS5Bc3NpZ25QbGFuUmVzcG9uc2USYwoSTGlzdFN0cmlwZVByb2R1Y3RzEiUuYmlsbGluZy52MS5MaXN0U3RyaXBlUHJvZHVjdHNSZXF1ZXN0GiYuYmlsbGluZy52MS5MaXN0U3RyaXBlUHJvZHVjdHNSZXNwb25zZRJXCg5DaGVja0FJQ3JlZGl0cxIhLmJpbGxpbmcudjEuQ2hlY2tBSUNyZWRpdHNSZXF1ZXN0GiIuYmlsbGluZy52MS5DaGVja0FJQ3JlZGl0c1Jlc3BvbnNlEmYKE1JlY29yZEFJQ3JlZGl0U3BlbmQSJi5iaWxsaW5nLnYxLlJlY29yZEFJQ3JlZGl0U3BlbmRSZXF1ZXN0GicuYmlsbGluZy52MS5SZWNvcmRBSUNyZWRpdFNwZW5kUmVzcG9uc2USWgoPUmVjb3JkTUNQQWN0aW9uEiIuYmlsbGluZy52MS5SZWNvcmRNQ1BBY3Rpb25SZXF1ZXN0GiMuYmlsbGluZy52MS5SZWNvcmRNQ1BBY3Rpb25SZXNwb25zZRJdChBMaXN0QUlUb3BVcFBhY2tzEiMuYmlsbGluZy52MS5MaXN0QUlUb3BVcFBhY2tzUmVxdWVzdBokLmJpbGxpbmcudjEuTGlzdEFJVG9wVXBQYWNrc1Jlc3BvbnNlEnsKGkNyZWF0ZVRvcFVwQ2hlY2tvdXRTZXNzaW9uEi0uYmlsbGluZy52MS5DcmVhdGVUb3BVcENoZWNrb3V0U2Vzc2lvblJlcXVlc3QaLi5iaWxsaW5nLnYxLkNyZWF0ZVRvcFVwQ2hlY2tvdXRTZXNzaW9uUmVzcG9uc2USeAoZR2V0QUlDcmVkaXRTcGVuZEJyZWFrZG93bhIsLmJpbGxpbmcudjEuR2V0QUlDcmVkaXRTcGVuZEJyZWFrZG93blJlcXVlc3QaLS5iaWxsaW5nLnYxLkdldEFJQ3JlZGl0U3BlbmRCcmVha2Rvd25SZXNwb25zZRJ1ChhHZXRBSUNyZWRpdFBsYXRmb3JtU3RhdHMSKy5iaWxsaW5nLnYxLkdldEFJQ3JlZGl0UGxhdGZvcm1TdGF0c1JlcXVlc3QaLC5iaWxsaW5nLnYxLkdldEFJQ3JlZGl0UGxhdGZvcm1TdGF0c1Jlc3BvbnNlEngKGUxpc3RBSUNyZWRpdFNwZW5kQnlUZW5hbnQSLC5iaWxsaW5nLnYxLkxpc3RBSUNyZWRpdFNwZW5kQnlUZW5hbnRSZXF1ZXN0Gi0uYmlsbGluZy52MS5MaXN0QUlDcmVkaXRTcGVuZEJ5VGVuYW50UmVzcG9uc2USeAoZU2V0VGVuYW50QUlDcmVkaXRzRW5hYmxlZBIsLmJpbGxpbmcudjEuU2V0VGVuYW50QUlDcmVkaXRzRW5hYmxlZFJlcXVlc3QaLS5iaWxsaW5nLnYxLlNldFRlbmFudEFJQ3JlZGl0c0VuYWJsZWRSZXNwb25zZRJsChVTZXRGZWF0dXJlUm9sbG91dFJ1bGUSKC5iaWxsaW5nLnYxLlNldEZlYXR1cmVSb2xsb3V0UnVsZVJlcXVlc3QaKS5iaWxsaW5nLnYxLlNldEZlYXR1cmVSb2xsb3V0UnVsZVJlc3BvbnNlEnUKGERlbGV0ZUZlYXR1cmVSb2xsb3V0UnVsZRIrLmJpbGxpbmcudjEuRGVsZXRlRmVhdHVyZVJvbGxvdXRSdWxlUmVxdWVzdBosLmJpbGxpbmcudjEuRGVsZXRlRmVhdHVyZVJvbGxvdXRSdWxlUmVzcG9uc2UScgoXTGlzdEZlYXR1cmVSb2xsb3V0UnVsZXMSKi5iaWxsaW5nLnYxLkxpc3RGZWF0dXJlUm9sbG91dFJ1bGVzUmVxdWVzdBorLmJpbGxpbmcudjEuTGlzdEZlYXR1cmVSb2xsb3V0UnVsZXNSZXNwb25zZRJdChBTZXRUZW5hbnRDb2hvcnRzEiMuYmlsbGluZy52MS5TZXRUZW5hbnRDb2hvcnRzUmVxdWVzdBokLmJpbGxpbmcudjEuU2V0VGVuYW50Q29ob3J0c1Jlc3BvbnNlEl0KEEdldFRlbmFudENvaG9ydHMSIy5iaWxsaW5nLnYxLkdldFRlbmFudENvaG9ydHNSZXF1ZXN0GiQuYmlsbGluZy52MS5HZXRUZW5hbnRDb2hvcnRzUmVzcG9uc2USXQoQTGlzdEtub3duQ29ob3J0cxIjLmJpbGxpbmcudjEuTGlzdEtub3duQ29ob3J0c1JlcXVlc3QaJC5iaWxsaW5nLnYxLkxpc3RLbm93bkNvaG9ydHNSZXNwb25zZRJaCg9TZXRQcm9qZWN0TGltaXQSIi5iaWxsaW5nLnYxLlNldFByb2plY3RMaW1pdFJlcXVlc3QaIy5iaWxsaW5nLnYxLlNldFByb2plY3RMaW1pdFJlc3BvbnNlEmAKEUNsZWFyUHJvamVjdExpbWl0EiQuYmlsbGluZy52MS5DbGVhclByb2plY3RMaW1pdFJlcXVlc3QaJS5iaWxsaW5nLnYxLkNsZWFyUHJvamVjdExpbWl0UmVzcG9uc2USYAoRTGlzdFByb2plY3RMaW1pdHMSJC5iaWxsaW5nLnYxLkxpc3RQcm9qZWN0TGltaXRzUmVxdWVzdBolLmJpbGxpbmcudjEuTGlzdFByb2plY3RMaW1pdHNSZXNwb25zZRJgChFTZWxmU2VydmljZVNpZ251cBIkLmJpbGxpbmcudjEuU2VsZlNlcnZpY2VTaWdudXBSZXF1ZXN0GiUuYmlsbGluZy52MS5TZWxmU2VydmljZVNpZ251cFJlc3BvbnNlQjtaOWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9iaWxsaW5nL3YxO2JpbGxpbmd2MWIGcHJvdG8z", [file_google_protobuf_struct4, file_google_protobuf_timestamp5, file_common_v1_pagination]);
|
|
962
|
-
var ListBillingPlansRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
963
|
-
var GetBillingPlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
964
|
-
var GetDefaultFreePlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
965
|
-
var CreateBillingPlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
966
|
-
var UpdateBillingPlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
967
|
-
var GetSubscriptionRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
968
|
-
var CreateCheckoutSessionRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
969
|
-
var CreateBillingPortalSessionRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
970
|
-
var GetUsageSummaryRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
971
|
-
var GetUsageHistoryRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
972
|
-
var CreateCustomPackageRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
973
|
-
var UpdateCustomPackageRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
974
|
-
var DeleteCustomPackageRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
975
|
-
var ListCustomPackagesRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
976
|
-
var AssignPlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
977
|
-
var AssignCustomPackageRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
978
|
-
var ListUsageAlertsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
979
|
-
var DismissUsageAlertRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
980
|
-
var CheckAICreditsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
981
|
-
var RecordAICreditSpendRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
982
|
-
var GetAICreditSpendBreakdownRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
983
|
-
var GetAICreditPlatformStatsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
984
|
-
var SetTenantAICreditsEnabledRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
985
|
-
var ListAICreditSpendByTenantRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
986
|
-
var ListAITopUpPacksRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
987
|
-
var CreateTopUpCheckoutSessionRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
988
|
-
var SelfServiceSignupRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
989
|
-
var ListStripeProductsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing,
|
|
990
|
-
var
|
|
991
|
-
var
|
|
992
|
-
var
|
|
993
|
-
var
|
|
994
|
-
var
|
|
995
|
-
var
|
|
996
|
-
var
|
|
997
|
-
var
|
|
998
|
-
var
|
|
981
|
+
var file_billing_v1_billing = /* @__PURE__ */ fileDesc8("ChhiaWxsaW5nL3YxL2JpbGxpbmcucHJvdG8SCmJpbGxpbmcudjEiVwoJUGxhbkxpbWl0Eg4KBm1ldHJpYxgBIAEoCRIQCghpbmNsdWRlZBgCIAEoAxILCgNtYXgYAyABKAMSGwoTb3ZlcmFnZV9wcmljZV9jZW50cxgEIAEoBSJKCg9QbGFuRW50aXRsZW1lbnQSEwoLZmVhdHVyZV9rZXkYASABKAkSDQoFbGFiZWwYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAki4gQKC0JpbGxpbmdQbGFuEgoKAmlkGAEgASgJEgwKBHNsdWcYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhMKC3ByaWNlX2NlbnRzGAUgASgFEjUKEGJpbGxpbmdfaW50ZXJ2YWwYBiABKA4yGy5iaWxsaW5nLnYxLkJpbGxpbmdJbnRlcnZhbBIVCghjdXJyZW5jeRgHIAEoCUgBiAEBEhEKCWlzX2FjdGl2ZRgIIAEoCBISCgpzb3J0X29yZGVyGAkgASgFEiUKBmxpbWl0cxgUIAMoCzIVLmJpbGxpbmcudjEuUGxhbkxpbWl0EjEKDGVudGl0bGVtZW50cxgXIAMoCzIbLmJpbGxpbmcudjEuUGxhbkVudGl0bGVtZW50Eh4KEXN0cmlwZV9wcm9kdWN0X2lkGB4gASgJSAKIAQESHAoPc3RyaXBlX3ByaWNlX2lkGB8gASgJSAOIAQESFgoJdGVuYW50X2lkGCggASgJSASIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQgsKCV9jdXJyZW5jeUIUChJfc3RyaXBlX3Byb2R1Y3RfaWRCEgoQX3N0cmlwZV9wcmljZV9pZEIMCgpfdGVuYW50X2lkSgQIFRAWSgQIFhAXUghmZWF0dXJlc1IMY2FwYWJpbGl0aWVzIu0FCgxTdWJzY3JpcHRpb24SCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhEKCXBsYW5fc2x1ZxgDIAEoCRIeChFjdXN0b21fcGFja2FnZV9pZBgEIAEoCUgAiAEBEiMKFnN0cmlwZV9zdWJzY3JpcHRpb25faWQYBSABKAlIAYgBARIaChJzdHJpcGVfY3VzdG9tZXJfaWQYBiABKAkSLgoGc3RhdHVzGBQgASgOMh4uYmlsbGluZy52MS5TdWJzY3JpcHRpb25TdGF0dXMSPQoUY3VycmVudF9wZXJpb2Rfc3RhcnQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESOwoSY3VycmVudF9wZXJpb2RfZW5kGB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjQKC3RyaWFsX3N0YXJ0GCMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEjIKCXRyaWFsX2VuZBgkIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARI0CgtjYW5jZWxlZF9hdBgoIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdwbGFuX2lkGDwgASgJQhQKEl9jdXN0b21fcGFja2FnZV9pZEIZChdfc3RyaXBlX3N1YnNjcmlwdGlvbl9pZEIXChVfY3VycmVudF9wZXJpb2Rfc3RhcnRCFQoTX2N1cnJlbnRfcGVyaW9kX2VuZEIOCgxfdHJpYWxfc3RhcnRCDAoKX3RyaWFsX2VuZEIOCgxfY2FuY2VsZWRfYXQiowQKDUN1c3RvbVBhY2thZ2USCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhcKCnByb2plY3RfaWQYAyABKAlIAIgBARIMCgRuYW1lGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSAGIAQESHQoQYmFzZV9wcmljZV9jZW50cxgGIAEoBUgCiAEBEjoKEGJpbGxpbmdfaW50ZXJ2YWwYByABKA4yGy5iaWxsaW5nLnYxLkJpbGxpbmdJbnRlcnZhbEgDiAEBEhUKCGN1cnJlbmN5GAggASgJSASIAQESEQoJaXNfYWN0aXZlGAogASgIEi4KBmxpbWl0cxgUIAMoCzIeLmJpbGxpbmcudjEuQ3VzdG9tUGFja2FnZUxpbWl0EjEKDGVudGl0bGVtZW50cxgVIAMoCzIbLmJpbGxpbmcudjEuUGxhbkVudGl0bGVtZW50Ei4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg0KC19wcm9qZWN0X2lkQg4KDF9kZXNjcmlwdGlvbkITChFfYmFzZV9wcmljZV9jZW50c0ITChFfYmlsbGluZ19pbnRlcnZhbEILCglfY3VycmVuY3lKBAgJEApSDmJhc2VfcGxhbl9zbHVnIuABChJDdXN0b21QYWNrYWdlTGltaXQSCgoCaWQYASABKAkSEgoKcGFja2FnZV9pZBgCIAEoCRIOCgZtZXRyaWMYAyABKAkSHgoRaW5jbHVkZWRfcXVhbnRpdHkYBCABKANIAIgBARIZCgxtYXhfcXVhbnRpdHkYBSABKANIAYgBARIgChNvdmVyYWdlX3ByaWNlX2NlbnRzGAYgASgFSAKIAQFCFAoSX2luY2x1ZGVkX3F1YW50aXR5Qg8KDV9tYXhfcXVhbnRpdHlCFgoUX292ZXJhZ2VfcHJpY2VfY2VudHMizwUKDFVzYWdlU3VtbWFyeRIKCgJpZBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSFwoKcHJvamVjdF9pZBgDIAEoCUgAiAEBEjAKDHBlcmlvZF9zdGFydBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKcGVyaW9kX2VuZBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNcmVjb3Jkc19jb3VudBgGIAEoAxIbChNtZWRpYV9zdG9yYWdlX2J5dGVzGAcgASgDEh0KFW1lZGlhX3RyYW5zZm9ybWF0aW9ucxgIIAEoAxIUCgxhY3RpdmVfdXNlcnMYCSABKAUSFgoOcHJvamVjdHNfY291bnQYCiABKAUSDQoFc2VhdHMYCyABKAUSGgoSZW1haWxzX3RoaXNfcGVyaW9kGAwgASgFEhcKD2FpX2NyZWRpdHNfdXNlZBgNIAEoAxIbChNhaV9jcmVkaXRzX2luY2x1ZGVkGA4gASgDEhwKFGFpX2NyZWRpdHNfcmVtYWluaW5nGA8gASgDEhoKEmFpX2NyZWRpdHNfZ3JhbnRlZBgQIAEoAxIrCghvdmVyYWdlcxgRIAMoCzIZLmJpbGxpbmcudjEuTWV0cmljT3ZlcmFnZRIdChVhY2NydWVkX292ZXJhZ2VfY2VudHMYEiABKAMSEwoLbWNwX2FjdGlvbnMYEyABKAMSEwoLbm90ZXNfY291bnQYFCABKAMSHgoWbm90ZV9hdHRhY2htZW50c19jb3VudBgVIAEoAxIbChNjb250ZW50X3Jlc29sdXRpb25zGBYgASgDEhoKEnJlc29sdXRpb25zX2Zyb3plbhgXIAEoCBIrCgtvdmVyYWdlX2NhcBgYIAEoCzIWLmJpbGxpbmcudjEuT3ZlcmFnZUNhcEINCgtfcHJvamVjdF9pZCLKAQoKT3ZlcmFnZUNhcBIRCgljYXBfY2VudHMYASABKAMSDwoHYXBwbGllcxgCIAEoCBIWCg5uZXh0X3BsYW5fc2x1ZxgDIAEoCRIPCgdyZWFjaGVkGAQgASgIEhQKDGJpbGxlZF9jZW50cxgFIAEoAxIWCg53aXRoaGVsZF9jZW50cxgGIAEoAxIQCgh0b3BfcnVuZxgHIAEoCBIVCg10cmlnZ2VyX2NlbnRzGAggASgDEhgKEGFscmVhZHlfYnJlYWNoZWQYCSABKAgimAEKDU1ldHJpY092ZXJhZ2USDgoGbWV0cmljGAEgASgJEhAKCGluY2x1ZGVkGAIgASgDEgsKA21heBgDIAEoAxINCgV1c2FnZRgEIAEoAxIVCg1vdmVyYWdlX3VuaXRzGAUgASgDEhsKE292ZXJhZ2VfcHJpY2VfY2VudHMYBiABKAUSFQoNYWNjcnVlZF9jZW50cxgHIAEoAyKKAgoKVXNhZ2VBbGVydBIKCgJpZBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSDgoGbWV0cmljGAMgASgJEhEKCXRocmVzaG9sZBgEIAEoBRIVCg1jdXJyZW50X3VzYWdlGAUgASgDEhMKC2xpbWl0X3ZhbHVlGAYgASgDEhQKDHBlcmNlbnRfdXNlZBgHIAEoBRIwCgxwZXJpb2Rfc3RhcnQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDGRpc21pc3NlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fZGlzbWlzc2VkX2F0Iu4BChdMaXN0QmlsbGluZ1BsYW5zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIWCgl0ZW5hbnRfaWQYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhIKBWFmdGVyGAQgASgJSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBEhMKBmJlZm9yZRgGIAEoCUgFiAEBQggKBl93aGVyZUIMCgpfdGVuYW50X2lkQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZSKzAQoYTGlzdEJpbGxpbmdQbGFuc1Jlc3BvbnNlEiYKBXBsYW5zGAEgAygLMhcuYmlsbGluZy52MS5CaWxsaW5nUGxhbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJEhQKDHBsYW5fbWV0cmljcxgFIAMoCUIMCgpfcGFnZV9pbmZvIiUKFUdldEJpbGxpbmdQbGFuUmVxdWVzdBIMCgRzbHVnGAEgASgJIj8KFkdldEJpbGxpbmdQbGFuUmVzcG9uc2USJQoEcGxhbhgBIAEoCzIXLmJpbGxpbmcudjEuQmlsbGluZ1BsYW4iGwoZR2V0RGVmYXVsdEZyZWVQbGFuUmVxdWVzdCJDChpHZXREZWZhdWx0RnJlZVBsYW5SZXNwb25zZRIlCgRwbGFuGAEgASgLMhcuYmlsbGluZy52MS5CaWxsaW5nUGxhbiKDBAoYQ3JlYXRlQmlsbGluZ1BsYW5SZXF1ZXN0EgwKBHNsdWcYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhMKC3ByaWNlX2NlbnRzGAQgASgFEjUKEGJpbGxpbmdfaW50ZXJ2YWwYBSABKA4yGy5iaWxsaW5nLnYxLkJpbGxpbmdJbnRlcnZhbBIVCghjdXJyZW5jeRgGIAEoCUgBiAEBEhEKCWlzX2FjdGl2ZRgHIAEoCBISCgpzb3J0X29yZGVyGAggASgFEiUKBmxpbWl0cxgUIAMoCzIVLmJpbGxpbmcudjEuUGxhbkxpbWl0EjEKDGVudGl0bGVtZW50cxgXIAMoCzIbLmJpbGxpbmcudjEuUGxhbkVudGl0bGVtZW50Eh4KEXN0cmlwZV9wcm9kdWN0X2lkGB4gASgJSAKIAQESHAoPc3RyaXBlX3ByaWNlX2lkGB8gASgJSAOIAQESFgoJdGVuYW50X2lkGCggASgJSASIAQFCDgoMX2Rlc2NyaXB0aW9uQgsKCV9jdXJyZW5jeUIUChJfc3RyaXBlX3Byb2R1Y3RfaWRCEgoQX3N0cmlwZV9wcmljZV9pZEIMCgpfdGVuYW50X2lkSgQIFRAWSgQIFhAXUghmZWF0dXJlc1IMY2FwYWJpbGl0aWVzIkIKGUNyZWF0ZUJpbGxpbmdQbGFuUmVzcG9uc2USJQoEcGxhbhgBIAEoCzIXLmJpbGxpbmcudjEuQmlsbGluZ1BsYW4i2wQKGFVwZGF0ZUJpbGxpbmdQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRzbHVnGAIgASgJSACIAQESEQoEbmFtZRgDIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAQgASgJSAKIAQESGAoLcHJpY2VfY2VudHMYBSABKAVIA4gBARI6ChBiaWxsaW5nX2ludGVydmFsGAYgASgOMhsuYmlsbGluZy52MS5CaWxsaW5nSW50ZXJ2YWxIBIgBARIVCghjdXJyZW5jeRgHIAEoCUgFiAEBEhYKCWlzX2FjdGl2ZRgIIAEoCEgGiAEBEhcKCnNvcnRfb3JkZXIYCSABKAVIB4gBARIlCgZsaW1pdHMYFCADKAsyFS5iaWxsaW5nLnYxLlBsYW5MaW1pdBIxCgxlbnRpdGxlbWVudHMYFyADKAsyGy5iaWxsaW5nLnYxLlBsYW5FbnRpdGxlbWVudBIeChFzdHJpcGVfcHJvZHVjdF9pZBgeIAEoCUgIiAEBEhwKD3N0cmlwZV9wcmljZV9pZBgfIAEoCUgJiAEBQgcKBV9zbHVnQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIOCgxfcHJpY2VfY2VudHNCEwoRX2JpbGxpbmdfaW50ZXJ2YWxCCwoJX2N1cnJlbmN5QgwKCl9pc19hY3RpdmVCDQoLX3NvcnRfb3JkZXJCFAoSX3N0cmlwZV9wcm9kdWN0X2lkQhIKEF9zdHJpcGVfcHJpY2VfaWRKBAgVEBZKBAgWEBdSCGZlYXR1cmVzUgxjYXBhYmlsaXRpZXMiQgoZVXBkYXRlQmlsbGluZ1BsYW5SZXNwb25zZRIlCgRwbGFuGAEgASgLMhcuYmlsbGluZy52MS5CaWxsaW5nUGxhbiI+ChZHZXRTdWJzY3JpcHRpb25SZXF1ZXN0EhYKCXRlbmFudF9pZBgBIAEoCUgAiAEBQgwKCl90ZW5hbnRfaWQiSQoXR2V0U3Vic2NyaXB0aW9uUmVzcG9uc2USLgoMc3Vic2NyaXB0aW9uGAEgASgLMhguYmlsbGluZy52MS5TdWJzY3JpcHRpb24iWgocQ3JlYXRlQ2hlY2tvdXRTZXNzaW9uUmVxdWVzdBIRCglwbGFuX3NsdWcYASABKAkSEwoLc3VjY2Vzc191cmwYAiABKAkSEgoKY2FuY2VsX3VybBgDIAEoCSI0Ch1DcmVhdGVDaGVja291dFNlc3Npb25SZXNwb25zZRITCgtzZXNzaW9uX3VybBgBIAEoCSI3CiFDcmVhdGVCaWxsaW5nUG9ydGFsU2Vzc2lvblJlcXVlc3QSEgoKcmV0dXJuX3VybBgBIAEoCSI5CiJDcmVhdGVCaWxsaW5nUG9ydGFsU2Vzc2lvblJlc3BvbnNlEhMKC3Nlc3Npb25fdXJsGAEgASgJImYKFkdldFVzYWdlU3VtbWFyeVJlcXVlc3QSFwoKcHJvamVjdF9pZBgBIAEoCUgAiAEBEhYKCXRlbmFudF9pZBgCIAEoCUgBiAEBQg0KC19wcm9qZWN0X2lkQgwKCl90ZW5hbnRfaWQiQgoXR2V0VXNhZ2VTdW1tYXJ5UmVzcG9uc2USJwoFdXNhZ2UYASABKAsyGC5iaWxsaW5nLnYxLlVzYWdlU3VtbWFyeSKqAQoWR2V0VXNhZ2VIaXN0b3J5UmVxdWVzdBIWCgl0ZW5hbnRfaWQYASABKAlIAIgBARItCgRmcm9tGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEisKAnRvGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQgwKCl90ZW5hbnRfaWRCBwoFX2Zyb21CBQoDX3RvIo8CChFVc2FnZUhpc3RvcnlQb2ludBIvCgtwZXJpb2RfZGF0ZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNcmVjb3Jkc19jb3VudBgCIAEoAxIbChNtZWRpYV9zdG9yYWdlX2J5dGVzGAMgASgDEh0KFW1lZGlhX3RyYW5zZm9ybWF0aW9ucxgEIAEoAxIUCgxhY3RpdmVfdXNlcnMYBSABKAUSFgoOcHJvamVjdHNfY291bnQYBiABKAUSEwoLbWNwX2FjdGlvbnMYByABKAMSEwoLbm90ZXNfY291bnQYCCABKAMSHgoWbm90ZV9hdHRhY2htZW50c19jb3VudBgJIAEoAyJIChdHZXRVc2FnZUhpc3RvcnlSZXNwb25zZRItCgZwb2ludHMYASADKAsyHS5iaWxsaW5nLnYxLlVzYWdlSGlzdG9yeVBvaW50Is0DChhDcmVhdGVDdXN0b21QYWNrYWdlSW5wdXQSDAoEbmFtZRgBIAEoCRIYCgtkZXNjcmlwdGlvbhgCIAEoCUgAiAEBEh0KEGJhc2VfcHJpY2VfY2VudHMYAyABKAVIAYgBARI6ChBiaWxsaW5nX2ludGVydmFsGAQgASgOMhsuYmlsbGluZy52MS5CaWxsaW5nSW50ZXJ2YWxIAogBARIVCghjdXJyZW5jeRgFIAEoCUgDiAEBEhYKCXRlbmFudF9pZBgHIAEoCUgEiAEBEhcKCnByb2plY3RfaWQYCCABKAlIBYgBARI5CgZsaW1pdHMYCSADKAsyKS5iaWxsaW5nLnYxLkNyZWF0ZUN1c3RvbVBhY2thZ2VMaW1pdElucHV0EjEKDGVudGl0bGVtZW50cxgKIAMoCzIbLmJpbGxpbmcudjEuUGxhbkVudGl0bGVtZW50Qg4KDF9kZXNjcmlwdGlvbkITChFfYmFzZV9wcmljZV9jZW50c0ITChFfYmlsbGluZ19pbnRlcnZhbEILCglfY3VycmVuY3lCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZEoECAYQB1IOYmFzZV9wbGFuX3NsdWciywEKHUNyZWF0ZUN1c3RvbVBhY2thZ2VMaW1pdElucHV0Eg4KBm1ldHJpYxgBIAEoCRIeChFpbmNsdWRlZF9xdWFudGl0eRgCIAEoA0gAiAEBEhkKDG1heF9xdWFudGl0eRgDIAEoA0gBiAEBEiAKE292ZXJhZ2VfcHJpY2VfY2VudHMYBCABKAVIAogBAUIUChJfaW5jbHVkZWRfcXVhbnRpdHlCDwoNX21heF9xdWFudGl0eUIWChRfb3ZlcmFnZV9wcmljZV9jZW50cyJRChpDcmVhdGVDdXN0b21QYWNrYWdlUmVxdWVzdBIzCgVpbnB1dBgBIAEoCzIkLmJpbGxpbmcudjEuQ3JlYXRlQ3VzdG9tUGFja2FnZUlucHV0IkkKG0NyZWF0ZUN1c3RvbVBhY2thZ2VSZXNwb25zZRIqCgdwYWNrYWdlGAEgASgLMhkuYmlsbGluZy52MS5DdXN0b21QYWNrYWdlIrMDChhVcGRhdGVDdXN0b21QYWNrYWdlSW5wdXQSEQoEbmFtZRgBIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAIgASgJSAGIAQESHQoQYmFzZV9wcmljZV9jZW50cxgDIAEoBUgCiAEBEjoKEGJpbGxpbmdfaW50ZXJ2YWwYBCABKA4yGy5iaWxsaW5nLnYxLkJpbGxpbmdJbnRlcnZhbEgDiAEBEhUKCGN1cnJlbmN5GAUgASgJSASIAQESFgoJaXNfYWN0aXZlGAcgASgISAWIAQESOQoGbGltaXRzGAggAygLMikuYmlsbGluZy52MS5DcmVhdGVDdXN0b21QYWNrYWdlTGltaXRJbnB1dBIxCgxlbnRpdGxlbWVudHMYCSADKAsyGy5iaWxsaW5nLnYxLlBsYW5FbnRpdGxlbWVudEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEwoRX2Jhc2VfcHJpY2VfY2VudHNCEwoRX2JpbGxpbmdfaW50ZXJ2YWxCCwoJX2N1cnJlbmN5QgwKCl9pc19hY3RpdmVKBAgGEAdSDmJhc2VfcGxhbl9zbHVnIl0KGlVwZGF0ZUN1c3RvbVBhY2thZ2VSZXF1ZXN0EgoKAmlkGAEgASgJEjMKBWlucHV0GAIgASgLMiQuYmlsbGluZy52MS5VcGRhdGVDdXN0b21QYWNrYWdlSW5wdXQiSQobVXBkYXRlQ3VzdG9tUGFja2FnZVJlc3BvbnNlEioKB3BhY2thZ2UYASABKAsyGS5iaWxsaW5nLnYxLkN1c3RvbVBhY2thZ2UiKAoaRGVsZXRlQ3VzdG9tUGFja2FnZVJlcXVlc3QSCgoCaWQYASABKAkiLgobRGVsZXRlQ3VzdG9tUGFja2FnZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi8AEKGUxpc3RDdXN0b21QYWNrYWdlc1JlcXVlc3QSFgoJdGVuYW50X2lkGAEgASgJSACIAQESEgoFZmlyc3QYAiABKAVIAYgBARISCgVhZnRlchgDIAEoCUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBARITCgZiZWZvcmUYBSABKAlIBIgBARIrCgV3aGVyZRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBAUIMCgpfdGVuYW50X2lkQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZUIICgZfd2hlcmUipAEKGkxpc3RDdXN0b21QYWNrYWdlc1Jlc3BvbnNlEisKCHBhY2thZ2VzGAEgAygLMhkuYmlsbGluZy52MS5DdXN0b21QYWNrYWdlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJKChFBc3NpZ25QbGFuUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEQoJcGxhbl9zbHVnGAIgASgJEg8KB3BsYW5faWQYAyABKAkiRAoSQXNzaWduUGxhblJlc3BvbnNlEi4KDHN1YnNjcmlwdGlvbhgBIAEoCzIYLmJpbGxpbmcudjEuU3Vic2NyaXB0aW9uIkMKGkFzc2lnbkN1c3RvbVBhY2thZ2VSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwYWNrYWdlX2lkGAIgASgJIk0KG0Fzc2lnbkN1c3RvbVBhY2thZ2VSZXNwb25zZRIuCgxzdWJzY3JpcHRpb24YASABKAsyGC5iaWxsaW5nLnYxLlN1YnNjcmlwdGlvbiLHAQoWTGlzdFVzYWdlQWxlcnRzUmVxdWVzdBISCgVmaXJzdBgBIAEoBUgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEQoEbGFzdBgDIAEoBUgCiAEBEhMKBmJlZm9yZRgEIAEoCUgDiAEBEisKBXdoZXJlGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZUIICgZfd2hlcmUinAEKF0xpc3RVc2FnZUFsZXJ0c1Jlc3BvbnNlEiYKBmFsZXJ0cxgBIAMoCzIWLmJpbGxpbmcudjEuVXNhZ2VBbGVydBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iJgoYRGlzbWlzc1VzYWdlQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIiwKGURpc21pc3NVc2FnZUFsZXJ0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJSChVDaGVja0FJQ3JlZGl0c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhcKCnByb2plY3RfaWQYAiABKAlIAIgBAUINCgtfcHJvamVjdF9pZCLEAgoWQ2hlY2tBSUNyZWRpdHNSZXNwb25zZRIPCgdhbGxvd2VkGAEgASgIEhEKCXJlbWFpbmluZxgCIAEoAxINCgVsaW1pdBgDIAEoAxIUCgx3aW5kb3dfc3BlbnQYBCABKAMSFQoNZ3JhbnRfYmFsYW5jZRgFIAEoAxIwCgx3aW5kb3dfc3RhcnQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCndpbmRvd19lbmQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnVuZW5mb3JjZWQYCCABKAgSLAoHcmVmdXNhbBgJIAEoDjIbLmJpbGxpbmcudjEuQUlDcmVkaXRSZWZ1c2FsEhMKC2RhaWx5X3NwZW50GAogASgDEhEKCWRhaWx5X2NhcBgLIAEoAyL0AgoaUmVjb3JkQUlDcmVkaXRTcGVuZFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhcKCnByb2plY3RfaWQYAiABKAlIAIgBARISCgpzb3VyY2VfcmVmGAMgASgJEg0KBW1vZGVsGAQgASgJEhQKDGlucHV0X3Rva2VucxgFIAEoAxIbChNjYWNoZWRfaW5wdXRfdG9rZW5zGAYgASgDEhUKDW91dHB1dF90b2tlbnMYByABKAMSFAoHdXNlcl9pZBgIIAEoCUgBiAEBEhgKC2VudGl0eV90eXBlGAkgASgJSAKIAQESFgoJZW50aXR5X2lkGAogASgJSAOIAQESKQoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhEKCWNvc3Rfb25seRgMIAEoCEINCgtfcHJvamVjdF9pZEIKCghfdXNlcl9pZEIOCgxfZW50aXR5X3R5cGVCDAoKX2VudGl0eV9pZCJUChtSZWNvcmRBSUNyZWRpdFNwZW5kUmVzcG9uc2USDwoHY3JlZGl0cxgBIAEoAxIRCglyZW1haW5pbmcYAiABKAMSEQoJZHVwbGljYXRlGAMgASgIInUKFlJlY29yZE1DUEFjdGlvblJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhcKCnByb2plY3RfaWQYAiABKAlIAIgBARISCgpzb3VyY2VfcmVmGAMgASgJEgwKBHRvb2wYBCABKAlCDQoLX3Byb2plY3RfaWQiLAoXUmVjb3JkTUNQQWN0aW9uUmVzcG9uc2USEQoJZHVwbGljYXRlGAEgASgIIkgKIEdldEFJQ3JlZGl0U3BlbmRCcmVha2Rvd25SZXF1ZXN0EhYKCXRlbmFudF9pZBgBIAEoCUgAiAEBQgwKCl90ZW5hbnRfaWQiSwoSQUlDcmVkaXRTcGVuZFNsaWNlEhMKC2VudGl0eV90eXBlGAEgASgJEg8KB2NyZWRpdHMYAiABKAMSDwoHYWN0aW9ucxgDIAEoAyJOChJBSUNyZWRpdERhaWx5U3BlbmQSJwoDZGF5GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdjcmVkaXRzGAIgASgDIucBCiFHZXRBSUNyZWRpdFNwZW5kQnJlYWtkb3duUmVzcG9uc2USMQoJYnlfYWN0aW9uGAEgAygLMh4uYmlsbGluZy52MS5BSUNyZWRpdFNwZW5kU2xpY2USLQoFZGFpbHkYAiADKAsyHi5iaWxsaW5nLnYxLkFJQ3JlZGl0RGFpbHlTcGVuZBIwCgx3aW5kb3dfc3RhcnQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCndpbmRvd19lbmQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjYKH0dldEFJQ3JlZGl0UGxhdGZvcm1TdGF0c1JlcXVlc3QSEwoLd2luZG93X2RheXMYASABKAUiXAoRQUlDcmVkaXRNb2RlbFN0YXQSDQoFbW9kZWwYASABKAkSDwoHY3JlZGl0cxgCIAEoAxIWCg5jb2dzX21pY3JvX2dicBgDIAEoAxIPCgdhY3Rpb25zGAQgASgDIqEBChJBSUNyZWRpdFRlbmFudFN0YXQSEQoJdGVuYW50X2lkGAEgASgJEhMKC3RlbmFudF9uYW1lGAIgASgJEg8KB2NyZWRpdHMYAyABKAMSFgoOY29nc19taWNyb19nYnAYBCABKAMSDwoHYWN0aW9ucxgFIAEoAxIUCgxwcmV2X2NyZWRpdHMYBiABKAMSEwoLYWlfZGlzYWJsZWQYByABKAgiaQoVQUlDcmVkaXRQbGF0Zm9ybURhaWx5EicKA2RheRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHY3JlZGl0cxgCIAEoAxIWCg5jb2dzX21pY3JvX2dicBgDIAEoAyJGCiBTZXRUZW5hbnRBSUNyZWRpdHNFbmFibGVkUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSDwoHZW5hYmxlZBgCIAEoCCI4CiFTZXRUZW5hbnRBSUNyZWRpdHNFbmFibGVkUmVzcG9uc2USEwoLYWlfZGlzYWJsZWQYASABKAgi1QIKIEdldEFJQ3JlZGl0UGxhdGZvcm1TdGF0c1Jlc3BvbnNlEhUKDXRvdGFsX2NyZWRpdHMYASABKAMSHAoUdG90YWxfY29nc19taWNyb19nYnAYAiABKAMSFQoNdG90YWxfYWN0aW9ucxgDIAEoAxIWCg5hY3RpdmVfdGVuYW50cxgEIAEoBRIeChZjcmVkaXRfdmFsdWVfbWljcm9fZ2JwGAUgASgDEhcKD2dyYW50ZWRfY3JlZGl0cxgGIAEoAxIvCghieV9tb2RlbBgHIAMoCzIdLmJpbGxpbmcudjEuQUlDcmVkaXRNb2RlbFN0YXQSMQoJYnlfdGVuYW50GAggAygLMh4uYmlsbGluZy52MS5BSUNyZWRpdFRlbmFudFN0YXQSMAoFZGFpbHkYCSADKAsyIS5iaWxsaW5nLnYxLkFJQ3JlZGl0UGxhdGZvcm1EYWlseSKvAQogTGlzdEFJQ3JlZGl0U3BlbmRCeVRlbmFudFJlcXVlc3QSEwoLd2luZG93X2RheXMYASABKAUSEgoFYWZ0ZXIYAiABKAlIAIgBARITCgZiZWZvcmUYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBEhEKBGxhc3QYBSABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QirQEKIUxpc3RBSUNyZWRpdFNwZW5kQnlUZW5hbnRSZXNwb25zZRItCgVpdGVtcxgBIAMoCzIeLmJpbGxpbmcudjEuQUlDcmVkaXRUZW5hbnRTdGF0Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJRCgtBSVRvcFVwUGFjaxIKCgJpZBgBIAEoCRIPCgdjcmVkaXRzGAIgASgDEhMKC3ByaWNlX2NlbnRzGAMgASgFEhAKCGN1cnJlbmN5GAQgASgJIhkKF0xpc3RBSVRvcFVwUGFja3NSZXF1ZXN0IkIKGExpc3RBSVRvcFVwUGFja3NSZXNwb25zZRImCgVwYWNrcxgBIAMoCzIXLmJpbGxpbmcudjEuQUlUb3BVcFBhY2siXQohQ3JlYXRlVG9wVXBDaGVja291dFNlc3Npb25SZXF1ZXN0Eg8KB3BhY2tfaWQYASABKAkSEwoLc3VjY2Vzc191cmwYAiABKAkSEgoKY2FuY2VsX3VybBgDIAEoCSI5CiJDcmVhdGVUb3BVcENoZWNrb3V0U2Vzc2lvblJlc3BvbnNlEhMKC3Nlc3Npb25fdXJsGAEgASgJIqACChhTZWxmU2VydmljZVNpZ251cFJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSEwoLdGVuYW50X25hbWUYAyABKAkSFgoJcGxhbl9zbHVnGAQgASgJSACIAQESFwoKZmlyc3RfbmFtZRgFIAEoCUgBiAEBEhYKCWxhc3RfbmFtZRgGIAEoCUgCiAEBEhkKDHByb2plY3RfbmFtZRgHIAEoCUgDiAEBEhsKDmNyZWF0ZV9zZXNzaW9uGAggASgISASIAQFCDAoKX3BsYW5fc2x1Z0INCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg8KDV9wcm9qZWN0X25hbWVCEQoPX2NyZWF0ZV9zZXNzaW9uInUKClNpZ251cFVzZXISCgoCaWQYASABKAkSDQoFZW1haWwYAiABKAkSFwoKZmlyc3RfbmFtZRgDIAEoCUgAiAEBEhYKCWxhc3RfbmFtZRgEIAEoCUgBiAEBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWUiKAoMU2lnbnVwVGVuYW50EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkiKQoNU2lnbnVwUHJvamVjdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJIscBChlTZWxmU2VydmljZVNpZ251cFJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5iaWxsaW5nLnYxLlNpZ251cFVzZXISKAoGdGVuYW50GAIgASgLMhguYmlsbGluZy52MS5TaWdudXBUZW5hbnQSKgoHcHJvamVjdBgDIAEoCzIZLmJpbGxpbmcudjEuU2lnbnVwUHJvamVjdBIuCgxzdWJzY3JpcHRpb24YBCABKAsyGC5iaWxsaW5nLnYxLlN1YnNjcmlwdGlvbiKMAQoNU3RyaXBlUHJvZHVjdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDgoGYWN0aXZlGAQgASgIEicKBnByaWNlcxgFIAMoCzIXLmJpbGxpbmcudjEuU3RyaXBlUHJpY2VCDgoMX2Rlc2NyaXB0aW9uInQKC1N0cmlwZVByaWNlEgoKAmlkGAEgASgJEhMKC3VuaXRfYW1vdW50GAIgASgFEhAKCGN1cnJlbmN5GAMgASgJEhUKCGludGVydmFsGAQgASgJSACIAQESDgoGYWN0aXZlGAUgASgIQgsKCV9pbnRlcnZhbCKTAQoZTGlzdFN0cmlwZVByb2R1Y3RzUmVxdWVzdBISCgVmaXJzdBgBIAEoBUgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEQoEbGFzdBgDIAEoBUgCiAEBEhMKBmJlZm9yZRgEIAEoCUgDiAEBQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZSKkAQoaTGlzdFN0cmlwZVByb2R1Y3RzUmVzcG9uc2USKwoIcHJvZHVjdHMYASADKAsyGS5iaWxsaW5nLnYxLlN0cmlwZVByb2R1Y3QSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIjoKB0ZlYXR1cmUSCwoDa2V5GAEgASgJEg0KBWxhYmVsGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIhUKE0xpc3RGZWF0dXJlc1JlcXVlc3QiPQoUTGlzdEZlYXR1cmVzUmVzcG9uc2USJQoIZmVhdHVyZXMYASADKAsyEy5iaWxsaW5nLnYxLkZlYXR1cmUiQwoYQ2hlY2tFbnRpdGxlbWVudHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIUCgxmZWF0dXJlX2tleXMYAiADKAkikwEKGUNoZWNrRW50aXRsZW1lbnRzUmVzcG9uc2USRQoIZW50aXRsZWQYASADKAsyMy5iaWxsaW5nLnYxLkNoZWNrRW50aXRsZW1lbnRzUmVzcG9uc2UuRW50aXRsZWRFbnRyeRovCg1FbnRpdGxlZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCDoCOAEicgoSRmVhdHVyZVJvbGxvdXRSdWxlEhMKC2ZlYXR1cmVfa2V5GAEgASgJEhIKCnBlcmNlbnRhZ2UYAiABKAUSDwoHY29ob3J0cxgDIAMoCRIOCgZyZWFzb24YBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCSJoChxTZXRGZWF0dXJlUm9sbG91dFJ1bGVSZXF1ZXN0EhMKC2ZlYXR1cmVfa2V5GAEgASgJEhIKCnBlcmNlbnRhZ2UYAiABKAUSDwoHY29ob3J0cxgDIAMoCRIOCgZyZWFzb24YBCABKAkiTQodU2V0RmVhdHVyZVJvbGxvdXRSdWxlUmVzcG9uc2USLAoEcnVsZRgBIAEoCzIeLmJpbGxpbmcudjEuRmVhdHVyZVJvbGxvdXRSdWxlIjYKH0RlbGV0ZUZlYXR1cmVSb2xsb3V0UnVsZVJlcXVlc3QSEwoLZmVhdHVyZV9rZXkYASABKAkiIgogRGVsZXRlRmVhdHVyZVJvbGxvdXRSdWxlUmVzcG9uc2UiIAoeTGlzdEZlYXR1cmVSb2xsb3V0UnVsZXNSZXF1ZXN0IlAKH0xpc3RGZWF0dXJlUm9sbG91dFJ1bGVzUmVzcG9uc2USLQoFcnVsZXMYASADKAsyHi5iaWxsaW5nLnYxLkZlYXR1cmVSb2xsb3V0UnVsZSJNChdTZXRUZW5hbnRDb2hvcnRzUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSDwoHY29ob3J0cxgCIAMoCRIOCgZyZWFzb24YAyABKAkiKwoYU2V0VGVuYW50Q29ob3J0c1Jlc3BvbnNlEg8KB2NvaG9ydHMYASADKAkiLAoXR2V0VGVuYW50Q29ob3J0c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIisKGEdldFRlbmFudENvaG9ydHNSZXNwb25zZRIPCgdjb2hvcnRzGAEgAygJIhkKF0xpc3RLbm93bkNvaG9ydHNSZXF1ZXN0IisKGExpc3RLbm93bkNvaG9ydHNSZXNwb25zZRIPCgdjb2hvcnRzGAEgAygJImkKDFByb2plY3RMaW1pdBISCgpwcm9qZWN0X2lkGAEgASgJEg4KBm1ldHJpYxgCIAEoCRINCgV2YWx1ZRgDIAEoAxISCgpjcmVhdGVkX2F0GAQgASgJEhIKCnVwZGF0ZWRfYXQYBSABKAkicQoWU2V0UHJvamVjdExpbWl0UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg4KBm1ldHJpYxgCIAEoCRINCgV2YWx1ZRgDIAEoAxIWCgl0ZW5hbnRfaWQYBCABKAlIAIgBAUIMCgpfdGVuYW50X2lkIkIKF1NldFByb2plY3RMaW1pdFJlc3BvbnNlEicKBWxpbWl0GAEgASgLMhguYmlsbGluZy52MS5Qcm9qZWN0TGltaXQiZAoYQ2xlYXJQcm9qZWN0TGltaXRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSDgoGbWV0cmljGAIgASgJEhYKCXRlbmFudF9pZBgDIAEoCUgAiAEBQgwKCl90ZW5hbnRfaWQiLAoZQ2xlYXJQcm9qZWN0TGltaXRSZXNwb25zZRIPCgdjbGVhcmVkGAEgASgIImgKGExpc3RQcm9qZWN0TGltaXRzUmVxdWVzdBIXCgpwcm9qZWN0X2lkGAEgASgJSACIAQESFgoJdGVuYW50X2lkGAIgASgJSAGIAQFCDQoLX3Byb2plY3RfaWRCDAoKX3RlbmFudF9pZCJfChlMaXN0UHJvamVjdExpbWl0c1Jlc3BvbnNlEigKBmxpbWl0cxgBIAMoCzIYLmJpbGxpbmcudjEuUHJvamVjdExpbWl0EhgKEGNhcHBhYmxlX21ldHJpY3MYAiADKAkq4wEKElN1YnNjcmlwdGlvblN0YXR1cxIjCh9TVUJTQ1JJUFRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHgoaU1VCU0NSSVBUSU9OX1NUQVRVU19BQ1RJVkUQARIgChxTVUJTQ1JJUFRJT05fU1RBVFVTX1BBU1RfRFVFEAISIAocU1VCU0NSSVBUSU9OX1NUQVRVU19DQU5DRUxFRBADEiAKHFNVQlNDUklQVElPTl9TVEFUVVNfVFJJQUxJTkcQBBIiCh5TVUJTQ1JJUFRJT05fU1RBVFVTX0lOQ09NUExFVEUQBSpqCg9CaWxsaW5nSW50ZXJ2YWwSIAocQklMTElOR19JTlRFUlZBTF9VTlNQRUNJRklFRBAAEhoKFkJJTExJTkdfSU5URVJWQUxfTU9OVEgQARIZChVCSUxMSU5HX0lOVEVSVkFMX1lFQVIQAiqbAQoPQUlDcmVkaXRSZWZ1c2FsEiEKHUFJX0NSRURJVF9SRUZVU0FMX1VOU1BFQ0lGSUVEEAASJAogQUlfQ1JFRElUX1JFRlVTQUxfT1VUX09GX0NSRURJVFMQARIfChtBSV9DUkVESVRfUkVGVVNBTF9EQUlMWV9DQVAQAhIeChpBSV9DUkVESVRfUkVGVVNBTF9ESVNBQkxFRBADMvAfCg5CaWxsaW5nU2VydmljZRJdChBMaXN0QmlsbGluZ1BsYW5zEiMuYmlsbGluZy52MS5MaXN0QmlsbGluZ1BsYW5zUmVxdWVzdBokLmJpbGxpbmcudjEuTGlzdEJpbGxpbmdQbGFuc1Jlc3BvbnNlElcKDkdldEJpbGxpbmdQbGFuEiEuYmlsbGluZy52MS5HZXRCaWxsaW5nUGxhblJlcXVlc3QaIi5iaWxsaW5nLnYxLkdldEJpbGxpbmdQbGFuUmVzcG9uc2USYwoSR2V0RGVmYXVsdEZyZWVQbGFuEiUuYmlsbGluZy52MS5HZXREZWZhdWx0RnJlZVBsYW5SZXF1ZXN0GiYuYmlsbGluZy52MS5HZXREZWZhdWx0RnJlZVBsYW5SZXNwb25zZRJgChFDcmVhdGVCaWxsaW5nUGxhbhIkLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ1BsYW5SZXF1ZXN0GiUuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nUGxhblJlc3BvbnNlEmAKEVVwZGF0ZUJpbGxpbmdQbGFuEiQuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nUGxhblJlcXVlc3QaJS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdQbGFuUmVzcG9uc2USWgoPR2V0U3Vic2NyaXB0aW9uEiIuYmlsbGluZy52MS5HZXRTdWJzY3JpcHRpb25SZXF1ZXN0GiMuYmlsbGluZy52MS5HZXRTdWJzY3JpcHRpb25SZXNwb25zZRJsChVDcmVhdGVDaGVja291dFNlc3Npb24SKC5iaWxsaW5nLnYxLkNyZWF0ZUNoZWNrb3V0U2Vzc2lvblJlcXVlc3QaKS5iaWxsaW5nLnYxLkNyZWF0ZUNoZWNrb3V0U2Vzc2lvblJlc3BvbnNlEnsKGkNyZWF0ZUJpbGxpbmdQb3J0YWxTZXNzaW9uEi0uYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nUG9ydGFsU2Vzc2lvblJlcXVlc3QaLi5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdQb3J0YWxTZXNzaW9uUmVzcG9uc2USWgoPR2V0VXNhZ2VTdW1tYXJ5EiIuYmlsbGluZy52MS5HZXRVc2FnZVN1bW1hcnlSZXF1ZXN0GiMuYmlsbGluZy52MS5HZXRVc2FnZVN1bW1hcnlSZXNwb25zZRJaCg9HZXRVc2FnZUhpc3RvcnkSIi5iaWxsaW5nLnYxLkdldFVzYWdlSGlzdG9yeVJlcXVlc3QaIy5iaWxsaW5nLnYxLkdldFVzYWdlSGlzdG9yeVJlc3BvbnNlEloKD0xpc3RVc2FnZUFsZXJ0cxIiLmJpbGxpbmcudjEuTGlzdFVzYWdlQWxlcnRzUmVxdWVzdBojLmJpbGxpbmcudjEuTGlzdFVzYWdlQWxlcnRzUmVzcG9uc2USYAoRRGlzbWlzc1VzYWdlQWxlcnQSJC5iaWxsaW5nLnYxLkRpc21pc3NVc2FnZUFsZXJ0UmVxdWVzdBolLmJpbGxpbmcudjEuRGlzbWlzc1VzYWdlQWxlcnRSZXNwb25zZRJmChNDcmVhdGVDdXN0b21QYWNrYWdlEiYuYmlsbGluZy52MS5DcmVhdGVDdXN0b21QYWNrYWdlUmVxdWVzdBonLmJpbGxpbmcudjEuQ3JlYXRlQ3VzdG9tUGFja2FnZVJlc3BvbnNlEmYKE1VwZGF0ZUN1c3RvbVBhY2thZ2USJi5iaWxsaW5nLnYxLlVwZGF0ZUN1c3RvbVBhY2thZ2VSZXF1ZXN0GicuYmlsbGluZy52MS5VcGRhdGVDdXN0b21QYWNrYWdlUmVzcG9uc2USZgoTRGVsZXRlQ3VzdG9tUGFja2FnZRImLmJpbGxpbmcudjEuRGVsZXRlQ3VzdG9tUGFja2FnZVJlcXVlc3QaJy5iaWxsaW5nLnYxLkRlbGV0ZUN1c3RvbVBhY2thZ2VSZXNwb25zZRJjChJMaXN0Q3VzdG9tUGFja2FnZXMSJS5iaWxsaW5nLnYxLkxpc3RDdXN0b21QYWNrYWdlc1JlcXVlc3QaJi5iaWxsaW5nLnYxLkxpc3RDdXN0b21QYWNrYWdlc1Jlc3BvbnNlEmYKE0Fzc2lnbkN1c3RvbVBhY2thZ2USJi5iaWxsaW5nLnYxLkFzc2lnbkN1c3RvbVBhY2thZ2VSZXF1ZXN0GicuYmlsbGluZy52MS5Bc3NpZ25DdXN0b21QYWNrYWdlUmVzcG9uc2USSwoKQXNzaWduUGxhbhIdLmJpbGxpbmcudjEuQXNzaWduUGxhblJlcXVlc3QaHi5iaWxsaW5nLnYxLkFzc2lnblBsYW5SZXNwb25zZRJjChJMaXN0U3RyaXBlUHJvZHVjdHMSJS5iaWxsaW5nLnYxLkxpc3RTdHJpcGVQcm9kdWN0c1JlcXVlc3QaJi5iaWxsaW5nLnYxLkxpc3RTdHJpcGVQcm9kdWN0c1Jlc3BvbnNlElcKDkNoZWNrQUlDcmVkaXRzEiEuYmlsbGluZy52MS5DaGVja0FJQ3JlZGl0c1JlcXVlc3QaIi5iaWxsaW5nLnYxLkNoZWNrQUlDcmVkaXRzUmVzcG9uc2USZgoTUmVjb3JkQUlDcmVkaXRTcGVuZBImLmJpbGxpbmcudjEuUmVjb3JkQUlDcmVkaXRTcGVuZFJlcXVlc3QaJy5iaWxsaW5nLnYxLlJlY29yZEFJQ3JlZGl0U3BlbmRSZXNwb25zZRJaCg9SZWNvcmRNQ1BBY3Rpb24SIi5iaWxsaW5nLnYxLlJlY29yZE1DUEFjdGlvblJlcXVlc3QaIy5iaWxsaW5nLnYxLlJlY29yZE1DUEFjdGlvblJlc3BvbnNlEl0KEExpc3RBSVRvcFVwUGFja3MSIy5iaWxsaW5nLnYxLkxpc3RBSVRvcFVwUGFja3NSZXF1ZXN0GiQuYmlsbGluZy52MS5MaXN0QUlUb3BVcFBhY2tzUmVzcG9uc2USewoaQ3JlYXRlVG9wVXBDaGVja291dFNlc3Npb24SLS5iaWxsaW5nLnYxLkNyZWF0ZVRvcFVwQ2hlY2tvdXRTZXNzaW9uUmVxdWVzdBouLmJpbGxpbmcudjEuQ3JlYXRlVG9wVXBDaGVja291dFNlc3Npb25SZXNwb25zZRJ4ChlHZXRBSUNyZWRpdFNwZW5kQnJlYWtkb3duEiwuYmlsbGluZy52MS5HZXRBSUNyZWRpdFNwZW5kQnJlYWtkb3duUmVxdWVzdBotLmJpbGxpbmcudjEuR2V0QUlDcmVkaXRTcGVuZEJyZWFrZG93blJlc3BvbnNlEnUKGEdldEFJQ3JlZGl0UGxhdGZvcm1TdGF0cxIrLmJpbGxpbmcudjEuR2V0QUlDcmVkaXRQbGF0Zm9ybVN0YXRzUmVxdWVzdBosLmJpbGxpbmcudjEuR2V0QUlDcmVkaXRQbGF0Zm9ybVN0YXRzUmVzcG9uc2USeAoZTGlzdEFJQ3JlZGl0U3BlbmRCeVRlbmFudBIsLmJpbGxpbmcudjEuTGlzdEFJQ3JlZGl0U3BlbmRCeVRlbmFudFJlcXVlc3QaLS5iaWxsaW5nLnYxLkxpc3RBSUNyZWRpdFNwZW5kQnlUZW5hbnRSZXNwb25zZRJ4ChlTZXRUZW5hbnRBSUNyZWRpdHNFbmFibGVkEiwuYmlsbGluZy52MS5TZXRUZW5hbnRBSUNyZWRpdHNFbmFibGVkUmVxdWVzdBotLmJpbGxpbmcudjEuU2V0VGVuYW50QUlDcmVkaXRzRW5hYmxlZFJlc3BvbnNlElEKDExpc3RGZWF0dXJlcxIfLmJpbGxpbmcudjEuTGlzdEZlYXR1cmVzUmVxdWVzdBogLmJpbGxpbmcudjEuTGlzdEZlYXR1cmVzUmVzcG9uc2USYAoRQ2hlY2tFbnRpdGxlbWVudHMSJC5iaWxsaW5nLnYxLkNoZWNrRW50aXRsZW1lbnRzUmVxdWVzdBolLmJpbGxpbmcudjEuQ2hlY2tFbnRpdGxlbWVudHNSZXNwb25zZRJsChVTZXRGZWF0dXJlUm9sbG91dFJ1bGUSKC5iaWxsaW5nLnYxLlNldEZlYXR1cmVSb2xsb3V0UnVsZVJlcXVlc3QaKS5iaWxsaW5nLnYxLlNldEZlYXR1cmVSb2xsb3V0UnVsZVJlc3BvbnNlEnUKGERlbGV0ZUZlYXR1cmVSb2xsb3V0UnVsZRIrLmJpbGxpbmcudjEuRGVsZXRlRmVhdHVyZVJvbGxvdXRSdWxlUmVxdWVzdBosLmJpbGxpbmcudjEuRGVsZXRlRmVhdHVyZVJvbGxvdXRSdWxlUmVzcG9uc2UScgoXTGlzdEZlYXR1cmVSb2xsb3V0UnVsZXMSKi5iaWxsaW5nLnYxLkxpc3RGZWF0dXJlUm9sbG91dFJ1bGVzUmVxdWVzdBorLmJpbGxpbmcudjEuTGlzdEZlYXR1cmVSb2xsb3V0UnVsZXNSZXNwb25zZRJdChBTZXRUZW5hbnRDb2hvcnRzEiMuYmlsbGluZy52MS5TZXRUZW5hbnRDb2hvcnRzUmVxdWVzdBokLmJpbGxpbmcudjEuU2V0VGVuYW50Q29ob3J0c1Jlc3BvbnNlEl0KEEdldFRlbmFudENvaG9ydHMSIy5iaWxsaW5nLnYxLkdldFRlbmFudENvaG9ydHNSZXF1ZXN0GiQuYmlsbGluZy52MS5HZXRUZW5hbnRDb2hvcnRzUmVzcG9uc2USXQoQTGlzdEtub3duQ29ob3J0cxIjLmJpbGxpbmcudjEuTGlzdEtub3duQ29ob3J0c1JlcXVlc3QaJC5iaWxsaW5nLnYxLkxpc3RLbm93bkNvaG9ydHNSZXNwb25zZRJaCg9TZXRQcm9qZWN0TGltaXQSIi5iaWxsaW5nLnYxLlNldFByb2plY3RMaW1pdFJlcXVlc3QaIy5iaWxsaW5nLnYxLlNldFByb2plY3RMaW1pdFJlc3BvbnNlEmAKEUNsZWFyUHJvamVjdExpbWl0EiQuYmlsbGluZy52MS5DbGVhclByb2plY3RMaW1pdFJlcXVlc3QaJS5iaWxsaW5nLnYxLkNsZWFyUHJvamVjdExpbWl0UmVzcG9uc2USYAoRTGlzdFByb2plY3RMaW1pdHMSJC5iaWxsaW5nLnYxLkxpc3RQcm9qZWN0TGltaXRzUmVxdWVzdBolLmJpbGxpbmcudjEuTGlzdFByb2plY3RMaW1pdHNSZXNwb25zZRJgChFTZWxmU2VydmljZVNpZ251cBIkLmJpbGxpbmcudjEuU2VsZlNlcnZpY2VTaWdudXBSZXF1ZXN0GiUuYmlsbGluZy52MS5TZWxmU2VydmljZVNpZ251cFJlc3BvbnNlQjtaOWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9iaWxsaW5nL3YxO2JpbGxpbmd2MWIGcHJvdG8z", [file_google_protobuf_struct4, file_google_protobuf_timestamp5, file_common_v1_pagination]);
|
|
982
|
+
var ListBillingPlansRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 10);
|
|
983
|
+
var GetBillingPlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 12);
|
|
984
|
+
var GetDefaultFreePlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 14);
|
|
985
|
+
var CreateBillingPlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 16);
|
|
986
|
+
var UpdateBillingPlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 18);
|
|
987
|
+
var GetSubscriptionRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 20);
|
|
988
|
+
var CreateCheckoutSessionRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 22);
|
|
989
|
+
var CreateBillingPortalSessionRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 24);
|
|
990
|
+
var GetUsageSummaryRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 26);
|
|
991
|
+
var GetUsageHistoryRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 28);
|
|
992
|
+
var CreateCustomPackageRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 33);
|
|
993
|
+
var UpdateCustomPackageRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 36);
|
|
994
|
+
var DeleteCustomPackageRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 38);
|
|
995
|
+
var ListCustomPackagesRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 40);
|
|
996
|
+
var AssignPlanRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 42);
|
|
997
|
+
var AssignCustomPackageRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 44);
|
|
998
|
+
var ListUsageAlertsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 46);
|
|
999
|
+
var DismissUsageAlertRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 48);
|
|
1000
|
+
var CheckAICreditsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 50);
|
|
1001
|
+
var RecordAICreditSpendRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 52);
|
|
1002
|
+
var GetAICreditSpendBreakdownRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 56);
|
|
1003
|
+
var GetAICreditPlatformStatsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 60);
|
|
1004
|
+
var SetTenantAICreditsEnabledRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 64);
|
|
1005
|
+
var ListAICreditSpendByTenantRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 67);
|
|
1006
|
+
var ListAITopUpPacksRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 70);
|
|
1007
|
+
var CreateTopUpCheckoutSessionRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 72);
|
|
1008
|
+
var SelfServiceSignupRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 74);
|
|
1009
|
+
var ListStripeProductsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 81);
|
|
1010
|
+
var ListFeaturesRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 84);
|
|
1011
|
+
var CheckEntitlementsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 86);
|
|
1012
|
+
var SetFeatureRolloutRuleRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 89);
|
|
1013
|
+
var DeleteFeatureRolloutRuleRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 91);
|
|
1014
|
+
var ListFeatureRolloutRulesRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 93);
|
|
1015
|
+
var SetTenantCohortsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 95);
|
|
1016
|
+
var GetTenantCohortsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 97);
|
|
1017
|
+
var ListKnownCohortsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 99);
|
|
1018
|
+
var SetProjectLimitRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 102);
|
|
1019
|
+
var ClearProjectLimitRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 104);
|
|
1020
|
+
var ListProjectLimitsRequestSchema = /* @__PURE__ */ messageDesc8(file_billing_v1_billing, 106);
|
|
999
1021
|
var BillingIntervalSchema = /* @__PURE__ */ enumDesc5(file_billing_v1_billing, 1);
|
|
1000
1022
|
var BillingInterval = /* @__PURE__ */ tsEnum5(BillingIntervalSchema);
|
|
1001
1023
|
var BillingService = /* @__PURE__ */ serviceDesc4(file_billing_v1_billing, 0);
|
|
@@ -1011,7 +1033,7 @@ var RealtimeService = /* @__PURE__ */ serviceDesc5(file_realtime_v1_realtime, 0)
|
|
|
1011
1033
|
// ../../packages/proto-ts/src/configs/v1/configs_pb.js
|
|
1012
1034
|
import { enumDesc as enumDesc7, fileDesc as fileDesc10, messageDesc as messageDesc10, serviceDesc as serviceDesc6, tsEnum as tsEnum7 } from "@bufbuild/protobuf/codegenv2";
|
|
1013
1035
|
import { file_google_protobuf_struct as file_google_protobuf_struct5, file_google_protobuf_timestamp as file_google_protobuf_timestamp6 } from "@bufbuild/protobuf/wkt";
|
|
1014
|
-
var file_configs_v1_configs = /* @__PURE__ */ fileDesc10("Chhjb25maWdzL3YxL2NvbmZpZ3MucHJvdG8SCmNvbmZpZ3MudjEivwcKBkNvbmZpZxIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSEwoLY29uZmlnX3R5cGUYAyABKAkSLgoJZGlyZWN0aW9uGAQgASgOMhsuY29uZmlncy52MS5Db25maWdEaXJlY3Rpb24SDAoEbmFtZRgFIAEoCRIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEh4KEWNvbm5lY3Rpb25fZG9tYWluGAogASgJSAGIAQESGgoNY29ubmVjdGlvbl9pZBgLIAEoCUgCiAEBEg8KB2VuYWJsZWQYFCABKAgSEwoLZW52aXJvbm1lbnQYFSABKAkSEwoLc3luY19zdGF0dXMYFiABKAkSMwoNc3luY19tZXRhZGF0YRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIxCgtjcmVkZW50aWFscxgeIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIrCgVvYXV0aBgfIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIuCghmZWF0dXJlcxggIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIuCgh3ZWJob29rcxghIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIsCgZjb25maWcYIiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAiIAQESKwoFaG9va3MYIyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAmIAQESEQoJdGVuYW50X2lkGCggASgJEhIKCnByb2plY3RfaWQYKSABKAkSFwoKY3JlYXRlZF9ieRgtIAEoCUgKiAEBEhcKCnVwZGF0ZWRfYnkYLiABKAlIC4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CFAoSX2Nvbm5lY3Rpb25fZG9tYWluQhAKDl9jb25uZWN0aW9uX2lkQhAKDl9zeW5jX21ldGFkYXRhQg4KDF9jcmVkZW50aWFsc0IICgZfb2F1dGhCCwoJX2ZlYXR1cmVzQgsKCV93ZWJob29rc0IJCgdfY29uZmlnQggKBl9ob29rc0INCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSIeChBHZXRDb25maWdSZXF1ZXN0EgoKAmlkGAEgASgJIjcKEUdldENvbmZpZ1Jlc3BvbnNlEiIKBmNvbmZpZxgBIAEoCzISLmNvbmZpZ3MudjEuQ29uZmlnIiQKFUdldENvbmZpZ0J5S2V5UmVxdWVzdBILCgNrZXkYASABKAkiPAoWR2V0Q29uZmlnQnlLZXlSZXNwb25zZRIiCgZjb25maWcYASABKAsyEi5jb25maWdzLnYxLkNvbmZpZyLkAQoSTGlzdENvbmZpZ3NSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAYQB0oECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldCKVAQoTTGlzdENvbmZpZ3NSZXNwb25zZRIjCgdjb25maWdzGAEgAygLMhIuY29uZmlncy52MS5Db25maWcSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIuwBChJDb25maWdIaXN0b3J5RW50cnkSCgoCaWQYASABKAkSFgoJY29uZmlnX2lkGAIgASgJSACIAQESEgoKY29uZmlnX2tleRgDIAEoCRItCglwdXNoZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhEKCXB1c2hlZF9ieRgFIAEoCRIOCgZzb3VyY2UYBiABKAkSCgoCb2sYByABKAgSFgoOcmVzdWx0X3N1bW1hcnkYCCABKAkSGgoSZGlmZl9mcm9tX3ByZXZpb3VzGAkgASgJQgwKCl9jb25maWdfaWQiaQoYTGlzdENvbmZpZ0hpc3RvcnlSZXF1ZXN0EhEKCWNvbmZpZ19pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhIKBWZpcnN0GAMgASgFSAGIAQFCCAoGX2FmdGVyQggKBl9maXJzdCKHAQoZTGlzdENvbmZpZ0hpc3RvcnlSZXNwb25zZRIvCgdlbnRyaWVzGAEgAygLMh4uY29uZmlncy52MS5Db25maWdIaXN0b3J5RW50cnkSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQFCDAoKX3BhZ2VfaW5mbyL6AQoTQ3JlYXRlQ29uZmlnUmVxdWVzdBILCgNrZXkYASABKAkSEwoLY29uZmlnX3R5cGUYAiABKAkSLgoJZGlyZWN0aW9uGAMgASgOMhsuY29uZmlncy52MS5Db25maWdEaXJlY3Rpb24SDAoEbmFtZRgEIAEoCRIYCgtkZXNjcmlwdGlvbhgFIAEoCUgAiAEBEiwKBmNvbmZpZxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIUCgdlbmFibGVkGAcgASgISAKIAQFCDgoMX2Rlc2NyaXB0aW9uQgkKB19jb25maWdCCgoIX2VuYWJsZWQiOgoUQ3JlYXRlQ29uZmlnUmVzcG9uc2USIgoGY29uZmlnGAEgASgLMhIuY29uZmlncy52MS5Db25maWcitgIKE1VwZGF0ZUNvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESLAoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEhQKB2VuYWJsZWQYBSABKAhIA4gBARIuCgh3ZWJob29rcxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIrCgVob29rcxgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCQoHX2NvbmZpZ0IKCghfZW5hYmxlZEILCglfd2ViaG9va3NCCAoGX2hvb2tzIjoKFFVwZGF0ZUNvbmZpZ1Jlc3BvbnNlEiIKBmNvbmZpZxgBIAEoCzISLmNvbmZpZ3MudjEuQ29uZmlnIiEKE0RlbGV0ZUNvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlQ29uZmlnUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJWChJBcHBseUNvbmZpZ1JlcXVlc3QSEgoKY29uZmlnX2tleRgBIAEoCRIsCgtjb25maWdfZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QitgEKE0FwcGx5Q29uZmlnUmVzcG9uc2USIgoGY29uZmlnGAEgASgLMhIuY29uZmlncy52MS5Db25maWcSLwoHc3VtbWFyeRgCIAEoCzIeLmNvbmZpZ3MudjEuQXBwbHlDb25maWdTdW1tYXJ5EhsKDndlYmhvb2tfc2VjcmV0GAQgASgJSACIAQFCEQoPX3dlYmhvb2tfc2VjcmV0SgQIAxAEUhRwcm92aXNpb25lZF9hcGlfa2V5cyKvAwoSQXBwbHlDb25maWdTdW1tYXJ5EhYKDm1vZGVsc19jcmVhdGVkGAEgASgFEhYKDm1vZGVsc191cGRhdGVkGAIgASgFEhoKEm9wZXJhdGlvbnNfY3JlYXRlZBgDIAEoBRIaChJvcGVyYXRpb25zX3VwZGF0ZWQYBCABKAUSFQoNaG9va3NfY3JlYXRlZBgFIAEoBRIVCg1ob29rc191cGRhdGVkGAYgASgFEhgKEHNlZ21lbnRzX2NyZWF0ZWQYByABKAUSGAoQc2VnbWVudHNfdXBkYXRlZBgIIAEoBRIZChFzY2hlZHVsZXNfY3JlYXRlZBgJIAEoBRIZChFzY2hlZHVsZXNfdXBkYXRlZBgKIAEoBRIeChZhdXRoX3Byb3ZpZGVyc19jcmVhdGVkGAsgASgFEh4KFmF1dGhfcHJvdmlkZXJzX3VwZGF0ZWQYDCABKAUSGQoRcmVzb3VyY2VzX2RlbGV0ZWQYDSABKAUSHgoWY3VzdG9tZXJfcm9sZXNfY3JlYXRlZBgOIAEoBRIeChZjdXN0b21lcl9yb2xlc191cGRhdGVkGA8gASgFIkEKHFdyaXRlQ29uZmlnQ3JlZGVudGlhbFJlcXVlc3QSEgoKY29uZmlnX2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDCJvCh1Xcml0ZUNvbmZpZ0NyZWRlbnRpYWxSZXNwb25zZRIZChFlbmNyeXB0aW9uX2tleV9pZBgBIAEoCRIzCg9sYXN0X3dyaXR0ZW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIqECCg1CdW5kbGVNb2RlbE9wEiYKBGtpbmQYASABKA4yGC5jb25maWdzLnYxLkJ1bmRsZU9wS2luZBIKCgJpZBgCIAEoCRILCgNrZXkYAyABKAkSDAoEbmFtZRgEIAEoCRIgCgZmaWVsZHMYBSADKAsyEC5tb2RlbHMudjEuRmllbGQSKwoGY29uZmlnGAYgASgLMhYubW9kZWxzLnYxLk1vZGVsQ29uZmlnSACIAQESIAoTZXhwZWN0ZWRfdmVyc2lvbl9pZBgHIAEoCUgBiAEBEg8KB3B1Ymxpc2gYCCABKAgSHAoUYWxsb3dfbG9va3VwX3JlYnVpbGQYCSABKAhCCQoHX2NvbmZpZ0IWChRfZXhwZWN0ZWRfdmVyc2lvbl9pZCKOAQoUQnVuZGxlQ3VzdG9tZXJSb2xlT3ASJgoEa2luZBgBIAEoDjIYLmNvbmZpZ3MudjEuQnVuZGxlT3BLaW5kEgoKAmlkGAIgASgJEgsKA2tleRgDIAEoCRIMCgRuYW1lGAQgASgJEhMKC3Blcm1pc3Npb25zGAUgAygJEhIKCmlzX2RlZmF1bHQYBiABKAgiqwIKFEJ1bmRsZUF1dGhQcm92aWRlck9wEiYKBGtpbmQYASABKA4yGC5jb25maWdzLnYxLkJ1bmRsZU9wS2luZBIKCgJpZBgCIAEoCRILCgNrZXkYAyABKAkSDAoEbmFtZRgEIAEoCRIMCgR0eXBlGAUgASgJEiwKBmNvbmZpZxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIUCgdlbmFibGVkGAcgASgISAGIAQESFwoKaXNfZGVmYXVsdBgIIAEoCEgCiAEBEhUKCHByaW9yaXR5GAkgASgFSAOIAQESDwoHcHVibGlzaBgKIAEoCEIJCgdfY29uZmlnQgoKCF9lbmFibGVkQg0KC19pc19kZWZhdWx0QgsKCV9wcmlvcml0eSKrAQoKQnVuZGxlUGxhbhIpCgZtb2RlbHMYASADKAsyGS5jb25maWdzLnYxLkJ1bmRsZU1vZGVsT3ASOAoOY3VzdG9tZXJfcm9sZXMYAiADKAsyIC5jb25maWdzLnYxLkJ1bmRsZUN1c3RvbWVyUm9sZU9wEjgKDmF1dGhfcHJvdmlkZXJzGAMgAygLMiAuY29uZmlncy52MS5CdW5kbGVBdXRoUHJvdmlkZXJPcCKKAQoNQnVuZGxlT3B0aW9ucxINCgVmb3JjZRgBIAEoCBIdChVwdWJsaXNoX2Rlc2lnbl90b2tlbnMYAiABKAgSHAoUYWxsb3dfbG9va3VwX3JlYnVpbGQYAyABKAgSDwoHcHVibGlzaBgEIAEoCBISCgVwcnVuZRgFIAEoCEgAiAEBQggKBl9wcnVuZSKuAQoYQXBwbHlDb25maWdCdW5kbGVSZXF1ZXN0EhIKCmNvbmZpZ19rZXkYASABKAkSLAoLY29uZmlnX2RhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiQKBHBsYW4YAyABKAsyFi5jb25maWdzLnYxLkJ1bmRsZVBsYW4SKgoHb3B0aW9ucxgEIAEoCzIZLmNvbmZpZ3MudjEuQnVuZGxlT3B0aW9ucyLiAQoZQXBwbHlDb25maWdCdW5kbGVSZXNwb25zZRIiCgZjb25maWcYASABKAsyEi5jb25maWdzLnYxLkNvbmZpZxIbCg53ZWJob29rX3NlY3JldBgCIAEoCUgAiAEBEi8KB3N1bW1hcnkYAyABKAsyHi5jb25maWdzLnYxLkFwcGx5Q29uZmlnU3VtbWFyeRIbChNwdWJsaXNoZWRfbW9kZWxfaWRzGAQgAygJEiMKG3B1Ymxpc2hlZF9hdXRoX3Byb3ZpZGVyX2lkcxgFIAMoCUIRCg9fd2ViaG9va19zZWNyZXQiigEKEEJ1bmRsZUZhbWlseURpZmYSMAoGZmFtaWx5GAEgASgOMiAuY29uZmlncy52MS5CdW5kbGVSZXNvdXJjZUZhbWlseRIPCgdjcmVhdGVkGAIgASgFEg8KB3VwZGF0ZWQYAyABKAUSDwoHZGVsZXRlZBgEIAEoBRIRCgl1bmNoYW5nZWQYBSABKAUinQEKHFJlc29sdmVBbmRBcHBseUJ1bmRsZVJlcXVlc3QSEgoKY29uZmlnX2tleRgBIAEoCRIsCgtjb25maWdfZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKgoHb3B0aW9ucxgDIAEoCzIZLmNvbmZpZ3MudjEuQnVuZGxlT3B0aW9ucxIPCgdkcnlfcnVuGAQgASgIIrkBCh1SZXNvbHZlQW5kQXBwbHlCdW5kbGVSZXNwb25zZRI1CgZyZXN1bHQYASABKAsyJS5jb25maWdzLnYxLkFwcGx5Q29uZmlnQnVuZGxlUmVzcG9uc2USJAoEcGxhbhgCIAEoCzIWLmNvbmZpZ3MudjEuQnVuZGxlUGxhbhIqCgRkaWZmGAMgAygLMhwuY29uZmlncy52MS5CdW5kbGVGYW1pbHlEaWZmEg8KB2RyeV9ydW4YBCABKAgqjgEKD0NvbmZpZ0RpcmVjdGlvbhIgChxDT05GSUdfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASGQoVQ09ORklHX0RJUkVDVElPTl9SRUFEEAESGgoWQ09ORklHX0RJUkVDVElPTl9XUklURRACEiIKHkNPTkZJR19ESVJFQ1RJT05fQklESVJFQ1RJT05BTBADKn8KDEJ1bmRsZU9wS2luZBIeChpCVU5ETEVfT1BfS0lORF9VTlNQRUNJRklFRBAAEhkKFUJVTkRMRV9PUF9LSU5EX0NSRUFURRABEhkKFUJVTkRMRV9PUF9LSU5EX1VQREFURRACEhkKFUJVTkRMRV9PUF9LSU5EX0RFTEVURRADKpgFChRCdW5kbGVSZXNvdXJjZUZhbWlseRImCiJCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX1VOU1BFQ0lGSUVEEAASIQodQlVORExFX1JFU09VUkNFX0ZBTUlMWV9NT0RFTFMQARIlCiFCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX09QRVJBVElPTlMQAhIgChxCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX0hPT0tTEAMSLQopQlVORExFX1JFU09VUkNFX0ZBTUlMWV9DT05URVhUX0RJTUVOU0lPTlMQBBIpCiVCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX0NST05fU0NIRURVTEVTEAUSKQolQlVORExFX1JFU09VUkNFX0ZBTUlMWV9BVVRIX1BST1ZJREVSUxAGEioKJkJVTkRMRV9SRVNPVVJDRV9GQU1JTFlfUkVMWUlOR19QQVJUSUVTEAcSKQolQlVORExFX1JFU09VUkNFX0ZBTUlMWV9DVVNUT01fRE9NQUlOUxAIEikKJUJVTkRMRV9SRVNPVVJDRV9GQU1JTFlfQ1VTVE9NRVJfUk9MRVMQCRIlCiFCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX1BMQUNFTUVOVFMQChIoCiRCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX0RFU0lHTl9UT0tFTlMQCxIjCh9CVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX0FQSV9LRVlTEAwSHwobQlVORExFX1JFU09VUkNFX0ZBTUlMWV9BUFBTEA0SIgoeQlVORExFX1JFU09VUkNFX0ZBTUlMWV9MT0NBTEVTEA4SKgomQlVORExFX1JFU09VUkNFX0ZBTUlMWV9WQVJJQU5UX0NBVEFMT0cQDzLsBwoOQ29uZmlnc1NlcnZpY2USSAoJR2V0Q29uZmlnEhwuY29uZmlncy52MS5HZXRDb25maWdSZXF1ZXN0Gh0uY29uZmlncy52MS5HZXRDb25maWdSZXNwb25zZRJXCg5HZXRDb25maWdCeUtleRIhLmNvbmZpZ3MudjEuR2V0Q29uZmlnQnlLZXlSZXF1ZXN0GiIuY29uZmlncy52MS5HZXRDb25maWdCeUtleVJlc3BvbnNlEk4KC0xpc3RDb25maWdzEh4uY29uZmlncy52MS5MaXN0Q29uZmlnc1JlcXVlc3QaHy5jb25maWdzLnYxLkxpc3RDb25maWdzUmVzcG9uc2USYAoRTGlzdENvbmZpZ0hpc3RvcnkSJC5jb25maWdzLnYxLkxpc3RDb25maWdIaXN0b3J5UmVxdWVzdBolLmNvbmZpZ3MudjEuTGlzdENvbmZpZ0hpc3RvcnlSZXNwb25zZRJRCgxDcmVhdGVDb25maWcSHy5jb25maWdzLnYxLkNyZWF0ZUNvbmZpZ1JlcXVlc3QaIC5jb25maWdzLnYxLkNyZWF0ZUNvbmZpZ1Jlc3BvbnNlElEKDFVwZGF0ZUNvbmZpZxIfLmNvbmZpZ3MudjEuVXBkYXRlQ29uZmlnUmVxdWVzdBogLmNvbmZpZ3MudjEuVXBkYXRlQ29uZmlnUmVzcG9uc2USUQoMRGVsZXRlQ29uZmlnEh8uY29uZmlncy52MS5EZWxldGVDb25maWdSZXF1ZXN0GiAuY29uZmlncy52MS5EZWxldGVDb25maWdSZXNwb25zZRJOCgtBcHBseUNvbmZpZxIeLmNvbmZpZ3MudjEuQXBwbHlDb25maWdSZXF1ZXN0Gh8uY29uZmlncy52MS5BcHBseUNvbmZpZ1Jlc3BvbnNlEmwKFVdyaXRlQ29uZmlnQ3JlZGVudGlhbBIoLmNvbmZpZ3MudjEuV3JpdGVDb25maWdDcmVkZW50aWFsUmVxdWVzdBopLmNvbmZpZ3MudjEuV3JpdGVDb25maWdDcmVkZW50aWFsUmVzcG9uc2USYAoRQXBwbHlDb25maWdCdW5kbGUSJC5jb25maWdzLnYxLkFwcGx5Q29uZmlnQnVuZGxlUmVxdWVzdBolLmNvbmZpZ3MudjEuQXBwbHlDb25maWdCdW5kbGVSZXNwb25zZRJsChVSZXNvbHZlQW5kQXBwbHlCdW5kbGUSKC5jb25maWdzLnYxLlJlc29sdmVBbmRBcHBseUJ1bmRsZVJlcXVlc3QaKS5jb25maWdzLnYxLlJlc29sdmVBbmRBcHBseUJ1bmRsZVJlc3BvbnNlQjtaOWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9jb25maWdzL3YxO2NvbmZpZ3N2MWIGcHJvdG8z", [file_google_protobuf_struct5, file_google_protobuf_timestamp6, file_common_v1_pagination, file_models_v1_models]);
|
|
1036
|
+
var file_configs_v1_configs = /* @__PURE__ */ fileDesc10("Chhjb25maWdzL3YxL2NvbmZpZ3MucHJvdG8SCmNvbmZpZ3MudjEivwcKBkNvbmZpZxIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSEwoLY29uZmlnX3R5cGUYAyABKAkSLgoJZGlyZWN0aW9uGAQgASgOMhsuY29uZmlncy52MS5Db25maWdEaXJlY3Rpb24SDAoEbmFtZRgFIAEoCRIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEh4KEWNvbm5lY3Rpb25fZG9tYWluGAogASgJSAGIAQESGgoNY29ubmVjdGlvbl9pZBgLIAEoCUgCiAEBEg8KB2VuYWJsZWQYFCABKAgSEwoLZW52aXJvbm1lbnQYFSABKAkSEwoLc3luY19zdGF0dXMYFiABKAkSMwoNc3luY19tZXRhZGF0YRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIxCgtjcmVkZW50aWFscxgeIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIrCgVvYXV0aBgfIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIuCghmZWF0dXJlcxggIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIuCgh3ZWJob29rcxghIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIsCgZjb25maWcYIiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAiIAQESKwoFaG9va3MYIyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAmIAQESEQoJdGVuYW50X2lkGCggASgJEhIKCnByb2plY3RfaWQYKSABKAkSFwoKY3JlYXRlZF9ieRgtIAEoCUgKiAEBEhcKCnVwZGF0ZWRfYnkYLiABKAlIC4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CFAoSX2Nvbm5lY3Rpb25fZG9tYWluQhAKDl9jb25uZWN0aW9uX2lkQhAKDl9zeW5jX21ldGFkYXRhQg4KDF9jcmVkZW50aWFsc0IICgZfb2F1dGhCCwoJX2ZlYXR1cmVzQgsKCV93ZWJob29rc0IJCgdfY29uZmlnQggKBl9ob29rc0INCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSIeChBHZXRDb25maWdSZXF1ZXN0EgoKAmlkGAEgASgJIjcKEUdldENvbmZpZ1Jlc3BvbnNlEiIKBmNvbmZpZxgBIAEoCzISLmNvbmZpZ3MudjEuQ29uZmlnIiQKFUdldENvbmZpZ0J5S2V5UmVxdWVzdBILCgNrZXkYASABKAkiPAoWR2V0Q29uZmlnQnlLZXlSZXNwb25zZRIiCgZjb25maWcYASABKAsyEi5jb25maWdzLnYxLkNvbmZpZyLkAQoSTGlzdENvbmZpZ3NSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAYQB0oECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldCKVAQoTTGlzdENvbmZpZ3NSZXNwb25zZRIjCgdjb25maWdzGAEgAygLMhIuY29uZmlncy52MS5Db25maWcSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIuwBChJDb25maWdIaXN0b3J5RW50cnkSCgoCaWQYASABKAkSFgoJY29uZmlnX2lkGAIgASgJSACIAQESEgoKY29uZmlnX2tleRgDIAEoCRItCglwdXNoZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhEKCXB1c2hlZF9ieRgFIAEoCRIOCgZzb3VyY2UYBiABKAkSCgoCb2sYByABKAgSFgoOcmVzdWx0X3N1bW1hcnkYCCABKAkSGgoSZGlmZl9mcm9tX3ByZXZpb3VzGAkgASgJQgwKCl9jb25maWdfaWQiaQoYTGlzdENvbmZpZ0hpc3RvcnlSZXF1ZXN0EhEKCWNvbmZpZ19pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhIKBWZpcnN0GAMgASgFSAGIAQFCCAoGX2FmdGVyQggKBl9maXJzdCKHAQoZTGlzdENvbmZpZ0hpc3RvcnlSZXNwb25zZRIvCgdlbnRyaWVzGAEgAygLMh4uY29uZmlncy52MS5Db25maWdIaXN0b3J5RW50cnkSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQFCDAoKX3BhZ2VfaW5mbyL6AQoTQ3JlYXRlQ29uZmlnUmVxdWVzdBILCgNrZXkYASABKAkSEwoLY29uZmlnX3R5cGUYAiABKAkSLgoJZGlyZWN0aW9uGAMgASgOMhsuY29uZmlncy52MS5Db25maWdEaXJlY3Rpb24SDAoEbmFtZRgEIAEoCRIYCgtkZXNjcmlwdGlvbhgFIAEoCUgAiAEBEiwKBmNvbmZpZxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIUCgdlbmFibGVkGAcgASgISAKIAQFCDgoMX2Rlc2NyaXB0aW9uQgkKB19jb25maWdCCgoIX2VuYWJsZWQiOgoUQ3JlYXRlQ29uZmlnUmVzcG9uc2USIgoGY29uZmlnGAEgASgLMhIuY29uZmlncy52MS5Db25maWcitgIKE1VwZGF0ZUNvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESLAoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEhQKB2VuYWJsZWQYBSABKAhIA4gBARIuCgh3ZWJob29rcxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIrCgVob29rcxgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCQoHX2NvbmZpZ0IKCghfZW5hYmxlZEILCglfd2ViaG9va3NCCAoGX2hvb2tzIjoKFFVwZGF0ZUNvbmZpZ1Jlc3BvbnNlEiIKBmNvbmZpZxgBIAEoCzISLmNvbmZpZ3MudjEuQ29uZmlnIiEKE0RlbGV0ZUNvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlQ29uZmlnUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJWChJBcHBseUNvbmZpZ1JlcXVlc3QSEgoKY29uZmlnX2tleRgBIAEoCRIsCgtjb25maWdfZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QitgEKE0FwcGx5Q29uZmlnUmVzcG9uc2USIgoGY29uZmlnGAEgASgLMhIuY29uZmlncy52MS5Db25maWcSLwoHc3VtbWFyeRgCIAEoCzIeLmNvbmZpZ3MudjEuQXBwbHlDb25maWdTdW1tYXJ5EhsKDndlYmhvb2tfc2VjcmV0GAQgASgJSACIAQFCEQoPX3dlYmhvb2tfc2VjcmV0SgQIAxAEUhRwcm92aXNpb25lZF9hcGlfa2V5cyKvAwoSQXBwbHlDb25maWdTdW1tYXJ5EhYKDm1vZGVsc19jcmVhdGVkGAEgASgFEhYKDm1vZGVsc191cGRhdGVkGAIgASgFEhoKEm9wZXJhdGlvbnNfY3JlYXRlZBgDIAEoBRIaChJvcGVyYXRpb25zX3VwZGF0ZWQYBCABKAUSFQoNaG9va3NfY3JlYXRlZBgFIAEoBRIVCg1ob29rc191cGRhdGVkGAYgASgFEhgKEHNlZ21lbnRzX2NyZWF0ZWQYByABKAUSGAoQc2VnbWVudHNfdXBkYXRlZBgIIAEoBRIZChFzY2hlZHVsZXNfY3JlYXRlZBgJIAEoBRIZChFzY2hlZHVsZXNfdXBkYXRlZBgKIAEoBRIeChZhdXRoX3Byb3ZpZGVyc19jcmVhdGVkGAsgASgFEh4KFmF1dGhfcHJvdmlkZXJzX3VwZGF0ZWQYDCABKAUSGQoRcmVzb3VyY2VzX2RlbGV0ZWQYDSABKAUSHgoWY3VzdG9tZXJfcm9sZXNfY3JlYXRlZBgOIAEoBRIeChZjdXN0b21lcl9yb2xlc191cGRhdGVkGA8gASgFIkEKHFdyaXRlQ29uZmlnQ3JlZGVudGlhbFJlcXVlc3QSEgoKY29uZmlnX2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDCJvCh1Xcml0ZUNvbmZpZ0NyZWRlbnRpYWxSZXNwb25zZRIZChFlbmNyeXB0aW9uX2tleV9pZBgBIAEoCRIzCg9sYXN0X3dyaXR0ZW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIqECCg1CdW5kbGVNb2RlbE9wEiYKBGtpbmQYASABKA4yGC5jb25maWdzLnYxLkJ1bmRsZU9wS2luZBIKCgJpZBgCIAEoCRILCgNrZXkYAyABKAkSDAoEbmFtZRgEIAEoCRIgCgZmaWVsZHMYBSADKAsyEC5tb2RlbHMudjEuRmllbGQSKwoGY29uZmlnGAYgASgLMhYubW9kZWxzLnYxLk1vZGVsQ29uZmlnSACIAQESIAoTZXhwZWN0ZWRfdmVyc2lvbl9pZBgHIAEoCUgBiAEBEg8KB3B1Ymxpc2gYCCABKAgSHAoUYWxsb3dfbG9va3VwX3JlYnVpbGQYCSABKAhCCQoHX2NvbmZpZ0IWChRfZXhwZWN0ZWRfdmVyc2lvbl9pZCKOAQoUQnVuZGxlQ3VzdG9tZXJSb2xlT3ASJgoEa2luZBgBIAEoDjIYLmNvbmZpZ3MudjEuQnVuZGxlT3BLaW5kEgoKAmlkGAIgASgJEgsKA2tleRgDIAEoCRIMCgRuYW1lGAQgASgJEhMKC3Blcm1pc3Npb25zGAUgAygJEhIKCmlzX2RlZmF1bHQYBiABKAgiqwIKFEJ1bmRsZUF1dGhQcm92aWRlck9wEiYKBGtpbmQYASABKA4yGC5jb25maWdzLnYxLkJ1bmRsZU9wS2luZBIKCgJpZBgCIAEoCRILCgNrZXkYAyABKAkSDAoEbmFtZRgEIAEoCRIMCgR0eXBlGAUgASgJEiwKBmNvbmZpZxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIUCgdlbmFibGVkGAcgASgISAGIAQESFwoKaXNfZGVmYXVsdBgIIAEoCEgCiAEBEhUKCHByaW9yaXR5GAkgASgFSAOIAQESDwoHcHVibGlzaBgKIAEoCEIJCgdfY29uZmlnQgoKCF9lbmFibGVkQg0KC19pc19kZWZhdWx0QgsKCV9wcmlvcml0eSKrAQoKQnVuZGxlUGxhbhIpCgZtb2RlbHMYASADKAsyGS5jb25maWdzLnYxLkJ1bmRsZU1vZGVsT3ASOAoOY3VzdG9tZXJfcm9sZXMYAiADKAsyIC5jb25maWdzLnYxLkJ1bmRsZUN1c3RvbWVyUm9sZU9wEjgKDmF1dGhfcHJvdmlkZXJzGAMgAygLMiAuY29uZmlncy52MS5CdW5kbGVBdXRoUHJvdmlkZXJPcCKKAQoNQnVuZGxlT3B0aW9ucxINCgVmb3JjZRgBIAEoCBIdChVwdWJsaXNoX2Rlc2lnbl90b2tlbnMYAiABKAgSHAoUYWxsb3dfbG9va3VwX3JlYnVpbGQYAyABKAgSDwoHcHVibGlzaBgEIAEoCBISCgVwcnVuZRgFIAEoCEgAiAEBQggKBl9wcnVuZSKuAQoYQXBwbHlDb25maWdCdW5kbGVSZXF1ZXN0EhIKCmNvbmZpZ19rZXkYASABKAkSLAoLY29uZmlnX2RhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiQKBHBsYW4YAyABKAsyFi5jb25maWdzLnYxLkJ1bmRsZVBsYW4SKgoHb3B0aW9ucxgEIAEoCzIZLmNvbmZpZ3MudjEuQnVuZGxlT3B0aW9ucyLiAQoZQXBwbHlDb25maWdCdW5kbGVSZXNwb25zZRIiCgZjb25maWcYASABKAsyEi5jb25maWdzLnYxLkNvbmZpZxIbCg53ZWJob29rX3NlY3JldBgCIAEoCUgAiAEBEi8KB3N1bW1hcnkYAyABKAsyHi5jb25maWdzLnYxLkFwcGx5Q29uZmlnU3VtbWFyeRIbChNwdWJsaXNoZWRfbW9kZWxfaWRzGAQgAygJEiMKG3B1Ymxpc2hlZF9hdXRoX3Byb3ZpZGVyX2lkcxgFIAMoCUIRCg9fd2ViaG9va19zZWNyZXQiigEKEEJ1bmRsZUZhbWlseURpZmYSMAoGZmFtaWx5GAEgASgOMiAuY29uZmlncy52MS5CdW5kbGVSZXNvdXJjZUZhbWlseRIPCgdjcmVhdGVkGAIgASgFEg8KB3VwZGF0ZWQYAyABKAUSDwoHZGVsZXRlZBgEIAEoBRIRCgl1bmNoYW5nZWQYBSABKAUinQEKHFJlc29sdmVBbmRBcHBseUJ1bmRsZVJlcXVlc3QSEgoKY29uZmlnX2tleRgBIAEoCRIsCgtjb25maWdfZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKgoHb3B0aW9ucxgDIAEoCzIZLmNvbmZpZ3MudjEuQnVuZGxlT3B0aW9ucxIPCgdkcnlfcnVuGAQgASgIIrkBCh1SZXNvbHZlQW5kQXBwbHlCdW5kbGVSZXNwb25zZRI1CgZyZXN1bHQYASABKAsyJS5jb25maWdzLnYxLkFwcGx5Q29uZmlnQnVuZGxlUmVzcG9uc2USJAoEcGxhbhgCIAEoCzIWLmNvbmZpZ3MudjEuQnVuZGxlUGxhbhIqCgRkaWZmGAMgAygLMhwuY29uZmlncy52MS5CdW5kbGVGYW1pbHlEaWZmEg8KB2RyeV9ydW4YBCABKAgqjgEKD0NvbmZpZ0RpcmVjdGlvbhIgChxDT05GSUdfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASGQoVQ09ORklHX0RJUkVDVElPTl9SRUFEEAESGgoWQ09ORklHX0RJUkVDVElPTl9XUklURRACEiIKHkNPTkZJR19ESVJFQ1RJT05fQklESVJFQ1RJT05BTBADKn8KDEJ1bmRsZU9wS2luZBIeChpCVU5ETEVfT1BfS0lORF9VTlNQRUNJRklFRBAAEhkKFUJVTkRMRV9PUF9LSU5EX0NSRUFURRABEhkKFUJVTkRMRV9PUF9LSU5EX1VQREFURRACEhkKFUJVTkRMRV9PUF9LSU5EX0RFTEVURRADKr8FChRCdW5kbGVSZXNvdXJjZUZhbWlseRImCiJCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX1VOU1BFQ0lGSUVEEAASIQodQlVORExFX1JFU09VUkNFX0ZBTUlMWV9NT0RFTFMQARIlCiFCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX09QRVJBVElPTlMQAhIgChxCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX0hPT0tTEAMSLQopQlVORExFX1JFU09VUkNFX0ZBTUlMWV9DT05URVhUX0RJTUVOU0lPTlMQBBIpCiVCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX0NST05fU0NIRURVTEVTEAUSKQolQlVORExFX1JFU09VUkNFX0ZBTUlMWV9BVVRIX1BST1ZJREVSUxAGEioKJkJVTkRMRV9SRVNPVVJDRV9GQU1JTFlfUkVMWUlOR19QQVJUSUVTEAcSKQolQlVORExFX1JFU09VUkNFX0ZBTUlMWV9DVVNUT01fRE9NQUlOUxAIEikKJUJVTkRMRV9SRVNPVVJDRV9GQU1JTFlfQ1VTVE9NRVJfUk9MRVMQCRIlCiFCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX1BMQUNFTUVOVFMQChIoCiRCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX0RFU0lHTl9UT0tFTlMQCxIjCh9CVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX0FQSV9LRVlTEAwSHwobQlVORExFX1JFU09VUkNFX0ZBTUlMWV9BUFBTEA0SIgoeQlVORExFX1JFU09VUkNFX0ZBTUlMWV9MT0NBTEVTEA4SKgomQlVORExFX1JFU09VUkNFX0ZBTUlMWV9WQVJJQU5UX0NBVEFMT0cQDxIlCiFCVU5ETEVfUkVTT1VSQ0VfRkFNSUxZX0VNQUlMX0NPUFkQEDLsBwoOQ29uZmlnc1NlcnZpY2USSAoJR2V0Q29uZmlnEhwuY29uZmlncy52MS5HZXRDb25maWdSZXF1ZXN0Gh0uY29uZmlncy52MS5HZXRDb25maWdSZXNwb25zZRJXCg5HZXRDb25maWdCeUtleRIhLmNvbmZpZ3MudjEuR2V0Q29uZmlnQnlLZXlSZXF1ZXN0GiIuY29uZmlncy52MS5HZXRDb25maWdCeUtleVJlc3BvbnNlEk4KC0xpc3RDb25maWdzEh4uY29uZmlncy52MS5MaXN0Q29uZmlnc1JlcXVlc3QaHy5jb25maWdzLnYxLkxpc3RDb25maWdzUmVzcG9uc2USYAoRTGlzdENvbmZpZ0hpc3RvcnkSJC5jb25maWdzLnYxLkxpc3RDb25maWdIaXN0b3J5UmVxdWVzdBolLmNvbmZpZ3MudjEuTGlzdENvbmZpZ0hpc3RvcnlSZXNwb25zZRJRCgxDcmVhdGVDb25maWcSHy5jb25maWdzLnYxLkNyZWF0ZUNvbmZpZ1JlcXVlc3QaIC5jb25maWdzLnYxLkNyZWF0ZUNvbmZpZ1Jlc3BvbnNlElEKDFVwZGF0ZUNvbmZpZxIfLmNvbmZpZ3MudjEuVXBkYXRlQ29uZmlnUmVxdWVzdBogLmNvbmZpZ3MudjEuVXBkYXRlQ29uZmlnUmVzcG9uc2USUQoMRGVsZXRlQ29uZmlnEh8uY29uZmlncy52MS5EZWxldGVDb25maWdSZXF1ZXN0GiAuY29uZmlncy52MS5EZWxldGVDb25maWdSZXNwb25zZRJOCgtBcHBseUNvbmZpZxIeLmNvbmZpZ3MudjEuQXBwbHlDb25maWdSZXF1ZXN0Gh8uY29uZmlncy52MS5BcHBseUNvbmZpZ1Jlc3BvbnNlEmwKFVdyaXRlQ29uZmlnQ3JlZGVudGlhbBIoLmNvbmZpZ3MudjEuV3JpdGVDb25maWdDcmVkZW50aWFsUmVxdWVzdBopLmNvbmZpZ3MudjEuV3JpdGVDb25maWdDcmVkZW50aWFsUmVzcG9uc2USYAoRQXBwbHlDb25maWdCdW5kbGUSJC5jb25maWdzLnYxLkFwcGx5Q29uZmlnQnVuZGxlUmVxdWVzdBolLmNvbmZpZ3MudjEuQXBwbHlDb25maWdCdW5kbGVSZXNwb25zZRJsChVSZXNvbHZlQW5kQXBwbHlCdW5kbGUSKC5jb25maWdzLnYxLlJlc29sdmVBbmRBcHBseUJ1bmRsZVJlcXVlc3QaKS5jb25maWdzLnYxLlJlc29sdmVBbmRBcHBseUJ1bmRsZVJlc3BvbnNlQjtaOWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9jb25maWdzL3YxO2NvbmZpZ3N2MWIGcHJvdG8z", [file_google_protobuf_struct5, file_google_protobuf_timestamp6, file_common_v1_pagination, file_models_v1_models]);
|
|
1015
1037
|
var ConfigSchema = /* @__PURE__ */ messageDesc10(file_configs_v1_configs, 0);
|
|
1016
1038
|
var GetConfigRequestSchema = /* @__PURE__ */ messageDesc10(file_configs_v1_configs, 1);
|
|
1017
1039
|
var GetConfigByKeyRequestSchema = /* @__PURE__ */ messageDesc10(file_configs_v1_configs, 3);
|
|
@@ -1040,69 +1062,75 @@ var ConfigsService = /* @__PURE__ */ serviceDesc6(file_configs_v1_configs, 0);
|
|
|
1040
1062
|
// ../../packages/proto-ts/src/settings/v1/settings_pb.js
|
|
1041
1063
|
import { enumDesc as enumDesc8, fileDesc as fileDesc11, messageDesc as messageDesc11, serviceDesc as serviceDesc7, tsEnum as tsEnum8 } from "@bufbuild/protobuf/codegenv2";
|
|
1042
1064
|
import { file_google_protobuf_struct as file_google_protobuf_struct6, file_google_protobuf_timestamp as file_google_protobuf_timestamp7 } from "@bufbuild/protobuf/wkt";
|
|
1043
|
-
var file_settings_v1_settings = /* @__PURE__ */ fileDesc11("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiqwQKCEF1ZGl0TG9nEgoKAmlkGAEgASgJEi0KCXRpbWVzdGFtcBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFAoHdXNlcl9pZBgDIAEoCUgAiAEBEhYKCXRlbmFudF9pZBgEIAEoCUgBiAEBEhcKCnByb2plY3RfaWQYBSABKAlIAogBARIOCgZhY3Rpb24YBiABKAkSFQoNcmVzb3VyY2VfdHlwZRgHIAEoCRIYCgtyZXNvdXJjZV9pZBgIIAEoCUgDiAEBEiwKBmJlZm9yZRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIrCgVhZnRlchgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIXCgppcF9hZGRyZXNzGAwgASgJSAeIAQESFwoKdXNlcl9hZ2VudBgNIAEoCUgIiAEBEhcKCnJlcXVlc3RfaWQYDiABKAlICYgBAUIKCghfdXNlcl9pZEIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQg4KDF9yZXNvdXJjZV9pZEIJCgdfYmVmb3JlQggKBl9hZnRlckILCglfbWV0YWRhdGFCDQoLX2lwX2FkZHJlc3NCDQoLX3VzZXJfYWdlbnRCDQoLX3JlcXVlc3RfaWQiwwYKBE5vdGUSCgoCaWQYASABKAkSEwoLZW50aXR5X3R5cGUYAiABKAkSEQoJZW50aXR5X2lkGAMgASgJEh8KEmVudGl0eV9uYXR1cmFsX2tleRgEIAEoCUgAiAEBEhcKCnZlcnNpb25faWQYBSABKAlIAYgBARIoCgdjb250ZW50GAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIfChJjb250ZW50X3BsYWluX3RleHQYByABKAlIAogBARIbCg5wYXJlbnRfbm90ZV9pZBgKIAEoCUgDiAEBEhsKDnRocmVhZF9yb290X2lkGAsgASgJSASIAQESEwoLaXNfcmVzb2x2ZWQYDyABKAgSNAoLcmVzb2x2ZWRfYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESGAoLcmVzb2x2ZWRfYnkYESABKAlIBogBARIcCg9yZXNvbHV0aW9uX25vdGUYEiABKAlIB4gBARIuCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICIgBARIRCgl0ZW5hbnRfaWQYHiABKAkSFwoKcHJvamVjdF9pZBgfIAEoCUgJiAEBEhIKCnZpc2liaWxpdHkYICABKAkSEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxzdWJqZWN0X3R5cGUYPCABKAkSEgoKc3ViamVjdF9pZBg9IAEoCRIeChFzdWJqZWN0X21vZGVsX2tleRg+IAEoCUgKiAEBQhUKE19lbnRpdHlfbmF0dXJhbF9rZXlCDQoLX3ZlcnNpb25faWRCFQoTX2NvbnRlbnRfcGxhaW5fdGV4dEIRCg9fcGFyZW50X25vdGVfaWRCEQoPX3RocmVhZF9yb290X2lkQg4KDF9yZXNvbHZlZF9hdEIOCgxfcmVzb2x2ZWRfYnlCEgoQX3Jlc29sdXRpb25fbm90ZUILCglfbWV0YWRhdGFCDQoLX3Byb2plY3RfaWRCFAoSX3N1YmplY3RfbW9kZWxfa2V5IvwBChRMaXN0QXVkaXRMb2dzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgGEAdKBAgHEAhKBAgIEAlKBAgJEApKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXRSAnRvIpcBChVMaXN0QXVkaXRMb2dzUmVzcG9uc2USIwoEbG9ncxgBIAMoCzIVLnNldHRpbmdzLnYxLkF1ZGl0TG9nEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyL1AQoRQ3JlYXRlTm90ZVJlcXVlc3QSEwoLZW50aXR5X3R5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEigKB2NvbnRlbnQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhsKDnBhcmVudF9ub3RlX2lkGAQgASgJSACIAQESFAoMc3ViamVjdF90eXBlGAUgASgJEhIKCnN1YmplY3RfaWQYBiABKAkSHgoRc3ViamVjdF9tb2RlbF9rZXkYByABKAlIAYgBAUIRCg9fcGFyZW50X25vdGVfaWRCFAoSX3N1YmplY3RfbW9kZWxfa2V5IjUKEkNyZWF0ZU5vdGVSZXNwb25zZRIfCgRub3RlGAEgASgLMhEuc2V0dGluZ3MudjEuTm90ZSIcCg5HZXROb3RlUmVxdWVzdBIKCgJpZBgBIAEoCSIyCg9HZXROb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUigwIKEExpc3ROb3Rlc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYBCABKAlIAYgBARITCgZiZWZvcmUYBSABKAlIAogBARISCgVmaXJzdBgGIAEoBUgDiAEBEhEKBGxhc3QYByABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIAhADSgQIAxAESgQIChALSgQICxAMUgllbnRpdHlfaWRSBWxpbWl0UgZvZmZzZXRSDnBhcmVudF9ub3RlX2lkIpABChFMaXN0Tm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIrYBChFVcGRhdGVOb3RlUmVxdWVzdBIKCgJpZBgBIAEoCRItCgdjb250ZW50GAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhgKC2lzX3Jlc29sdmVkGAMgASgISAGIAQESHAoPcmVzb2x1dGlvbl9ub3RlGAQgASgJSAKIAQFCCgoIX2NvbnRlbnRCDgoMX2lzX3Jlc29sdmVkQhIKEF9yZXNvbHV0aW9uX25vdGUiNQoSVXBkYXRlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIh8KEURlbGV0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIiUKEkRlbGV0ZU5vdGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqwFCgtOb3RlTWVudGlvbhIKCgJpZBgBIAEoCRIPCgdub3RlX2lkGAIgASgJEhkKEW1lbnRpb25lZF91c2VyX2lkGAMgASgJEg4KBnN0YXR1cxgEIAEoCRIwCgdzZWVuX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjgKD2Fja25vd2xlZGdlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI1Cgxjb21wbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGwoOY29tcGxldGVkX25vdGUYCCABKAlIA4gBARI1CgxkaXNtaXNzZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoOZGlzbWlzc19yZWFzb24YCiABKAlIBYgBARIxCghkdWVfZGF0ZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9zZWVuX2F0QhIKEF9hY2tub3dsZWRnZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIRCg9fY29tcGxldGVkX25vdGVCDwoNX2Rpc21pc3NlZF9hdEIRCg9fZGlzbWlzc19yZWFzb25CCwoJX2R1ZV9kYXRlQg0KC19wcm9qZWN0X2lkIuQCChJNZW50aW9uV2l0aENvbnRleHQSKQoHbWVudGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLk5vdGVNZW50aW9uEh8KBG5vdGUYAiABKAsyES5zZXR0aW5ncy52MS5Ob3RlEhgKC2F1dGhvcl9uYW1lGAMgASgJSACIAQESGAoLZW50aXR5X3R5cGUYBCABKAlIAYgBARIWCgllbnRpdHlfaWQYBSABKAlIAogBARIZCgxzdWJqZWN0X3R5cGUYBiABKAlIA4gBARIXCgpzdWJqZWN0X2lkGAcgASgJSASIAQESHgoRc3ViamVjdF9tb2RlbF9rZXkYCCABKAlIBYgBAUIOCgxfYXV0aG9yX25hbWVCDgoMX2VudGl0eV90eXBlQgwKCl9lbnRpdHlfaWRCDwoNX3N1YmplY3RfdHlwZUINCgtfc3ViamVjdF9pZEIUChJfc3ViamVjdF9tb2RlbF9rZXkiTwoNTWVudGlvbkNvdW50cxIPCgdwZW5kaW5nGAEgASgFEhAKCHBhc3RfZHVlGAIgASgFEhsKE2NvbXBsZXRlZF90aGlzX3dlZWsYAyABKAUi5wEKFUxpc3RNeU1lbnRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgGEAdKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXQizwEKFkxpc3RNeU1lbnRpb25zUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5NZW50aW9uV2l0aENvbnRleHQSDQoFdG90YWwYAiABKAUSKgoGY291bnRzGAMgASgLMhouc2V0dGluZ3MudjEuTWVudGlvbkNvdW50cxIrCglwYWdlX2luZm8YBCABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAUgAygJQgwKCl9wYWdlX2luZm8ioAEKGlVwZGF0ZU1lbnRpb25TdGF0dXNSZXF1ZXN0EhIKCm1lbnRpb25faWQYASABKAkSDgoGc3RhdHVzGAIgASgJEhsKDmNvbXBsZXRlZF9ub3RlGAMgASgJSACIAQESGwoOZGlzbWlzc19yZWFzb24YBCABKAlIAYgBAUIRCg9fY29tcGxldGVkX25vdGVCEQoPX2Rpc21pc3NfcmVhc29uIkgKG1VwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRIpCgdtZW50aW9uGAEgASgLMhguc2V0dGluZ3MudjEuTm90ZU1lbnRpb24ivwMKBkxvY2FsZRIKCgJpZBgBIAEoCRIOCgZsb2NhbGUYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEhgKC25hdGl2ZV9uYW1lGAQgASgJSACIAQESEgoKaXNfZGVmYXVsdBgFIAEoCBIRCglpc19hY3RpdmUYBiABKAgSDgoGaXNfcnRsGAcgASgIEhwKD2ZhbGxiYWNrX2xvY2FsZRgIIAEoCUgBiAEBEhkKEWZhbGxiYWNrX3ByaW9yaXR5GAkgASgFEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIAogBARIXCgp1cGRhdGVkX2J5GB8gASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX25hdGl2ZV9uYW1lQhIKEF9mYWxsYmFja19sb2NhbGVCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnki3gEKEkxpc3RMb2NhbGVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXQilgEKE0xpc3RMb2NhbGVzUmVzcG9uc2USJAoHbG9jYWxlcxgBIAMoCzITLnNldHRpbmdzLnYxLkxvY2FsZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iHgoQR2V0TG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChFHZXRMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUi3wEKE0NyZWF0ZUxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtuYXRpdmVfbmFtZRgDIAEoCUgAiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAYgBARITCgZpc19ydGwYBSABKAhIAogBARIcCg9mYWxsYmFja19sb2NhbGUYBiABKAlIA4gBAUIOCgxfbmF0aXZlX25hbWVCDQoLX2lzX2RlZmF1bHRCCQoHX2lzX3J0bEISChBfZmFsbGJhY2tfbG9jYWxlIjsKFENyZWF0ZUxvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSKXAgoTVXBkYXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxkaXNwbGF5X25hbWUYAiABKAlIAIgBARIYCgtuYXRpdmVfbmFtZRgDIAEoCUgBiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAogBARIWCglpc19hY3RpdmUYBSABKAhIA4gBARITCgZpc19ydGwYBiABKAhIBIgBARIcCg9mYWxsYmFja19sb2NhbGUYByABKAlIBYgBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9uYXRpdmVfbmFtZUINCgtfaXNfZGVmYXVsdEIMCgpfaXNfYWN0aXZlQgkKB19pc19ydGxCEgoQX2ZhbGxiYWNrX2xvY2FsZSI7ChRVcGRhdGVMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiIQoTRGVsZXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVMb2NhbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIq4EChROb3RpZmljYXRpb25DYXRlZ29yeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEQoJaXNfYWN0aXZlGAUgASgIEjAKDGVtYWlsX3BvbGljeRgJIAEoDjIaLnNldHRpbmdzLnYxLkNoYW5uZWxQb2xpY3kSLwoLcHVzaF9wb2xpY3kYCiABKA4yGi5zZXR0aW5ncy52MS5DaGFubmVsUG9saWN5EjEKDWluX2FwcF9wb2xpY3kYCyABKA4yGi5zZXR0aW5ncy52MS5DaGFubmVsUG9saWN5EhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIAYgBARIXCgp1cGRhdGVkX2J5GB8gASgJSAKIAQESLgoKY3JlYXRlZF9hdBgoIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5SgQIBhAHSgQIBxAISgQICBAJUg1kZWZhdWx0X2VtYWlsUgxkZWZhdWx0X3B1c2hSDmRlZmF1bHRfaW5fYXBwItIBCiFMaXN0Tm90aWZpY2F0aW9uQ2F0ZWdvcmllc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IrYBCiJMaXN0Tm90aWZpY2F0aW9uQ2F0ZWdvcmllc1Jlc3BvbnNlEjUKCmNhdGVnb3JpZXMYASADKAsyIS5zZXR0aW5ncy52MS5Ob3RpZmljYXRpb25DYXRlZ29yeRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iLAoeR2V0Tm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXF1ZXN0EgoKAmlkGAEgASgJIlYKH0dldE5vdGlmaWNhdGlvbkNhdGVnb3J5UmVzcG9uc2USMwoIY2F0ZWdvcnkYASABKAsyIS5zZXR0aW5ncy52MS5Ob3RpZmljYXRpb25DYXRlZ29yeSKHAwohQ3JlYXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXF1ZXN0EgsKA2tleRgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARI1CgxlbWFpbF9wb2xpY3kYByABKA4yGi5zZXR0aW5ncy52MS5DaGFubmVsUG9saWN5SAGIAQESNAoLcHVzaF9wb2xpY3kYCCABKA4yGi5zZXR0aW5ncy52MS5DaGFubmVsUG9saWN5SAKIAQESNgoNaW5fYXBwX3BvbGljeRgJIAEoDjIaLnNldHRpbmdzLnYxLkNoYW5uZWxQb2xpY3lIA4gBAUIOCgxfZGVzY3JpcHRpb25CDwoNX2VtYWlsX3BvbGljeUIOCgxfcHVzaF9wb2xpY3lCEAoOX2luX2FwcF9wb2xpY3lKBAgEEAVKBAgFEAZKBAgGEAdSDWRlZmF1bHRfZW1haWxSDGRlZmF1bHRfcHVzaFIOZGVmYXVsdF9pbl9hcHAiWQoiQ3JlYXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXNwb25zZRIzCghjYXRlZ29yeRgBIAEoCzIhLnNldHRpbmdzLnYxLk5vdGlmaWNhdGlvbkNhdGVnb3J5IsIDCiFVcGRhdGVOb3RpZmljYXRpb25DYXRlZ29yeVJlcXVlc3QSCgoCaWQYASABKAkSGQoMZGlzcGxheV9uYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIWCglpc19hY3RpdmUYBCABKAhIAogBARI1CgxlbWFpbF9wb2xpY3kYCCABKA4yGi5zZXR0aW5ncy52MS5DaGFubmVsUG9saWN5SAOIAQESNAoLcHVzaF9wb2xpY3kYCSABKA4yGi5zZXR0aW5ncy52MS5DaGFubmVsUG9saWN5SASIAQESNgoNaW5fYXBwX3BvbGljeRgKIAEoDjIaLnNldHRpbmdzLnYxLkNoYW5uZWxQb2xpY3lIBYgBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfaXNfYWN0aXZlQg8KDV9lbWFpbF9wb2xpY3lCDgoMX3B1c2hfcG9saWN5QhAKDl9pbl9hcHBfcG9saWN5SgQIBRAGSgQIBhAHSgQIBxAIUg1kZWZhdWx0X2VtYWlsUgxkZWZhdWx0X3B1c2hSDmRlZmF1bHRfaW5fYXBwIlkKIlVwZGF0ZU5vdGlmaWNhdGlvbkNhdGVnb3J5UmVzcG9uc2USMwoIY2F0ZWdvcnkYASABKAsyIS5zZXR0aW5ncy52MS5Ob3RpZmljYXRpb25DYXRlZ29yeSIvCiFEZWxldGVOb3RpZmljYXRpb25DYXRlZ29yeVJlcXVlc3QSCgoCaWQYASABKAkiNQoiRGVsZXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkEKD0xvY2FsZUNoYWluUnVuZxIOCgZsb2NhbGUYASABKAkSDgoGcmVhc29uGAIgASgJEg4KBnNlcnZlZBgDIAEoCCJNCgtMb2NhbGVDaGFpbhIRCglyZXF1ZXN0ZWQYASABKAkSKwoFcnVuZ3MYAiADKAsyHC5zZXR0aW5ncy52MS5Mb2NhbGVDaGFpblJ1bmcihQEKC0xvY2FsZURyYWZ0Eg4KBmxvY2FsZRgBIAEoCRIcCg9mYWxsYmFja19sb2NhbGUYAiABKAlIAIgBARISCgppc19kZWZhdWx0GAMgASgIEhEKCWlzX2FjdGl2ZRgEIAEoCEISChBfZmFsbGJhY2tfbG9jYWxlSgQIBRAGUgdkZWxldGVkIlMKFkdldExvY2FsZUNoYWluc1JlcXVlc3QSDwoHbG9jYWxlcxgBIAMoCRIoCgZkcmFmdHMYAiADKAsyGC5zZXR0aW5ncy52MS5Mb2NhbGVEcmFmdCJbChdHZXRMb2NhbGVDaGFpbnNSZXNwb25zZRIoCgZjaGFpbnMYASADKAsyGC5zZXR0aW5ncy52MS5Mb2NhbGVDaGFpbhIWCg5kZWZhdWx0X2xvY2FsZRgCIAEoCSKUAQoOTmF2UHJlZmVyZW5jZXMSGQoRZmF2b3JpdGVfcHJvamVjdHMYASADKAkSGgoSZmF2b3JpdGVfbmF2X2l0ZW1zGAIgAygJEhoKEmNvbGxhcHNlZF9zZWN0aW9ucxgDIAMoCRIvCg5uYXZfaXRlbV9vcmRlchgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiGgoYR2V0TmF2UHJlZmVyZW5jZXNSZXF1ZXN0Ik0KGUdldE5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyL8AQobVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXF1ZXN0EjUKC3ByZWZlcmVuY2VzGAEgASgLMhsuc2V0dGluZ3MudjEuTmF2UHJlZmVyZW5jZXNIAIgBARIeChF0b2dnbGVfcHJvamVjdF9pZBgCIAEoCUgBiAEBEhwKD3RvZ2dsZV9uYXZfaXRlbRgDIAEoCUgCiAEBEhsKDnRvZ2dsZV9zZWN0aW9uGAQgASgJSAOIAQFCDgoMX3ByZWZlcmVuY2VzQhQKEl90b2dnbGVfcHJvamVjdF9pZEISChBfdG9nZ2xlX25hdl9pdGVtQhEKD190b2dnbGVfc2VjdGlvbiJQChxVcGRhdGVOYXZQcmVmZXJlbmNlc1Jlc3BvbnNlEjAKC3ByZWZlcmVuY2VzGAEgASgLMhsuc2V0dGluZ3MudjEuTmF2UHJlZmVyZW5jZXMiXgoSUmVjZW50bHlPcGVuZWRJdGVtEgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCRIRCgl0aW1lc3RhbXAYBSABKAMikwEKGUxpc3RSZWNlbnRseU9wZW5lZFJlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QimAEKGkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uc2V0dGluZ3MudjEuUmVjZW50bHlPcGVuZWRJdGVtEisKCXBhZ2VfaW5mbxgCIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYAyADKAlCDAoKX3BhZ2VfaW5mbyJTChpUcmFja1JlY2VudGx5T3BlbmVkUmVxdWVzdBIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJEg0KBWxhYmVsGAMgASgJEgwKBHBhdGgYBCABKAkiLgobVHJhY2tSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiNwobUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkiLwocUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhwKGkNsZWFyUmVjZW50bHlPcGVuZWRSZXF1ZXN0Ii4KG0NsZWFyUmVjZW50bHlPcGVuZWRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIskGChBDb250ZXh0RGltZW5zaW9uEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEwoLc291cmNlX3R5cGUYBSABKAkSGAoQc291cmNlX21vZGVsX2tleRgGIAEoCRIfChJkZWZhdWx0X3JlY29yZF9rZXkYByABKAlIAYgBARIRCglpc19zeXN0ZW0YCCABKAgSFwoPYnVpbHRfaW5fdmFsdWVzGAkgAygJEj0KEGV2YWx1YXRpb25fcnVsZXMYDiABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbkgCiAEBEhEKCWRhdGFfdHlwZRgKIAEoCRIQCghjYXRlZ29yeRgLIAEoCRITCgtpc19yZXF1aXJlZBgMIAEoCBISCgpzb3J0X29yZGVyGA0gASgFEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhYKCWNvbmZpZ19pZBgWIAEoCUgDiAEBEhcKCmNyZWF0ZWRfYnkYHiABKAlIBIgBARIXCgp1cGRhdGVkX2J5GB8gASgJSAWIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg9IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIB4gBAUIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleUITChFfZXZhbHVhdGlvbl9ydWxlc0IMCgpfY29uZmlnX2lkQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5QhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCIzChVDb250ZXh0RGltZW5zaW9uVmFsdWUSCwoDa2V5GAEgASgJEg0KBWxhYmVsGAIgASgJItEBChxMaXN0Q29udGV4dERpbWVuc2lvbnNSZXF1ZXN0EhMKBnNlYXJjaBgBIAEoCUgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCQoHX3NlYXJjaEIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXQirQEKHUxpc3RDb250ZXh0RGltZW5zaW9uc1Jlc3BvbnNlEjEKCmRpbWVuc2lvbnMYASADKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIoChpHZXRDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJPChtHZXRDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiLFAgodQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgEIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAUgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgGIAEoCUgBiAEBEj0KEGV2YWx1YXRpb25fcnVsZXMYByABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbkgCiAEBEhYKCWNvbmZpZ19pZBgIIAEoCUgDiAEBQg4KDF9kZXNjcmlwdGlvbkIVChNfZGVmYXVsdF9yZWNvcmRfa2V5QhMKEV9ldmFsdWF0aW9uX3J1bGVzQgwKCl9jb25maWdfaWQiUgoeQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24i0wIKHVVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEh0KEHNvdXJjZV9tb2RlbF9rZXkYBCABKAlIAogBARIfChJkZWZhdWx0X3JlY29yZF9rZXkYBSABKAlIA4gBARIUCgdwdWJsaXNoGAYgASgISASIAQESPQoQZXZhbHVhdGlvbl9ydWxlcxgHIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAWIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQhMKEV9zb3VyY2VfbW9kZWxfa2V5QhUKE19kZWZhdWx0X3JlY29yZF9rZXlCCgoIX3B1Ymxpc2hCEwoRX2V2YWx1YXRpb25fcnVsZXMiUgoeVXBkYXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iKwodRGVsZXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiMQoeRGVsZXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi7AEKIEdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXF1ZXN0EhUKDWRpbWVuc2lvbl9rZXkYASABKAkSEwoGc2VhcmNoGAIgASgJSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIJCgdfc2VhcmNoQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldCKyAQohR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1Jlc3BvbnNlEjIKBnZhbHVlcxgBIAMoCzIiLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WYWx1ZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ihwQKE1ZhcmlhbnRDYXRhbG9nRW50cnkSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARI8Cg90YXJnZXRpbmdfcnVsZXMYBSABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbkgBiAEBEhAKCHByaW9yaXR5GAYgASgFEhIKCmlzX2RlZmF1bHQYByABKAgSEQoJaXNfYWN0aXZlGAggASgIEhgKC2ZhbGxiYWNrX2lkGAogASgJSAKIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgDiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIBIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0IOCgxfZmFsbGJhY2tfaWRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlKBAgJEApSDWV4cGVyaW1lbnRfaWQi8wEKGUxpc3RWYXJpYW50Q2F0YWxvZ1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIAhADSgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0UgZzZWFyY2giqgEKGkxpc3RWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEjEKB2VudHJpZXMYASADKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIrCh1HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJRCh5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IqsCCiBDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFQoIcHJpb3JpdHkYBSABKAVIAogBARIXCgppc19kZWZhdWx0GAYgASgISAOIAQESFgoJaXNfYWN0aXZlGAcgASgISASIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSK4AgogVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGAQgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IAogBARIVCghwcmlvcml0eRgFIAEoBUgDiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0ILCglfcHJpb3JpdHlCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZSJUCiFVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Ii4KIERlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjQKIURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkMKGUdldFJlc29sdXRpb25TdGF0c1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhMKC3dpbmRvd19kYXlzGAIgASgFIjsKD1Jlc29sdXRpb25Db3VudBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRINCgVjb3VudBgDIAEoAyIwChNSZXNvbHV0aW9uWmVyb1NlcnZlEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJIoABChRSZXNvbHV0aW9uU2VydmVTdGF0cxIyCgxkaXN0cmlidXRpb24YASADKAsyHC5zZXR0aW5ncy52MS5SZXNvbHV0aW9uQ291bnQSNAoKemVyb19zZXJ2ZRgCIAMoCzIgLnNldHRpbmdzLnYxLlJlc29sdXRpb25aZXJvU2VydmUiXQoaUmVzb2x1dGlvbkNvbnRleHREaW1lbnNpb24SEQoJZGltZW5zaW9uGAEgASgJEiwKBnZhbHVlcxgCIAMoCzIcLnNldHRpbmdzLnYxLlJlc29sdXRpb25Db3VudCJkChZSZXNvbHV0aW9uQ29udGV4dFN0YXRzEjsKCmRpbWVuc2lvbnMYASADKAsyJy5zZXR0aW5ncy52MS5SZXNvbHV0aW9uQ29udGV4dERpbWVuc2lvbhINCgVub3RlcxgCIAMoCSJhChtSZXNvbHV0aW9uRmllbGRWYXJpYW50RmllbGQSEgoKZmllbGRfcGF0aBgBIAEoCRIuCgh2YXJpYW50cxgCIAMoCzIcLnNldHRpbmdzLnYxLlJlc29sdXRpb25Db3VudCJdChtSZXNvbHV0aW9uRmllbGRWYXJpYW50U3RhdHMSPgoMZGlzdHJpYnV0aW9uGAEgAygLMiguc2V0dGluZ3MudjEuUmVzb2x1dGlvbkZpZWxkVmFyaWFudEZpZWxkIqoCChRSZXNvbHV0aW9uVHJlbmRQb2ludBILCgNkYXkYASABKAkSDQoFdG90YWwYAiABKAMSTgoPcmVjb3JkX3ZhcmlhbnRzGAMgAygLMjUuc2V0dGluZ3MudjEuUmVzb2x1dGlvblRyZW5kUG9pbnQuUmVjb3JkVmFyaWFudHNFbnRyeRI/Cgdsb2NhbGVzGAQgAygLMi4uc2V0dGluZ3MudjEuUmVzb2x1dGlvblRyZW5kUG9pbnQuTG9jYWxlc0VudHJ5GjUKE1JlY29yZFZhcmlhbnRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ARouCgxMb2NhbGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ASKnAwoaR2V0UmVzb2x1dGlvblN0YXRzUmVzcG9uc2USEQoJcmVjb3JkX2lkGAEgASgJEhMKC3dpbmRvd19kYXlzGAIgASgFEjAKDGdlbmVyYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFAoMbmV2ZXJfc2VydmVkGAQgASgIEjoKD3JlY29yZF92YXJpYW50cxgFIAEoCzIhLnNldHRpbmdzLnYxLlJlc29sdXRpb25TZXJ2ZVN0YXRzEjIKB2xvY2FsZXMYBiABKAsyIS5zZXR0aW5ncy52MS5SZXNvbHV0aW9uU2VydmVTdGF0cxI1Cghjb250ZXh0cxgHIAEoCzIjLnNldHRpbmdzLnYxLlJlc29sdXRpb25Db250ZXh0U3RhdHMSQAoOZmllbGRfdmFyaWFudHMYCCABKAsyKC5zZXR0aW5ncy52MS5SZXNvbHV0aW9uRmllbGRWYXJpYW50U3RhdHMSMAoFdHJlbmQYCSADKAsyIS5zZXR0aW5ncy52MS5SZXNvbHV0aW9uVHJlbmRQb2ludCIsChdHZXRFZGl0b3JDb25maWdzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiwAIKFUVkaXRvckNvbmZpZ1BsYWNlbWVudBIRCgljb25maWdfaWQYASABKAkSEgoKY29uZmlnX2tleRgCIAEoCRIQCgN1cmwYAyABKAlIAIgBARIbCg5hbGxvd2VkX29yaWdpbhgEIAEoCUgBiAEBEhMKBmhlaWdodBgFIAEoBUgCiAEBEhIKBWxhYmVsGAYgASgJSAOIAQESFAoHYXBpX2tleRgHIAEoCUgEiAEBEhQKB2FwaV91cmwYCCABKAlIBYgBARIeChFjb25uZWN0aW9uX2RvbWFpbhgJIAEoCUgGiAEBQgYKBF91cmxCEQoPX2FsbG93ZWRfb3JpZ2luQgkKB19oZWlnaHRCCAoGX2xhYmVsQgoKCF9hcGlfa2V5QgoKCF9hcGlfdXJsQhQKEl9jb25uZWN0aW9uX2RvbWFpbiJSChhHZXRFZGl0b3JDb25maWdzUmVzcG9uc2USNgoKcGxhY2VtZW50cxgBIAMoCzIiLnNldHRpbmdzLnYxLkVkaXRvckNvbmZpZ1BsYWNlbWVudCLCAgoSU2VhcmNoTm90ZXNSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEhgKC2VudGl0eV90eXBlGAIgASgJSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBARIZCgxzdWJqZWN0X3R5cGUYByABKAlIBYgBARIeChFzdWJqZWN0X21vZGVsX2tleRgIIAEoCUgGiAEBQg4KDF9lbnRpdHlfdHlwZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RCDwoNX3N1YmplY3RfdHlwZUIUChJfc3ViamVjdF9tb2RlbF9rZXlKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXQikgEKE1NlYXJjaE5vdGVzUmVzcG9uc2USIAoFbm90ZXMYASADKAsyES5zZXR0aW5ncy52MS5Ob3RlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIZChdHZXREZWZhdWx0TG9jYWxlUmVxdWVzdCI/ChhHZXREZWZhdWx0TG9jYWxlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiYKFkdldExvY2FsZUJ5Q29kZVJlcXVlc3QSDAoEY29kZRgBIAEoCSI+ChdHZXRMb2NhbGVCeUNvZGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUi8AMKDERlc2lnblRva2VucxIpCghkb2N1bWVudBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSMwoIcmVzb2x2ZWQYAiABKAsyIS5zZXR0aW5ncy52MS5SZXNvbHZlZERlc2lnblRva2VucxIPCgd2ZXJzaW9uGAogASgFEh4KEXB1Ymxpc2hlZF92ZXJzaW9uGAsgASgFSACIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg9IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBAUIUChJfcHVibGlzaGVkX3ZlcnNpb25CFwoVX3NjaGVkdWxlZF9wdWJsaXNoX2F0QhkKF19zY2hlZHVsZWRfdW5wdWJsaXNoX2F0IvoEChRSZXNvbHZlZERlc2lnblRva2VucxIvCgZjb2xvcnMYASADKAsyHy5zZXR0aW5ncy52MS5SZXNvbHZlZENvbG9yVG9rZW4SOwoNZm9udF9mYW1pbGllcxgCIAMoCzIkLnNldHRpbmdzLnYxLlJlc29sdmVkRm9udEZhbWlseVRva2VuEjoKDGZvbnRfd2VpZ2h0cxgDIAMoCzIkLnNldHRpbmdzLnYxLlJlc29sdmVkRm9udFdlaWdodFRva2VuEjcKCmZvbnRfc2l6ZXMYBCADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjYKDGxpbmVfaGVpZ2h0cxgFIAMoCzIgLnNldHRpbmdzLnYxLlJlc29sdmVkTnVtYmVyVG9rZW4SPAoPbGV0dGVyX3NwYWNpbmdzGAYgAygLMiMuc2V0dGluZ3MudjEuUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhI4Cgp0eXBvZ3JhcGh5GAcgAygLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRUeXBvZ3JhcGh5VG9rZW4SNQoIc3BhY2luZ3MYCCADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjIKBXJhZGlpGAkgAygLMiMuc2V0dGluZ3MudjEuUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhIxCgdzaGFkb3dzGAogAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRTaGFkb3dUb2tlbhIxCgdib3JkZXJzGAsgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRCb3JkZXJUb2tlbiJpChJSZXNvbHZlZENvbG9yVG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDQoFdmFsdWUYBCABKAlCDgoMX2Rlc2NyaXB0aW9uIm4KF1Jlc29sdmVkRm9udEZhbWlseVRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgAygJQg4KDF9kZXNjcmlwdGlvbiJuChdSZXNvbHZlZEZvbnRXZWlnaHRUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoBUIOCgxfZGVzY3JpcHRpb24ibQoWUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoCUIOCgxfZGVzY3JpcHRpb24iagoTUmVzb2x2ZWROdW1iZXJUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoAUIOCgxfZGVzY3JpcHRpb24izAEKF1Jlc29sdmVkVHlwb2dyYXBoeVRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjMKBXZhbHVlGAQgASgLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRUeXBvZ3JhcGh5VmFsdWUSEgoFbGFiZWwYBSABKAlIAYgBARIQCgN0YWcYBiABKAlIAogBAUIOCgxfZGVzY3JpcHRpb25CCAoGX2xhYmVsQgYKBF90YWcijQEKE1Jlc29sdmVkU2hhZG93VG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESMAoGbGF5ZXJzGAQgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRTaGFkb3dMYXllckIOCgxfZGVzY3JpcHRpb24idQoTUmVzb2x2ZWRTaGFkb3dMYXllchIQCghvZmZzZXRfeBgBIAEoCRIQCghvZmZzZXRfeRgCIAEoCRIMCgRibHVyGAMgASgJEg4KBnNwcmVhZBgEIAEoCRINCgVjb2xvchgFIAEoCRINCgVpbnNldBgGIAEoCCKMAQoTUmVzb2x2ZWRCb3JkZXJUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARIvCgV2YWx1ZRgEIAEoCzIgLnNldHRpbmdzLnYxLlJlc29sdmVkQm9yZGVyVmFsdWVCDgoMX2Rlc2NyaXB0aW9uIkIKE1Jlc29sdmVkQm9yZGVyVmFsdWUSDQoFY29sb3IYASABKAkSDQoFd2lkdGgYAiABKAkSDQoFc3R5bGUYAyABKAkimwEKF1Jlc29sdmVkVHlwb2dyYXBoeVZhbHVlEhMKC2ZvbnRfZmFtaWx5GAEgAygJEhEKCWZvbnRfc2l6ZRgCIAEoCRITCgtmb250X3dlaWdodBgDIAEoBRITCgtsaW5lX2hlaWdodBgEIAEoARIWCg5sZXR0ZXJfc3BhY2luZxgFIAEoCRIWCg50ZXh0X3RyYW5zZm9ybRgGIAEoCSJEChZHZXREZXNpZ25Ub2tlbnNSZXF1ZXN0EioKB2NoYW5uZWwYASABKA4yGS5wdWJsaXNoLnYxLlNjaGVtYUNoYW5uZWwiRAoXR2V0RGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIkYKGVVwZGF0ZURlc2lnblRva2Vuc1JlcXVlc3QSKQoIZG9jdW1lbnQYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkcKGlVwZGF0ZURlc2lnblRva2Vuc1Jlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucyIcChpQdWJsaXNoRGVzaWduVG9rZW5zUmVxdWVzdCJ+ChtQdWJsaXNoRGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIh4KHFVucHVibGlzaERlc2lnblRva2Vuc1JlcXVlc3QiSgodVW5wdWJsaXNoRGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIiUKI0dldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXF1ZXN0IlEKJEdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMiNwohQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXF1ZXN0EhIKCnRva2VuX3BhdGgYASABKAkiUwoiQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXNwb25zZRIXCg9wYXJhZ3JhcGhfY291bnQYASABKAUSFAoMcmVjb3JkX2NvdW50GAIgASgFItkCChJEZXNpZ25Ub2tlblZlcnNpb24SCgoCaWQYASABKAkSGAoQZGVzaWduX3Rva2Vuc19pZBgCIAEoCRIWCg52ZXJzaW9uX251bWJlchgDIAEoBRIpCghzbmFwc2hvdBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoMY29udGVudF9oYXNoGAUgASgJEh4KEXNvdXJjZV92ZXJzaW9uX2lkGAYgASgJSACIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAcgASgJSAGIAQESLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKY3JlYXRlZF9ieRgJIAEoCUgCiAEBQhQKEl9zb3VyY2VfdmVyc2lvbl9pZEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQg0KC19jcmVhdGVkX2J5IpgBCh5MaXN0RGVzaWduVG9rZW5WZXJzaW9uc1JlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QirwEKH0xpc3REZXNpZ25Ub2tlblZlcnNpb25zUmVzcG9uc2USMQoIdmVyc2lvbnMYASADKAsyHy5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlblZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIm4KIFJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkSHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAIgASgJSACIAQFCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiKEAQohUmVzdG9yZURlc2lnblRva2VuVmVyc2lvblJlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucxI0CgtuZXdfdmVyc2lvbhgCIAEoCzIfLnNldHRpbmdzLnYxLkRlc2lnblRva2VuVmVyc2lvbiJFChdHZXRQcm9qZWN0U2NoZW1hUmVxdWVzdBIqCgdjaGFubmVsGAEgASgOMhkucHVibGlzaC52MS5TY2hlbWFDaGFubmVsImUKElByb2plY3RTY2hlbWFNb2RlbBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRITCgtmaWVsZHNfanNvbhgEIAEoCRITCgtjb25maWdfanNvbhgFIAEoCSLCAQodUHJvamVjdFNjaGVtYUNvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgAiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgBiAEBEg4KBnZhbHVlcxgGIAMoCUITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5Io4BChlQcm9qZWN0U2NoZW1hQXV0aFByb3ZpZGVyEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHR5cGUYAyABKAkSDwoHZW5hYmxlZBgEIAEoCBIsCgZjb25maWcYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCQoHX2NvbmZpZyKfAwoWUHJvamVjdFNjaGVtYU9wZXJhdGlvbhILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIQCghlbmRwb2ludBgDIAEoCRISCgp0aW1lb3V0X21zGAQgASgFEjIKDGlucHV0X3NjaGVtYRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIzCg1vdXRwdXRfc2NoZW1hGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEhYKDnN1cHBvcnRzX2FzeW5jGAcgASgIEgwKBGtpbmQYCCABKAkSHgoRYXR0YWNoZWRfdG9fbW9kZWwYCSABKAlIAogBARIVCg1wYXJlbnRfZmllbGRzGAogAygJEjMKDWNhY2hlX2NvbnRyb2wYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQFCDwoNX2lucHV0X3NjaGVtYUIQCg5fb3V0cHV0X3NjaGVtYUIUChJfYXR0YWNoZWRfdG9fbW9kZWxCEAoOX2NhY2hlX2NvbnRyb2wiRAoUUHJvamVjdFNjaGVtYVNlZ21lbnQSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSEQoJaXNfYWN0aXZlGAMgASgIIoAEChhHZXRQcm9qZWN0U2NoZW1hUmVzcG9uc2USLwoGbW9kZWxzGAEgAygLMh8uc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYU1vZGVsEj4KCmRpbWVuc2lvbnMYAiADKAsyKi5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hQ29udGV4dERpbWVuc2lvbhI+Cg5hdXRoX3Byb3ZpZGVycxgDIAMoCzImLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFBdXRoUHJvdmlkZXISNwoKb3BlcmF0aW9ucxgEIAMoCzIjLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFPcGVyYXRpb24SMwoIc2VnbWVudHMYBSADKAsyIS5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hU2VnbWVudBImChljdXN0b21lcl9wYXNzd29yZF9lbmFibGVkGAggASgISACIAQESIQoUY3VzdG9tZXJfb3RwX2VuYWJsZWQYCSABKAhIAYgBARIaChJ2YXJpYW50X2RpbWVuc2lvbnMYCiADKAlCHAoaX2N1c3RvbWVyX3Bhc3N3b3JkX2VuYWJsZWRCFwoVX2N1c3RvbWVyX290cF9lbmFibGVkSgQIBhAHSgQIBxAIUgtleHBlcmltZW50c1IOcHJvZmlsZV9zY2hlbWEiLAoeUHVibGlzaENvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIokBCh9QdWJsaXNoQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24SNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiLgogVW5wdWJsaXNoQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiVQohVW5wdWJsaXNoQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iNQonR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXNSZXF1ZXN0EgoKAmlkGAEgASgJIlUKKEdldENvbnRleHREaW1lbnNpb25QdWJsaXNoU3RhdHVzUmVzcG9uc2USKQoGc3RhdHVzGAEgASgLMhkucHVibGlzaC52MS5QdWJsaXNoU3RhdHVzIuICChdDb250ZXh0RGltZW5zaW9uVmVyc2lvbhIKCgJpZBgBIAEoCRIcChRjb250ZXh0X2RpbWVuc2lvbl9pZBgCIAEoCRIWCg52ZXJzaW9uX251bWJlchgDIAEoBRIpCghzbmFwc2hvdBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoMY29udGVudF9oYXNoGAUgASgJEh4KEXNvdXJjZV92ZXJzaW9uX2lkGAYgASgJSACIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAcgASgJSAGIAQESLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKY3JlYXRlZF9ieRgJIAEoCUgCiAEBQhQKEl9zb3VyY2VfdmVyc2lvbl9pZEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQg0KC19jcmVhdGVkX2J5IrsBCiNMaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zUmVxdWVzdBIcChRjb250ZXh0X2RpbWVuc2lvbl9pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCK5AQokTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1Jlc3BvbnNlEjYKCHZlcnNpb25zGAEgAygLMiQuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvInMKJVJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIpUBCiZSZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uEjkKC25ld192ZXJzaW9uGAIgASgLMiQuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZlcnNpb24iHQobUHVibGlzaFByb2plY3RTY2hlbWFSZXF1ZXN0IvQBChxQdWJsaXNoUHJvamVjdFNjaGVtYVJlc3BvbnNlEhgKEG1vZGVsc19wdWJsaXNoZWQYASABKAUSHAoUb3BlcmF0aW9uc19wdWJsaXNoZWQYAiABKAUSJAocY29udGV4dF9kaW1lbnNpb25zX3B1Ymxpc2hlZBgDIAEoBRIgChhhdXRoX3Byb3ZpZGVyc19wdWJsaXNoZWQYBCABKAUSNAoQYnJlYWtpbmdfY2hhbmdlcxgGIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2VKBAgFEAZSGHByb2ZpbGVfc2NoZW1hX3B1Ymxpc2hlZCIgCh5HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1JlcXVlc3QigwEKH0dldFByb2plY3RQdWJsaXNoU3RhdHVzUmVzcG9uc2USKgoHcGVuZGluZxgBIAMoCzIZLnB1Ymxpc2gudjEuUGVuZGluZ0VudGl0eRI0ChBicmVha2luZ19jaGFuZ2VzGAIgAygLMhoucHVibGlzaC52MS5CcmVha2luZ0NoYW5nZSKsAQomU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlcXVlc3QSCgoCaWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiWwonU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iOwotQ2FuY2VsU2NoZWR1bGVkQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJImIKLkNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiqLAQoNQ2hhbm5lbFBvbGljeRIeChpDSEFOTkVMX1BPTElDWV9VTlNQRUNJRklFRBAAEh0KGUNIQU5ORUxfUE9MSUNZX0RFRkFVTFRfT04QARIeChpDSEFOTkVMX1BPTElDWV9ERUZBVUxUX09GRhACEhsKF0NIQU5ORUxfUE9MSUNZX1JFUVVJUkVEEAMyjDIKD1NldHRpbmdzU2VydmljZRJWCg1MaXN0QXVkaXRMb2dzEiEuc2V0dGluZ3MudjEuTGlzdEF1ZGl0TG9nc1JlcXVlc3QaIi5zZXR0aW5ncy52MS5MaXN0QXVkaXRMb2dzUmVzcG9uc2USTQoKQ3JlYXRlTm90ZRIeLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuQ3JlYXRlTm90ZVJlc3BvbnNlEkQKB0dldE5vdGUSGy5zZXR0aW5ncy52MS5HZXROb3RlUmVxdWVzdBocLnNldHRpbmdzLnYxLkdldE5vdGVSZXNwb25zZRJKCglMaXN0Tm90ZXMSHS5zZXR0aW5ncy52MS5MaXN0Tm90ZXNSZXF1ZXN0Gh4uc2V0dGluZ3MudjEuTGlzdE5vdGVzUmVzcG9uc2USTQoKVXBkYXRlTm90ZRIeLnNldHRpbmdzLnYxLlVwZGF0ZU5vdGVSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuVXBkYXRlTm90ZVJlc3BvbnNlEk0KCkRlbGV0ZU5vdGUSHi5zZXR0aW5ncy52MS5EZWxldGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLkRlbGV0ZU5vdGVSZXNwb25zZRJQCgtTZWFyY2hOb3RlcxIfLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVxdWVzdBogLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVzcG9uc2USWQoOTGlzdE15TWVudGlvbnMSIi5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1JlcXVlc3QaIy5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1Jlc3BvbnNlEmgKE1VwZGF0ZU1lbnRpb25TdGF0dXMSJy5zZXR0aW5ncy52MS5VcGRhdGVNZW50aW9uU3RhdHVzUmVxdWVzdBooLnNldHRpbmdzLnYxLlVwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRJQCgtMaXN0TG9jYWxlcxIfLnNldHRpbmdzLnYxLkxpc3RMb2NhbGVzUmVxdWVzdBogLnNldHRpbmdzLnYxLkxpc3RMb2NhbGVzUmVzcG9uc2USSgoJR2V0TG9jYWxlEh0uc2V0dGluZ3MudjEuR2V0TG9jYWxlUmVxdWVzdBoeLnNldHRpbmdzLnYxLkdldExvY2FsZVJlc3BvbnNlEl8KEEdldERlZmF1bHRMb2NhbGUSJC5zZXR0aW5ncy52MS5HZXREZWZhdWx0TG9jYWxlUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldERlZmF1bHRMb2NhbGVSZXNwb25zZRJcCg9HZXRMb2NhbGVCeUNvZGUSIy5zZXR0aW5ncy52MS5HZXRMb2NhbGVCeUNvZGVSZXF1ZXN0GiQuc2V0dGluZ3MudjEuR2V0TG9jYWxlQnlDb2RlUmVzcG9uc2USUwoMQ3JlYXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuQ3JlYXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLkNyZWF0ZUxvY2FsZVJlc3BvbnNlElMKDFVwZGF0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLlVwZGF0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5VcGRhdGVMb2NhbGVSZXNwb25zZRJTCgxEZWxldGVMb2NhbGUSIC5zZXR0aW5ncy52MS5EZWxldGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuRGVsZXRlTG9jYWxlUmVzcG9uc2USfQoaTGlzdE5vdGlmaWNhdGlvbkNhdGVnb3JpZXMSLi5zZXR0aW5ncy52MS5MaXN0Tm90aWZpY2F0aW9uQ2F0ZWdvcmllc1JlcXVlc3QaLy5zZXR0aW5ncy52MS5MaXN0Tm90aWZpY2F0aW9uQ2F0ZWdvcmllc1Jlc3BvbnNlEnQKF0dldE5vdGlmaWNhdGlvbkNhdGVnb3J5Eisuc2V0dGluZ3MudjEuR2V0Tm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXF1ZXN0Giwuc2V0dGluZ3MudjEuR2V0Tm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXNwb25zZRJ9ChpDcmVhdGVOb3RpZmljYXRpb25DYXRlZ29yeRIuLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGlmaWNhdGlvbkNhdGVnb3J5UmVxdWVzdBovLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGlmaWNhdGlvbkNhdGVnb3J5UmVzcG9uc2USfQoaVXBkYXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnkSLi5zZXR0aW5ncy52MS5VcGRhdGVOb3RpZmljYXRpb25DYXRlZ29yeVJlcXVlc3QaLy5zZXR0aW5ncy52MS5VcGRhdGVOb3RpZmljYXRpb25DYXRlZ29yeVJlc3BvbnNlEn0KGkRlbGV0ZU5vdGlmaWNhdGlvbkNhdGVnb3J5Ei4uc2V0dGluZ3MudjEuRGVsZXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXF1ZXN0Gi8uc2V0dGluZ3MudjEuRGVsZXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXNwb25zZRJcCg9HZXRMb2NhbGVDaGFpbnMSIy5zZXR0aW5ncy52MS5HZXRMb2NhbGVDaGFpbnNSZXF1ZXN0GiQuc2V0dGluZ3MudjEuR2V0TG9jYWxlQ2hhaW5zUmVzcG9uc2USYgoRR2V0TmF2UHJlZmVyZW5jZXMSJS5zZXR0aW5ncy52MS5HZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QaJi5zZXR0aW5ncy52MS5HZXROYXZQcmVmZXJlbmNlc1Jlc3BvbnNlEmsKFFVwZGF0ZU5hdlByZWZlcmVuY2VzEiguc2V0dGluZ3MudjEuVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXF1ZXN0Gikuc2V0dGluZ3MudjEuVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXNwb25zZRJlChJMaXN0UmVjZW50bHlPcGVuZWQSJi5zZXR0aW5ncy52MS5MaXN0UmVjZW50bHlPcGVuZWRSZXF1ZXN0Gicuc2V0dGluZ3MudjEuTGlzdFJlY2VudGx5T3BlbmVkUmVzcG9uc2USaAoTVHJhY2tSZWNlbnRseU9wZW5lZBInLnNldHRpbmdzLnYxLlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0Giguc2V0dGluZ3MudjEuVHJhY2tSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmsKFFJlbW92ZVJlY2VudGx5T3BlbmVkEiguc2V0dGluZ3MudjEuUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXF1ZXN0Gikuc2V0dGluZ3MudjEuUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXNwb25zZRJoChNDbGVhclJlY2VudGx5T3BlbmVkEicuc2V0dGluZ3MudjEuQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QaKC5zZXR0aW5ncy52MS5DbGVhclJlY2VudGx5T3BlbmVkUmVzcG9uc2USbgoVTGlzdENvbnRleHREaW1lbnNpb25zEikuc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25zUmVxdWVzdBoqLnNldHRpbmdzLnYxLkxpc3RDb250ZXh0RGltZW5zaW9uc1Jlc3BvbnNlEmgKE0dldENvbnRleHREaW1lbnNpb24SJy5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUmVxdWVzdBooLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25SZXNwb25zZRJxChZDcmVhdGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2UScQoWVXBkYXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuVXBkYXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnEKFkRlbGV0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJ6ChlHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzEi0uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1JlcXVlc3QaLi5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVzcG9uc2USXwoQR2V0RWRpdG9yQ29uZmlncxIkLnNldHRpbmdzLnYxLkdldEVkaXRvckNvbmZpZ3NSZXF1ZXN0GiUuc2V0dGluZ3MudjEuR2V0RWRpdG9yQ29uZmlnc1Jlc3BvbnNlEmUKEkxpc3RWYXJpYW50Q2F0YWxvZxImLnNldHRpbmdzLnYxLkxpc3RWYXJpYW50Q2F0YWxvZ1JlcXVlc3QaJy5zZXR0aW5ncy52MS5MaXN0VmFyaWFudENhdGFsb2dSZXNwb25zZRJxChZHZXRWYXJpYW50Q2F0YWxvZ0VudHJ5Eiouc2V0dGluZ3MudjEuR2V0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaKy5zZXR0aW5ncy52MS5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLkNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGVVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5VcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLlVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlEZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuRGVsZXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5EZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USZQoSR2V0UmVzb2x1dGlvblN0YXRzEiYuc2V0dGluZ3MudjEuR2V0UmVzb2x1dGlvblN0YXRzUmVxdWVzdBonLnNldHRpbmdzLnYxLkdldFJlc29sdXRpb25TdGF0c1Jlc3BvbnNlEl8KEEdldFByb2plY3RTY2hlbWESJC5zZXR0aW5ncy52MS5HZXRQcm9qZWN0U2NoZW1hUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldFByb2plY3RTY2hlbWFSZXNwb25zZRJ0ChdQdWJsaXNoQ29udGV4dERpbWVuc2lvbhIrLnNldHRpbmdzLnYxLlB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVxdWVzdBosLnNldHRpbmdzLnYxLlB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USegoZVW5wdWJsaXNoQ29udGV4dERpbWVuc2lvbhItLnNldHRpbmdzLnYxLlVucHVibGlzaENvbnRleHREaW1lbnNpb25SZXF1ZXN0Gi4uc2V0dGluZ3MudjEuVW5wdWJsaXNoQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEo8BCiBHZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1cxI0LnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25QdWJsaXNoU3RhdHVzUmVxdWVzdBo1LnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25QdWJsaXNoU3RhdHVzUmVzcG9uc2USjAEKH1NjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2gSMy5zZXR0aW5ncy52MS5TY2hlZHVsZUNvbnRleHREaW1lbnNpb25QdWJsaXNoUmVxdWVzdBo0LnNldHRpbmdzLnYxLlNjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXNwb25zZRKhAQomQ2FuY2VsU2NoZWR1bGVkQ29udGV4dERpbWVuc2lvblB1Ymxpc2gSOi5zZXR0aW5ncy52MS5DYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlcXVlc3QaOy5zZXR0aW5ncy52MS5DYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEoMBChxMaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zEjAuc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1JlcXVlc3QaMS5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zUmVzcG9uc2USiQEKHlJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvbhIyLnNldHRpbmdzLnYxLlJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QaMy5zZXR0aW5ncy52MS5SZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXNwb25zZRJ0ChdHZXRQcm9qZWN0UHVibGlzaFN0YXR1cxIrLnNldHRpbmdzLnYxLkdldFByb2plY3RQdWJsaXNoU3RhdHVzUmVxdWVzdBosLnNldHRpbmdzLnYxLkdldFByb2plY3RQdWJsaXNoU3RhdHVzUmVzcG9uc2USawoUUHVibGlzaFByb2plY3RTY2hlbWESKC5zZXR0aW5ncy52MS5QdWJsaXNoUHJvamVjdFNjaGVtYVJlcXVlc3QaKS5zZXR0aW5ncy52MS5QdWJsaXNoUHJvamVjdFNjaGVtYVJlc3BvbnNlElwKD0dldERlc2lnblRva2VucxIjLnNldHRpbmdzLnYxLkdldERlc2lnblRva2Vuc1JlcXVlc3QaJC5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlbnNSZXNwb25zZRJlChJVcGRhdGVEZXNpZ25Ub2tlbnMSJi5zZXR0aW5ncy52MS5VcGRhdGVEZXNpZ25Ub2tlbnNSZXF1ZXN0Gicuc2V0dGluZ3MudjEuVXBkYXRlRGVzaWduVG9rZW5zUmVzcG9uc2USaAoTUHVibGlzaERlc2lnblRva2VucxInLnNldHRpbmdzLnYxLlB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXF1ZXN0Giguc2V0dGluZ3MudjEuUHVibGlzaERlc2lnblRva2Vuc1Jlc3BvbnNlEm4KFVVucHVibGlzaERlc2lnblRva2VucxIpLnNldHRpbmdzLnYxLlVucHVibGlzaERlc2lnblRva2Vuc1JlcXVlc3QaKi5zZXR0aW5ncy52MS5VbnB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXNwb25zZRKDAQocR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1cxIwLnNldHRpbmdzLnYxLkdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXF1ZXN0GjEuc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1c1Jlc3BvbnNlEn0KGkNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzEi4uc2V0dGluZ3MudjEuQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXF1ZXN0Gi8uc2V0dGluZ3MudjEuQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXNwb25zZRJ0ChdMaXN0RGVzaWduVG9rZW5WZXJzaW9ucxIrLnNldHRpbmdzLnYxLkxpc3REZXNpZ25Ub2tlblZlcnNpb25zUmVxdWVzdBosLnNldHRpbmdzLnYxLkxpc3REZXNpZ25Ub2tlblZlcnNpb25zUmVzcG9uc2USegoZUmVzdG9yZURlc2lnblRva2VuVmVyc2lvbhItLnNldHRpbmdzLnYxLlJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb25SZXF1ZXN0Gi4uc2V0dGluZ3MudjEuUmVzdG9yZURlc2lnblRva2VuVmVyc2lvblJlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9zZXR0aW5ncy92MTtzZXR0aW5nc3YxYgZwcm90bzM", [file_google_protobuf_struct6, file_google_protobuf_timestamp7, file_expressions_v1_expressions, file_publish_v1_publish, file_common_v1_pagination]);
|
|
1065
|
+
var file_settings_v1_settings = /* @__PURE__ */ fileDesc11("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiqwQKCEF1ZGl0TG9nEgoKAmlkGAEgASgJEi0KCXRpbWVzdGFtcBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFAoHdXNlcl9pZBgDIAEoCUgAiAEBEhYKCXRlbmFudF9pZBgEIAEoCUgBiAEBEhcKCnByb2plY3RfaWQYBSABKAlIAogBARIOCgZhY3Rpb24YBiABKAkSFQoNcmVzb3VyY2VfdHlwZRgHIAEoCRIYCgtyZXNvdXJjZV9pZBgIIAEoCUgDiAEBEiwKBmJlZm9yZRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIrCgVhZnRlchgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIXCgppcF9hZGRyZXNzGAwgASgJSAeIAQESFwoKdXNlcl9hZ2VudBgNIAEoCUgIiAEBEhcKCnJlcXVlc3RfaWQYDiABKAlICYgBAUIKCghfdXNlcl9pZEIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQg4KDF9yZXNvdXJjZV9pZEIJCgdfYmVmb3JlQggKBl9hZnRlckILCglfbWV0YWRhdGFCDQoLX2lwX2FkZHJlc3NCDQoLX3VzZXJfYWdlbnRCDQoLX3JlcXVlc3RfaWQi+gkKBE5vdGUSCgoCaWQYASABKAkSFwoKdmVyc2lvbl9pZBgFIAEoCUgAiAEBEigKB2NvbnRlbnQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNvbnRlbnRfcGxhaW5fdGV4dBgHIAEoCUgBiAEBEhsKDnBhcmVudF9ub3RlX2lkGAogASgJSAKIAQESGwoOdGhyZWFkX3Jvb3RfaWQYCyABKAlIA4gBARITCgtpc19yZXNvbHZlZBgPIAEoCBI0CgtyZXNvbHZlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIYCgtyZXNvbHZlZF9ieRgRIAEoCUgFiAEBEhwKD3Jlc29sdXRpb25fbm90ZRgSIAEoCUgGiAEBEi4KCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCXRlbmFudF9pZBgeIAEoCRIXCgpwcm9qZWN0X2lkGB8gASgJSAiIAQESEgoKdmlzaWJpbGl0eRggIAEoCRISCgpjcmVhdGVkX2J5GCggASgJEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhQKDHN1YmplY3RfdHlwZRg8IAEoCRISCgpzdWJqZWN0X2lkGD0gASgJEh4KEXN1YmplY3RfbW9kZWxfa2V5GD4gASgJSAmIAQESIQoUcmVwbHlfdG9fY3VzdG9tZXJfaWQYPyABKAlICogBARIYCgthc3NpZ25lZV9pZBhAIAEoCUgLiAEBEjEKCGR1ZV9kYXRlGEUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgMiAEBEhMKC2NoaWxkX2NvdW50GEEgASgFEhwKFHJlc29sdmVkX2NoaWxkX2NvdW50GEIgASgFEjAKC2F0dGFjaG1lbnRzGEMgAygLMhsuc2V0dGluZ3MudjEuTm90ZUF0dGFjaG1lbnQSJAoXYW5vbnltb3VzX2NvbnRhY3RfZW1haWwYRCABKAlIDYgBARIZCgxhbmNob3JfZmllbGQYRiABKAlIDogBARIbCg5hbmNob3Jfbm9kZV9pZBhHIAEoCUgPiAEBEhsKDmFuY2hvcl9zbmlwcGV0GEggASgJSBCIAQFCDQoLX3ZlcnNpb25faWRCFQoTX2NvbnRlbnRfcGxhaW5fdGV4dEIRCg9fcGFyZW50X25vdGVfaWRCEQoPX3RocmVhZF9yb290X2lkQg4KDF9yZXNvbHZlZF9hdEIOCgxfcmVzb2x2ZWRfYnlCEgoQX3Jlc29sdXRpb25fbm90ZUILCglfbWV0YWRhdGFCDQoLX3Byb2plY3RfaWRCFAoSX3N1YmplY3RfbW9kZWxfa2V5QhcKFV9yZXBseV90b19jdXN0b21lcl9pZEIOCgxfYXNzaWduZWVfaWRCCwoJX2R1ZV9kYXRlQhoKGF9hbm9ueW1vdXNfY29udGFjdF9lbWFpbEIPCg1fYW5jaG9yX2ZpZWxkQhEKD19hbmNob3Jfbm9kZV9pZEIRCg9fYW5jaG9yX3NuaXBwZXRKBAgCEANKBAgDEARKBAgEEAVSC2VudGl0eV90eXBlUgllbnRpdHlfaWRSEmVudGl0eV9uYXR1cmFsX2tleSKSAQoOTm90ZUF0dGFjaG1lbnQSDwoHZmlsZV9pZBgBIAEoCRIQCghmaWxlbmFtZRgCIAEoCRIRCgltaW1lX3R5cGUYAyABKAkSDAoEc2l6ZRgEIAEoAxILCgN1cmwYBSABKAkSLwoLYXR0YWNoZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIvwBChRMaXN0QXVkaXRMb2dzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgGEAdKBAgHEAhKBAgIEAlKBAgJEApKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXRSAnRvIpcBChVMaXN0QXVkaXRMb2dzUmVzcG9uc2USIwoEbG9ncxgBIAMoCzIVLnNldHRpbmdzLnYxLkF1ZGl0TG9nEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyL8BAoRQ3JlYXRlTm90ZVJlcXVlc3QSKAoHY29udGVudBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGwoOcGFyZW50X25vdGVfaWQYBCABKAlIAIgBARIUCgxzdWJqZWN0X3R5cGUYBSABKAkSEgoKc3ViamVjdF9pZBgGIAEoCRIeChFzdWJqZWN0X21vZGVsX2tleRgHIAEoCUgBiAEBEh4KEXJlcGx5X3RvX2N1c3RvbWVyGAggASgISAKIAQESGAoLYXNzaWduZWVfaWQYCSABKAlIA4gBARIbChNhdHRhY2htZW50X2ZpbGVfaWRzGAogAygJEjEKCGR1ZV9kYXRlGAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEiQKF2Fub255bW91c19jb250YWN0X2VtYWlsGAsgASgJSAWIAQESGQoMYW5jaG9yX2ZpZWxkGA0gASgJSAaIAQESGwoOYW5jaG9yX25vZGVfaWQYDiABKAlIB4gBARIbCg5hbmNob3Jfc25pcHBldBgPIAEoCUgIiAEBQhEKD19wYXJlbnRfbm90ZV9pZEIUChJfc3ViamVjdF9tb2RlbF9rZXlCFAoSX3JlcGx5X3RvX2N1c3RvbWVyQg4KDF9hc3NpZ25lZV9pZEILCglfZHVlX2RhdGVCGgoYX2Fub255bW91c19jb250YWN0X2VtYWlsQg8KDV9hbmNob3JfZmllbGRCEQoPX2FuY2hvcl9ub2RlX2lkQhEKD19hbmNob3Jfc25pcHBldEoECAEQAkoECAIQA1ILZW50aXR5X3R5cGVSCWVudGl0eV9pZCI1ChJDcmVhdGVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiHAoOR2V0Tm90ZVJlcXVlc3QSCgoCaWQYASABKAkiMgoPR2V0Tm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIqcCChBMaXN0Tm90ZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAQgASgJSAGIAQESEwoGYmVmb3JlGAUgASgJSAKIAQESEgoFZmlyc3QYBiABKAVIA4gBARIRCgRsYXN0GAcgASgFSASIAQESFQoIb3JkZXJfYnkYCCABKAlIBYgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QgsKCV9vcmRlcl9ieUoECAIQA0oECAMQBEoECAoQC0oECAsQDFIJZW50aXR5X2lkUgVsaW1pdFIGb2Zmc2V0Ug5wYXJlbnRfbm90ZV9pZCKQAQoRTGlzdE5vdGVzUmVzcG9uc2USIAoFbm90ZXMYASADKAsyES5zZXR0aW5ncy52MS5Ob3RlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyLQAgoRVXBkYXRlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkSLQoHY29udGVudBgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIYCgtpc19yZXNvbHZlZBgDIAEoCEgBiAEBEhwKD3Jlc29sdXRpb25fbm90ZRgEIAEoCUgCiAEBEhgKC2Fzc2lnbmVlX2lkGAUgASgJSAOIAQESMQoIZHVlX2RhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoOY2xlYXJfZHVlX2RhdGUYByABKAhIBYgBAUIKCghfY29udGVudEIOCgxfaXNfcmVzb2x2ZWRCEgoQX3Jlc29sdXRpb25fbm90ZUIOCgxfYXNzaWduZWVfaWRCCwoJX2R1ZV9kYXRlQhEKD19jbGVhcl9kdWVfZGF0ZSI1ChJVcGRhdGVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiHwoRRGVsZXRlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiJQoSRGVsZXRlTm90ZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgirAUKC05vdGVNZW50aW9uEgoKAmlkGAEgASgJEg8KB25vdGVfaWQYAiABKAkSGQoRbWVudGlvbmVkX3VzZXJfaWQYAyABKAkSDgoGc3RhdHVzGAQgASgJEjAKB3NlZW5fYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESOAoPYWNrbm93bGVkZ2VkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjUKDGNvbXBsZXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIbCg5jb21wbGV0ZWRfbm90ZRgIIAEoCUgDiAEBEjUKDGRpc21pc3NlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIbCg5kaXNtaXNzX3JlYXNvbhgKIAEoCUgFiAEBEjEKCGR1ZV9kYXRlGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBEhEKCXRlbmFudF9pZBgUIAEoCRIXCgpwcm9qZWN0X2lkGBUgASgJSAeIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX3NlZW5fYXRCEgoQX2Fja25vd2xlZGdlZF9hdEIPCg1fY29tcGxldGVkX2F0QhEKD19jb21wbGV0ZWRfbm90ZUIPCg1fZGlzbWlzc2VkX2F0QhEKD19kaXNtaXNzX3JlYXNvbkILCglfZHVlX2RhdGVCDQoLX3Byb2plY3RfaWQiuAIKEk1lbnRpb25XaXRoQ29udGV4dBIpCgdtZW50aW9uGAEgASgLMhguc2V0dGluZ3MudjEuTm90ZU1lbnRpb24SHwoEbm90ZRgCIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUSGAoLYXV0aG9yX25hbWUYAyABKAlIAIgBARIZCgxzdWJqZWN0X3R5cGUYBiABKAlIAYgBARIXCgpzdWJqZWN0X2lkGAcgASgJSAKIAQESHgoRc3ViamVjdF9tb2RlbF9rZXkYCCABKAlIA4gBAUIOCgxfYXV0aG9yX25hbWVCDwoNX3N1YmplY3RfdHlwZUINCgtfc3ViamVjdF9pZEIUChJfc3ViamVjdF9tb2RlbF9rZXlKBAgEEAVKBAgFEAZSC2VudGl0eV90eXBlUgllbnRpdHlfaWQiTwoNTWVudGlvbkNvdW50cxIPCgdwZW5kaW5nGAEgASgFEhAKCHBhc3RfZHVlGAIgASgFEhsKE2NvbXBsZXRlZF90aGlzX3dlZWsYAyABKAUi5wEKFUxpc3RNeU1lbnRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgGEAdKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXQizwEKFkxpc3RNeU1lbnRpb25zUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5NZW50aW9uV2l0aENvbnRleHQSDQoFdG90YWwYAiABKAUSKgoGY291bnRzGAMgASgLMhouc2V0dGluZ3MudjEuTWVudGlvbkNvdW50cxIrCglwYWdlX2luZm8YBCABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAUgAygJQgwKCl9wYWdlX2luZm8ioAEKGlVwZGF0ZU1lbnRpb25TdGF0dXNSZXF1ZXN0EhIKCm1lbnRpb25faWQYASABKAkSDgoGc3RhdHVzGAIgASgJEhsKDmNvbXBsZXRlZF9ub3RlGAMgASgJSACIAQESGwoOZGlzbWlzc19yZWFzb24YBCABKAlIAYgBAUIRCg9fY29tcGxldGVkX25vdGVCEQoPX2Rpc21pc3NfcmVhc29uIkgKG1VwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRIpCgdtZW50aW9uGAEgASgLMhguc2V0dGluZ3MudjEuTm90ZU1lbnRpb24ibgoYU2V0TWVudGlvbkR1ZURhdGVSZXF1ZXN0EhIKCm1lbnRpb25faWQYASABKAkSMQoIZHVlX2RhdGUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCCwoJX2R1ZV9kYXRlIkYKGVNldE1lbnRpb25EdWVEYXRlUmVzcG9uc2USKQoHbWVudGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLk5vdGVNZW50aW9uIr0DCgZMb2NhbGUSCgoCaWQYASABKAkSDgoGbG9jYWxlGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRIYCgtuYXRpdmVfbmFtZRgEIAEoCUgAiAEBEhIKCmlzX2RlZmF1bHQYBSABKAgSEQoJaXNfYWN0aXZlGAYgASgIEg4KBmlzX3J0bBgHIAEoCBIcCg9mYWxsYmFja19sb2NhbGUYCCABKAlIAYgBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIXCgpjcmVhdGVkX2J5GB4gASgJSAKIAQESFwoKdXBkYXRlZF9ieRgfIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9uYXRpdmVfbmFtZUISChBfZmFsbGJhY2tfbG9jYWxlQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5SgQICRAKUhFmYWxsYmFja19wcmlvcml0eSLeAQoSTGlzdExvY2FsZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldCKWAQoTTGlzdExvY2FsZXNSZXNwb25zZRIkCgdsb2NhbGVzGAEgAygLMhMuc2V0dGluZ3MudjEuTG9jYWxlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIeChBHZXRMb2NhbGVSZXF1ZXN0EgoKAmlkGAEgASgJIjgKEUdldExvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSLfAQoTQ3JlYXRlTG9jYWxlUmVxdWVzdBIOCgZsb2NhbGUYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEhgKC25hdGl2ZV9uYW1lGAMgASgJSACIAQESFwoKaXNfZGVmYXVsdBgEIAEoCEgBiAEBEhMKBmlzX3J0bBgFIAEoCEgCiAEBEhwKD2ZhbGxiYWNrX2xvY2FsZRgGIAEoCUgDiAEBQg4KDF9uYXRpdmVfbmFtZUINCgtfaXNfZGVmYXVsdEIJCgdfaXNfcnRsQhIKEF9mYWxsYmFja19sb2NhbGUiOwoUQ3JlYXRlTG9jYWxlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIpcCChNVcGRhdGVMb2NhbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhkKDGRpc3BsYXlfbmFtZRgCIAEoCUgAiAEBEhgKC25hdGl2ZV9uYW1lGAMgASgJSAGIAQESFwoKaXNfZGVmYXVsdBgEIAEoCEgCiAEBEhYKCWlzX2FjdGl2ZRgFIAEoCEgDiAEBEhMKBmlzX3J0bBgGIAEoCEgEiAEBEhwKD2ZhbGxiYWNrX2xvY2FsZRgHIAEoCUgFiAEBQg8KDV9kaXNwbGF5X25hbWVCDgoMX25hdGl2ZV9uYW1lQg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmVCCQoHX2lzX3J0bEISChBfZmFsbGJhY2tfbG9jYWxlIjsKFFVwZGF0ZUxvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSIhChNEZWxldGVMb2NhbGVSZXF1ZXN0EgoKAmlkGAEgASgJIicKFERlbGV0ZUxvY2FsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgirgQKFE5vdGlmaWNhdGlvbkNhdGVnb3J5EgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIUCgxkaXNwbGF5X25hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARIRCglpc19hY3RpdmUYBSABKAgSMAoMZW1haWxfcG9saWN5GAkgASgOMhouc2V0dGluZ3MudjEuQ2hhbm5lbFBvbGljeRIvCgtwdXNoX3BvbGljeRgKIAEoDjIaLnNldHRpbmdzLnYxLkNoYW5uZWxQb2xpY3kSMQoNaW5fYXBwX3BvbGljeRgLIAEoDjIaLnNldHRpbmdzLnYxLkNoYW5uZWxQb2xpY3kSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgBiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIAogBARIuCgpjcmVhdGVkX2F0GCggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GCkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlKBAgGEAdKBAgHEAhKBAgIEAlSDWRlZmF1bHRfZW1haWxSDGRlZmF1bHRfcHVzaFIOZGVmYXVsdF9pbl9hcHAi0gEKIUxpc3ROb3RpZmljYXRpb25DYXRlZ29yaWVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QitgEKIkxpc3ROb3RpZmljYXRpb25DYXRlZ29yaWVzUmVzcG9uc2USNQoKY2F0ZWdvcmllcxgBIAMoCzIhLnNldHRpbmdzLnYxLk5vdGlmaWNhdGlvbkNhdGVnb3J5Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIsCh5HZXROb3RpZmljYXRpb25DYXRlZ29yeVJlcXVlc3QSCgoCaWQYASABKAkiVgofR2V0Tm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXNwb25zZRIzCghjYXRlZ29yeRgBIAEoCzIhLnNldHRpbmdzLnYxLk5vdGlmaWNhdGlvbkNhdGVnb3J5IocDCiFDcmVhdGVOb3RpZmljYXRpb25DYXRlZ29yeVJlcXVlc3QSCwoDa2V5GAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjUKDGVtYWlsX3BvbGljeRgHIAEoDjIaLnNldHRpbmdzLnYxLkNoYW5uZWxQb2xpY3lIAYgBARI0CgtwdXNoX3BvbGljeRgIIAEoDjIaLnNldHRpbmdzLnYxLkNoYW5uZWxQb2xpY3lIAogBARI2Cg1pbl9hcHBfcG9saWN5GAkgASgOMhouc2V0dGluZ3MudjEuQ2hhbm5lbFBvbGljeUgDiAEBQg4KDF9kZXNjcmlwdGlvbkIPCg1fZW1haWxfcG9saWN5Qg4KDF9wdXNoX3BvbGljeUIQCg5faW5fYXBwX3BvbGljeUoECAQQBUoECAUQBkoECAYQB1INZGVmYXVsdF9lbWFpbFIMZGVmYXVsdF9wdXNoUg5kZWZhdWx0X2luX2FwcCJZCiJDcmVhdGVOb3RpZmljYXRpb25DYXRlZ29yeVJlc3BvbnNlEjMKCGNhdGVnb3J5GAEgASgLMiEuc2V0dGluZ3MudjEuTm90aWZpY2F0aW9uQ2F0ZWdvcnkiwgMKIVVwZGF0ZU5vdGlmaWNhdGlvbkNhdGVnb3J5UmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxkaXNwbGF5X25hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEhYKCWlzX2FjdGl2ZRgEIAEoCEgCiAEBEjUKDGVtYWlsX3BvbGljeRgIIAEoDjIaLnNldHRpbmdzLnYxLkNoYW5uZWxQb2xpY3lIA4gBARI0CgtwdXNoX3BvbGljeRgJIAEoDjIaLnNldHRpbmdzLnYxLkNoYW5uZWxQb2xpY3lIBIgBARI2Cg1pbl9hcHBfcG9saWN5GAogASgOMhouc2V0dGluZ3MudjEuQ2hhbm5lbFBvbGljeUgFiAEBQg8KDV9kaXNwbGF5X25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9pc19hY3RpdmVCDwoNX2VtYWlsX3BvbGljeUIOCgxfcHVzaF9wb2xpY3lCEAoOX2luX2FwcF9wb2xpY3lKBAgFEAZKBAgGEAdKBAgHEAhSDWRlZmF1bHRfZW1haWxSDGRlZmF1bHRfcHVzaFIOZGVmYXVsdF9pbl9hcHAiWQoiVXBkYXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXNwb25zZRIzCghjYXRlZ29yeRgBIAEoCzIhLnNldHRpbmdzLnYxLk5vdGlmaWNhdGlvbkNhdGVnb3J5Ii8KIURlbGV0ZU5vdGlmaWNhdGlvbkNhdGVnb3J5UmVxdWVzdBIKCgJpZBgBIAEoCSI1CiJEZWxldGVOb3RpZmljYXRpb25DYXRlZ29yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiQQoPTG9jYWxlQ2hhaW5SdW5nEg4KBmxvY2FsZRgBIAEoCRIOCgZyZWFzb24YAiABKAkSDgoGc2VydmVkGAMgASgIIk0KC0xvY2FsZUNoYWluEhEKCXJlcXVlc3RlZBgBIAEoCRIrCgVydW5ncxgCIAMoCzIcLnNldHRpbmdzLnYxLkxvY2FsZUNoYWluUnVuZyKFAQoLTG9jYWxlRHJhZnQSDgoGbG9jYWxlGAEgASgJEhwKD2ZhbGxiYWNrX2xvY2FsZRgCIAEoCUgAiAEBEhIKCmlzX2RlZmF1bHQYAyABKAgSEQoJaXNfYWN0aXZlGAQgASgIQhIKEF9mYWxsYmFja19sb2NhbGVKBAgFEAZSB2RlbGV0ZWQiUwoWR2V0TG9jYWxlQ2hhaW5zUmVxdWVzdBIPCgdsb2NhbGVzGAEgAygJEigKBmRyYWZ0cxgCIAMoCzIYLnNldHRpbmdzLnYxLkxvY2FsZURyYWZ0IlsKF0dldExvY2FsZUNoYWluc1Jlc3BvbnNlEigKBmNoYWlucxgBIAMoCzIYLnNldHRpbmdzLnYxLkxvY2FsZUNoYWluEhYKDmRlZmF1bHRfbG9jYWxlGAIgASgJIpQBCg5OYXZQcmVmZXJlbmNlcxIZChFmYXZvcml0ZV9wcm9qZWN0cxgBIAMoCRIaChJmYXZvcml0ZV9uYXZfaXRlbXMYAiADKAkSGgoSY29sbGFwc2VkX3NlY3Rpb25zGAMgAygJEi8KDm5hdl9pdGVtX29yZGVyGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIaChhHZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QiTQoZR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRIwCgtwcmVmZXJlbmNlcxgBIAEoCzIbLnNldHRpbmdzLnYxLk5hdlByZWZlcmVuY2VzIvwBChtVcGRhdGVOYXZQcmVmZXJlbmNlc1JlcXVlc3QSNQoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlc0gAiAEBEh4KEXRvZ2dsZV9wcm9qZWN0X2lkGAIgASgJSAGIAQESHAoPdG9nZ2xlX25hdl9pdGVtGAMgASgJSAKIAQESGwoOdG9nZ2xlX3NlY3Rpb24YBCABKAlIA4gBAUIOCgxfcHJlZmVyZW5jZXNCFAoSX3RvZ2dsZV9wcm9qZWN0X2lkQhIKEF90b2dnbGVfbmF2X2l0ZW1CEQoPX3RvZ2dsZV9zZWN0aW9uIlAKHFVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyJeChJSZWNlbnRseU9wZW5lZEl0ZW0SDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgRwYXRoGAQgASgJEhEKCXRpbWVzdGFtcBgFIAEoAyKTAQoZTGlzdFJlY2VudGx5T3BlbmVkUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKYAQoaTGlzdFJlY2VudGx5T3BlbmVkUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5SZWNlbnRseU9wZW5lZEl0ZW0SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIlMKGlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCSIuChtUcmFja1JlY2VudGx5T3BlbmVkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI3ChtSZW1vdmVSZWNlbnRseU9wZW5lZFJlcXVlc3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSIvChxSZW1vdmVSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiHAoaQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QiLgobQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiyQYKEENvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgFIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAYgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgHIAEoCUgBiAEBEhEKCWlzX3N5c3RlbRgIIAEoCBIXCg9idWlsdF9pbl92YWx1ZXMYCSADKAkSPQoQZXZhbHVhdGlvbl9ydWxlcxgOIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAKIAQESEQoJZGF0YV90eXBlGAogASgJEhAKCGNhdGVnb3J5GAsgASgJEhMKC2lzX3JlcXVpcmVkGAwgASgIEhIKCnNvcnRfb3JkZXIYDSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFgoJY29uZmlnX2lkGBYgASgJSAOIAQESFwoKY3JlYXRlZF9ieRgeIAEoCUgEiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIBYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg8IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgHiAEBQg4KDF9kZXNjcmlwdGlvbkIVChNfZGVmYXVsdF9yZWNvcmRfa2V5QhMKEV9ldmFsdWF0aW9uX3J1bGVzQgwKCl9jb25maWdfaWRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCFwoVX3NjaGVkdWxlZF9wdWJsaXNoX2F0QhkKF19zY2hlZHVsZWRfdW5wdWJsaXNoX2F0IjMKFUNvbnRleHREaW1lbnNpb25WYWx1ZRILCgNrZXkYASABKAkSDQoFbGFiZWwYAiABKAki0QEKHExpc3RDb250ZXh0RGltZW5zaW9uc1JlcXVlc3QSEwoGc2VhcmNoGAEgASgJSACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIJCgdfc2VhcmNoQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEoECAoQC0oECAsQDFIFbGltaXRSBm9mZnNldCKtAQodTGlzdENvbnRleHREaW1lbnNpb25zUmVzcG9uc2USMQoKZGltZW5zaW9ucxgBIAMoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIigKGkdldENvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIk8KG0dldENvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIsUCCh1DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhMKC3NvdXJjZV90eXBlGAQgASgJEhgKEHNvdXJjZV9tb2RlbF9rZXkYBSABKAkSHwoSZGVmYXVsdF9yZWNvcmRfa2V5GAYgASgJSAGIAQESPQoQZXZhbHVhdGlvbl9ydWxlcxgHIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAKIAQESFgoJY29uZmlnX2lkGAggASgJSAOIAQFCDgoMX2Rlc2NyaXB0aW9uQhUKE19kZWZhdWx0X3JlY29yZF9rZXlCEwoRX2V2YWx1YXRpb25fcnVsZXNCDAoKX2NvbmZpZ19pZCJSCh5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiLTAgodVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgCiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgDiAEBEhQKB3B1Ymxpc2gYBiABKAhIBIgBARI9ChBldmFsdWF0aW9uX3J1bGVzGAcgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEwoRX3NvdXJjZV9tb2RlbF9rZXlCFQoTX2RlZmF1bHRfcmVjb3JkX2tleUIKCghfcHVibGlzaEITChFfZXZhbHVhdGlvbl9ydWxlcyJSCh5VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiIrCh1EZWxldGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIxCh5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLsAQogR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1JlcXVlc3QSFQoNZGltZW5zaW9uX2tleRgBIAEoCRITCgZzZWFyY2gYAiABKAlIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQgkKB19zZWFyY2hCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0IrIBCiFHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVzcG9uc2USMgoGdmFsdWVzGAEgAygLMiIuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZhbHVlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyLwAwoTVmFyaWFudENhdGFsb2dFbnRyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESEAoIcHJpb3JpdHkYBiABKAUSEgoKaXNfZGVmYXVsdBgHIAEoCBIRCglpc19hY3RpdmUYCCABKAgSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0INCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUoECAkQCkoECAoQC1INZXhwZXJpbWVudF9pZFILZmFsbGJhY2tfaWQi8wEKGUxpc3RWYXJpYW50Q2F0YWxvZ1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIAhADSgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0UgZzZWFyY2giqgEKGkxpc3RWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEjEKB2VudHJpZXMYASADKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIrCh1HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJRCh5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IqsCCiBDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFQoIcHJpb3JpdHkYBSABKAVIAogBARIXCgppc19kZWZhdWx0GAYgASgISAOIAQESFgoJaXNfYWN0aXZlGAcgASgISASIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSK4AgogVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGAQgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IAogBARIVCghwcmlvcml0eRgFIAEoBUgDiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0ILCglfcHJpb3JpdHlCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZSJUCiFVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Ii4KIERlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjQKIURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkMKGUdldFJlc29sdXRpb25TdGF0c1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhMKC3dpbmRvd19kYXlzGAIgASgFIjsKD1Jlc29sdXRpb25Db3VudBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRINCgVjb3VudBgDIAEoAyIwChNSZXNvbHV0aW9uWmVyb1NlcnZlEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJIoABChRSZXNvbHV0aW9uU2VydmVTdGF0cxIyCgxkaXN0cmlidXRpb24YASADKAsyHC5zZXR0aW5ncy52MS5SZXNvbHV0aW9uQ291bnQSNAoKemVyb19zZXJ2ZRgCIAMoCzIgLnNldHRpbmdzLnYxLlJlc29sdXRpb25aZXJvU2VydmUiXQoaUmVzb2x1dGlvbkNvbnRleHREaW1lbnNpb24SEQoJZGltZW5zaW9uGAEgASgJEiwKBnZhbHVlcxgCIAMoCzIcLnNldHRpbmdzLnYxLlJlc29sdXRpb25Db3VudCJkChZSZXNvbHV0aW9uQ29udGV4dFN0YXRzEjsKCmRpbWVuc2lvbnMYASADKAsyJy5zZXR0aW5ncy52MS5SZXNvbHV0aW9uQ29udGV4dERpbWVuc2lvbhINCgVub3RlcxgCIAMoCSJhChtSZXNvbHV0aW9uRmllbGRWYXJpYW50RmllbGQSEgoKZmllbGRfcGF0aBgBIAEoCRIuCgh2YXJpYW50cxgCIAMoCzIcLnNldHRpbmdzLnYxLlJlc29sdXRpb25Db3VudCJdChtSZXNvbHV0aW9uRmllbGRWYXJpYW50U3RhdHMSPgoMZGlzdHJpYnV0aW9uGAEgAygLMiguc2V0dGluZ3MudjEuUmVzb2x1dGlvbkZpZWxkVmFyaWFudEZpZWxkIqoCChRSZXNvbHV0aW9uVHJlbmRQb2ludBILCgNkYXkYASABKAkSDQoFdG90YWwYAiABKAMSTgoPcmVjb3JkX3ZhcmlhbnRzGAMgAygLMjUuc2V0dGluZ3MudjEuUmVzb2x1dGlvblRyZW5kUG9pbnQuUmVjb3JkVmFyaWFudHNFbnRyeRI/Cgdsb2NhbGVzGAQgAygLMi4uc2V0dGluZ3MudjEuUmVzb2x1dGlvblRyZW5kUG9pbnQuTG9jYWxlc0VudHJ5GjUKE1JlY29yZFZhcmlhbnRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ARouCgxMb2NhbGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ASKnAwoaR2V0UmVzb2x1dGlvblN0YXRzUmVzcG9uc2USEQoJcmVjb3JkX2lkGAEgASgJEhMKC3dpbmRvd19kYXlzGAIgASgFEjAKDGdlbmVyYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFAoMbmV2ZXJfc2VydmVkGAQgASgIEjoKD3JlY29yZF92YXJpYW50cxgFIAEoCzIhLnNldHRpbmdzLnYxLlJlc29sdXRpb25TZXJ2ZVN0YXRzEjIKB2xvY2FsZXMYBiABKAsyIS5zZXR0aW5ncy52MS5SZXNvbHV0aW9uU2VydmVTdGF0cxI1Cghjb250ZXh0cxgHIAEoCzIjLnNldHRpbmdzLnYxLlJlc29sdXRpb25Db250ZXh0U3RhdHMSQAoOZmllbGRfdmFyaWFudHMYCCABKAsyKC5zZXR0aW5ncy52MS5SZXNvbHV0aW9uRmllbGRWYXJpYW50U3RhdHMSMAoFdHJlbmQYCSADKAsyIS5zZXR0aW5ncy52MS5SZXNvbHV0aW9uVHJlbmRQb2ludCIsChdHZXRFZGl0b3JDb25maWdzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiwAIKFUVkaXRvckNvbmZpZ1BsYWNlbWVudBIRCgljb25maWdfaWQYASABKAkSEgoKY29uZmlnX2tleRgCIAEoCRIQCgN1cmwYAyABKAlIAIgBARIbCg5hbGxvd2VkX29yaWdpbhgEIAEoCUgBiAEBEhMKBmhlaWdodBgFIAEoBUgCiAEBEhIKBWxhYmVsGAYgASgJSAOIAQESFAoHYXBpX2tleRgHIAEoCUgEiAEBEhQKB2FwaV91cmwYCCABKAlIBYgBARIeChFjb25uZWN0aW9uX2RvbWFpbhgJIAEoCUgGiAEBQgYKBF91cmxCEQoPX2FsbG93ZWRfb3JpZ2luQgkKB19oZWlnaHRCCAoGX2xhYmVsQgoKCF9hcGlfa2V5QgoKCF9hcGlfdXJsQhQKEl9jb25uZWN0aW9uX2RvbWFpbiJSChhHZXRFZGl0b3JDb25maWdzUmVzcG9uc2USNgoKcGxhY2VtZW50cxgBIAMoCzIiLnNldHRpbmdzLnYxLkVkaXRvckNvbmZpZ1BsYWNlbWVudCKFBAoMTm90ZUFwcHJvdmFsEgoKAmlkGAEgASgJEg8KB25vdGVfaWQYAiABKAkSFAoMcmVxdWVzdGVkX2J5GAMgASgJEhkKDGV4ZWN1dGlvbl9pZBgEIAEoCUgAiAEBEhEKCXRvb2xfbmFtZRgFIAEoCRIqCgl0b29sX2FyZ3MYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB3N1bW1hcnkYByABKAkSFQoNcmVxdWlyZWRfdmVyYhgIIAEoCRIOCgZzdGF0dXMYCSABKAkSFwoKZGVjaWRlZF9ieRgKIAEoCUgBiAEBEjMKCmRlY2lkZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGgoNZGVjaWRlX3JlYXNvbhgMIAEoCUgDiAEBEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg8KDV9leGVjdXRpb25faWRCDQoLX2RlY2lkZWRfYnlCDQoLX2RlY2lkZWRfYXRCEAoOX2RlY2lkZV9yZWFzb24ivwEKGUNyZWF0ZU5vdGVBcHByb3ZhbFJlcXVlc3QSDwoHbm90ZV9pZBgBIAEoCRIRCgl0b29sX25hbWUYAiABKAkSKgoJdG9vbF9hcmdzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgdzdW1tYXJ5GAQgASgJEhUKDXJlcXVpcmVkX3ZlcmIYBSABKAkSGQoMZXhlY3V0aW9uX2lkGAYgASgJSACIAQFCDwoNX2V4ZWN1dGlvbl9pZCJJChpDcmVhdGVOb3RlQXBwcm92YWxSZXNwb25zZRIrCghhcHByb3ZhbBgBIAEoCzIZLnNldHRpbmdzLnYxLk5vdGVBcHByb3ZhbCIrChhMaXN0Tm90ZUFwcHJvdmFsc1JlcXVlc3QSDwoHbm90ZV9pZBgBIAEoCSJJChlMaXN0Tm90ZUFwcHJvdmFsc1Jlc3BvbnNlEiwKCWFwcHJvdmFscxgBIAMoCzIZLnNldHRpbmdzLnYxLk5vdGVBcHByb3ZhbCJiChlEZWNpZGVOb3RlQXBwcm92YWxSZXF1ZXN0EhMKC2FwcHJvdmFsX2lkGAEgASgJEhAKCGRlY2lzaW9uGAIgASgJEhMKBnJlYXNvbhgDIAEoCUgAiAEBQgkKB19yZWFzb24iSQoaRGVjaWRlTm90ZUFwcHJvdmFsUmVzcG9uc2USKwoIYXBwcm92YWwYASABKAsyGS5zZXR0aW5ncy52MS5Ob3RlQXBwcm92YWwiVQoYQ3JlYXRlTm90ZUhhbmRvZmZSZXF1ZXN0Eg8KB25vdGVfaWQYASABKAkSGAoLaW5zdHJ1Y3Rpb24YAiABKAlIAIgBAUIOCgxfaW5zdHJ1Y3Rpb24iMQoZQ3JlYXRlTm90ZUhhbmRvZmZSZXNwb25zZRIUCgxleGVjdXRpb25faWQYASABKAkiLgobR2V0Tm90ZUhhbmRvZmZTdGF0dXNSZXF1ZXN0Eg8KB25vdGVfaWQYASABKAkirgEKHEdldE5vdGVIYW5kb2ZmU3RhdHVzUmVzcG9uc2USGQoMZXhlY3V0aW9uX2lkGAIgASgJSACIAQESEwoGc3RhdHVzGAMgASgJSAGIAQESMwoKdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBAUIPCg1fZXhlY3V0aW9uX2lkQgkKB19zdGF0dXNCDQoLX3VwZGF0ZWRfYXQixwIKElNlYXJjaE5vdGVzUmVxdWVzdBINCgVxdWVyeRgBIAEoCRISCgVhZnRlchgDIAEoCUgAiAEBEhMKBmJlZm9yZRgEIAEoCUgBiAEBEhIKBWZpcnN0GAUgASgFSAKIAQESEQoEbGFzdBgGIAEoBUgDiAEBEhkKDHN1YmplY3RfdHlwZRgHIAEoCUgEiAEBEh4KEXN1YmplY3RfbW9kZWxfa2V5GAggASgJSAWIAQESEQoEbW9kZRgJIAEoCUgGiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEIPCg1fc3ViamVjdF90eXBlQhQKEl9zdWJqZWN0X21vZGVsX2tleUIHCgVfbW9kZUoECAIQA0oECAoQC0oECAsQDFILZW50aXR5X3R5cGVSBWxpbWl0UgZvZmZzZXQi2QEKE1NlYXJjaE5vdGVzUmVzcG9uc2USIAoFbm90ZXMYASADKAsyES5zZXR0aW5ncy52MS5Ob3RlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAkSEwoLc2VydmVkX21vZGUYBSABKAkSHAoPZGVncmFkZWRfcmVhc29uGAYgASgJSAGIAQFCDAoKX3BhZ2VfaW5mb0ISChBfZGVncmFkZWRfcmVhc29uIhkKF0dldERlZmF1bHRMb2NhbGVSZXF1ZXN0Ij8KGEdldERlZmF1bHRMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiJgoWR2V0TG9jYWxlQnlDb2RlUmVxdWVzdBIMCgRjb2RlGAEgASgJIj4KF0dldExvY2FsZUJ5Q29kZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSLwAwoMRGVzaWduVG9rZW5zEikKCGRvY3VtZW50GAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIzCghyZXNvbHZlZBgCIAEoCzIhLnNldHRpbmdzLnYxLlJlc29sdmVkRGVzaWduVG9rZW5zEg8KB3ZlcnNpb24YCiABKAUSHgoRcHVibGlzaGVkX3ZlcnNpb24YCyABKAVIAIgBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg8IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQhQKEl9wdWJsaXNoZWRfdmVyc2lvbkIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXQi+gQKFFJlc29sdmVkRGVzaWduVG9rZW5zEi8KBmNvbG9ycxgBIAMoCzIfLnNldHRpbmdzLnYxLlJlc29sdmVkQ29sb3JUb2tlbhI7Cg1mb250X2ZhbWlsaWVzGAIgAygLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRGb250RmFtaWx5VG9rZW4SOgoMZm9udF93ZWlnaHRzGAMgAygLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRGb250V2VpZ2h0VG9rZW4SNwoKZm9udF9zaXplcxgEIAMoCzIjLnNldHRpbmdzLnYxLlJlc29sdmVkRGltZW5zaW9uVG9rZW4SNgoMbGluZV9oZWlnaHRzGAUgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWROdW1iZXJUb2tlbhI8Cg9sZXR0ZXJfc3BhY2luZ3MYBiADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjgKCnR5cG9ncmFwaHkYByADKAsyJC5zZXR0aW5ncy52MS5SZXNvbHZlZFR5cG9ncmFwaHlUb2tlbhI1CghzcGFjaW5ncxgIIAMoCzIjLnNldHRpbmdzLnYxLlJlc29sdmVkRGltZW5zaW9uVG9rZW4SMgoFcmFkaWkYCSADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjEKB3NoYWRvd3MYCiADKAsyIC5zZXR0aW5ncy52MS5SZXNvbHZlZFNoYWRvd1Rva2VuEjEKB2JvcmRlcnMYCyADKAsyIC5zZXR0aW5ncy52MS5SZXNvbHZlZEJvcmRlclRva2VuImkKElJlc29sdmVkQ29sb3JUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoCUIOCgxfZGVzY3JpcHRpb24ibgoXUmVzb2x2ZWRGb250RmFtaWx5VG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDQoFdmFsdWUYBCADKAlCDgoMX2Rlc2NyaXB0aW9uIm4KF1Jlc29sdmVkRm9udFdlaWdodFRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgASgFQg4KDF9kZXNjcmlwdGlvbiJtChZSZXNvbHZlZERpbWVuc2lvblRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgASgJQg4KDF9kZXNjcmlwdGlvbiJqChNSZXNvbHZlZE51bWJlclRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgASgBQg4KDF9kZXNjcmlwdGlvbiLMAQoXUmVzb2x2ZWRUeXBvZ3JhcGh5VG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESMwoFdmFsdWUYBCABKAsyJC5zZXR0aW5ncy52MS5SZXNvbHZlZFR5cG9ncmFwaHlWYWx1ZRISCgVsYWJlbBgFIAEoCUgBiAEBEhAKA3RhZxgGIAEoCUgCiAEBQg4KDF9kZXNjcmlwdGlvbkIICgZfbGFiZWxCBgoEX3RhZyKNAQoTUmVzb2x2ZWRTaGFkb3dUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARIwCgZsYXllcnMYBCADKAsyIC5zZXR0aW5ncy52MS5SZXNvbHZlZFNoYWRvd0xheWVyQg4KDF9kZXNjcmlwdGlvbiJ1ChNSZXNvbHZlZFNoYWRvd0xheWVyEhAKCG9mZnNldF94GAEgASgJEhAKCG9mZnNldF95GAIgASgJEgwKBGJsdXIYAyABKAkSDgoGc3ByZWFkGAQgASgJEg0KBWNvbG9yGAUgASgJEg0KBWluc2V0GAYgASgIIowBChNSZXNvbHZlZEJvcmRlclRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEi8KBXZhbHVlGAQgASgLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRCb3JkZXJWYWx1ZUIOCgxfZGVzY3JpcHRpb24iQgoTUmVzb2x2ZWRCb3JkZXJWYWx1ZRINCgVjb2xvchgBIAEoCRINCgV3aWR0aBgCIAEoCRINCgVzdHlsZRgDIAEoCSKbAQoXUmVzb2x2ZWRUeXBvZ3JhcGh5VmFsdWUSEwoLZm9udF9mYW1pbHkYASADKAkSEQoJZm9udF9zaXplGAIgASgJEhMKC2ZvbnRfd2VpZ2h0GAMgASgFEhMKC2xpbmVfaGVpZ2h0GAQgASgBEhYKDmxldHRlcl9zcGFjaW5nGAUgASgJEhYKDnRleHRfdHJhbnNmb3JtGAYgASgJIkQKFkdldERlc2lnblRva2Vuc1JlcXVlc3QSKgoHY2hhbm5lbBgBIAEoDjIZLnB1Ymxpc2gudjEuU2NoZW1hQ2hhbm5lbCJEChdHZXREZXNpZ25Ub2tlbnNSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMiRgoZVXBkYXRlRGVzaWduVG9rZW5zUmVxdWVzdBIpCghkb2N1bWVudBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiRwoaVXBkYXRlRGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIhwKGlB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXF1ZXN0In4KG1B1Ymxpc2hEZXNpZ25Ub2tlbnNSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMSNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiHgocVW5wdWJsaXNoRGVzaWduVG9rZW5zUmVxdWVzdCJKCh1VbnB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMiJQojR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1c1JlcXVlc3QiUQokR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1c1Jlc3BvbnNlEikKBnN0YXR1cxgBIAEoCzIZLnB1Ymxpc2gudjEuUHVibGlzaFN0YXR1cyI3CiFDb3VudERlc2lnblRva2VuUmVmZXJlbmNlc1JlcXVlc3QSEgoKdG9rZW5fcGF0aBgBIAEoCSJTCiJDb3VudERlc2lnblRva2VuUmVmZXJlbmNlc1Jlc3BvbnNlEhcKD3BhcmFncmFwaF9jb3VudBgBIAEoBRIUCgxyZWNvcmRfY291bnQYAiABKAUi2QIKEkRlc2lnblRva2VuVmVyc2lvbhIKCgJpZBgBIAEoCRIYChBkZXNpZ25fdG9rZW5zX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEikKCHNuYXBzaG90GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnkimAEKHkxpc3REZXNpZ25Ub2tlblZlcnNpb25zUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKvAQofTGlzdERlc2lnblRva2VuVmVyc2lvbnNSZXNwb25zZRIxCgh2ZXJzaW9ucxgBIAMoCzIfLnNldHRpbmdzLnYxLkRlc2lnblRva2VuVmVyc2lvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ibgogUmVzdG9yZURlc2lnblRva2VuVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIoQBCiFSZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zEjQKC25ld192ZXJzaW9uGAIgASgLMh8uc2V0dGluZ3MudjEuRGVzaWduVG9rZW5WZXJzaW9uIkUKF0dldFByb2plY3RTY2hlbWFSZXF1ZXN0EioKB2NoYW5uZWwYASABKA4yGS5wdWJsaXNoLnYxLlNjaGVtYUNoYW5uZWwiZQoSUHJvamVjdFNjaGVtYU1vZGVsEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhMKC2ZpZWxkc19qc29uGAQgASgJEhMKC2NvbmZpZ19qc29uGAUgASgJIsIBCh1Qcm9qZWN0U2NoZW1hQ29udGV4dERpbWVuc2lvbhIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIdChBzb3VyY2VfbW9kZWxfa2V5GAQgASgJSACIAQESHwoSZGVmYXVsdF9yZWNvcmRfa2V5GAUgASgJSAGIAQESDgoGdmFsdWVzGAYgAygJQhMKEV9zb3VyY2VfbW9kZWxfa2V5QhUKE19kZWZhdWx0X3JlY29yZF9rZXkijgEKGVByb2plY3RTY2hlbWFBdXRoUHJvdmlkZXISCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSDAoEdHlwZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIEiwKBmNvbmZpZxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIJCgdfY29uZmlnIp8DChZQcm9qZWN0U2NoZW1hT3BlcmF0aW9uEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhAKCGVuZHBvaW50GAMgASgJEhIKCnRpbWVvdXRfbXMYBCABKAUSMgoMaW5wdXRfc2NoZW1hGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEjMKDW91dHB1dF9zY2hlbWEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESFgoOc3VwcG9ydHNfYXN5bmMYByABKAgSDAoEa2luZBgIIAEoCRIeChFhdHRhY2hlZF90b19tb2RlbBgJIAEoCUgCiAEBEhUKDXBhcmVudF9maWVsZHMYCiADKAkSMwoNY2FjaGVfY29udHJvbBgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBAUIPCg1faW5wdXRfc2NoZW1hQhAKDl9vdXRwdXRfc2NoZW1hQhQKEl9hdHRhY2hlZF90b19tb2RlbEIQCg5fY2FjaGVfY29udHJvbCJEChRQcm9qZWN0U2NoZW1hU2VnbWVudBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIRCglpc19hY3RpdmUYAyABKAgihgUKGEdldFByb2plY3RTY2hlbWFSZXNwb25zZRIvCgZtb2RlbHMYASADKAsyHy5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hTW9kZWwSPgoKZGltZW5zaW9ucxgCIAMoCzIqLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFDb250ZXh0RGltZW5zaW9uEj4KDmF1dGhfcHJvdmlkZXJzGAMgAygLMiYuc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYUF1dGhQcm92aWRlchI3CgpvcGVyYXRpb25zGAQgAygLMiMuc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYU9wZXJhdGlvbhIzCghzZWdtZW50cxgFIAMoCzIhLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFTZWdtZW50EiYKGWN1c3RvbWVyX3Bhc3N3b3JkX2VuYWJsZWQYCCABKAhIAIgBARIhChRjdXN0b21lcl9vdHBfZW5hYmxlZBgJIAEoCEgBiAEBEhoKEnZhcmlhbnRfZGltZW5zaW9ucxgKIAMoCRIlChhub3RlX3NjcmVlbnNob3RzX2VuYWJsZWQYCyABKAhIAogBARIkChdhbm9ueW1vdXNfbm90ZXNfZW5hYmxlZBgMIAEoCEgDiAEBQhwKGl9jdXN0b21lcl9wYXNzd29yZF9lbmFibGVkQhcKFV9jdXN0b21lcl9vdHBfZW5hYmxlZEIbChlfbm90ZV9zY3JlZW5zaG90c19lbmFibGVkQhoKGF9hbm9ueW1vdXNfbm90ZXNfZW5hYmxlZEoECAYQB0oECAcQCFILZXhwZXJpbWVudHNSDnByb2ZpbGVfc2NoZW1hIiwKHlB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSKJAQofUHVibGlzaENvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIi4KIFVucHVibGlzaENvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlUKIVVucHVibGlzaENvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIjUKJ0dldENvbnRleHREaW1lbnNpb25QdWJsaXNoU3RhdHVzUmVxdWVzdBIKCgJpZBgBIAEoCSJVCihHZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1c1Jlc3BvbnNlEikKBnN0YXR1cxgBIAEoCzIZLnB1Ymxpc2gudjEuUHVibGlzaFN0YXR1cyLiAgoXQ29udGV4dERpbWVuc2lvblZlcnNpb24SCgoCaWQYASABKAkSHAoUY29udGV4dF9kaW1lbnNpb25faWQYAiABKAkSFgoOdmVyc2lvbl9udW1iZXIYAyABKAUSKQoIc25hcHNob3QYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGNvbnRlbnRfaGFzaBgFIAEoCRIeChFzb3VyY2VfdmVyc2lvbl9pZBgGIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgHIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYCSABKAlIAogBAUIUChJfc291cmNlX3ZlcnNpb25faWRCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkINCgtfY3JlYXRlZF9ieSK7AQojTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1JlcXVlc3QSHAoUY29udGV4dF9kaW1lbnNpb25faWQYASABKAkSEgoFYWZ0ZXIYAiABKAlIAIgBARITCgZiZWZvcmUYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBEhEKBGxhc3QYBSABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiuQEKJExpc3RDb250ZXh0RGltZW5zaW9uVmVyc2lvbnNSZXNwb25zZRI2Cgh2ZXJzaW9ucxgBIAMoCzIkLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WZXJzaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJzCiVSZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkSHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAIgASgJSACIAQFCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiKVAQomUmVzdG9yZUNvbnRleHREaW1lbnNpb25WZXJzaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbhI5CgtuZXdfdmVyc2lvbhgCIAEoCzIkLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WZXJzaW9uIh0KG1B1Ymxpc2hQcm9qZWN0U2NoZW1hUmVxdWVzdCL0AQocUHVibGlzaFByb2plY3RTY2hlbWFSZXNwb25zZRIYChBtb2RlbHNfcHVibGlzaGVkGAEgASgFEhwKFG9wZXJhdGlvbnNfcHVibGlzaGVkGAIgASgFEiQKHGNvbnRleHRfZGltZW5zaW9uc19wdWJsaXNoZWQYAyABKAUSIAoYYXV0aF9wcm92aWRlcnNfcHVibGlzaGVkGAQgASgFEjQKEGJyZWFraW5nX2NoYW5nZXMYBiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlSgQIBRAGUhhwcm9maWxlX3NjaGVtYV9wdWJsaXNoZWQiIAoeR2V0UHJvamVjdFB1Ymxpc2hTdGF0dXNSZXF1ZXN0IoMBCh9HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1Jlc3BvbnNlEioKB3BlbmRpbmcYASADKAsyGS5wdWJsaXNoLnYxLlBlbmRpbmdFbnRpdHkSNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UirAEKJlNjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0IlsKJ1NjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIjsKLUNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJiCi5DYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24qiwEKDUNoYW5uZWxQb2xpY3kSHgoaQ0hBTk5FTF9QT0xJQ1lfVU5TUEVDSUZJRUQQABIdChlDSEFOTkVMX1BPTElDWV9ERUZBVUxUX09OEAESHgoaQ0hBTk5FTF9QT0xJQ1lfREVGQVVMVF9PRkYQAhIbChdDSEFOTkVMX1BPTElDWV9SRVFVSVJFRBADMvM2Cg9TZXR0aW5nc1NlcnZpY2USVgoNTGlzdEF1ZGl0TG9ncxIhLnNldHRpbmdzLnYxLkxpc3RBdWRpdExvZ3NSZXF1ZXN0GiIuc2V0dGluZ3MudjEuTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEk0KCkNyZWF0ZU5vdGUSHi5zZXR0aW5ncy52MS5DcmVhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVSZXNwb25zZRJECgdHZXROb3RlEhsuc2V0dGluZ3MudjEuR2V0Tm90ZVJlcXVlc3QaHC5zZXR0aW5ncy52MS5HZXROb3RlUmVzcG9uc2USSgoJTGlzdE5vdGVzEh0uc2V0dGluZ3MudjEuTGlzdE5vdGVzUmVxdWVzdBoeLnNldHRpbmdzLnYxLkxpc3ROb3Rlc1Jlc3BvbnNlEk0KClVwZGF0ZU5vdGUSHi5zZXR0aW5ncy52MS5VcGRhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLlVwZGF0ZU5vdGVSZXNwb25zZRJNCgpEZWxldGVOb3RlEh4uc2V0dGluZ3MudjEuRGVsZXRlTm90ZVJlcXVlc3QaHy5zZXR0aW5ncy52MS5EZWxldGVOb3RlUmVzcG9uc2USUAoLU2VhcmNoTm90ZXMSHy5zZXR0aW5ncy52MS5TZWFyY2hOb3Rlc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5TZWFyY2hOb3Rlc1Jlc3BvbnNlEmUKEkNyZWF0ZU5vdGVBcHByb3ZhbBImLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVBcHByb3ZhbFJlcXVlc3QaJy5zZXR0aW5ncy52MS5DcmVhdGVOb3RlQXBwcm92YWxSZXNwb25zZRJiChFMaXN0Tm90ZUFwcHJvdmFscxIlLnNldHRpbmdzLnYxLkxpc3ROb3RlQXBwcm92YWxzUmVxdWVzdBomLnNldHRpbmdzLnYxLkxpc3ROb3RlQXBwcm92YWxzUmVzcG9uc2USZQoSRGVjaWRlTm90ZUFwcHJvdmFsEiYuc2V0dGluZ3MudjEuRGVjaWRlTm90ZUFwcHJvdmFsUmVxdWVzdBonLnNldHRpbmdzLnYxLkRlY2lkZU5vdGVBcHByb3ZhbFJlc3BvbnNlEmIKEUNyZWF0ZU5vdGVIYW5kb2ZmEiUuc2V0dGluZ3MudjEuQ3JlYXRlTm90ZUhhbmRvZmZSZXF1ZXN0GiYuc2V0dGluZ3MudjEuQ3JlYXRlTm90ZUhhbmRvZmZSZXNwb25zZRJrChRHZXROb3RlSGFuZG9mZlN0YXR1cxIoLnNldHRpbmdzLnYxLkdldE5vdGVIYW5kb2ZmU3RhdHVzUmVxdWVzdBopLnNldHRpbmdzLnYxLkdldE5vdGVIYW5kb2ZmU3RhdHVzUmVzcG9uc2USWQoOTGlzdE15TWVudGlvbnMSIi5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1JlcXVlc3QaIy5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1Jlc3BvbnNlEmgKE1VwZGF0ZU1lbnRpb25TdGF0dXMSJy5zZXR0aW5ncy52MS5VcGRhdGVNZW50aW9uU3RhdHVzUmVxdWVzdBooLnNldHRpbmdzLnYxLlVwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRJiChFTZXRNZW50aW9uRHVlRGF0ZRIlLnNldHRpbmdzLnYxLlNldE1lbnRpb25EdWVEYXRlUmVxdWVzdBomLnNldHRpbmdzLnYxLlNldE1lbnRpb25EdWVEYXRlUmVzcG9uc2USUAoLTGlzdExvY2FsZXMSHy5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1Jlc3BvbnNlEkoKCUdldExvY2FsZRIdLnNldHRpbmdzLnYxLkdldExvY2FsZVJlcXVlc3QaHi5zZXR0aW5ncy52MS5HZXRMb2NhbGVSZXNwb25zZRJfChBHZXREZWZhdWx0TG9jYWxlEiQuc2V0dGluZ3MudjEuR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXREZWZhdWx0TG9jYWxlUmVzcG9uc2USXAoPR2V0TG9jYWxlQnlDb2RlEiMuc2V0dGluZ3MudjEuR2V0TG9jYWxlQnlDb2RlUmVxdWVzdBokLnNldHRpbmdzLnYxLkdldExvY2FsZUJ5Q29kZVJlc3BvbnNlElMKDENyZWF0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLkNyZWF0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5DcmVhdGVMb2NhbGVSZXNwb25zZRJTCgxVcGRhdGVMb2NhbGUSIC5zZXR0aW5ncy52MS5VcGRhdGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuVXBkYXRlTG9jYWxlUmVzcG9uc2USUwoMRGVsZXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuRGVsZXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLkRlbGV0ZUxvY2FsZVJlc3BvbnNlEn0KGkxpc3ROb3RpZmljYXRpb25DYXRlZ29yaWVzEi4uc2V0dGluZ3MudjEuTGlzdE5vdGlmaWNhdGlvbkNhdGVnb3JpZXNSZXF1ZXN0Gi8uc2V0dGluZ3MudjEuTGlzdE5vdGlmaWNhdGlvbkNhdGVnb3JpZXNSZXNwb25zZRJ0ChdHZXROb3RpZmljYXRpb25DYXRlZ29yeRIrLnNldHRpbmdzLnYxLkdldE5vdGlmaWNhdGlvbkNhdGVnb3J5UmVxdWVzdBosLnNldHRpbmdzLnYxLkdldE5vdGlmaWNhdGlvbkNhdGVnb3J5UmVzcG9uc2USfQoaQ3JlYXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnkSLi5zZXR0aW5ncy52MS5DcmVhdGVOb3RpZmljYXRpb25DYXRlZ29yeVJlcXVlc3QaLy5zZXR0aW5ncy52MS5DcmVhdGVOb3RpZmljYXRpb25DYXRlZ29yeVJlc3BvbnNlEn0KGlVwZGF0ZU5vdGlmaWNhdGlvbkNhdGVnb3J5Ei4uc2V0dGluZ3MudjEuVXBkYXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXF1ZXN0Gi8uc2V0dGluZ3MudjEuVXBkYXRlTm90aWZpY2F0aW9uQ2F0ZWdvcnlSZXNwb25zZRJ9ChpEZWxldGVOb3RpZmljYXRpb25DYXRlZ29yeRIuLnNldHRpbmdzLnYxLkRlbGV0ZU5vdGlmaWNhdGlvbkNhdGVnb3J5UmVxdWVzdBovLnNldHRpbmdzLnYxLkRlbGV0ZU5vdGlmaWNhdGlvbkNhdGVnb3J5UmVzcG9uc2USXAoPR2V0TG9jYWxlQ2hhaW5zEiMuc2V0dGluZ3MudjEuR2V0TG9jYWxlQ2hhaW5zUmVxdWVzdBokLnNldHRpbmdzLnYxLkdldExvY2FsZUNoYWluc1Jlc3BvbnNlEmIKEUdldE5hdlByZWZlcmVuY2VzEiUuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXF1ZXN0GiYuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRJrChRVcGRhdGVOYXZQcmVmZXJlbmNlcxIoLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVxdWVzdBopLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USZQoSTGlzdFJlY2VudGx5T3BlbmVkEiYuc2V0dGluZ3MudjEuTGlzdFJlY2VudGx5T3BlbmVkUmVxdWVzdBonLnNldHRpbmdzLnYxLkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmgKE1RyYWNrUmVjZW50bHlPcGVuZWQSJy5zZXR0aW5ncy52MS5UcmFja1JlY2VudGx5T3BlbmVkUmVxdWVzdBooLnNldHRpbmdzLnYxLlRyYWNrUmVjZW50bHlPcGVuZWRSZXNwb25zZRJrChRSZW1vdmVSZWNlbnRseU9wZW5lZBIoLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVxdWVzdBopLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVzcG9uc2USaAoTQ2xlYXJSZWNlbnRseU9wZW5lZBInLnNldHRpbmdzLnYxLkNsZWFyUmVjZW50bHlPcGVuZWRSZXF1ZXN0Giguc2V0dGluZ3MudjEuQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlEm4KFUxpc3RDb250ZXh0RGltZW5zaW9ucxIpLnNldHRpbmdzLnYxLkxpc3RDb250ZXh0RGltZW5zaW9uc1JlcXVlc3QaKi5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvbnNSZXNwb25zZRJoChNHZXRDb250ZXh0RGltZW5zaW9uEicuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QaKC5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUmVzcG9uc2UScQoWQ3JlYXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLkNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnEKFlVwZGF0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJxChZEZWxldGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuRGVsZXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USegoZR2V0Q29udGV4dERpbWVuc2lvblZhbHVlcxItLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1Jlc3BvbnNlEl8KEEdldEVkaXRvckNvbmZpZ3MSJC5zZXR0aW5ncy52MS5HZXRFZGl0b3JDb25maWdzUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRJlChJMaXN0VmFyaWFudENhdGFsb2cSJi5zZXR0aW5ncy52MS5MaXN0VmFyaWFudENhdGFsb2dSZXF1ZXN0Gicuc2V0dGluZ3MudjEuTGlzdFZhcmlhbnRDYXRhbG9nUmVzcG9uc2UScQoWR2V0VmFyaWFudENhdGFsb2dFbnRyeRIqLnNldHRpbmdzLnYxLkdldFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gisuc2V0dGluZ3MudjEuR2V0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGUNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5DcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLkNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5VcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZRGVsZXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLkRlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuRGVsZXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEmUKEkdldFJlc29sdXRpb25TdGF0cxImLnNldHRpbmdzLnYxLkdldFJlc29sdXRpb25TdGF0c1JlcXVlc3QaJy5zZXR0aW5ncy52MS5HZXRSZXNvbHV0aW9uU3RhdHNSZXNwb25zZRJfChBHZXRQcm9qZWN0U2NoZW1hEiQuc2V0dGluZ3MudjEuR2V0UHJvamVjdFNjaGVtYVJlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXRQcm9qZWN0U2NoZW1hUmVzcG9uc2USdAoXUHVibGlzaENvbnRleHREaW1lbnNpb24SKy5zZXR0aW5ncy52MS5QdWJsaXNoQ29udGV4dERpbWVuc2lvblJlcXVlc3QaLC5zZXR0aW5ncy52MS5QdWJsaXNoQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnoKGVVucHVibGlzaENvbnRleHREaW1lbnNpb24SLS5zZXR0aW5ncy52MS5VbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVxdWVzdBouLnNldHRpbmdzLnYxLlVucHVibGlzaENvbnRleHREaW1lbnNpb25SZXNwb25zZRKPAQogR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXMSNC5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1c1JlcXVlc3QaNS5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1c1Jlc3BvbnNlEowBCh9TY2hlZHVsZUNvbnRleHREaW1lbnNpb25QdWJsaXNoEjMuc2V0dGluZ3MudjEuU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlcXVlc3QaNC5zZXR0aW5ncy52MS5TY2hlZHVsZUNvbnRleHREaW1lbnNpb25QdWJsaXNoUmVzcG9uc2USoQEKJkNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoEjouc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0Gjsuc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXNwb25zZRKDAQocTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9ucxIwLnNldHRpbmdzLnYxLkxpc3RDb250ZXh0RGltZW5zaW9uVmVyc2lvbnNSZXF1ZXN0GjEuc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1Jlc3BvbnNlEokBCh5SZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb24SMi5zZXR0aW5ncy52MS5SZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXF1ZXN0GjMuc2V0dGluZ3MudjEuUmVzdG9yZUNvbnRleHREaW1lbnNpb25WZXJzaW9uUmVzcG9uc2USdAoXR2V0UHJvamVjdFB1Ymxpc2hTdGF0dXMSKy5zZXR0aW5ncy52MS5HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1JlcXVlc3QaLC5zZXR0aW5ncy52MS5HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1Jlc3BvbnNlEmsKFFB1Ymxpc2hQcm9qZWN0U2NoZW1hEiguc2V0dGluZ3MudjEuUHVibGlzaFByb2plY3RTY2hlbWFSZXF1ZXN0Gikuc2V0dGluZ3MudjEuUHVibGlzaFByb2plY3RTY2hlbWFSZXNwb25zZRJcCg9HZXREZXNpZ25Ub2tlbnMSIy5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlbnNSZXF1ZXN0GiQuc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5zUmVzcG9uc2USZQoSVXBkYXRlRGVzaWduVG9rZW5zEiYuc2V0dGluZ3MudjEuVXBkYXRlRGVzaWduVG9rZW5zUmVxdWVzdBonLnNldHRpbmdzLnYxLlVwZGF0ZURlc2lnblRva2Vuc1Jlc3BvbnNlEmgKE1B1Ymxpc2hEZXNpZ25Ub2tlbnMSJy5zZXR0aW5ncy52MS5QdWJsaXNoRGVzaWduVG9rZW5zUmVxdWVzdBooLnNldHRpbmdzLnYxLlB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXNwb25zZRJuChVVbnB1Ymxpc2hEZXNpZ25Ub2tlbnMSKS5zZXR0aW5ncy52MS5VbnB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXF1ZXN0Giouc2V0dGluZ3MudjEuVW5wdWJsaXNoRGVzaWduVG9rZW5zUmVzcG9uc2USgwEKHEdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXMSMC5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlbnNQdWJsaXNoU3RhdHVzUmVxdWVzdBoxLnNldHRpbmdzLnYxLkdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXNwb25zZRJ9ChpDb3VudERlc2lnblRva2VuUmVmZXJlbmNlcxIuLnNldHRpbmdzLnYxLkNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzUmVxdWVzdBovLnNldHRpbmdzLnYxLkNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzUmVzcG9uc2USdAoXTGlzdERlc2lnblRva2VuVmVyc2lvbnMSKy5zZXR0aW5ncy52MS5MaXN0RGVzaWduVG9rZW5WZXJzaW9uc1JlcXVlc3QaLC5zZXR0aW5ncy52MS5MaXN0RGVzaWduVG9rZW5WZXJzaW9uc1Jlc3BvbnNlEnoKGVJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb24SLS5zZXR0aW5ncy52MS5SZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uUmVxdWVzdBouLnNldHRpbmdzLnYxLlJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb25SZXNwb25zZUI9WjtnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vc2V0dGluZ3MvdjE7c2V0dGluZ3N2MWIGcHJvdG8z", [file_google_protobuf_struct6, file_google_protobuf_timestamp7, file_expressions_v1_expressions, file_publish_v1_publish, file_common_v1_pagination]);
|
|
1044
1066
|
var NoteSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 1);
|
|
1045
|
-
var ListAuditLogsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings,
|
|
1046
|
-
var CreateNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings,
|
|
1047
|
-
var GetNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings,
|
|
1048
|
-
var ListNotesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings,
|
|
1049
|
-
var UpdateNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings,
|
|
1050
|
-
var DeleteNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings,
|
|
1051
|
-
var ListMyMentionsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings,
|
|
1052
|
-
var UpdateMentionStatusRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings,
|
|
1053
|
-
var
|
|
1054
|
-
var
|
|
1055
|
-
var
|
|
1056
|
-
var
|
|
1057
|
-
var
|
|
1058
|
-
var
|
|
1059
|
-
var
|
|
1060
|
-
var
|
|
1061
|
-
var
|
|
1062
|
-
var
|
|
1063
|
-
var
|
|
1064
|
-
var
|
|
1065
|
-
var
|
|
1066
|
-
var
|
|
1067
|
-
var
|
|
1068
|
-
var
|
|
1069
|
-
var
|
|
1070
|
-
var
|
|
1071
|
-
var
|
|
1072
|
-
var
|
|
1073
|
-
var
|
|
1074
|
-
var
|
|
1075
|
-
var
|
|
1076
|
-
var
|
|
1077
|
-
var
|
|
1078
|
-
var
|
|
1079
|
-
var
|
|
1080
|
-
var
|
|
1081
|
-
var
|
|
1082
|
-
var
|
|
1083
|
-
var
|
|
1084
|
-
var
|
|
1085
|
-
var
|
|
1086
|
-
var
|
|
1087
|
-
var
|
|
1088
|
-
var
|
|
1089
|
-
var
|
|
1090
|
-
var
|
|
1091
|
-
var
|
|
1092
|
-
var
|
|
1093
|
-
var
|
|
1094
|
-
var
|
|
1095
|
-
var
|
|
1096
|
-
var
|
|
1097
|
-
var
|
|
1098
|
-
var
|
|
1099
|
-
var
|
|
1100
|
-
var
|
|
1101
|
-
var
|
|
1102
|
-
var
|
|
1103
|
-
var
|
|
1104
|
-
var
|
|
1105
|
-
var
|
|
1067
|
+
var ListAuditLogsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 3);
|
|
1068
|
+
var CreateNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 5);
|
|
1069
|
+
var GetNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 7);
|
|
1070
|
+
var ListNotesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 9);
|
|
1071
|
+
var UpdateNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 11);
|
|
1072
|
+
var DeleteNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 13);
|
|
1073
|
+
var ListMyMentionsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 18);
|
|
1074
|
+
var UpdateMentionStatusRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 20);
|
|
1075
|
+
var SetMentionDueDateRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 22);
|
|
1076
|
+
var LocaleSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 24);
|
|
1077
|
+
var ListLocalesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 25);
|
|
1078
|
+
var GetLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 27);
|
|
1079
|
+
var CreateLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 29);
|
|
1080
|
+
var UpdateLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 31);
|
|
1081
|
+
var DeleteLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 33);
|
|
1082
|
+
var ListNotificationCategoriesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 36);
|
|
1083
|
+
var GetNotificationCategoryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 38);
|
|
1084
|
+
var CreateNotificationCategoryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 40);
|
|
1085
|
+
var UpdateNotificationCategoryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 42);
|
|
1086
|
+
var DeleteNotificationCategoryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 44);
|
|
1087
|
+
var GetLocaleChainsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 49);
|
|
1088
|
+
var GetNavPreferencesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 52);
|
|
1089
|
+
var UpdateNavPreferencesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 54);
|
|
1090
|
+
var ListRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 57);
|
|
1091
|
+
var TrackRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 59);
|
|
1092
|
+
var RemoveRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 61);
|
|
1093
|
+
var ClearRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 63);
|
|
1094
|
+
var ContextDimensionSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 65);
|
|
1095
|
+
var ListContextDimensionsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 67);
|
|
1096
|
+
var GetContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 69);
|
|
1097
|
+
var CreateContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 71);
|
|
1098
|
+
var UpdateContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 73);
|
|
1099
|
+
var DeleteContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 75);
|
|
1100
|
+
var GetContextDimensionValuesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 77);
|
|
1101
|
+
var VariantCatalogEntrySchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 79);
|
|
1102
|
+
var ListVariantCatalogRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 80);
|
|
1103
|
+
var GetVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 82);
|
|
1104
|
+
var CreateVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 84);
|
|
1105
|
+
var UpdateVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 86);
|
|
1106
|
+
var DeleteVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 88);
|
|
1107
|
+
var GetResolutionStatsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 90);
|
|
1108
|
+
var GetEditorConfigsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 100);
|
|
1109
|
+
var CreateNoteApprovalRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 104);
|
|
1110
|
+
var ListNoteApprovalsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 106);
|
|
1111
|
+
var DecideNoteApprovalRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 108);
|
|
1112
|
+
var CreateNoteHandoffRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 110);
|
|
1113
|
+
var GetNoteHandoffStatusRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 112);
|
|
1114
|
+
var SearchNotesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 114);
|
|
1115
|
+
var GetDefaultLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 116);
|
|
1116
|
+
var GetLocaleByCodeRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 118);
|
|
1117
|
+
var GetDesignTokensRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 133);
|
|
1118
|
+
var UpdateDesignTokensRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 135);
|
|
1119
|
+
var PublishDesignTokensRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 137);
|
|
1120
|
+
var UnpublishDesignTokensRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 139);
|
|
1121
|
+
var GetDesignTokensPublishStatusRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 141);
|
|
1122
|
+
var CountDesignTokenReferencesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 143);
|
|
1123
|
+
var ListDesignTokenVersionsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 146);
|
|
1124
|
+
var RestoreDesignTokenVersionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 148);
|
|
1125
|
+
var PublishContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 157);
|
|
1126
|
+
var UnpublishContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 159);
|
|
1127
|
+
var GetContextDimensionPublishStatusRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 161);
|
|
1128
|
+
var ListContextDimensionVersionsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 164);
|
|
1129
|
+
var RestoreContextDimensionVersionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 166);
|
|
1130
|
+
var PublishProjectSchemaRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 168);
|
|
1131
|
+
var GetProjectPublishStatusRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 170);
|
|
1132
|
+
var ScheduleContextDimensionPublishRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 172);
|
|
1133
|
+
var CancelScheduledContextDimensionPublishRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 174);
|
|
1106
1134
|
var SettingsService = /* @__PURE__ */ serviceDesc7(file_settings_v1_settings, 0);
|
|
1107
1135
|
|
|
1108
1136
|
// ../../packages/proto-ts/src/storage/v1/storage_pb.js
|
|
@@ -1207,7 +1235,7 @@ var HooksService = /* @__PURE__ */ serviceDesc11(file_hooks_v1_hooks, 0);
|
|
|
1207
1235
|
// ../../packages/proto-ts/src/notifications/v1/notifications_pb.js
|
|
1208
1236
|
import { enumDesc as enumDesc13, fileDesc as fileDesc16, messageDesc as messageDesc16, serviceDesc as serviceDesc12, tsEnum as tsEnum13 } from "@bufbuild/protobuf/codegenv2";
|
|
1209
1237
|
import { file_google_protobuf_struct as file_google_protobuf_struct10, file_google_protobuf_timestamp as file_google_protobuf_timestamp11 } from "@bufbuild/protobuf/wkt";
|
|
1210
|
-
var file_notifications_v1_notifications = /* @__PURE__ */ fileDesc16("CiRub3RpZmljYXRpb25zL3YxL25vdGlmaWNhdGlvbnMucHJvdG8SEG5vdGlmaWNhdGlvbnMudjEisAUKDE5vdGlmaWNhdGlvbhIKCgJpZBgBIAEoCRIPCgd1c2VyX2lkGAIgASgJEjAKBHR5cGUYAyABKA4yIi5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvblR5cGUSDQoFdGl0bGUYBCABKAkSFAoHbWVzc2FnZRgFIAEoCUgAiAEBEjIKDHJpY2hfY29udGVudBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARJCCgtzb3VyY2VfdHlwZRgKIAEoDjIoLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uU291cmNlVHlwZUgCiAEBEhYKCXNvdXJjZV9pZBgLIAEoCUgDiAEBEhcKCmFjdGlvbl91cmwYDCABKAlIBIgBARIuCghtZXRhZGF0YRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIPCgdpc19yZWFkGBQgASgIEjAKB3JlYWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQESEQoJdGVuYW50X2lkGB4gASgJEhcKCnByb2plY3RfaWQYHyABKAlIB4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpleHBpcmVzX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgIiAEBQgoKCF9tZXNzYWdlQg8KDV9yaWNoX2NvbnRlbnRCDgoMX3NvdXJjZV90eXBlQgwKCl9zb3VyY2VfaWRCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgoKCF9yZWFkX2F0Qg0KC19wcm9qZWN0X2lkQg0KC19leHBpcmVzX2F0IuoBChhMaXN0Tm90aWZpY2F0aW9uc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIBhAHSgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0IsMBChlMaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlEjUKDW5vdGlmaWNhdGlvbnMYASADKAsyHi5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvbhINCgV0b3RhbBgCIAEoBRIUCgx1bnJlYWRfY291bnQYAyABKAUSKwoJcGFnZV9pbmZvGAQgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgFIAMoCUIMCgpfcGFnZV9pbmZvIikKG01hcmtOb3RpZmljYXRpb25SZWFkUmVxdWVzdBIKCgJpZBgBIAEoCSIvChxNYXJrTm90aWZpY2F0aW9uUmVhZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiYQofTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVxdWVzdBI1CgR0eXBlGAEgASgOMiIubm90aWZpY2F0aW9ucy52MS5Ob3RpZmljYXRpb25UeXBlSACIAQFCBwoFX3R5cGUiMQogTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2USDQoFY291bnQYASABKAUiJwoZRGVsZXRlTm90aWZpY2F0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSItChpEZWxldGVOb3RpZmljYXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhcKFUdldFVucmVhZENvdW50UmVxdWVzdCInChZHZXRVbnJlYWRDb3VudFJlc3BvbnNlEg0KBWNvdW50GAEgASgFItQBChdTZW5kQW5ub3VuY2VtZW50UmVxdWVzdBINCgV0aXRsZRgBIAEoCRIUCgdtZXNzYWdlGAIgASgJSACIAQESFwoKYWN0aW9uX3VybBgDIAEoCUgBiAEBEhgKC3RhcmdldF90eXBlGAQgASgJSAKIAQESEgoKdGFyZ2V0X2lkcxgFIAMoCRIVCghjYXRlZ29yeRgGIAEoCUgDiAEBQgoKCF9tZXNzYWdlQg0KC19hY3Rpb25fdXJsQg4KDF90YXJnZXRfdHlwZUILCglfY2F0ZWdvcnkiUAoYU2VuZEFubm91bmNlbWVudFJlc3BvbnNlEjQKDG5vdGlmaWNhdGlvbhgBIAEoCzIeLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uIpgBCh5MaXN0QW5ub3VuY2VtZW50SGlzdG9yeVJlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiswEKH0xpc3RBbm5vdW5jZW1lbnRIaXN0b3J5UmVzcG9uc2USNQoNYW5ub3VuY2VtZW50cxgBIAMoCzIeLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKBBAoUQ3VzdG9tZXJOb3RpZmljYXRpb24SCgoCaWQYASABKAkSEwoLY3VzdG9tZXJfaWQYAiABKAkSDQoFdGl0bGUYAyABKAkSFAoHbWVzc2FnZRgEIAEoCUgAiAEBEhUKCGNhdGVnb3J5GAUgASgJSAGIAQESFwoKYWN0aW9uX3VybBgGIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEg8KB2lzX3JlYWQYCCABKAgSMAoHcmVhZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIWCglpbWFnZV91cmwYCiABKAlIBYgBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpleHBpcmVzX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBQgoKCF9tZXNzYWdlQgsKCV9jYXRlZ29yeUINCgtfYWN0aW9uX3VybEILCglfbWV0YWRhdGFCCgoIX3JlYWRfYXRCDAoKX2ltYWdlX3VybEINCgtfZXhwaXJlc19hdCL4AQogTGlzdEN1c3RvbWVyTm90aWZpY2F0aW9uc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIBhAHSgQIBxAISgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0Ir0BCiFMaXN0Q3VzdG9tZXJOb3RpZmljYXRpb25zUmVzcG9uc2USPQoNbm90aWZpY2F0aW9ucxgBIAMoCzImLm5vdGlmaWNhdGlvbnMudjEuQ3VzdG9tZXJOb3RpZmljYXRpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIoYFCh9TZW5kQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEg0KBXRpdGxlGAIgASgJEhQKB21lc3NhZ2UYAyABKAlIAIgBARIVCghjYXRlZ29yeRgEIAEoCUgBiAEBEhcKCmFjdGlvbl91cmwYBSABKAlIAogBARIuCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIWCglpbWFnZV91cmwYByABKAlIBIgBARIzCgpleHBpcmVzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBElEKCGNoYW5uZWxzGAkgAygLMj8ubm90aWZpY2F0aW9ucy52MS5TZW5kQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0LkNoYW5uZWxzRW50cnkaSAoNQ2hhbm5lbHNFbnRyeRILCgNrZXkYASABKAkSJgoFdmFsdWUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0OgI4AUIKCghfbWVzc2FnZUILCglfY2F0ZWdvcnlCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgwKCl9pbWFnZV91cmxCDQoLX2V4cGlyZXNfYXRKBAgKEAtKBAgLEAxKBAgMEA1KBAgNEA5KBAgUEBVKBAgVEBZKBAgWEBdKBAgXEBhSCWRlZXBfbGlua1IFYmFkZ2VSCXRocmVhZF9pZFIJcHVzaF9kYXRhUg1lbWFpbF9zdWJqZWN0UgplbWFpbF9ib2R5Ug5lbWFpbF9yZXBseV90b1IKZW1haWxfY3RhcyJgCiBTZW5kQ3VzdG9tZXJOb3RpZmljYXRpb25SZXNwb25zZRI8Cgxub3RpZmljYXRpb24YASABKAsyJi5ub3RpZmljYXRpb25zLnYxLkN1c3RvbWVyTm90aWZpY2F0aW9uIoAECiNTZW5kQnVsa0N1c3RvbWVyTm90aWZpY2F0aW9uUmVxdWVzdBIUCgxjdXN0b21lcl9pZHMYASADKAkSDQoFdGl0bGUYAiABKAkSFAoHbWVzc2FnZRgDIAEoCUgAiAEBEhUKCGNhdGVnb3J5GAQgASgJSAGIAQESFwoKYWN0aW9uX3VybBgFIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhYKCWltYWdlX3VybBgHIAEoCUgEiAEBEjMKCmV4cGlyZXNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESVQoIY2hhbm5lbHMYCSADKAsyQy5ub3RpZmljYXRpb25zLnYxLlNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0LkNoYW5uZWxzRW50cnkaSAoNQ2hhbm5lbHNFbnRyeRILCgNrZXkYASABKAkSJgoFdmFsdWUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0OgI4AUIKCghfbWVzc2FnZUILCglfY2F0ZWdvcnlCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgwKCl9pbWFnZV91cmxCDQoLX2V4cGlyZXNfYXQiNQokU2VuZEJ1bGtDdXN0b21lck5vdGlmaWNhdGlvblJlc3BvbnNlEg0KBWNvdW50GAEgASgFIjEKI01hcmtDdXN0b21lck5vdGlmaWNhdGlvblJlYWRSZXF1ZXN0EgoKAmlkGAEgASgJIjcKJE1hcmtDdXN0b21lck5vdGlmaWNhdGlvblJlYWRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIlMKJ01hcmtBbGxDdXN0b21lck5vdGlmaWNhdGlvbnNSZWFkUmVxdWVzdBIYCgtjdXN0b21lcl9pZBgBIAEoCUgAiAEBQg4KDF9jdXN0b21lcl9pZCI5CihNYXJrQWxsQ3VzdG9tZXJOb3RpZmljYXRpb25zUmVhZFJlc3BvbnNlEg0KBWNvdW50GAEgASgFIt0BChZOb3RpZmljYXRpb25QcmVmZXJlbmNlEhAKCGNhdGVnb3J5GAEgASgJEhUKDWVtYWlsX2VuYWJsZWQYAiABKAgSFAoMcHVzaF9lbmFibGVkGAMgASgIEhYKDmluX2FwcF9lbmFibGVkGAQgASgIEhQKDGVtYWlsX3NvdXJjZRgFIAEoCRIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpwcm9qZWN0X2lkGAcgASgJSACIAQFCDQoLX3Byb2plY3RfaWQiOAohR2V0Tm90aWZpY2F0aW9uUHJlZmVyZW5jZXNSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJImMKIkdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUmVzcG9uc2USPQoLcHJlZmVyZW5jZXMYASADKAsyKC5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvblByZWZlcmVuY2Ui1gEKI1VwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2VSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEhAKCGNhdGVnb3J5GAIgASgJEhoKDWVtYWlsX2VuYWJsZWQYAyABKAhIAIgBARIZCgxwdXNoX2VuYWJsZWQYBCABKAhIAYgBARIbCg5pbl9hcHBfZW5hYmxlZBgFIAEoCEgCiAEBQhAKDl9lbWFpbF9lbmFibGVkQg8KDV9wdXNoX2VuYWJsZWRCEQoPX2luX2FwcF9lbmFibGVkIjcKJFVwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2VSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIInwKGlJlZ2lzdGVyRGV2aWNlVG9rZW5SZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEg0KBXRva2VuGAIgASgJEhAKCHBsYXRmb3JtGAMgASgJEhgKC2RldmljZV9uYW1lGAQgASgJSACIAQFCDgoMX2RldmljZV9uYW1lIi4KG1JlZ2lzdGVyRGV2aWNlVG9rZW5SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIi0KHFVucmVnaXN0ZXJEZXZpY2VUb2tlblJlcXVlc3QSDQoFdG9rZW4YASABKAkiMAodVW5yZWdpc3RlckRldmljZVRva2VuUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLIAwoOUHVzaENyZWRlbnRpYWwSCgoCaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghwbGF0Zm9ybRgDIAEoCRIWCglidW5kbGVfaWQYCiABKAlIAIgBARIZCgxhcG5zX3RlYW1faWQYCyABKAlIAYgBARIYCgthcG5zX2tleV9pZBgMIAEoCUgCiAEBEhwKD2FwbnNfcHJvZHVjdGlvbhgNIAEoCEgDiAEBEhsKDmZjbV9wcm9qZWN0X2lkGBQgASgJSASIAQESHQoQZmNtX2NsaWVudF9lbWFpbBgVIAEoCUgFiAEBEhIKCmhhc19zZWNyZXQYHiABKAgSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDAoKX2J1bmRsZV9pZEIPCg1fYXBuc190ZWFtX2lkQg4KDF9hcG5zX2tleV9pZEISChBfYXBuc19wcm9kdWN0aW9uQhEKD19mY21fcHJvamVjdF9pZEITChFfZmNtX2NsaWVudF9lbWFpbCLfAgobVXBsb2FkUHVzaENyZWRlbnRpYWxSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEAoIcGxhdGZvcm0YAiABKAkSGAoLYXBuc19wOF9rZXkYCiABKAlIAIgBARIWCglidW5kbGVfaWQYCyABKAlIAYgBARIZCgxhcG5zX3RlYW1faWQYDCABKAlIAogBARIYCgthcG5zX2tleV9pZBgNIAEoCUgDiAEBEhwKD2FwbnNfcHJvZHVjdGlvbhgOIAEoCEgEiAEBEiUKGGZjbV9zZXJ2aWNlX2FjY291bnRfanNvbhgUIAEoCUgFiAEBQg4KDF9hcG5zX3A4X2tleUIMCgpfYnVuZGxlX2lkQg8KDV9hcG5zX3RlYW1faWRCDgoMX2FwbnNfa2V5X2lkQhIKEF9hcG5zX3Byb2R1Y3Rpb25CGwoZX2ZjbV9zZXJ2aWNlX2FjY291bnRfanNvbiJUChxVcGxvYWRQdXNoQ3JlZGVudGlhbFJlc3BvbnNlEjQKCmNyZWRlbnRpYWwYASABKAsyIC5ub3RpZmljYXRpb25zLnYxLlB1c2hDcmVkZW50aWFsIjAKGkxpc3RQdXNoQ3JlZGVudGlhbHNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiVAobTGlzdFB1c2hDcmVkZW50aWFsc1Jlc3BvbnNlEjUKC2NyZWRlbnRpYWxzGAEgAygLMiAubm90aWZpY2F0aW9ucy52MS5QdXNoQ3JlZGVudGlhbCIpChtEZWxldGVQdXNoQ3JlZGVudGlhbFJlcXVlc3QSCgoCaWQYASABKAkiLwocRGVsZXRlUHVzaENyZWRlbnRpYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhkKF0dldFdlYlB1c2hDb25maWdSZXF1ZXN0IjQKGEdldFdlYlB1c2hDb25maWdSZXNwb25zZRIYChB2YXBpZF9wdWJsaWNfa2V5GAEgASgJKsgCChBOb3RpZmljYXRpb25UeXBlEiEKHU5PVElGSUNBVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASIwofTk9USUZJQ0FUSU9OX1RZUEVfSk9CX0NPTVBMRVRFRBABEiAKHE5PVElGSUNBVElPTl9UWVBFX0pPQl9GQUlMRUQQAhIiCh5OT1RJRklDQVRJT05fVFlQRV9KT0JfUFJPR1JFU1MQAxIdChlOT1RJRklDQVRJT05fVFlQRV9NRU5USU9OEAQSIAocTk9USUZJQ0FUSU9OX1RZUEVfTk9URV9SRVBMWRAFEiMKH05PVElGSUNBVElPTl9UWVBFX05PVEVfUkVTT0xWRUQQBhIcChhOT1RJRklDQVRJT05fVFlQRV9TWVNURU0QBxIiCh5OT1RJRklDQVRJT05fVFlQRV9BTk5PVU5DRU1FTlQQCCr1AQoWTm90aWZpY2F0aW9uU291cmNlVHlwZRIoCiROT1RJRklDQVRJT05fU09VUkNFX1RZUEVfVU5TUEVDSUZJRUQQABIjCh9OT1RJRklDQVRJT05fU09VUkNFX1RZUEVfUkVDT1JEEAESIgoeTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX01PREVMEAISIQodTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX05PVEUQAxIgChxOT1RJRklDQVRJT05fU09VUkNFX1RZUEVfSk9CEAQSIwofTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX1NZU1RFTRAFMtwTChROb3RpZmljYXRpb25zU2VydmljZRJsChFMaXN0Tm90aWZpY2F0aW9ucxIqLm5vdGlmaWNhdGlvbnMudjEuTGlzdE5vdGlmaWNhdGlvbnNSZXF1ZXN0Gisubm90aWZpY2F0aW9ucy52MS5MaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlEmMKDkdldFVucmVhZENvdW50Eicubm90aWZpY2F0aW9ucy52MS5HZXRVbnJlYWRDb3VudFJlcXVlc3QaKC5ub3RpZmljYXRpb25zLnYxLkdldFVucmVhZENvdW50UmVzcG9uc2USdQoUTWFya05vdGlmaWNhdGlvblJlYWQSLS5ub3RpZmljYXRpb25zLnYxLk1hcmtOb3RpZmljYXRpb25SZWFkUmVxdWVzdBouLm5vdGlmaWNhdGlvbnMudjEuTWFya05vdGlmaWNhdGlvblJlYWRSZXNwb25zZRKBAQoYTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkEjEubm90aWZpY2F0aW9ucy52MS5NYXJrQWxsTm90aWZpY2F0aW9uc1JlYWRSZXF1ZXN0GjIubm90aWZpY2F0aW9ucy52MS5NYXJrQWxsTm90aWZpY2F0aW9uc1JlYWRSZXNwb25zZRJvChJEZWxldGVOb3RpZmljYXRpb24SKy5ub3RpZmljYXRpb25zLnYxLkRlbGV0ZU5vdGlmaWNhdGlvblJlcXVlc3QaLC5ub3RpZmljYXRpb25zLnYxLkRlbGV0ZU5vdGlmaWNhdGlvblJlc3BvbnNlEmkKEFNlbmRBbm5vdW5jZW1lbnQSKS5ub3RpZmljYXRpb25zLnYxLlNlbmRBbm5vdW5jZW1lbnRSZXF1ZXN0Gioubm90aWZpY2F0aW9ucy52MS5TZW5kQW5ub3VuY2VtZW50UmVzcG9uc2USfgoXTGlzdEFubm91bmNlbWVudEhpc3RvcnkSMC5ub3RpZmljYXRpb25zLnYxLkxpc3RBbm5vdW5jZW1lbnRIaXN0b3J5UmVxdWVzdBoxLm5vdGlmaWNhdGlvbnMudjEuTGlzdEFubm91bmNlbWVudEhpc3RvcnlSZXNwb25zZRKEAQoZTGlzdEN1c3RvbWVyTm90aWZpY2F0aW9ucxIyLm5vdGlmaWNhdGlvbnMudjEuTGlzdEN1c3RvbWVyTm90aWZpY2F0aW9uc1JlcXVlc3QaMy5ub3RpZmljYXRpb25zLnYxLkxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnNSZXNwb25zZRKBAQoYU2VuZEN1c3RvbWVyTm90aWZpY2F0aW9uEjEubm90aWZpY2F0aW9ucy52MS5TZW5kQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0GjIubm90aWZpY2F0aW9ucy52MS5TZW5kQ3VzdG9tZXJOb3RpZmljYXRpb25SZXNwb25zZRKNAQocU2VuZEJ1bGtDdXN0b21lck5vdGlmaWNhdGlvbhI1Lm5vdGlmaWNhdGlvbnMudjEuU2VuZEJ1bGtDdXN0b21lck5vdGlmaWNhdGlvblJlcXVlc3QaNi5ub3RpZmljYXRpb25zLnYxLlNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXNwb25zZRKNAQocTWFya0N1c3RvbWVyTm90aWZpY2F0aW9uUmVhZBI1Lm5vdGlmaWNhdGlvbnMudjEuTWFya0N1c3RvbWVyTm90aWZpY2F0aW9uUmVhZFJlcXVlc3QaNi5ub3RpZmljYXRpb25zLnYxLk1hcmtDdXN0b21lck5vdGlmaWNhdGlvblJlYWRSZXNwb25zZRKZAQogTWFya0FsbEN1c3RvbWVyTm90aWZpY2F0aW9uc1JlYWQSOS5ub3RpZmljYXRpb25zLnYxLk1hcmtBbGxDdXN0b21lck5vdGlmaWNhdGlvbnNSZWFkUmVxdWVzdBo6Lm5vdGlmaWNhdGlvbnMudjEuTWFya0FsbEN1c3RvbWVyTm90aWZpY2F0aW9uc1JlYWRSZXNwb25zZRKHAQoaR2V0Tm90aWZpY2F0aW9uUHJlZmVyZW5jZXMSMy5ub3RpZmljYXRpb25zLnYxLkdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUmVxdWVzdBo0Lm5vdGlmaWNhdGlvbnMudjEuR2V0Tm90aWZpY2F0aW9uUHJlZmVyZW5jZXNSZXNwb25zZRKNAQocVXBkYXRlTm90aWZpY2F0aW9uUHJlZmVyZW5jZRI1Lm5vdGlmaWNhdGlvbnMudjEuVXBkYXRlTm90aWZpY2F0aW9uUHJlZmVyZW5jZVJlcXVlc3QaNi5ub3RpZmljYXRpb25zLnYxLlVwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2VSZXNwb25zZRJyChNSZWdpc3RlckRldmljZVRva2VuEiwubm90aWZpY2F0aW9ucy52MS5SZWdpc3RlckRldmljZVRva2VuUmVxdWVzdBotLm5vdGlmaWNhdGlvbnMudjEuUmVnaXN0ZXJEZXZpY2VUb2tlblJlc3BvbnNlEngKFVVucmVnaXN0ZXJEZXZpY2VUb2tlbhIuLm5vdGlmaWNhdGlvbnMudjEuVW5yZWdpc3RlckRldmljZVRva2VuUmVxdWVzdBovLm5vdGlmaWNhdGlvbnMudjEuVW5yZWdpc3RlckRldmljZVRva2VuUmVzcG9uc2USaQoQR2V0V2ViUHVzaENvbmZpZxIpLm5vdGlmaWNhdGlvbnMudjEuR2V0V2ViUHVzaENvbmZpZ1JlcXVlc3QaKi5ub3RpZmljYXRpb25zLnYxLkdldFdlYlB1c2hDb25maWdSZXNwb25zZRJ1ChRVcGxvYWRQdXNoQ3JlZGVudGlhbBItLm5vdGlmaWNhdGlvbnMudjEuVXBsb2FkUHVzaENyZWRlbnRpYWxSZXF1ZXN0Gi4ubm90aWZpY2F0aW9ucy52MS5VcGxvYWRQdXNoQ3JlZGVudGlhbFJlc3BvbnNlEnIKE0xpc3RQdXNoQ3JlZGVudGlhbHMSLC5ub3RpZmljYXRpb25zLnYxLkxpc3RQdXNoQ3JlZGVudGlhbHNSZXF1ZXN0Gi0ubm90aWZpY2F0aW9ucy52MS5MaXN0UHVzaENyZWRlbnRpYWxzUmVzcG9uc2USdQoURGVsZXRlUHVzaENyZWRlbnRpYWwSLS5ub3RpZmljYXRpb25zLnYxLkRlbGV0ZVB1c2hDcmVkZW50aWFsUmVxdWVzdBouLm5vdGlmaWNhdGlvbnMudjEuRGVsZXRlUHVzaENyZWRlbnRpYWxSZXNwb25zZUJHWkVnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vbm90aWZpY2F0aW9ucy92MTtub3RpZmljYXRpb25zdjFiBnByb3RvMw", [file_google_protobuf_struct10, file_google_protobuf_timestamp11, file_common_v1_pagination]);
|
|
1238
|
+
var file_notifications_v1_notifications = /* @__PURE__ */ fileDesc16("CiRub3RpZmljYXRpb25zL3YxL25vdGlmaWNhdGlvbnMucHJvdG8SEG5vdGlmaWNhdGlvbnMudjEisAUKDE5vdGlmaWNhdGlvbhIKCgJpZBgBIAEoCRIPCgd1c2VyX2lkGAIgASgJEjAKBHR5cGUYAyABKA4yIi5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvblR5cGUSDQoFdGl0bGUYBCABKAkSFAoHbWVzc2FnZRgFIAEoCUgAiAEBEjIKDHJpY2hfY29udGVudBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARJCCgtzb3VyY2VfdHlwZRgKIAEoDjIoLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uU291cmNlVHlwZUgCiAEBEhYKCXNvdXJjZV9pZBgLIAEoCUgDiAEBEhcKCmFjdGlvbl91cmwYDCABKAlIBIgBARIuCghtZXRhZGF0YRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIPCgdpc19yZWFkGBQgASgIEjAKB3JlYWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQESEQoJdGVuYW50X2lkGB4gASgJEhcKCnByb2plY3RfaWQYHyABKAlIB4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpleHBpcmVzX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgIiAEBQgoKCF9tZXNzYWdlQg8KDV9yaWNoX2NvbnRlbnRCDgoMX3NvdXJjZV90eXBlQgwKCl9zb3VyY2VfaWRCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgoKCF9yZWFkX2F0Qg0KC19wcm9qZWN0X2lkQg0KC19leHBpcmVzX2F0IuoBChhMaXN0Tm90aWZpY2F0aW9uc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0SgQIBhAHSgQIChALSgQICxAMUgVsaW1pdFIGb2Zmc2V0IsMBChlMaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlEjUKDW5vdGlmaWNhdGlvbnMYASADKAsyHi5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvbhINCgV0b3RhbBgCIAEoBRIUCgx1bnJlYWRfY291bnQYAyABKAUSKwoJcGFnZV9pbmZvGAQgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgFIAMoCUIMCgpfcGFnZV9pbmZvIikKG01hcmtOb3RpZmljYXRpb25SZWFkUmVxdWVzdBIKCgJpZBgBIAEoCSIvChxNYXJrTm90aWZpY2F0aW9uUmVhZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiYQofTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVxdWVzdBI1CgR0eXBlGAEgASgOMiIubm90aWZpY2F0aW9ucy52MS5Ob3RpZmljYXRpb25UeXBlSACIAQFCBwoFX3R5cGUiMQogTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2USDQoFY291bnQYASABKAUiJwoZRGVsZXRlTm90aWZpY2F0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSItChpEZWxldGVOb3RpZmljYXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhcKFUdldFVucmVhZENvdW50UmVxdWVzdCInChZHZXRVbnJlYWRDb3VudFJlc3BvbnNlEg0KBWNvdW50GAEgASgFIvYBChdTZW5kQW5ub3VuY2VtZW50UmVxdWVzdBINCgV0aXRsZRgBIAEoCRIUCgdtZXNzYWdlGAIgASgJSACIAQESFwoKYWN0aW9uX3VybBgDIAEoCUgBiAEBEhgKC3RhcmdldF90eXBlGAQgASgJSAKIAQESEgoKdGFyZ2V0X2lkcxgFIAMoCRIVCghjYXRlZ29yeRgGIAEoCUgDiAEBEhQKB2RyeV9ydW4YByABKAhIBIgBAUIKCghfbWVzc2FnZUINCgtfYWN0aW9uX3VybEIOCgxfdGFyZ2V0X3R5cGVCCwoJX2NhdGVnb3J5QgoKCF9kcnlfcnVuIooBChhTZW5kQW5ub3VuY2VtZW50UmVzcG9uc2USNAoMbm90aWZpY2F0aW9uGAEgASgLMh4ubm90aWZpY2F0aW9ucy52MS5Ob3RpZmljYXRpb24SOAoIYXVkaWVuY2UYAiABKAsyJi5ub3RpZmljYXRpb25zLnYxLkFubm91bmNlbWVudEF1ZGllbmNlInkKFEFubm91bmNlbWVudEF1ZGllbmNlEhcKD3JlY2lwaWVudF9jb3VudBgBIAEoBRIXCg93b3Jrc3BhY2VfY291bnQYAiABKAUSGAoQc3VwcHJlc3NlZF9jb3VudBgDIAEoBRIVCg1zYW1wbGVfZW1haWxzGAQgAygJIpgBCh5MaXN0QW5ub3VuY2VtZW50SGlzdG9yeVJlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiswEKH0xpc3RBbm5vdW5jZW1lbnRIaXN0b3J5UmVzcG9uc2USNQoNYW5ub3VuY2VtZW50cxgBIAMoCzIeLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKnBAoUQ3VzdG9tZXJOb3RpZmljYXRpb24SCgoCaWQYASABKAkSEwoLY3VzdG9tZXJfaWQYAiABKAkSDQoFdGl0bGUYAyABKAkSFAoHbWVzc2FnZRgEIAEoCUgAiAEBEhYKCXJpY2hfYm9keRgWIAEoCUgBiAEBEhUKCGNhdGVnb3J5GAUgASgJSAKIAQESFwoKYWN0aW9uX3VybBgGIAEoCUgDiAEBEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEg8KB2lzX3JlYWQYCCABKAgSMAoHcmVhZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIWCglpbWFnZV91cmwYCiABKAlIBogBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpleHBpcmVzX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgHiAEBQgoKCF9tZXNzYWdlQgwKCl9yaWNoX2JvZHlCCwoJX2NhdGVnb3J5Qg0KC19hY3Rpb25fdXJsQgsKCV9tZXRhZGF0YUIKCghfcmVhZF9hdEIMCgpfaW1hZ2VfdXJsQg0KC19leHBpcmVzX2F0IvgBCiBMaXN0Q3VzdG9tZXJOb3RpZmljYXRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3RKBAgGEAdKBAgHEAhKBAgKEAtKBAgLEAxSBWxpbWl0UgZvZmZzZXQivQEKIUxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnNSZXNwb25zZRI9Cg1ub3RpZmljYXRpb25zGAEgAygLMiYubm90aWZpY2F0aW9ucy52MS5DdXN0b21lck5vdGlmaWNhdGlvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8igAYKH1NlbmRDdXN0b21lck5vdGlmaWNhdGlvblJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSDQoFdGl0bGUYAiABKAkSFAoHbWVzc2FnZRgDIAEoCUgAiAEBEhUKCGNhdGVnb3J5GAQgASgJSAGIAQESFwoKYWN0aW9uX3VybBgFIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhYKCWltYWdlX3VybBgHIAEoCUgEiAEBEjMKCmV4cGlyZXNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESUQoIY2hhbm5lbHMYCSADKAsyPy5ub3RpZmljYXRpb25zLnYxLlNlbmRDdXN0b21lck5vdGlmaWNhdGlvblJlcXVlc3QuQ2hhbm5lbHNFbnRyeRIcCg9jb3B5X2FjdGlvbl9rZXkYDiABKAlIBogBARIWCglyaWNoX2JvZHkYDyABKAlIB4gBARIUCgdkcnlfcnVuGBAgASgISAiIAQEaSAoNQ2hhbm5lbHNFbnRyeRILCgNrZXkYASABKAkSJgoFdmFsdWUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0OgI4AUIKCghfbWVzc2FnZUILCglfY2F0ZWdvcnlCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgwKCl9pbWFnZV91cmxCDQoLX2V4cGlyZXNfYXRCEgoQX2NvcHlfYWN0aW9uX2tleUIMCgpfcmljaF9ib2R5QgoKCF9kcnlfcnVuSgQIChALSgQICxAMSgQIDBANSgQIDRAOSgQIFBAVSgQIFRAWSgQIFhAXSgQIFxAYUglkZWVwX2xpbmtSBWJhZGdlUgl0aHJlYWRfaWRSCXB1c2hfZGF0YVINZW1haWxfc3ViamVjdFIKZW1haWxfYm9keVIOZW1haWxfcmVwbHlfdG9SCmVtYWlsX2N0YXMioAEKIFNlbmRDdXN0b21lck5vdGlmaWNhdGlvblJlc3BvbnNlEjwKDG5vdGlmaWNhdGlvbhgBIAEoCzImLm5vdGlmaWNhdGlvbnMudjEuQ3VzdG9tZXJOb3RpZmljYXRpb24SPgoHcHJldmlldxgCIAEoCzItLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uRGVsaXZlcnlQcmV2aWV3IpUBChtOb3RpZmljYXRpb25EZWxpdmVyeVByZXZpZXcSFwoPcmVjaXBpZW50X2NvdW50GAEgASgFEhMKC2VtYWlsX2NvdW50GAIgASgFEhIKCnB1c2hfY291bnQYAyABKAUSFAoMaW5fYXBwX2NvdW50GAQgASgFEh4KFmZ1bGx5X3N1cHByZXNzZWRfY291bnQYBSABKAUiogQKI1NlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0EhQKDGN1c3RvbWVyX2lkcxgBIAMoCRINCgV0aXRsZRgCIAEoCRIUCgdtZXNzYWdlGAMgASgJSACIAQESFQoIY2F0ZWdvcnkYBCABKAlIAYgBARIXCgphY3Rpb25fdXJsGAUgASgJSAKIAQESLgoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESFgoJaW1hZ2VfdXJsGAcgASgJSASIAQESMwoKZXhwaXJlc19hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARJVCghjaGFubmVscxgJIAMoCzJDLm5vdGlmaWNhdGlvbnMudjEuU2VuZEJ1bGtDdXN0b21lck5vdGlmaWNhdGlvblJlcXVlc3QuQ2hhbm5lbHNFbnRyeRIUCgdkcnlfcnVuGAogASgISAaIAQEaSAoNQ2hhbm5lbHNFbnRyeRILCgNrZXkYASABKAkSJgoFdmFsdWUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0OgI4AUIKCghfbWVzc2FnZUILCglfY2F0ZWdvcnlCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgwKCl9pbWFnZV91cmxCDQoLX2V4cGlyZXNfYXRCCgoIX2RyeV9ydW4idQokU2VuZEJ1bGtDdXN0b21lck5vdGlmaWNhdGlvblJlc3BvbnNlEg0KBWNvdW50GAEgASgFEj4KB3ByZXZpZXcYAiABKAsyLS5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvbkRlbGl2ZXJ5UHJldmlldyIxCiNNYXJrQ3VzdG9tZXJOb3RpZmljYXRpb25SZWFkUmVxdWVzdBIKCgJpZBgBIAEoCSI3CiRNYXJrQ3VzdG9tZXJOb3RpZmljYXRpb25SZWFkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJTCidNYXJrQWxsQ3VzdG9tZXJOb3RpZmljYXRpb25zUmVhZFJlcXVlc3QSGAoLY3VzdG9tZXJfaWQYASABKAlIAIgBAUIOCgxfY3VzdG9tZXJfaWQiOQooTWFya0FsbEN1c3RvbWVyTm90aWZpY2F0aW9uc1JlYWRSZXNwb25zZRINCgVjb3VudBgBIAEoBSLdAQoWTm90aWZpY2F0aW9uUHJlZmVyZW5jZRIQCghjYXRlZ29yeRgBIAEoCRIVCg1lbWFpbF9lbmFibGVkGAIgASgIEhQKDHB1c2hfZW5hYmxlZBgDIAEoCBIWCg5pbl9hcHBfZW5hYmxlZBgEIAEoCBIUCgxlbWFpbF9zb3VyY2UYBSABKAkSLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKcHJvamVjdF9pZBgHIAEoCUgAiAEBQg0KC19wcm9qZWN0X2lkIjgKIUdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCSJjCiJHZXROb3RpZmljYXRpb25QcmVmZXJlbmNlc1Jlc3BvbnNlEj0KC3ByZWZlcmVuY2VzGAEgAygLMigubm90aWZpY2F0aW9ucy52MS5Ob3RpZmljYXRpb25QcmVmZXJlbmNlItYBCiNVcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRIaCg1lbWFpbF9lbmFibGVkGAMgASgISACIAQESGQoMcHVzaF9lbmFibGVkGAQgASgISAGIAQESGwoOaW5fYXBwX2VuYWJsZWQYBSABKAhIAogBAUIQCg5fZW1haWxfZW5hYmxlZEIPCg1fcHVzaF9lbmFibGVkQhEKD19pbl9hcHBfZW5hYmxlZCI3CiRVcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJ8ChpSZWdpc3RlckRldmljZVRva2VuUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRINCgV0b2tlbhgCIAEoCRIQCghwbGF0Zm9ybRgDIAEoCRIYCgtkZXZpY2VfbmFtZRgEIAEoCUgAiAEBQg4KDF9kZXZpY2VfbmFtZSIuChtSZWdpc3RlckRldmljZVRva2VuUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCItChxVbnJlZ2lzdGVyRGV2aWNlVG9rZW5SZXF1ZXN0Eg0KBXRva2VuGAEgASgJIjAKHVVucmVnaXN0ZXJEZXZpY2VUb2tlblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiyAMKDlB1c2hDcmVkZW50aWFsEgoKAmlkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIcGxhdGZvcm0YAyABKAkSFgoJYnVuZGxlX2lkGAogASgJSACIAQESGQoMYXBuc190ZWFtX2lkGAsgASgJSAGIAQESGAoLYXBuc19rZXlfaWQYDCABKAlIAogBARIcCg9hcG5zX3Byb2R1Y3Rpb24YDSABKAhIA4gBARIbCg5mY21fcHJvamVjdF9pZBgUIAEoCUgEiAEBEh0KEGZjbV9jbGllbnRfZW1haWwYFSABKAlIBYgBARISCgpoYXNfc2VjcmV0GB4gASgIEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9idW5kbGVfaWRCDwoNX2FwbnNfdGVhbV9pZEIOCgxfYXBuc19rZXlfaWRCEgoQX2FwbnNfcHJvZHVjdGlvbkIRCg9fZmNtX3Byb2plY3RfaWRCEwoRX2ZjbV9jbGllbnRfZW1haWwi3wIKG1VwbG9hZFB1c2hDcmVkZW50aWFsUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhAKCHBsYXRmb3JtGAIgASgJEhgKC2FwbnNfcDhfa2V5GAogASgJSACIAQESFgoJYnVuZGxlX2lkGAsgASgJSAGIAQESGQoMYXBuc190ZWFtX2lkGAwgASgJSAKIAQESGAoLYXBuc19rZXlfaWQYDSABKAlIA4gBARIcCg9hcG5zX3Byb2R1Y3Rpb24YDiABKAhIBIgBARIlChhmY21fc2VydmljZV9hY2NvdW50X2pzb24YFCABKAlIBYgBAUIOCgxfYXBuc19wOF9rZXlCDAoKX2J1bmRsZV9pZEIPCg1fYXBuc190ZWFtX2lkQg4KDF9hcG5zX2tleV9pZEISChBfYXBuc19wcm9kdWN0aW9uQhsKGV9mY21fc2VydmljZV9hY2NvdW50X2pzb24iVAocVXBsb2FkUHVzaENyZWRlbnRpYWxSZXNwb25zZRI0CgpjcmVkZW50aWFsGAEgASgLMiAubm90aWZpY2F0aW9ucy52MS5QdXNoQ3JlZGVudGlhbCIwChpMaXN0UHVzaENyZWRlbnRpYWxzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIlQKG0xpc3RQdXNoQ3JlZGVudGlhbHNSZXNwb25zZRI1CgtjcmVkZW50aWFscxgBIAMoCzIgLm5vdGlmaWNhdGlvbnMudjEuUHVzaENyZWRlbnRpYWwiKQobRGVsZXRlUHVzaENyZWRlbnRpYWxSZXF1ZXN0EgoKAmlkGAEgASgJIi8KHERlbGV0ZVB1c2hDcmVkZW50aWFsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIZChdHZXRXZWJQdXNoQ29uZmlnUmVxdWVzdCI0ChhHZXRXZWJQdXNoQ29uZmlnUmVzcG9uc2USGAoQdmFwaWRfcHVibGljX2tleRgBIAEoCSrIAgoQTm90aWZpY2F0aW9uVHlwZRIhCh1OT1RJRklDQVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEiMKH05PVElGSUNBVElPTl9UWVBFX0pPQl9DT01QTEVURUQQARIgChxOT1RJRklDQVRJT05fVFlQRV9KT0JfRkFJTEVEEAISIgoeTk9USUZJQ0FUSU9OX1RZUEVfSk9CX1BST0dSRVNTEAMSHQoZTk9USUZJQ0FUSU9OX1RZUEVfTUVOVElPThAEEiAKHE5PVElGSUNBVElPTl9UWVBFX05PVEVfUkVQTFkQBRIjCh9OT1RJRklDQVRJT05fVFlQRV9OT1RFX1JFU09MVkVEEAYSHAoYTk9USUZJQ0FUSU9OX1RZUEVfU1lTVEVNEAcSIgoeTk9USUZJQ0FUSU9OX1RZUEVfQU5OT1VOQ0VNRU5UEAgq9QEKFk5vdGlmaWNhdGlvblNvdXJjZVR5cGUSKAokTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX1VOU1BFQ0lGSUVEEAASIwofTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX1JFQ09SRBABEiIKHk5PVElGSUNBVElPTl9TT1VSQ0VfVFlQRV9NT0RFTBACEiEKHU5PVElGSUNBVElPTl9TT1VSQ0VfVFlQRV9OT1RFEAMSIAocTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX0pPQhAEEiMKH05PVElGSUNBVElPTl9TT1VSQ0VfVFlQRV9TWVNURU0QBTLcEwoUTm90aWZpY2F0aW9uc1NlcnZpY2USbAoRTGlzdE5vdGlmaWNhdGlvbnMSKi5ub3RpZmljYXRpb25zLnYxLkxpc3ROb3RpZmljYXRpb25zUmVxdWVzdBorLm5vdGlmaWNhdGlvbnMudjEuTGlzdE5vdGlmaWNhdGlvbnNSZXNwb25zZRJjCg5HZXRVbnJlYWRDb3VudBInLm5vdGlmaWNhdGlvbnMudjEuR2V0VW5yZWFkQ291bnRSZXF1ZXN0Gigubm90aWZpY2F0aW9ucy52MS5HZXRVbnJlYWRDb3VudFJlc3BvbnNlEnUKFE1hcmtOb3RpZmljYXRpb25SZWFkEi0ubm90aWZpY2F0aW9ucy52MS5NYXJrTm90aWZpY2F0aW9uUmVhZFJlcXVlc3QaLi5ub3RpZmljYXRpb25zLnYxLk1hcmtOb3RpZmljYXRpb25SZWFkUmVzcG9uc2USgQEKGE1hcmtBbGxOb3RpZmljYXRpb25zUmVhZBIxLm5vdGlmaWNhdGlvbnMudjEuTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVxdWVzdBoyLm5vdGlmaWNhdGlvbnMudjEuTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2USbwoSRGVsZXRlTm90aWZpY2F0aW9uEisubm90aWZpY2F0aW9ucy52MS5EZWxldGVOb3RpZmljYXRpb25SZXF1ZXN0Giwubm90aWZpY2F0aW9ucy52MS5EZWxldGVOb3RpZmljYXRpb25SZXNwb25zZRJpChBTZW5kQW5ub3VuY2VtZW50Eikubm90aWZpY2F0aW9ucy52MS5TZW5kQW5ub3VuY2VtZW50UmVxdWVzdBoqLm5vdGlmaWNhdGlvbnMudjEuU2VuZEFubm91bmNlbWVudFJlc3BvbnNlEn4KF0xpc3RBbm5vdW5jZW1lbnRIaXN0b3J5EjAubm90aWZpY2F0aW9ucy52MS5MaXN0QW5ub3VuY2VtZW50SGlzdG9yeVJlcXVlc3QaMS5ub3RpZmljYXRpb25zLnYxLkxpc3RBbm5vdW5jZW1lbnRIaXN0b3J5UmVzcG9uc2UShAEKGUxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnMSMi5ub3RpZmljYXRpb25zLnYxLkxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnNSZXF1ZXN0GjMubm90aWZpY2F0aW9ucy52MS5MaXN0Q3VzdG9tZXJOb3RpZmljYXRpb25zUmVzcG9uc2USgQEKGFNlbmRDdXN0b21lck5vdGlmaWNhdGlvbhIxLm5vdGlmaWNhdGlvbnMudjEuU2VuZEN1c3RvbWVyTm90aWZpY2F0aW9uUmVxdWVzdBoyLm5vdGlmaWNhdGlvbnMudjEuU2VuZEN1c3RvbWVyTm90aWZpY2F0aW9uUmVzcG9uc2USjQEKHFNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb24SNS5ub3RpZmljYXRpb25zLnYxLlNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0GjYubm90aWZpY2F0aW9ucy52MS5TZW5kQnVsa0N1c3RvbWVyTm90aWZpY2F0aW9uUmVzcG9uc2USjQEKHE1hcmtDdXN0b21lck5vdGlmaWNhdGlvblJlYWQSNS5ub3RpZmljYXRpb25zLnYxLk1hcmtDdXN0b21lck5vdGlmaWNhdGlvblJlYWRSZXF1ZXN0GjYubm90aWZpY2F0aW9ucy52MS5NYXJrQ3VzdG9tZXJOb3RpZmljYXRpb25SZWFkUmVzcG9uc2USmQEKIE1hcmtBbGxDdXN0b21lck5vdGlmaWNhdGlvbnNSZWFkEjkubm90aWZpY2F0aW9ucy52MS5NYXJrQWxsQ3VzdG9tZXJOb3RpZmljYXRpb25zUmVhZFJlcXVlc3QaOi5ub3RpZmljYXRpb25zLnYxLk1hcmtBbGxDdXN0b21lck5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2UShwEKGkdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzEjMubm90aWZpY2F0aW9ucy52MS5HZXROb3RpZmljYXRpb25QcmVmZXJlbmNlc1JlcXVlc3QaNC5ub3RpZmljYXRpb25zLnYxLkdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUmVzcG9uc2USjQEKHFVwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2USNS5ub3RpZmljYXRpb25zLnYxLlVwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2VSZXF1ZXN0GjYubm90aWZpY2F0aW9ucy52MS5VcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlUmVzcG9uc2UScgoTUmVnaXN0ZXJEZXZpY2VUb2tlbhIsLm5vdGlmaWNhdGlvbnMudjEuUmVnaXN0ZXJEZXZpY2VUb2tlblJlcXVlc3QaLS5ub3RpZmljYXRpb25zLnYxLlJlZ2lzdGVyRGV2aWNlVG9rZW5SZXNwb25zZRJ4ChVVbnJlZ2lzdGVyRGV2aWNlVG9rZW4SLi5ub3RpZmljYXRpb25zLnYxLlVucmVnaXN0ZXJEZXZpY2VUb2tlblJlcXVlc3QaLy5ub3RpZmljYXRpb25zLnYxLlVucmVnaXN0ZXJEZXZpY2VUb2tlblJlc3BvbnNlEmkKEEdldFdlYlB1c2hDb25maWcSKS5ub3RpZmljYXRpb25zLnYxLkdldFdlYlB1c2hDb25maWdSZXF1ZXN0Gioubm90aWZpY2F0aW9ucy52MS5HZXRXZWJQdXNoQ29uZmlnUmVzcG9uc2USdQoUVXBsb2FkUHVzaENyZWRlbnRpYWwSLS5ub3RpZmljYXRpb25zLnYxLlVwbG9hZFB1c2hDcmVkZW50aWFsUmVxdWVzdBouLm5vdGlmaWNhdGlvbnMudjEuVXBsb2FkUHVzaENyZWRlbnRpYWxSZXNwb25zZRJyChNMaXN0UHVzaENyZWRlbnRpYWxzEiwubm90aWZpY2F0aW9ucy52MS5MaXN0UHVzaENyZWRlbnRpYWxzUmVxdWVzdBotLm5vdGlmaWNhdGlvbnMudjEuTGlzdFB1c2hDcmVkZW50aWFsc1Jlc3BvbnNlEnUKFERlbGV0ZVB1c2hDcmVkZW50aWFsEi0ubm90aWZpY2F0aW9ucy52MS5EZWxldGVQdXNoQ3JlZGVudGlhbFJlcXVlc3QaLi5ub3RpZmljYXRpb25zLnYxLkRlbGV0ZVB1c2hDcmVkZW50aWFsUmVzcG9uc2VCR1pFZ2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL25vdGlmaWNhdGlvbnMvdjE7bm90aWZpY2F0aW9uc3YxYgZwcm90bzM", [file_google_protobuf_struct10, file_google_protobuf_timestamp11, file_common_v1_pagination]);
|
|
1211
1239
|
var NotificationSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 0);
|
|
1212
1240
|
var ListNotificationsRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 1);
|
|
1213
1241
|
var MarkNotificationReadRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 3);
|
|
@@ -1215,18 +1243,18 @@ var MarkAllNotificationsReadRequestSchema = /* @__PURE__ */ messageDesc16(file_n
|
|
|
1215
1243
|
var DeleteNotificationRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 7);
|
|
1216
1244
|
var GetUnreadCountRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 9);
|
|
1217
1245
|
var SendAnnouncementRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 11);
|
|
1218
|
-
var ListAnnouncementHistoryRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1219
|
-
var ListCustomerNotificationsRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1220
|
-
var SendCustomerNotificationRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1221
|
-
var SendBulkCustomerNotificationRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1222
|
-
var GetNotificationPreferencesRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1223
|
-
var UpdateNotificationPreferenceRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1224
|
-
var RegisterDeviceTokenRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1225
|
-
var UnregisterDeviceTokenRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1226
|
-
var PushCredentialSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1227
|
-
var UploadPushCredentialRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1228
|
-
var ListPushCredentialsRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1229
|
-
var DeletePushCredentialRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications,
|
|
1246
|
+
var ListAnnouncementHistoryRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 14);
|
|
1247
|
+
var ListCustomerNotificationsRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 17);
|
|
1248
|
+
var SendCustomerNotificationRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 19);
|
|
1249
|
+
var SendBulkCustomerNotificationRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 22);
|
|
1250
|
+
var GetNotificationPreferencesRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 29);
|
|
1251
|
+
var UpdateNotificationPreferenceRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 31);
|
|
1252
|
+
var RegisterDeviceTokenRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 33);
|
|
1253
|
+
var UnregisterDeviceTokenRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 35);
|
|
1254
|
+
var PushCredentialSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 37);
|
|
1255
|
+
var UploadPushCredentialRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 38);
|
|
1256
|
+
var ListPushCredentialsRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 40);
|
|
1257
|
+
var DeletePushCredentialRequestSchema = /* @__PURE__ */ messageDesc16(file_notifications_v1_notifications, 42);
|
|
1230
1258
|
var NotificationTypeSchema = /* @__PURE__ */ enumDesc13(file_notifications_v1_notifications, 0);
|
|
1231
1259
|
var NotificationType = /* @__PURE__ */ tsEnum13(NotificationTypeSchema);
|
|
1232
1260
|
var NotificationsService = /* @__PURE__ */ serviceDesc12(file_notifications_v1_notifications, 0);
|
|
@@ -1761,7 +1789,8 @@ function createIdentityMethods(client) {
|
|
|
1761
1789
|
create(UpdateCustomerRequestSchema, {
|
|
1762
1790
|
id: params.id,
|
|
1763
1791
|
email: params.email,
|
|
1764
|
-
status: params.status
|
|
1792
|
+
status: params.status,
|
|
1793
|
+
preferredLocale: params.preferredLocale
|
|
1765
1794
|
})
|
|
1766
1795
|
);
|
|
1767
1796
|
return {
|
|
@@ -1932,7 +1961,9 @@ function createIdentityMethods(client) {
|
|
|
1932
1961
|
signupMode: params.signupMode,
|
|
1933
1962
|
signupRestrictions: params.signupRestrictions,
|
|
1934
1963
|
customerPasswordEnabled: params.customerPasswordEnabled,
|
|
1935
|
-
customerOtpEnabled: params.customerOtpEnabled
|
|
1964
|
+
customerOtpEnabled: params.customerOtpEnabled,
|
|
1965
|
+
noteScreenshotsEnabled: params.noteScreenshotsEnabled,
|
|
1966
|
+
anonymousNotesEnabled: params.anonymousNotesEnabled
|
|
1936
1967
|
})
|
|
1937
1968
|
);
|
|
1938
1969
|
return { project: resp.project ?? null };
|
|
@@ -1963,7 +1994,9 @@ function createIdentityMethods(client) {
|
|
|
1963
1994
|
signupMode: params.signupMode,
|
|
1964
1995
|
signupRestrictions: params.signupRestrictions,
|
|
1965
1996
|
customerPasswordEnabled: params.customerPasswordEnabled,
|
|
1966
|
-
customerOtpEnabled: params.customerOtpEnabled
|
|
1997
|
+
customerOtpEnabled: params.customerOtpEnabled,
|
|
1998
|
+
noteScreenshotsEnabled: params.noteScreenshotsEnabled,
|
|
1999
|
+
anonymousNotesEnabled: params.anonymousNotesEnabled
|
|
1967
2000
|
})
|
|
1968
2001
|
);
|
|
1969
2002
|
return resp.project ?? null;
|
|
@@ -2040,13 +2073,31 @@ function createIdentityMethods(client) {
|
|
|
2040
2073
|
);
|
|
2041
2074
|
return { items: resp.items ?? [], total: Number(resp.total ?? 0) };
|
|
2042
2075
|
},
|
|
2043
|
-
//
|
|
2044
|
-
//
|
|
2076
|
+
// The staff circuit breaker over anonymous note submission, per tenant.
|
|
2077
|
+
// Deliberately NOT the per-project opt-in: the project flag decides whether
|
|
2078
|
+
// the public mutation exists (through a cached schema build); this is read
|
|
2079
|
+
// on the platform write path on every anonymous submission, so false stops
|
|
2080
|
+
// the writes immediately, whatever each project's own opt-in says.
|
|
2081
|
+
async setTenantAnonymousNotesEnabled(params) {
|
|
2082
|
+
return client.setTenantAnonymousNotesEnabled(
|
|
2083
|
+
create(SetTenantAnonymousNotesEnabledRequestSchema, {
|
|
2084
|
+
tenantId: params.tenantId,
|
|
2085
|
+
enabled: params.enabled
|
|
2086
|
+
})
|
|
2087
|
+
);
|
|
2088
|
+
},
|
|
2089
|
+
// EID-388: set or clear a tenant's project-limit override — the CEILING on
|
|
2090
|
+
// how many projects the tenant may create. The band top (TTS-1109) rides
|
|
2091
|
+
// with it: usage between the plan's included and the band bills at the
|
|
2092
|
+
// plan's per-project price, and everything above is a recorded free grant.
|
|
2093
|
+
// Unset band = the plan's own band bills, which is what every override
|
|
2094
|
+
// predating the field did.
|
|
2045
2095
|
async setTenantProjectLimitOverride(params) {
|
|
2046
2096
|
return client.setTenantProjectLimitOverride(
|
|
2047
2097
|
create(SetTenantProjectLimitOverrideRequestSchema, {
|
|
2048
2098
|
tenantId: params.tenantId,
|
|
2049
|
-
projectLimitOverride: params.projectLimitOverride
|
|
2099
|
+
projectLimitOverride: params.projectLimitOverride,
|
|
2100
|
+
projectLimitOverrideBandMax: params.projectLimitOverrideBandMax
|
|
2050
2101
|
})
|
|
2051
2102
|
);
|
|
2052
2103
|
},
|
|
@@ -2496,7 +2547,8 @@ function createIdentityMethods(client) {
|
|
|
2496
2547
|
create(MintMcpWorkingTokenRequestSchema, {
|
|
2497
2548
|
tenantId: params.tenantId,
|
|
2498
2549
|
projectId: params.projectId,
|
|
2499
|
-
readOnly: params.readOnly
|
|
2550
|
+
readOnly: params.readOnly,
|
|
2551
|
+
surface: params.surface
|
|
2500
2552
|
})
|
|
2501
2553
|
);
|
|
2502
2554
|
return {
|
|
@@ -2608,7 +2660,8 @@ function createIdentityMethods(client) {
|
|
|
2608
2660
|
create(UpdateMyProfileRequestSchema, {
|
|
2609
2661
|
firstName: params.firstName,
|
|
2610
2662
|
lastName: params.lastName,
|
|
2611
|
-
avatarUrl: params.avatarUrl
|
|
2663
|
+
avatarUrl: params.avatarUrl,
|
|
2664
|
+
preferredLocale: params.preferredLocale
|
|
2612
2665
|
})
|
|
2613
2666
|
);
|
|
2614
2667
|
return resp.user ?? null;
|
|
@@ -2807,7 +2860,8 @@ function createIdentityMethods(client) {
|
|
|
2807
2860
|
relyingPartyId: params.relyingPartyId ?? "",
|
|
2808
2861
|
projectId: params.projectId ?? "",
|
|
2809
2862
|
hostname: params.hostname,
|
|
2810
|
-
kind: params.kind ?? ""
|
|
2863
|
+
kind: params.kind ?? "",
|
|
2864
|
+
appTarget: params.appTarget ?? ""
|
|
2811
2865
|
})
|
|
2812
2866
|
);
|
|
2813
2867
|
return resp.customDomain ?? null;
|
|
@@ -3318,6 +3372,11 @@ function jsFieldToProto(f) {
|
|
|
3318
3372
|
// platform rejects sort by an unqueryable field. Without this the schema
|
|
3319
3373
|
// editor's "Indexed for filtering & sorting" toggle silently no-ops.
|
|
3320
3374
|
queryable: f.queryable,
|
|
3375
|
+
// Tri-state semantic-search flag: pass through verbatim. undefined leaves
|
|
3376
|
+
// the optional proto field unset (⇒ the platform applies the type-derived
|
|
3377
|
+
// default: on for prose types, off otherwise); an explicit false is a real
|
|
3378
|
+
// override and must survive the trip, so no `|| undefined` collapsing.
|
|
3379
|
+
embed: f.embed,
|
|
3321
3380
|
helpText: f.helpText,
|
|
3322
3381
|
placeholder: f.placeholder,
|
|
3323
3382
|
defaultValue: f.defaultValue !== void 0 ? fromJson(ValueSchema, f.defaultValue) : void 0,
|
|
@@ -3336,6 +3395,8 @@ function jsConfigToProto(c) {
|
|
|
3336
3395
|
versioning: c.versioning ?? false,
|
|
3337
3396
|
publishing: c.publishing ?? false,
|
|
3338
3397
|
variants: c.variants ?? false,
|
|
3398
|
+
embeddings: c.embeddings ?? false,
|
|
3399
|
+
hierarchy: c.hierarchy ?? false,
|
|
3339
3400
|
inline: c.inline ?? false,
|
|
3340
3401
|
singleton: c.singleton ?? false,
|
|
3341
3402
|
access: c.access ? create3(AccessConfigSchema, {
|
|
@@ -3443,6 +3504,7 @@ function createModelsMethods(client) {
|
|
|
3443
3504
|
if (params.layers?.length) where.ownerKind = { in: params.layers };
|
|
3444
3505
|
if (params.layerOwnerId) where.layerOwnerId = { eq: params.layerOwnerId };
|
|
3445
3506
|
if (params.search) where.name = { contains: params.search };
|
|
3507
|
+
if (params.key) where.key = { eq: params.key };
|
|
3446
3508
|
const resp = await client.listModelDefinitions(
|
|
3447
3509
|
create3(ListModelDefinitionsRequestSchema, {
|
|
3448
3510
|
where: Object.keys(where).length > 0 ? where : void 0,
|
|
@@ -4214,11 +4276,14 @@ function createRecordsMethods(client) {
|
|
|
4214
4276
|
);
|
|
4215
4277
|
return resp.embeddings ?? [];
|
|
4216
4278
|
},
|
|
4279
|
+
// customerId and context confine the hits, exactly as on searchEmbeddings.
|
|
4217
4280
|
async findSimilarRecords(params) {
|
|
4218
4281
|
const resp = await client.findSimilarRecords(
|
|
4219
4282
|
create4(FindSimilarRecordsRequestSchema, {
|
|
4220
4283
|
recordId: params.recordId,
|
|
4221
4284
|
modelKey: params.modelKey,
|
|
4285
|
+
customerId: params.customerId,
|
|
4286
|
+
context: params.context,
|
|
4222
4287
|
first: params.first ?? 10,
|
|
4223
4288
|
after: params.after,
|
|
4224
4289
|
last: params.last,
|
|
@@ -4247,11 +4312,25 @@ function createRecordsMethods(client) {
|
|
|
4247
4312
|
);
|
|
4248
4313
|
return resp.success;
|
|
4249
4314
|
},
|
|
4315
|
+
// queryText is the alternative to queryVector: the platform embeds the text
|
|
4316
|
+
// with the project's own active provider and model, which is the same pair
|
|
4317
|
+
// the read path filters slots to, so a text query cannot mix scores from two
|
|
4318
|
+
// embedders in one ranking.
|
|
4319
|
+
//
|
|
4320
|
+
// customerId and context are the confinement inputs, in the shape
|
|
4321
|
+
// batchResolveRecords already takes. They are consumed ON the platform
|
|
4322
|
+
// (TTS-1146) — hits are resolved, confined to the caller's reach and their
|
|
4323
|
+
// variant selections, and aggregated before they leave SearchEmbeddings —
|
|
4324
|
+
// so a wrapper that dropped them would silently widen the result set rather
|
|
4325
|
+
// than fail.
|
|
4250
4326
|
async searchEmbeddings(params) {
|
|
4251
4327
|
const resp = await client.searchEmbeddings(
|
|
4252
4328
|
create4(SearchEmbeddingsRequestSchema, {
|
|
4253
4329
|
queryVector: params.queryVector,
|
|
4330
|
+
queryText: params.queryText,
|
|
4254
4331
|
modelKey: params.modelKey,
|
|
4332
|
+
customerId: params.customerId,
|
|
4333
|
+
context: params.context,
|
|
4255
4334
|
first: params.first ?? 10,
|
|
4256
4335
|
after: params.after,
|
|
4257
4336
|
last: params.last,
|
|
@@ -4359,6 +4438,25 @@ function createRecordsMethods(client) {
|
|
|
4359
4438
|
cursors: resp.cursors ?? []
|
|
4360
4439
|
};
|
|
4361
4440
|
},
|
|
4441
|
+
// RecordsLocaleCoverage counts, per configured locale, the live records
|
|
4442
|
+
// carrying no value for it — the whole project in one call, where
|
|
4443
|
+
// recordsMissingLocale answers for one model at a time.
|
|
4444
|
+
//
|
|
4445
|
+
// A locale absent from the result was not measured. It is deliberately not
|
|
4446
|
+
// defaulted to zero here: the caller has to be able to tell "nothing is
|
|
4447
|
+
// missing" (an explicit 0 the server sends) from "this was not counted".
|
|
4448
|
+
async recordsLocaleCoverage() {
|
|
4449
|
+
const resp = await client.recordsLocaleCoverage(
|
|
4450
|
+
create4(RecordsLocaleCoverageRequestSchema, {})
|
|
4451
|
+
);
|
|
4452
|
+
return {
|
|
4453
|
+
locales: (resp.locales ?? []).map((c) => ({
|
|
4454
|
+
locale: c.locale,
|
|
4455
|
+
missingCount: c.missingCount
|
|
4456
|
+
})),
|
|
4457
|
+
totalRecords: resp.totalRecords
|
|
4458
|
+
};
|
|
4459
|
+
},
|
|
4362
4460
|
// BackfillRecordGeometry walks every record of a model and (re)materializes
|
|
4363
4461
|
// its geopoint fields into record_geometry (the geo analog of
|
|
4364
4462
|
// BackfillQueryableIndex). Idempotent; returns the count of records indexed.
|
|
@@ -4514,6 +4612,11 @@ function createBillingMethods(client) {
|
|
|
4514
4612
|
);
|
|
4515
4613
|
return {
|
|
4516
4614
|
items: resp.plans ?? [],
|
|
4615
|
+
// The metrics a plan limit may be set on, from the server rather than a
|
|
4616
|
+
// second copy in the editor. The editor's own copy had drifted to 7 of
|
|
4617
|
+
// 13 and lost content_resolutions, the metric that freezes a
|
|
4618
|
+
// workspace's content (TTS-1460).
|
|
4619
|
+
planMetrics: resp.planMetrics ?? [],
|
|
4517
4620
|
total: resp.total,
|
|
4518
4621
|
pageInfo: toPageInfo(resp.pageInfo)
|
|
4519
4622
|
};
|
|
@@ -4728,6 +4831,47 @@ function createBillingMethods(client) {
|
|
|
4728
4831
|
})
|
|
4729
4832
|
);
|
|
4730
4833
|
},
|
|
4834
|
+
// ── Entitlements (TTS-1480) ──────────────────────────────
|
|
4835
|
+
/**
|
|
4836
|
+
* The enforceable-feature registry the server holds
|
|
4837
|
+
* (services/internal/billing/features.go), in declaration order.
|
|
4838
|
+
*
|
|
4839
|
+
* The three staff screens that offer features — entitlements, rollout, and
|
|
4840
|
+
* the plan editor's Entitlements section — read this rather than a
|
|
4841
|
+
* hand-maintained copy, exactly as the plan editor reads
|
|
4842
|
+
* listBillingPlans().planMetrics. The copy they used to keep is the failure
|
|
4843
|
+
* this replaces: it lived in another repo with nothing keeping it in step,
|
|
4844
|
+
* and the metric list beside it had already drifted to 7 of 13.
|
|
4845
|
+
*/
|
|
4846
|
+
async listFeatures() {
|
|
4847
|
+
const resp = await client.listFeatures(create5(ListFeaturesRequestSchema, {}));
|
|
4848
|
+
return resp.features;
|
|
4849
|
+
},
|
|
4850
|
+
/**
|
|
4851
|
+
* Resolve entitlements for a workspace: override → cohort/percentage
|
|
4852
|
+
* rollout → plan grant → off. Internal service plane, called by trusted Node
|
|
4853
|
+
* services with an x-internal-token client, never from the browser.
|
|
4854
|
+
*
|
|
4855
|
+
* NOT listTenantEntitlements, which answers a different question — the
|
|
4856
|
+
* per-tenant OVERRIDE rows alone — and would report not-entitled for every
|
|
4857
|
+
* customer whose grant comes from their plan.
|
|
4858
|
+
*
|
|
4859
|
+
* `tenantId` is cross-checked against the caller's authenticated scope
|
|
4860
|
+
* server-side and refused on a mismatch, so passing one the credential does
|
|
4861
|
+
* not carry is an error rather than a way to ask about somebody else.
|
|
4862
|
+
*
|
|
4863
|
+
* Returns the map verbatim, including keys that resolved false. A caller
|
|
4864
|
+
* must treat a MISSING key as not-entitled and never as an absent value:
|
|
4865
|
+
* missing means the answer did not arrive.
|
|
4866
|
+
*/
|
|
4867
|
+
async checkEntitlements(params) {
|
|
4868
|
+
return client.checkEntitlements(
|
|
4869
|
+
create5(CheckEntitlementsRequestSchema, {
|
|
4870
|
+
tenantId: params.tenantId,
|
|
4871
|
+
featureKeys: params.featureKeys
|
|
4872
|
+
})
|
|
4873
|
+
);
|
|
4874
|
+
},
|
|
4731
4875
|
// ── Feature rollout rules + cohorts (staff only) ─────────
|
|
4732
4876
|
/** Staff only: every feature rollout rule, feature_key-ordered. */
|
|
4733
4877
|
async listFeatureRolloutRules() {
|
|
@@ -4883,7 +5027,6 @@ function createBillingMethods(client) {
|
|
|
4883
5027
|
basePriceCents: params.basePriceCents,
|
|
4884
5028
|
billingInterval: params.billingInterval ? BILLING_INTERVAL_TO_PROTO[params.billingInterval] : void 0,
|
|
4885
5029
|
currency: params.currency,
|
|
4886
|
-
basePlanSlug: params.basePlanSlug,
|
|
4887
5030
|
tenantId: params.tenantId,
|
|
4888
5031
|
projectId: params.projectId,
|
|
4889
5032
|
limits: (params.limits ?? []).map((l) => ({
|
|
@@ -4891,7 +5034,8 @@ function createBillingMethods(client) {
|
|
|
4891
5034
|
includedQuantity: l.includedQuantity != null ? BigInt(l.includedQuantity) : void 0,
|
|
4892
5035
|
maxQuantity: l.maxQuantity != null ? BigInt(l.maxQuantity) : void 0,
|
|
4893
5036
|
overagePriceCents: l.overagePriceCents
|
|
4894
|
-
}))
|
|
5037
|
+
})),
|
|
5038
|
+
entitlements: params.entitlements ?? []
|
|
4895
5039
|
}
|
|
4896
5040
|
})
|
|
4897
5041
|
);
|
|
@@ -4907,14 +5051,14 @@ function createBillingMethods(client) {
|
|
|
4907
5051
|
basePriceCents: params.basePriceCents,
|
|
4908
5052
|
billingInterval: params.billingInterval ? BILLING_INTERVAL_TO_PROTO[params.billingInterval] : void 0,
|
|
4909
5053
|
currency: params.currency,
|
|
4910
|
-
basePlanSlug: params.basePlanSlug,
|
|
4911
5054
|
isActive: params.isActive,
|
|
4912
5055
|
limits: (params.limits ?? []).map((l) => ({
|
|
4913
5056
|
metric: l.metric,
|
|
4914
5057
|
includedQuantity: l.includedQuantity != null ? BigInt(l.includedQuantity) : void 0,
|
|
4915
5058
|
maxQuantity: l.maxQuantity != null ? BigInt(l.maxQuantity) : void 0,
|
|
4916
5059
|
overagePriceCents: l.overagePriceCents
|
|
4917
|
-
}))
|
|
5060
|
+
})),
|
|
5061
|
+
entitlements: params.entitlements ?? []
|
|
4918
5062
|
}
|
|
4919
5063
|
})
|
|
4920
5064
|
);
|
|
@@ -5057,7 +5201,8 @@ var FAMILY_TO_JS = {
|
|
|
5057
5201
|
[BundleResourceFamily.API_KEYS]: "apiKeys",
|
|
5058
5202
|
[BundleResourceFamily.APPS]: "apps",
|
|
5059
5203
|
[BundleResourceFamily.LOCALES]: "locales",
|
|
5060
|
-
[BundleResourceFamily.VARIANT_CATALOG]: "variantCatalog"
|
|
5204
|
+
[BundleResourceFamily.VARIANT_CATALOG]: "variantCatalog",
|
|
5205
|
+
[BundleResourceFamily.EMAIL_COPY]: "emailCopy"
|
|
5061
5206
|
};
|
|
5062
5207
|
var DIRECTION_TO_PROTO = {
|
|
5063
5208
|
read: ConfigDirection.READ,
|
|
@@ -5292,7 +5437,8 @@ var NOTE_SUBJECT_TYPES = [
|
|
|
5292
5437
|
"model",
|
|
5293
5438
|
"operation",
|
|
5294
5439
|
"schedule",
|
|
5295
|
-
"customer"
|
|
5440
|
+
"customer",
|
|
5441
|
+
"project"
|
|
5296
5442
|
];
|
|
5297
5443
|
var NOTE_SUBJECTS = [
|
|
5298
5444
|
// ---------------------------------------------------------------------------
|
|
@@ -5408,6 +5554,30 @@ var NOTE_SUBJECTS = [
|
|
|
5408
5554
|
fields: ["email"],
|
|
5409
5555
|
slots: []
|
|
5410
5556
|
}
|
|
5557
|
+
},
|
|
5558
|
+
// ---------------------------------------------------------------------------
|
|
5559
|
+
// Project — the closed set's one deliberate widening (general tasks): a note
|
|
5560
|
+
// about the project itself, when the work has no narrower thing to hang on.
|
|
5561
|
+
// Contextual: the console only ever shows a project's own notes, so the deep
|
|
5562
|
+
// link is the settings screen of the workspace the reader is already in and
|
|
5563
|
+
// the template takes no `$subjectId`. `subject_id` still holds the project
|
|
5564
|
+
// id, which the write path checks against the caller's own scope, so the
|
|
5565
|
+
// pair cannot name a project the author is not standing in.
|
|
5566
|
+
// ---------------------------------------------------------------------------
|
|
5567
|
+
{
|
|
5568
|
+
type: "project",
|
|
5569
|
+
label: "Project",
|
|
5570
|
+
app: "admin",
|
|
5571
|
+
feature: "project-settings",
|
|
5572
|
+
route: "/settings",
|
|
5573
|
+
identifier: "id",
|
|
5574
|
+
modelKeyed: false,
|
|
5575
|
+
contextual: true,
|
|
5576
|
+
title: {
|
|
5577
|
+
load: "the project",
|
|
5578
|
+
fields: ["name"],
|
|
5579
|
+
slots: []
|
|
5580
|
+
}
|
|
5411
5581
|
}
|
|
5412
5582
|
];
|
|
5413
5583
|
function isNoteSubjectType(value) {
|
|
@@ -5435,7 +5605,7 @@ function noteSubjectProblems(subject) {
|
|
|
5435
5605
|
const kind = noteSubjectKind(type);
|
|
5436
5606
|
if (!kind) {
|
|
5437
5607
|
problems.push(
|
|
5438
|
-
`subject_type ${JSON.stringify(type)} is not one of: ${NOTE_SUBJECT_TYPES.join(", ")}`
|
|
5608
|
+
type === void 0 || type === "" ? "subject_type is required" : `subject_type ${JSON.stringify(type)} is not one of: ${NOTE_SUBJECT_TYPES.join(", ")}`
|
|
5439
5609
|
);
|
|
5440
5610
|
}
|
|
5441
5611
|
if (!nonEmpty(id)) {
|
|
@@ -5527,6 +5697,21 @@ function createSettingsMethods(client) {
|
|
|
5527
5697
|
);
|
|
5528
5698
|
return resp.mention ?? null;
|
|
5529
5699
|
},
|
|
5700
|
+
/**
|
|
5701
|
+
* Place, move or clear the deadline on a mention. Omitting dueDate CLEARS
|
|
5702
|
+
* it — a mention without a due date is simply not owed by any particular
|
|
5703
|
+
* time. The server confines the write to the mentioned person or the
|
|
5704
|
+
* note's author; anyone else gets one indistinguishable not-found.
|
|
5705
|
+
*/
|
|
5706
|
+
async setMentionDueDate(params) {
|
|
5707
|
+
const resp = await client.setMentionDueDate(
|
|
5708
|
+
create9(SetMentionDueDateRequestSchema, {
|
|
5709
|
+
mentionId: params.mentionId,
|
|
5710
|
+
dueDate: params.dueDate ? timestampFromDate(params.dueDate) : void 0
|
|
5711
|
+
})
|
|
5712
|
+
);
|
|
5713
|
+
return resp.mention ?? null;
|
|
5714
|
+
},
|
|
5530
5715
|
// ── Notes ────────────────────────────────────────────────
|
|
5531
5716
|
/**
|
|
5532
5717
|
* Write a note about a SUBJECT — the closed set the note-subjects registry
|
|
@@ -5554,7 +5739,14 @@ function createSettingsMethods(client) {
|
|
|
5554
5739
|
subjectId: params.subjectId,
|
|
5555
5740
|
subjectModelKey: params.subjectModelKey,
|
|
5556
5741
|
content: params.content,
|
|
5557
|
-
parentNoteId: params.parentNoteId
|
|
5742
|
+
parentNoteId: params.parentNoteId,
|
|
5743
|
+
replyToCustomer: params.replyToCustomer,
|
|
5744
|
+
assigneeId: params.assigneeId,
|
|
5745
|
+
attachmentFileIds: params.attachmentFileIds,
|
|
5746
|
+
dueDate: params.dueDate ? timestampFromDate(params.dueDate) : void 0,
|
|
5747
|
+
anchorField: params.anchorField,
|
|
5748
|
+
anchorNodeId: params.anchorNodeId,
|
|
5749
|
+
anchorSnippet: params.anchorSnippet
|
|
5558
5750
|
})
|
|
5559
5751
|
);
|
|
5560
5752
|
return resp.note ?? null;
|
|
@@ -5567,6 +5759,7 @@ function createSettingsMethods(client) {
|
|
|
5567
5759
|
return client.listNotes(
|
|
5568
5760
|
create9(ListNotesRequestSchema, {
|
|
5569
5761
|
where: params.where,
|
|
5762
|
+
orderBy: params.orderBy,
|
|
5570
5763
|
first: params.first ?? DEFAULT_PAGE_SIZE,
|
|
5571
5764
|
after: params.after,
|
|
5572
5765
|
last: params.last,
|
|
@@ -5580,7 +5773,10 @@ function createSettingsMethods(client) {
|
|
|
5580
5773
|
id: params.id,
|
|
5581
5774
|
content: params.content,
|
|
5582
5775
|
isResolved: params.isResolved,
|
|
5583
|
-
resolutionNote: params.resolutionNote
|
|
5776
|
+
resolutionNote: params.resolutionNote,
|
|
5777
|
+
assigneeId: params.assigneeId,
|
|
5778
|
+
dueDate: params.dueDate ? timestampFromDate(params.dueDate) : void 0,
|
|
5779
|
+
clearDueDate: params.clearDueDate
|
|
5584
5780
|
})
|
|
5585
5781
|
);
|
|
5586
5782
|
return resp.note ?? null;
|
|
@@ -5591,6 +5787,78 @@ function createSettingsMethods(client) {
|
|
|
5591
5787
|
);
|
|
5592
5788
|
return resp.success;
|
|
5593
5789
|
},
|
|
5790
|
+
// ── Note approvals ───────────────────────────────────────
|
|
5791
|
+
// The structured primitive behind "propose, never act": a held mutation,
|
|
5792
|
+
// the verb whose holders may decide it, and the decision as a recorded
|
|
5793
|
+
// act. Cards render on the thread; deciding is verb-gated server-side.
|
|
5794
|
+
/**
|
|
5795
|
+
* Stage a held mutation on a note. The action vocabulary is closed
|
|
5796
|
+
* (settle_note today) and the server DERIVES the required verb from it —
|
|
5797
|
+
* a caller cannot choose who may approve.
|
|
5798
|
+
*/
|
|
5799
|
+
/**
|
|
5800
|
+
* Hand this note's work to the assistant to run UNATTENDED. Returns the
|
|
5801
|
+
* dispatched leg's execution id. Refused for anyone but an operator (the
|
|
5802
|
+
* leg acts FOR whoever hands off), and on a deployment with no assistant
|
|
5803
|
+
* lane configured — read the refusal, never assume dispatch.
|
|
5804
|
+
*/
|
|
5805
|
+
async createNoteHandoff(params) {
|
|
5806
|
+
const resp = await client.createNoteHandoff(
|
|
5807
|
+
create9(CreateNoteHandoffRequestSchema, {
|
|
5808
|
+
noteId: params.noteId,
|
|
5809
|
+
instruction: params.instruction
|
|
5810
|
+
})
|
|
5811
|
+
);
|
|
5812
|
+
return resp.executionId;
|
|
5813
|
+
},
|
|
5814
|
+
/**
|
|
5815
|
+
* The newest handoff leg on one note, or nulls when none has ever run.
|
|
5816
|
+
* `status` is the execution vocabulary verbatim: pending | running |
|
|
5817
|
+
* completed | failed | cancelled.
|
|
5818
|
+
*/
|
|
5819
|
+
async getNoteHandoffStatus(noteId) {
|
|
5820
|
+
const resp = await client.getNoteHandoffStatus(
|
|
5821
|
+
create9(GetNoteHandoffStatusRequestSchema, { noteId })
|
|
5822
|
+
);
|
|
5823
|
+
return {
|
|
5824
|
+
executionId: resp.executionId ?? null,
|
|
5825
|
+
status: resp.status ?? null,
|
|
5826
|
+
updatedAt: resp.updatedAt ?? null
|
|
5827
|
+
};
|
|
5828
|
+
},
|
|
5829
|
+
async createNoteApproval(params) {
|
|
5830
|
+
const resp = await client.createNoteApproval(
|
|
5831
|
+
create9(CreateNoteApprovalRequestSchema, {
|
|
5832
|
+
noteId: params.noteId,
|
|
5833
|
+
toolName: params.toolName,
|
|
5834
|
+
toolArgs: params.toolArgs,
|
|
5835
|
+
summary: params.summary,
|
|
5836
|
+
executionId: params.executionId
|
|
5837
|
+
})
|
|
5838
|
+
);
|
|
5839
|
+
return resp.approval ?? null;
|
|
5840
|
+
},
|
|
5841
|
+
async listNoteApprovals(noteId) {
|
|
5842
|
+
const resp = await client.listNoteApprovals(
|
|
5843
|
+
create9(ListNoteApprovalsRequestSchema, { noteId })
|
|
5844
|
+
);
|
|
5845
|
+
return resp.approvals ?? [];
|
|
5846
|
+
},
|
|
5847
|
+
/**
|
|
5848
|
+
* Approve or deny a pending approval. Approve RELEASES the held mutation
|
|
5849
|
+
* in the same transaction; deny records the reason and ends the matter. A
|
|
5850
|
+
* second decision is refused, never an overwrite.
|
|
5851
|
+
*/
|
|
5852
|
+
async decideNoteApproval(params) {
|
|
5853
|
+
const resp = await client.decideNoteApproval(
|
|
5854
|
+
create9(DecideNoteApprovalRequestSchema, {
|
|
5855
|
+
approvalId: params.approvalId,
|
|
5856
|
+
decision: params.decision,
|
|
5857
|
+
reason: params.reason
|
|
5858
|
+
})
|
|
5859
|
+
);
|
|
5860
|
+
return resp.approval ?? null;
|
|
5861
|
+
},
|
|
5594
5862
|
/**
|
|
5595
5863
|
* Full-text search across notes, optionally narrowed to one kind of
|
|
5596
5864
|
* subject — and, for records, to one model.
|
|
@@ -5604,6 +5872,7 @@ function createSettingsMethods(client) {
|
|
|
5604
5872
|
return client.searchNotes(
|
|
5605
5873
|
create9(SearchNotesRequestSchema, {
|
|
5606
5874
|
query: params.query,
|
|
5875
|
+
mode: params.mode,
|
|
5607
5876
|
subjectType: params.subjectType,
|
|
5608
5877
|
subjectModelKey: params.subjectModelKey,
|
|
5609
5878
|
first: params.first ?? DEFAULT_PAGE_SIZE,
|
|
@@ -6285,6 +6554,13 @@ function parseBytes(data) {
|
|
|
6285
6554
|
return void 0;
|
|
6286
6555
|
}
|
|
6287
6556
|
}
|
|
6557
|
+
function withDecodedPayloads(exec) {
|
|
6558
|
+
return {
|
|
6559
|
+
...exec,
|
|
6560
|
+
result: parseBytes(exec.resultJson) ?? null,
|
|
6561
|
+
error: parseBytes(exec.errorJson) ?? null
|
|
6562
|
+
};
|
|
6563
|
+
}
|
|
6288
6564
|
function createOperationsMethods(client) {
|
|
6289
6565
|
return {
|
|
6290
6566
|
// ── CRUD ──────────────────────────────────────────────────
|
|
@@ -6427,7 +6703,7 @@ function createOperationsMethods(client) {
|
|
|
6427
6703
|
})
|
|
6428
6704
|
);
|
|
6429
6705
|
return {
|
|
6430
|
-
items: resp.executions ?? [],
|
|
6706
|
+
items: (resp.executions ?? []).map(withDecodedPayloads),
|
|
6431
6707
|
total: resp.total,
|
|
6432
6708
|
pageInfo: toPageInfo(resp.pageInfo)
|
|
6433
6709
|
};
|
|
@@ -7065,10 +7341,19 @@ function createNotificationsMethods(client) {
|
|
|
7065
7341
|
actionUrl: params.actionUrl,
|
|
7066
7342
|
targetType: params.targetType,
|
|
7067
7343
|
targetIds: params.targetIds ?? [],
|
|
7068
|
-
category: params.category
|
|
7344
|
+
category: params.category,
|
|
7345
|
+
dryRun: params.dryRun
|
|
7069
7346
|
})
|
|
7070
7347
|
);
|
|
7071
|
-
return
|
|
7348
|
+
return {
|
|
7349
|
+
notification: resp.notification ?? null,
|
|
7350
|
+
audience: resp.audience ? {
|
|
7351
|
+
recipientCount: resp.audience.recipientCount,
|
|
7352
|
+
workspaceCount: resp.audience.workspaceCount,
|
|
7353
|
+
suppressedCount: resp.audience.suppressedCount,
|
|
7354
|
+
sampleEmails: resp.audience.sampleEmails ?? []
|
|
7355
|
+
} : null
|
|
7356
|
+
};
|
|
7072
7357
|
},
|
|
7073
7358
|
async listAnnouncementHistory(params = {}) {
|
|
7074
7359
|
return client.listAnnouncementHistory(
|
|
@@ -7103,10 +7388,16 @@ function createNotificationsMethods(client) {
|
|
|
7103
7388
|
metadata: params.metadata,
|
|
7104
7389
|
imageUrl: params.imageUrl,
|
|
7105
7390
|
expiresAt: params.expiresAt ? timestampFromDate(params.expiresAt) : void 0,
|
|
7106
|
-
channels: buildNotificationChannels(params)
|
|
7391
|
+
channels: buildNotificationChannels(params),
|
|
7392
|
+
richBody: params.richBody,
|
|
7393
|
+
copyActionKey: params.copyActionKey,
|
|
7394
|
+
dryRun: params.dryRun
|
|
7107
7395
|
})
|
|
7108
7396
|
);
|
|
7109
|
-
return
|
|
7397
|
+
return {
|
|
7398
|
+
notification: resp.notification ?? null,
|
|
7399
|
+
preview: resp.preview ?? null
|
|
7400
|
+
};
|
|
7110
7401
|
},
|
|
7111
7402
|
async sendBulkCustomerNotification(params) {
|
|
7112
7403
|
const resp = await client.sendBulkCustomerNotification(
|
|
@@ -7119,10 +7410,11 @@ function createNotificationsMethods(client) {
|
|
|
7119
7410
|
metadata: params.metadata,
|
|
7120
7411
|
imageUrl: params.imageUrl,
|
|
7121
7412
|
expiresAt: params.expiresAt ? timestampFromDate(params.expiresAt) : void 0,
|
|
7122
|
-
channels: buildNotificationChannels(params)
|
|
7413
|
+
channels: buildNotificationChannels(params),
|
|
7414
|
+
dryRun: params.dryRun
|
|
7123
7415
|
})
|
|
7124
7416
|
);
|
|
7125
|
-
return resp.count;
|
|
7417
|
+
return { count: resp.count, preview: resp.preview ?? null };
|
|
7126
7418
|
},
|
|
7127
7419
|
// ── Notification Preferences ──────────────────────────────
|
|
7128
7420
|
/**
|
|
@@ -10113,7 +10405,8 @@ var FAMILY_LABELS = {
|
|
|
10113
10405
|
apiKeys: "API keys",
|
|
10114
10406
|
apps: "Apps",
|
|
10115
10407
|
locales: "Locales",
|
|
10116
|
-
variantCatalog: "Variant catalog"
|
|
10408
|
+
variantCatalog: "Variant catalog",
|
|
10409
|
+
emailCopy: "Email copy"
|
|
10117
10410
|
};
|
|
10118
10411
|
function familyLabel(family) {
|
|
10119
10412
|
return FAMILY_LABELS[family] ?? family;
|
|
@@ -11303,6 +11596,170 @@ function registerContextCommands(program2, globalOpts) {
|
|
|
11303
11596
|
}
|
|
11304
11597
|
|
|
11305
11598
|
// src/commands/models.ts
|
|
11599
|
+
var CREATE_MODEL_EXAMPLE = `A model is:
|
|
11600
|
+
-d '{"key":"article","name":"Article","fields":[{"key":"title","label":"Title","type":"text"}]}'`;
|
|
11601
|
+
var UPDATE_MODEL_EXAMPLE = `A model update is:
|
|
11602
|
+
-d '{"name":"Article","fields":[{"key":"title","label":"Title","type":"text"}]}'`;
|
|
11603
|
+
var SCHEMA_PROBLEM = 'a model has no "schema": its shape is a "fields" array of field objects, not a JSON-Schema document';
|
|
11604
|
+
function requiredString(data, key, problems) {
|
|
11605
|
+
const value = data[key];
|
|
11606
|
+
if (value === void 0 || value === "") {
|
|
11607
|
+
problems.push(`"${key}" is required`);
|
|
11608
|
+
return void 0;
|
|
11609
|
+
}
|
|
11610
|
+
if (typeof value !== "string") {
|
|
11611
|
+
problems.push(`"${key}" must be a string, not ${JSON.stringify(value)}`);
|
|
11612
|
+
return void 0;
|
|
11613
|
+
}
|
|
11614
|
+
return value;
|
|
11615
|
+
}
|
|
11616
|
+
function optionalString(data, key, problems) {
|
|
11617
|
+
const value = data[key];
|
|
11618
|
+
if (value === void 0) return void 0;
|
|
11619
|
+
if (typeof value !== "string") {
|
|
11620
|
+
problems.push(`"${key}" must be a string, not ${JSON.stringify(value)}`);
|
|
11621
|
+
return void 0;
|
|
11622
|
+
}
|
|
11623
|
+
return value;
|
|
11624
|
+
}
|
|
11625
|
+
function optionalBoolean(data, key, problems) {
|
|
11626
|
+
const value = data[key];
|
|
11627
|
+
if (value === void 0) return void 0;
|
|
11628
|
+
if (typeof value !== "boolean") {
|
|
11629
|
+
problems.push(
|
|
11630
|
+
`"${key}" must be true or false, not ${JSON.stringify(value)}`
|
|
11631
|
+
);
|
|
11632
|
+
return void 0;
|
|
11633
|
+
}
|
|
11634
|
+
return value;
|
|
11635
|
+
}
|
|
11636
|
+
function optionalConfig(data, problems) {
|
|
11637
|
+
const value = data.config;
|
|
11638
|
+
if (value === void 0) return void 0;
|
|
11639
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
11640
|
+
problems.push(
|
|
11641
|
+
`"config" must be an object of model settings, not ${JSON.stringify(value)}`
|
|
11642
|
+
);
|
|
11643
|
+
return void 0;
|
|
11644
|
+
}
|
|
11645
|
+
return value;
|
|
11646
|
+
}
|
|
11647
|
+
function collectFieldProblems(value, at, problems) {
|
|
11648
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
11649
|
+
problems.push(`${at} must be an object, not ${JSON.stringify(value)}`);
|
|
11650
|
+
return;
|
|
11651
|
+
}
|
|
11652
|
+
const field = value;
|
|
11653
|
+
for (const key of ["key", "type"]) {
|
|
11654
|
+
const v = field[key];
|
|
11655
|
+
if (v === void 0 || v === "") {
|
|
11656
|
+
problems.push(`${at}.${key} is required`);
|
|
11657
|
+
} else if (typeof v !== "string") {
|
|
11658
|
+
problems.push(`${at}.${key} must be a string, not ${JSON.stringify(v)}`);
|
|
11659
|
+
}
|
|
11660
|
+
}
|
|
11661
|
+
if (field.label !== void 0 && typeof field.label !== "string") {
|
|
11662
|
+
problems.push(
|
|
11663
|
+
`${at}.label must be a string, not ${JSON.stringify(field.label)}`
|
|
11664
|
+
);
|
|
11665
|
+
}
|
|
11666
|
+
if (field.required !== void 0 && typeof field.required !== "boolean") {
|
|
11667
|
+
problems.push(
|
|
11668
|
+
`${at}.required must be true or false, not ${JSON.stringify(field.required)}`
|
|
11669
|
+
);
|
|
11670
|
+
}
|
|
11671
|
+
}
|
|
11672
|
+
function readFields(data, problems, opts) {
|
|
11673
|
+
const value = data.fields;
|
|
11674
|
+
if (value === void 0) {
|
|
11675
|
+
if (opts.required) problems.push('"fields" is required');
|
|
11676
|
+
return void 0;
|
|
11677
|
+
}
|
|
11678
|
+
if (!Array.isArray(value)) {
|
|
11679
|
+
problems.push(
|
|
11680
|
+
`"fields" must be an array of field objects, not ${JSON.stringify(value)}`
|
|
11681
|
+
);
|
|
11682
|
+
return void 0;
|
|
11683
|
+
}
|
|
11684
|
+
if (value.length === 0) {
|
|
11685
|
+
problems.push('"fields" must not be empty: a model needs at least one field');
|
|
11686
|
+
return void 0;
|
|
11687
|
+
}
|
|
11688
|
+
const before = problems.length;
|
|
11689
|
+
value.forEach(
|
|
11690
|
+
(field, index) => collectFieldProblems(field, `fields[${index}]`, problems)
|
|
11691
|
+
);
|
|
11692
|
+
if (problems.length > before) return void 0;
|
|
11693
|
+
return value;
|
|
11694
|
+
}
|
|
11695
|
+
function readModelDocument(data, example) {
|
|
11696
|
+
if (typeof data !== "object" || data === null || Array.isArray(data)) {
|
|
11697
|
+
throw new Error(
|
|
11698
|
+
`the model data must be a JSON object, not ${JSON.stringify(data)}
|
|
11699
|
+
|
|
11700
|
+
${example}`
|
|
11701
|
+
);
|
|
11702
|
+
}
|
|
11703
|
+
return data;
|
|
11704
|
+
}
|
|
11705
|
+
function readCreateModelData(input) {
|
|
11706
|
+
const data = readModelDocument(input, CREATE_MODEL_EXAMPLE);
|
|
11707
|
+
const problems = [];
|
|
11708
|
+
if ("schema" in data) problems.push(SCHEMA_PROBLEM);
|
|
11709
|
+
const key = requiredString(data, "key", problems);
|
|
11710
|
+
const name = requiredString(data, "name", problems);
|
|
11711
|
+
const fields = readFields(data, problems, { required: true });
|
|
11712
|
+
const config2 = optionalConfig(data, problems);
|
|
11713
|
+
const configId = optionalString(data, "configId", problems);
|
|
11714
|
+
const groupId = optionalString(data, "groupId", problems);
|
|
11715
|
+
const updatePushSnapshot = optionalBoolean(
|
|
11716
|
+
data,
|
|
11717
|
+
"updatePushSnapshot",
|
|
11718
|
+
problems
|
|
11719
|
+
);
|
|
11720
|
+
if (problems.length > 0 || key === void 0 || name === void 0 || fields === void 0) {
|
|
11721
|
+
throw new Error(`${problems.join("\n")}
|
|
11722
|
+
|
|
11723
|
+
${CREATE_MODEL_EXAMPLE}`);
|
|
11724
|
+
}
|
|
11725
|
+
return { key, name, fields, config: config2, configId, groupId, updatePushSnapshot };
|
|
11726
|
+
}
|
|
11727
|
+
function readUpdateModelData(input) {
|
|
11728
|
+
const data = readModelDocument(input, UPDATE_MODEL_EXAMPLE);
|
|
11729
|
+
const problems = [];
|
|
11730
|
+
if ("schema" in data) problems.push(SCHEMA_PROBLEM);
|
|
11731
|
+
const name = optionalString(data, "name", problems);
|
|
11732
|
+
const fields = readFields(data, problems, { required: false });
|
|
11733
|
+
const config2 = optionalConfig(data, problems);
|
|
11734
|
+
const changeDescription = optionalString(data, "changeDescription", problems);
|
|
11735
|
+
const expectedVersionId = optionalString(data, "expectedVersionId", problems);
|
|
11736
|
+
const updatePushSnapshot = optionalBoolean(
|
|
11737
|
+
data,
|
|
11738
|
+
"updatePushSnapshot",
|
|
11739
|
+
problems
|
|
11740
|
+
);
|
|
11741
|
+
const snapshotOnly = optionalBoolean(data, "snapshotOnly", problems);
|
|
11742
|
+
const allowLookupRebuild = optionalBoolean(
|
|
11743
|
+
data,
|
|
11744
|
+
"allowLookupRebuild",
|
|
11745
|
+
problems
|
|
11746
|
+
);
|
|
11747
|
+
if (problems.length > 0) {
|
|
11748
|
+
throw new Error(`${problems.join("\n")}
|
|
11749
|
+
|
|
11750
|
+
${UPDATE_MODEL_EXAMPLE}`);
|
|
11751
|
+
}
|
|
11752
|
+
return {
|
|
11753
|
+
name,
|
|
11754
|
+
fields,
|
|
11755
|
+
config: config2,
|
|
11756
|
+
changeDescription,
|
|
11757
|
+
expectedVersionId,
|
|
11758
|
+
updatePushSnapshot,
|
|
11759
|
+
snapshotOnly,
|
|
11760
|
+
allowLookupRebuild
|
|
11761
|
+
};
|
|
11762
|
+
}
|
|
11306
11763
|
function registerModelsCommands(program2, globalOpts) {
|
|
11307
11764
|
const models = program2.command("models").description("Manage models");
|
|
11308
11765
|
models.command("list").description("List all models").option("--category <cat>", "Filter by category").option("--search <term>", "Search by name").option("--first <n>", "Max results", "50").option("--after <cursor>", "Opaque cursor from previous page").action(
|
|
@@ -11345,9 +11802,9 @@ function registerModelsCommands(program2, globalOpts) {
|
|
|
11345
11802
|
models.command("create").description("Create a new model").option("-d, --data <json>", "Model data as JSON").option("-f, --file <path>", "Read data from file").action(
|
|
11346
11803
|
withErrorHandler(globalOpts, async (cmdOpts) => {
|
|
11347
11804
|
const opts = globalOpts();
|
|
11805
|
+
const params = readCreateModelData(await parseInputData(cmdOpts));
|
|
11348
11806
|
const client = await createPlatformClient(opts);
|
|
11349
|
-
const
|
|
11350
|
-
const model = await client.models.createModel(inputData);
|
|
11807
|
+
const model = await client.models.createModel(params);
|
|
11351
11808
|
formatOutputProto(ModelSchema, model, opts);
|
|
11352
11809
|
if (!(opts.json || opts.jsonl || opts.quiet)) {
|
|
11353
11810
|
success(`Created model ${model?.key}`);
|
|
@@ -11359,15 +11816,15 @@ function registerModelsCommands(program2, globalOpts) {
|
|
|
11359
11816
|
globalOpts,
|
|
11360
11817
|
async (key, cmdOpts) => {
|
|
11361
11818
|
const opts = globalOpts();
|
|
11819
|
+
const patch = readUpdateModelData(await parseInputData(cmdOpts));
|
|
11362
11820
|
const client = await createPlatformClient(opts);
|
|
11363
11821
|
const existing = await client.models.getModelByKey(key);
|
|
11364
11822
|
if (!existing) {
|
|
11365
11823
|
throw new Error(`Model "${key}" not found.`);
|
|
11366
11824
|
}
|
|
11367
|
-
const inputData = await parseInputData(cmdOpts);
|
|
11368
11825
|
const model = await client.models.updateModel({
|
|
11369
11826
|
id: existing.id,
|
|
11370
|
-
...
|
|
11827
|
+
...patch
|
|
11371
11828
|
});
|
|
11372
11829
|
formatOutputProto(ModelSchema, model, opts);
|
|
11373
11830
|
if (!(opts.json || opts.jsonl || opts.quiet)) {
|
|
@@ -14331,20 +14788,40 @@ function withSubjectOptions(command) {
|
|
|
14331
14788
|
function registerNotesCommands(program2, globalOpts) {
|
|
14332
14789
|
const notes = program2.command("notes").description("Manage notes and comments");
|
|
14333
14790
|
withSubjectOptions(
|
|
14334
|
-
notes.command("list").description("List notes on a subject")
|
|
14791
|
+
notes.command("list").description("List notes on a subject, or an operator's task queue")
|
|
14792
|
+
).option(
|
|
14793
|
+
"--assignee <operatorId>",
|
|
14794
|
+
"List the notes ASSIGNED to this operator \u2014 their task queue. On its own it spans the whole project; with the subject flags it narrows to one thing"
|
|
14335
14795
|
).option("--include-resolved", "Include resolved notes").option("--first <n>", "Max results", "20").action(
|
|
14336
14796
|
withErrorHandler(globalOpts, async (cmdOpts) => {
|
|
14337
14797
|
rejectRetiredEntityFlags(cmdOpts);
|
|
14338
|
-
const
|
|
14798
|
+
const where = {};
|
|
14799
|
+
const wantsSubject = cmdOpts.subjectType !== void 0 || cmdOpts.subjectId !== void 0 || cmdOpts.modelKey !== void 0;
|
|
14800
|
+
const assignee = typeof cmdOpts.assignee === "string" ? cmdOpts.assignee : void 0;
|
|
14801
|
+
if (assignee !== void 0) {
|
|
14802
|
+
where.assigneeId = { eq: assignee };
|
|
14803
|
+
}
|
|
14804
|
+
if (wantsSubject || assignee === void 0) {
|
|
14805
|
+
let subject;
|
|
14806
|
+
try {
|
|
14807
|
+
subject = readSubject(cmdOpts);
|
|
14808
|
+
} catch (err) {
|
|
14809
|
+
if (wantsSubject) throw err;
|
|
14810
|
+
throw new Error(
|
|
14811
|
+
`${err.message}
|
|
14812
|
+
|
|
14813
|
+
An operator's task queue needs no subject:
|
|
14814
|
+
--assignee <operatorId>`
|
|
14815
|
+
);
|
|
14816
|
+
}
|
|
14817
|
+
where.subjectType = { eq: subject.type };
|
|
14818
|
+
where.subjectId = { eq: subject.id };
|
|
14819
|
+
if (subject.modelKey) {
|
|
14820
|
+
where.subjectModelKey = { eq: subject.modelKey };
|
|
14821
|
+
}
|
|
14822
|
+
}
|
|
14339
14823
|
const opts = globalOpts();
|
|
14340
14824
|
const client = await createPlatformClient(opts);
|
|
14341
|
-
const where = {
|
|
14342
|
-
subjectType: { eq: subject.type },
|
|
14343
|
-
subjectId: { eq: subject.id }
|
|
14344
|
-
};
|
|
14345
|
-
if (subject.modelKey) {
|
|
14346
|
-
where.subjectModelKey = { eq: subject.modelKey };
|
|
14347
|
-
}
|
|
14348
14825
|
if (!cmdOpts.includeResolved) where.isResolved = { eq: false };
|
|
14349
14826
|
const data = await client.settings.listNotes({
|
|
14350
14827
|
where,
|
|
@@ -14360,6 +14837,10 @@ function registerNotesCommands(program2, globalOpts) {
|
|
|
14360
14837
|
// createdBy is the attribution field. There is no authorId on Note,
|
|
14361
14838
|
// so the column this replaced was blank on every row.
|
|
14362
14839
|
{ key: "createdBy", header: "Author", width: 16 },
|
|
14840
|
+
// The owner of the work, distinct from the author of the text. A
|
|
14841
|
+
// note with one IS a task, so this column is what separates the
|
|
14842
|
+
// task list from the discussion around it.
|
|
14843
|
+
{ key: "assigneeId", header: "Assignee", width: 16 },
|
|
14363
14844
|
{
|
|
14364
14845
|
key: "isResolved",
|
|
14365
14846
|
header: "Resolved",
|
|
@@ -14388,7 +14869,10 @@ function registerNotesCommands(program2, globalOpts) {
|
|
|
14388
14869
|
);
|
|
14389
14870
|
withSubjectOptions(
|
|
14390
14871
|
notes.command("create").description("Create a note on a subject")
|
|
14391
|
-
).requiredOption("--body <text>", "Note body text").option("--parent-note-id <id>", "Reply to a note").
|
|
14872
|
+
).requiredOption("--body <text>", "Note body text").option("--parent-note-id <id>", "Reply to a note").option(
|
|
14873
|
+
"--assignee <operatorId>",
|
|
14874
|
+
"Hand the note to this operator as work, making it a task from the moment it is written. Refused if they have no access to the project"
|
|
14875
|
+
).action(
|
|
14392
14876
|
withErrorHandler(globalOpts, async (cmdOpts) => {
|
|
14393
14877
|
rejectRetiredEntityFlags(cmdOpts);
|
|
14394
14878
|
const subject = readSubject(cmdOpts);
|
|
@@ -14403,11 +14887,39 @@ function registerNotesCommands(program2, globalOpts) {
|
|
|
14403
14887
|
if (cmdOpts.parentNoteId) {
|
|
14404
14888
|
params.parentNoteId = cmdOpts.parentNoteId;
|
|
14405
14889
|
}
|
|
14890
|
+
if (cmdOpts.assignee) {
|
|
14891
|
+
params.assigneeId = cmdOpts.assignee;
|
|
14892
|
+
}
|
|
14406
14893
|
const note = await client.settings.createNote(params);
|
|
14407
14894
|
formatOutputProto(NoteSchema, note, opts);
|
|
14408
14895
|
if (!(opts.json || opts.jsonl || opts.quiet)) success("Note created");
|
|
14409
14896
|
})
|
|
14410
14897
|
);
|
|
14898
|
+
notes.command("assign <id> <operatorId>").description(
|
|
14899
|
+
"Hand a note to an operator as work, making it a task. Use unassign to hand it back"
|
|
14900
|
+
).action(
|
|
14901
|
+
withErrorHandler(globalOpts, async (id, operatorId) => {
|
|
14902
|
+
const opts = globalOpts();
|
|
14903
|
+
const client = await createPlatformClient(opts);
|
|
14904
|
+
const note = await client.settings.updateNote({
|
|
14905
|
+
id,
|
|
14906
|
+
assigneeId: operatorId
|
|
14907
|
+
});
|
|
14908
|
+
formatOutputProto(NoteSchema, note, opts);
|
|
14909
|
+
if (!(opts.json || opts.jsonl || opts.quiet))
|
|
14910
|
+
success(`Assigned note ${id} to ${operatorId}`);
|
|
14911
|
+
})
|
|
14912
|
+
);
|
|
14913
|
+
notes.command("unassign <id>").description("Take a note back off whoever owns it, leaving it a comment").action(
|
|
14914
|
+
withErrorHandler(globalOpts, async (id) => {
|
|
14915
|
+
const opts = globalOpts();
|
|
14916
|
+
const client = await createPlatformClient(opts);
|
|
14917
|
+
const note = await client.settings.updateNote({ id, assigneeId: "" });
|
|
14918
|
+
formatOutputProto(NoteSchema, note, opts);
|
|
14919
|
+
if (!(opts.json || opts.jsonl || opts.quiet))
|
|
14920
|
+
success(`Unassigned note ${id}`);
|
|
14921
|
+
})
|
|
14922
|
+
);
|
|
14411
14923
|
notes.command("resolve <id>").description("Resolve a note").option("--resolution <text>", "Why the discussion is closed").action(
|
|
14412
14924
|
withErrorHandler(
|
|
14413
14925
|
globalOpts,
|
|
@@ -15838,6 +16350,8 @@ async function fetchFoirManifest(config2) {
|
|
|
15838
16350
|
}
|
|
15839
16351
|
return await res.json();
|
|
15840
16352
|
}
|
|
16353
|
+
var MAX_QUERY_COMPLEXITY = 1e4;
|
|
16354
|
+
var MAX_EMITTED_FIELDS = 4 * MAX_QUERY_COMPLEXITY;
|
|
15841
16355
|
|
|
15842
16356
|
// src/lib/types-codegen.ts
|
|
15843
16357
|
var FoirTypesGenerationError = class extends Error {
|
|
@@ -15857,25 +16371,34 @@ var SCALAR_TS = {
|
|
|
15857
16371
|
JSON: "FoirJsonValue"
|
|
15858
16372
|
};
|
|
15859
16373
|
var VALUE_OBJECT_TS = {
|
|
16374
|
+
// What a current server emits.
|
|
16375
|
+
Image: "Image",
|
|
16376
|
+
Video: "Video",
|
|
16377
|
+
FileValue: "FileValue",
|
|
16378
|
+
Richtext: "Richtext",
|
|
16379
|
+
GeoPoint: "GeoPoint",
|
|
16380
|
+
Reference: "Reference",
|
|
16381
|
+
CollabInfo: "CollabInfo",
|
|
16382
|
+
// Pre-TTS-1391 captures. Same shapes, and the SDK still exports these names.
|
|
15860
16383
|
ImageValue: "ImageValue",
|
|
15861
16384
|
VideoValue: "VideoValue",
|
|
15862
|
-
FileValue: "FileValue",
|
|
15863
16385
|
MediaValue: "MediaValue",
|
|
15864
16386
|
RichtextValue: "RichtextValue",
|
|
15865
16387
|
GeoPointValue: "GeoPointValue",
|
|
15866
|
-
ReferenceValue: "ReferenceValue"
|
|
15867
|
-
CollabInfo: "CollabInfo"
|
|
16388
|
+
ReferenceValue: "ReferenceValue"
|
|
15868
16389
|
};
|
|
15869
|
-
var
|
|
15870
|
-
|
|
15871
|
-
|
|
15872
|
-
|
|
15873
|
-
|
|
15874
|
-
|
|
15875
|
-
|
|
15876
|
-
|
|
15877
|
-
flexible: "FlexibleBlock"
|
|
16390
|
+
var RETIRED_PRIMITIVES = /* @__PURE__ */ new Set(["text", "media", "flexible"]);
|
|
16391
|
+
var ITEM_PRIMITIVE_TS = {
|
|
16392
|
+
richtext: "Richtext",
|
|
16393
|
+
image: "Image",
|
|
16394
|
+
video: "Video",
|
|
16395
|
+
file: "FileValue",
|
|
16396
|
+
reference: "Reference",
|
|
16397
|
+
geopoint: "GeoPoint"
|
|
15878
16398
|
};
|
|
16399
|
+
var ITEM_PRIMITIVE_KEY_BY_TYPE = Object.fromEntries(
|
|
16400
|
+
Object.entries(ITEM_PRIMITIVE_TS).map(([key, typeName]) => [typeName, key])
|
|
16401
|
+
);
|
|
15879
16402
|
var ARG_TS = {
|
|
15880
16403
|
after: "string",
|
|
15881
16404
|
before: "string",
|
|
@@ -15922,6 +16445,7 @@ var RETURN_IMPORTS = [
|
|
|
15922
16445
|
];
|
|
15923
16446
|
var RESERVED_MODEL_KEYS = /* @__PURE__ */ new Set(["raw", "ns"]);
|
|
15924
16447
|
var RECORD_REF_TYPE = "FoirRecordRef";
|
|
16448
|
+
var TYPED_DEPTH_LEVELS = [2, 3, 4];
|
|
15925
16449
|
var quote = (s) => `'${s.replace(/\\/g, "\\\\").replace(/'/g, "\\'")}'`;
|
|
15926
16450
|
var propKey = (key) => /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? key : quote(key);
|
|
15927
16451
|
var pascal = (s) => s.split(/[^a-zA-Z0-9]+/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("");
|
|
@@ -15954,9 +16478,15 @@ var Emitter = class {
|
|
|
15954
16478
|
this.modelKeys = Object.keys(manifest.models ?? {}).sort();
|
|
15955
16479
|
this.namespaceNames = Object.keys(manifest.namespaces ?? {}).sort();
|
|
15956
16480
|
this.cyclic = compositeCycleMembers(manifest);
|
|
16481
|
+
this.truncatedComposites = truncatedBlockComposites(manifest);
|
|
16482
|
+
this.cutFields = blockCutFields(manifest);
|
|
16483
|
+
this.cutModels = cutReach(manifest, this.cutFields);
|
|
16484
|
+
this.depth = depthReach(manifest, this.truncatedComposites, this.cutModels);
|
|
15957
16485
|
this.aliasIndex = buildAliasIndex(manifest);
|
|
15958
16486
|
this.unionRefs = buildUnionRefs(manifest);
|
|
15959
16487
|
this.vocabularies = buildSortVocabularies(manifest, this.modelKeys, this.warnings);
|
|
16488
|
+
this.memberKeyByName = modelKeyByMemberName(manifest);
|
|
16489
|
+
this.proseUnions = proseEntryUnions(manifest);
|
|
15960
16490
|
}
|
|
15961
16491
|
manifest;
|
|
15962
16492
|
options;
|
|
@@ -15964,6 +16494,14 @@ var Emitter = class {
|
|
|
15964
16494
|
warnings = [];
|
|
15965
16495
|
/** Model keys whose composites cycle — see `compositeCycleMembers`. */
|
|
15966
16496
|
cyclic;
|
|
16497
|
+
/** Composites the server cut inside a block member — see `truncatedBlockComposites`. */
|
|
16498
|
+
truncatedComposites;
|
|
16499
|
+
/** Fields the server cut BELOW a block member — see `blockCutFields`. */
|
|
16500
|
+
cutFields;
|
|
16501
|
+
/** Model keys whose interface carries the `<C>` cut parameter. See `cutReach`. */
|
|
16502
|
+
cutModels;
|
|
16503
|
+
/** Which types carry the `<D>` union-level parameter. See `depthReach`. */
|
|
16504
|
+
depth;
|
|
15967
16505
|
modelKeys;
|
|
15968
16506
|
namespaceNames;
|
|
15969
16507
|
/** Union type name → member type name → the fields that union renames. */
|
|
@@ -15972,6 +16510,10 @@ var Emitter = class {
|
|
|
15972
16510
|
unionRefs;
|
|
15973
16511
|
/** Model key → the sort vocabulary the manifest published for it. */
|
|
15974
16512
|
vocabularies;
|
|
16513
|
+
/** Union member type name → model key, for prose entries. */
|
|
16514
|
+
memberKeyByName;
|
|
16515
|
+
/** `<modelKey>.<fieldKey>` → the union its prose entries expand to. */
|
|
16516
|
+
proseUnions;
|
|
15975
16517
|
projections = /* @__PURE__ */ new Map();
|
|
15976
16518
|
unionMemberCount = 0;
|
|
15977
16519
|
needsRecordRef = false;
|
|
@@ -15985,7 +16527,6 @@ var Emitter = class {
|
|
|
15985
16527
|
}
|
|
15986
16528
|
const unions = this.emitUnionAliases();
|
|
15987
16529
|
const projections = this.emitMemberProjections();
|
|
15988
|
-
const blocks = this.emitBlockMembers();
|
|
15989
16530
|
const models = this.emitModelInterfaces();
|
|
15990
16531
|
const orderBys = this.emitOrderByTypes();
|
|
15991
16532
|
const args = this.emitArgs();
|
|
@@ -15996,7 +16537,6 @@ var Emitter = class {
|
|
|
15996
16537
|
...models,
|
|
15997
16538
|
...unions.length ? ["", ...unions] : [],
|
|
15998
16539
|
...recordRef.length ? ["", ...recordRef] : [],
|
|
15999
|
-
...blocks.length ? ["", ...blocks] : [],
|
|
16000
16540
|
...projections.length ? ["", ...projections] : [],
|
|
16001
16541
|
...orderBys.length ? ["", ...orderBys] : [],
|
|
16002
16542
|
...args.length ? ["", ...args] : [],
|
|
@@ -16188,11 +16728,30 @@ var Emitter = class {
|
|
|
16188
16728
|
],
|
|
16189
16729
|
" * - namespace op arguments and results (`unknown` \u2014 the manifest lists root",
|
|
16190
16730
|
" * field NAMES only);",
|
|
16191
|
-
" * - anything past a
|
|
16192
|
-
" * the current path, so a self-referential composite
|
|
16193
|
-
" * inside a union member
|
|
16194
|
-
" *
|
|
16195
|
-
" * `
|
|
16731
|
+
" * - anything past a stopping point. The op compiler never expands a type",
|
|
16732
|
+
" * already on the current path, so a self-referential composite, a union",
|
|
16733
|
+
" * nested inside a union member, and a composite reached THROUGH a union",
|
|
16734
|
+
" * member all arrive carrying `__typename` and nothing else. Those",
|
|
16735
|
+
" * positions are typed `FoirDegraded`.",
|
|
16736
|
+
" *",
|
|
16737
|
+
" * A stopping point in front of a UNION can be bought back a level at a time:",
|
|
16738
|
+
" * `foir.<model>.findMany({ depth: 2 })` fetches it AND types it, so the nested",
|
|
16739
|
+
" * member is read with a `__typename` narrowing and no cast. The composites on",
|
|
16740
|
+
" * the path carry a `<D>` level parameter for that, defaulted to 1 \u2014 which is",
|
|
16741
|
+
" * why a call passing no `depth` gets the same type it always did.",
|
|
16742
|
+
" *",
|
|
16743
|
+
" * A COMPOSITE stopping point cannot be bought back at all \u2014 there is no union",
|
|
16744
|
+
" * to expand, so it is `FoirDegraded` at every level. Read the record it names",
|
|
16745
|
+
" * with a second call.",
|
|
16746
|
+
...this.cutModels.size ? [
|
|
16747
|
+
" *",
|
|
16748
|
+
" * A stopping point can also land BELOW a union member, inside a composite",
|
|
16749
|
+
" * subtree the compiler did expand. The shape reached there is the same one",
|
|
16750
|
+
" * a model position reaches, and it arrives differently at each \u2014 so it takes",
|
|
16751
|
+
" * a second parameter, `C`, which its REFERENCE sets: `true` from inside a",
|
|
16752
|
+
" * union member, `false` (the default) everywhere else. Nothing a caller",
|
|
16753
|
+
" * writes ever passes it; it is set by the position the value came from."
|
|
16754
|
+
] : [],
|
|
16196
16755
|
" */"
|
|
16197
16756
|
];
|
|
16198
16757
|
}
|
|
@@ -16228,6 +16787,7 @@ var Emitter = class {
|
|
|
16228
16787
|
} else if (VALUE_OBJECT_TS[scalar.type]) {
|
|
16229
16788
|
base = VALUE_OBJECT_TS[scalar.type];
|
|
16230
16789
|
this.imports.add(base);
|
|
16790
|
+
if (base === "Reference") base = `Reference<${this.recordRefType()}>`;
|
|
16231
16791
|
} else {
|
|
16232
16792
|
this.warnings.push(
|
|
16233
16793
|
`${modelKey}.${scalar.key}: no TypeScript mapping for GraphQL type "${scalar.type}" \u2014 emitted \`unknown\``
|
|
@@ -16237,34 +16797,165 @@ var Emitter = class {
|
|
|
16237
16797
|
return wrap(base, { list: scalar.list, nullable: scalar.nullable });
|
|
16238
16798
|
}
|
|
16239
16799
|
// -------------------------------------------------------------------------
|
|
16240
|
-
//
|
|
16800
|
+
// Structurals — prose and the hierarchy walk
|
|
16241
16801
|
// -------------------------------------------------------------------------
|
|
16242
16802
|
/**
|
|
16243
|
-
*
|
|
16244
|
-
*
|
|
16803
|
+
* The element type of a platform-owned structural field.
|
|
16804
|
+
*
|
|
16805
|
+
* Two shapes, and only two: the hierarchy walk's `ancestors`, and a prose
|
|
16806
|
+
* wrapper. Both are shipped by `@foir/sdk/data` rather than generated,
|
|
16807
|
+
* because their fields are identical in every project — what is NOT
|
|
16808
|
+
* identical is a prose field's `entries`, which is why `Prose` takes a
|
|
16809
|
+
* parameter and this resolves it per field.
|
|
16810
|
+
*
|
|
16811
|
+
* Resolved from the SELECTION TREE, not from the wrapper's name. The name
|
|
16812
|
+
* (`ProseCta`, `ProseCtaMedia`) is the generator's composition of its
|
|
16813
|
+
* members' type names, and re-deriving a member set by splitting it back
|
|
16814
|
+
* apart would be a parse of somebody else's naming — ambiguous the moment
|
|
16815
|
+
* two model type names concatenate to a third. The tree publishes the
|
|
16816
|
+
* union's members directly.
|
|
16817
|
+
*/
|
|
16818
|
+
structuralType(modelKey, structural) {
|
|
16819
|
+
if (structural.type === "RecordAncestor") {
|
|
16820
|
+
this.imports.add("RecordAncestor");
|
|
16821
|
+
return "Array<RecordAncestor>";
|
|
16822
|
+
}
|
|
16823
|
+
if (structural.type === "Prose" || structural.type.startsWith("Prose")) {
|
|
16824
|
+
this.imports.add("Prose");
|
|
16825
|
+
const entries = this.proseEntriesType(modelKey, structural.key);
|
|
16826
|
+
return wrap(`Prose<${entries}>`, { list: structural.list, nullable: structural.nullable });
|
|
16827
|
+
}
|
|
16828
|
+
this.warnings.push(
|
|
16829
|
+
`${modelKey}.${structural.key}: no TypeScript mapping for structural type "${structural.type}" \u2014 emitted \`unknown\``
|
|
16830
|
+
);
|
|
16831
|
+
return wrap("unknown", { list: structural.list, nullable: structural.nullable });
|
|
16832
|
+
}
|
|
16833
|
+
/**
|
|
16834
|
+
* A prose field's entries element: `Passage` for a text-only field, and
|
|
16835
|
+
* `Passage | <each admitted embed>` for one that places models.
|
|
16245
16836
|
*
|
|
16246
|
-
*
|
|
16247
|
-
*
|
|
16248
|
-
*
|
|
16249
|
-
*
|
|
16250
|
-
*
|
|
16251
|
-
* cycle, which is at or before where the server degrades.
|
|
16837
|
+
* `Passage` is the fallback for every absence — a server that publishes no
|
|
16838
|
+
* selection trees, a field the tree does not describe, a member the
|
|
16839
|
+
* credential cannot see. A text-only prose field is the DEFAULT declaration
|
|
16840
|
+
* (an absent `allowedTypes` means text only), so widening to it on absence
|
|
16841
|
+
* is the same answer as widening to the default, not a guess.
|
|
16252
16842
|
*/
|
|
16253
|
-
|
|
16843
|
+
proseEntriesType(modelKey, fieldKey) {
|
|
16844
|
+
const unionRef = this.proseUnions.get(`${modelKey}.${fieldKey}`);
|
|
16845
|
+
if (!unionRef) {
|
|
16846
|
+
this.imports.add("Passage");
|
|
16847
|
+
return "Passage";
|
|
16848
|
+
}
|
|
16849
|
+
const members = this.manifest.selectionUnions?.[unionRef]?.members ?? [];
|
|
16850
|
+
const parts = [];
|
|
16851
|
+
for (const member of members) {
|
|
16852
|
+
if (member.typeName === "Passage") {
|
|
16853
|
+
this.imports.add("Passage");
|
|
16854
|
+
parts.push("Passage");
|
|
16855
|
+
continue;
|
|
16856
|
+
}
|
|
16857
|
+
const primitiveKey = ITEM_PRIMITIVE_KEY_BY_TYPE[member.typeName];
|
|
16858
|
+
if (primitiveKey) {
|
|
16859
|
+
parts.push(this.unionMemberType(modelKey, fieldKey, primitiveKey));
|
|
16860
|
+
continue;
|
|
16861
|
+
}
|
|
16862
|
+
const key = this.memberKeyByName.get(member.typeName);
|
|
16863
|
+
const target = key ? this.manifest.models?.[key] : void 0;
|
|
16864
|
+
if (!target || !key) {
|
|
16865
|
+
this.imports.add("FoirDegraded");
|
|
16866
|
+
parts.push(`FoirDegraded<${quote(member.typeName)}>`);
|
|
16867
|
+
continue;
|
|
16868
|
+
}
|
|
16869
|
+
parts.push(`${target.typeName}${this.depthArg(this.depth.models.has(key))}`);
|
|
16870
|
+
}
|
|
16871
|
+
if (parts.length === 0) {
|
|
16872
|
+
this.imports.add("Passage");
|
|
16873
|
+
return "Passage";
|
|
16874
|
+
}
|
|
16875
|
+
return parts.join(" | ");
|
|
16876
|
+
}
|
|
16877
|
+
// -------------------------------------------------------------------------
|
|
16878
|
+
// Composites
|
|
16879
|
+
// -------------------------------------------------------------------------
|
|
16880
|
+
/** The element type of a composite — everything inside `Array<… | null>`. */
|
|
16881
|
+
compositeElement(ownerKey, composite, truncated, cutFlag) {
|
|
16254
16882
|
const target = this.manifest.models?.[composite.target];
|
|
16255
16883
|
if (!target) {
|
|
16256
16884
|
throw new FoirTypesGenerationError(
|
|
16257
16885
|
`model "${ownerKey}" has a composite "${composite.key}" targeting "${composite.target}", which is not in the manifest's \`models\`. The payload is supposed to be closed over composite targets, so this is a manifest bug, not a generator one.`
|
|
16258
16886
|
);
|
|
16259
16887
|
}
|
|
16260
|
-
const
|
|
16261
|
-
|
|
16888
|
+
const cut = truncated || this.cyclic.has(ownerKey) && this.cyclic.has(composite.target);
|
|
16889
|
+
if (cut) return this.degraded(target.typeName);
|
|
16890
|
+
const args = this.depthArg(
|
|
16891
|
+
this.depth.models.has(composite.target),
|
|
16892
|
+
this.cutArg(composite.target, cutFlag)
|
|
16893
|
+
);
|
|
16894
|
+
return `${target.typeName}${args}`;
|
|
16895
|
+
}
|
|
16896
|
+
/**
|
|
16897
|
+
* The cut flag to pass to a REFERENCED type, or nothing.
|
|
16898
|
+
*
|
|
16899
|
+
* `''` where the target does not take `<C>` — most of them — so a reference
|
|
16900
|
+
* that could only resolve to the default stays plain. Otherwise whatever the
|
|
16901
|
+
* referencing position knows: `true` from inside a union member, and the
|
|
16902
|
+
* owner's own `C` from a model interface, which is why the answer travels
|
|
16903
|
+
* with the reference rather than sitting in the target's declaration.
|
|
16904
|
+
*/
|
|
16905
|
+
cutArg(target, cutFlag) {
|
|
16906
|
+
return this.cutModels.has(target) ? cutFlag : "";
|
|
16262
16907
|
}
|
|
16263
16908
|
degraded(typeName) {
|
|
16264
16909
|
this.imports.add("FoirDegraded");
|
|
16265
16910
|
return `FoirDegraded<${quote(typeName)}>`;
|
|
16266
16911
|
}
|
|
16267
16912
|
// -------------------------------------------------------------------------
|
|
16913
|
+
// Depth — the `<D>` parameter
|
|
16914
|
+
// -------------------------------------------------------------------------
|
|
16915
|
+
/** `<D>` / `<D, true>` where a referenced type takes the parameters, nothing where it does not. */
|
|
16916
|
+
depthArg(generic, cutFlag = "") {
|
|
16917
|
+
if (!generic) {
|
|
16918
|
+
if (cutFlag) {
|
|
16919
|
+
throw new FoirTypesGenerationError(
|
|
16920
|
+
`internal: a reference passes the cut flag "${cutFlag}" to a type that takes no <D> parameter, so the argument list would be positionally wrong. \`depthReach\` must seed its model set with \`cutReach\`.`
|
|
16921
|
+
);
|
|
16922
|
+
}
|
|
16923
|
+
return "";
|
|
16924
|
+
}
|
|
16925
|
+
return cutFlag ? `<D, ${cutFlag}>` : "<D>";
|
|
16926
|
+
}
|
|
16927
|
+
/**
|
|
16928
|
+
* The parameter list on a declaration.
|
|
16929
|
+
*
|
|
16930
|
+
* `<D>` first and `<C>` second at every declaration that takes both, which is
|
|
16931
|
+
* what lets a reference write `<D, true>` without knowing anything else about
|
|
16932
|
+
* the target.
|
|
16933
|
+
*/
|
|
16934
|
+
depthParam(generic, cut = false) {
|
|
16935
|
+
if (!generic) return "";
|
|
16936
|
+
this.imports.add("FoirDepthLevel");
|
|
16937
|
+
return cut ? "<D extends FoirDepthLevel = 1, C extends boolean = false>" : "<D extends FoirDepthLevel = 1>";
|
|
16938
|
+
}
|
|
16939
|
+
/**
|
|
16940
|
+
* A block member's truncated union field.
|
|
16941
|
+
*
|
|
16942
|
+
* The whole point of the parameter. At level 1 — the complete-by-default
|
|
16943
|
+
* document, and what every reference resolves to when a caller passes no
|
|
16944
|
+
* `depth` — this is the degraded alias and the emitted text is what it always
|
|
16945
|
+
* was. Above 1 it is the expanded union with one level spent, which is
|
|
16946
|
+
* exactly what the printer does at this position: `printFields` expands a
|
|
16947
|
+
* `truncated` field carrying a union only when the budget allows, and
|
|
16948
|
+
* recurses at `depth - 1`.
|
|
16949
|
+
*/
|
|
16950
|
+
truncatedUnionType(key, model, fieldKey) {
|
|
16951
|
+
const degraded = this.degradedUnionName(model, fieldKey);
|
|
16952
|
+
const union = this.unionTypeName(model, fieldKey);
|
|
16953
|
+
const generic = this.depth.unions.has(`${key}.${fieldKey}`);
|
|
16954
|
+
if (generic) this.imports.add("FoirDepthBelow");
|
|
16955
|
+
const expanded = generic ? `${union}<FoirDepthBelow[D]>` : union;
|
|
16956
|
+
return `D extends 1 ? ${degraded} : ${expanded}`;
|
|
16957
|
+
}
|
|
16958
|
+
// -------------------------------------------------------------------------
|
|
16268
16959
|
// Unions
|
|
16269
16960
|
// -------------------------------------------------------------------------
|
|
16270
16961
|
/** `TillyPageBlocks` — named per (owner, field) because member sets differ. */
|
|
@@ -16274,25 +16965,26 @@ var Emitter = class {
|
|
|
16274
16965
|
/**
|
|
16275
16966
|
* A union member key → the TypeScript type for that branch.
|
|
16276
16967
|
*
|
|
16277
|
-
* The manifest lists member KEYS. A key resolves to a model
|
|
16278
|
-
*
|
|
16279
|
-
*
|
|
16280
|
-
*
|
|
16281
|
-
*
|
|
16282
|
-
*
|
|
16283
|
-
*
|
|
16968
|
+
* The manifest lists member KEYS. A key resolves to a model — as the model's
|
|
16969
|
+
* OWN type, because TTS-1391 removed the per-model wrapper and made a member
|
|
16970
|
+
* the model itself — or to one of the primitives. Anything else is fatal:
|
|
16971
|
+
* skipping it would emit a union missing a branch that arrives at runtime,
|
|
16972
|
+
* which is precisely the "lie the consumer's generated types cannot recover
|
|
16973
|
+
* from" this epic exists to prevent. A loud failure naming the member is the
|
|
16974
|
+
* only acceptable behaviour, and it is what makes the static primitive table
|
|
16975
|
+
* safe to keep.
|
|
16284
16976
|
*/
|
|
16285
16977
|
unionMemberType(ownerKey, fieldKey, memberKey) {
|
|
16286
|
-
const primitive =
|
|
16978
|
+
const primitive = ITEM_PRIMITIVE_TS[memberKey];
|
|
16287
16979
|
if (primitive) {
|
|
16288
16980
|
this.imports.add(primitive);
|
|
16289
|
-
if (primitive === "
|
|
16981
|
+
if (primitive === "Reference") return `Reference<${this.recordRefType()}>`;
|
|
16290
16982
|
return primitive;
|
|
16291
16983
|
}
|
|
16292
16984
|
const model = this.manifest.models?.[memberKey];
|
|
16293
|
-
if (model) return
|
|
16985
|
+
if (model) return model.typeName;
|
|
16294
16986
|
throw new FoirTypesGenerationError(
|
|
16295
|
-
`union ${ownerKey}.${fieldKey} has member "${memberKey}", which is neither a model in this manifest nor one of the known
|
|
16987
|
+
`union ${ownerKey}.${fieldKey} has member "${memberKey}", which is neither a model in this manifest nor one of the known primitives (${Object.keys(ITEM_PRIMITIVE_TS).sort().join(", ")}). Emitting the union without it would produce a branch-less \`switch\` at runtime, so this is fatal.` + (RETIRED_PRIMITIVES.has(memberKey) ? ` "${memberKey}" is a RETIRED primitive: the platform stopped serving it at TTS-1391/1406, so this manifest predates that. Re-read it \u2014 \`foir push\` then \`foir types\` against the live surface \u2014 rather than pinning an old capture.` : ` If the platform added a primitive, add it to ITEM_PRIMITIVE_TS and to packages/sdk/src/data/builtins.ts.`)
|
|
16296
16988
|
);
|
|
16297
16989
|
}
|
|
16298
16990
|
/**
|
|
@@ -16358,7 +17050,7 @@ var Emitter = class {
|
|
|
16358
17050
|
` * key \u2014 see the projections at the end of the file.`
|
|
16359
17051
|
] : [],
|
|
16360
17052
|
` */`,
|
|
16361
|
-
`export type ${this.unionTypeName(model, fieldKey)} =`,
|
|
17053
|
+
`export type ${this.unionTypeName(model, fieldKey)}${this.depthParam(this.depth.unions.has(`${key}.${fieldKey}`))} =`,
|
|
16362
17054
|
...indent(unionLines(branches)),
|
|
16363
17055
|
";",
|
|
16364
17056
|
""
|
|
@@ -16370,7 +17062,9 @@ var Emitter = class {
|
|
|
16370
17062
|
` *`,
|
|
16371
17063
|
` * A union reached from inside a union member is already on the compiler's`,
|
|
16372
17064
|
` * path, so it emits no fragments at all \u2014 just \`__typename\`, which still`,
|
|
16373
|
-
` * resolves to the concrete member. Nothing else arrives
|
|
17065
|
+
` * resolves to the concrete member. Nothing else arrives BY DEFAULT: a call`,
|
|
17066
|
+
` * passing \`{ depth: 2 }\` expands this position, and the values are then read`,
|
|
17067
|
+
` * by narrowing to \`${this.unionTypeName(model, fieldKey)}\` above.`,
|
|
16374
17068
|
` */`,
|
|
16375
17069
|
`export type ${this.degradedUnionName(model, fieldKey)} = FoirDegraded<`,
|
|
16376
17070
|
...indent(unionLines(this.memberTypenames(key, fieldKey, sorted).map(quote))),
|
|
@@ -16393,10 +17087,10 @@ var Emitter = class {
|
|
|
16393
17087
|
* the type it is an instance of.
|
|
16394
17088
|
*/
|
|
16395
17089
|
memberTypename(ownerKey, fieldKey, memberKey) {
|
|
16396
|
-
const primitive =
|
|
17090
|
+
const primitive = ITEM_PRIMITIVE_TS[memberKey];
|
|
16397
17091
|
if (primitive) return primitive;
|
|
16398
17092
|
const model = this.manifest.models?.[memberKey];
|
|
16399
|
-
if (model) return
|
|
17093
|
+
if (model) return model.typeName;
|
|
16400
17094
|
throw new FoirTypesGenerationError(
|
|
16401
17095
|
`union ${ownerKey}.${fieldKey} has unknown member "${memberKey}"`
|
|
16402
17096
|
);
|
|
@@ -16417,7 +17111,8 @@ var Emitter = class {
|
|
|
16417
17111
|
const unionName = this.unionRefs.get(`${ownerKey}.${fieldKey}`);
|
|
16418
17112
|
if (!unionName) return [];
|
|
16419
17113
|
const typeName = this.memberTypename(ownerKey, fieldKey, memberKey);
|
|
16420
|
-
|
|
17114
|
+
const index = this.aliasIndex.get(unionName);
|
|
17115
|
+
return index?.get(typeName) ?? index?.get(`${typeName}Block`) ?? [];
|
|
16421
17116
|
}
|
|
16422
17117
|
/**
|
|
16423
17118
|
* The branch this member contributes: its own type, or a projection of it.
|
|
@@ -16428,18 +17123,51 @@ var Emitter = class {
|
|
|
16428
17123
|
*/
|
|
16429
17124
|
unionBranch(ownerKey, fieldKey, memberKey) {
|
|
16430
17125
|
const base = this.unionMemberType(ownerKey, fieldKey, memberKey);
|
|
17126
|
+
const arg = this.depthArg(
|
|
17127
|
+
this.depth.models.has(memberKey),
|
|
17128
|
+
this.cutArg(memberKey, "true")
|
|
17129
|
+
);
|
|
17130
|
+
const typeNameOf = this.memberTypename(ownerKey, fieldKey, memberKey);
|
|
16431
17131
|
const fields = this.memberRenames(ownerKey, fieldKey, memberKey);
|
|
16432
|
-
if (!fields.length) return base;
|
|
17132
|
+
if (!fields.length) return this.withDiscriminant(`${base}${arg}`, typeNameOf);
|
|
17133
|
+
const plain = this.depthArg(this.depth.models.has(memberKey));
|
|
16433
17134
|
const unionName = this.unionRefs.get(`${ownerKey}.${fieldKey}`);
|
|
16434
17135
|
const typeName = this.memberTypename(ownerKey, fieldKey, memberKey);
|
|
16435
17136
|
const name = `${pascal(unionName)}${typeName}`;
|
|
16436
|
-
if (this.modelKeys.some((k) =>
|
|
17137
|
+
if (this.modelKeys.some((k) => this.manifest.models[k]?.typeName === name)) {
|
|
16437
17138
|
throw new FoirTypesGenerationError(
|
|
16438
|
-
`union "${unionName}" renames fields on member "${typeName}", and the projection type "${name}" collides with a
|
|
17139
|
+
`union "${unionName}" renames fields on member "${typeName}", and the projection type "${name}" collides with a type generated from a model. Rename the model, or the field on one member so the union does not have to alias it.`
|
|
16439
17140
|
);
|
|
16440
17141
|
}
|
|
16441
|
-
this.projections.set(name, {
|
|
16442
|
-
|
|
17142
|
+
this.projections.set(name, {
|
|
17143
|
+
name,
|
|
17144
|
+
base,
|
|
17145
|
+
baseArg: arg,
|
|
17146
|
+
typeName,
|
|
17147
|
+
unionName,
|
|
17148
|
+
fields,
|
|
17149
|
+
generic: plain !== ""
|
|
17150
|
+
});
|
|
17151
|
+
return this.withDiscriminant(`${name}${plain}`, typeName);
|
|
17152
|
+
}
|
|
17153
|
+
/**
|
|
17154
|
+
* A union branch: the member type, with `__typename` GUARANTEED.
|
|
17155
|
+
*
|
|
17156
|
+
* The member is the model's own interface (TTS-1391), and that interface does
|
|
17157
|
+
* not declare `__typename` — the op compiler selects it on a union's own
|
|
17158
|
+
* selection set and nowhere else, so promising it at a plain `page.hero`
|
|
17159
|
+
* would promise a key that never arrives.
|
|
17160
|
+
*
|
|
17161
|
+
* An intersection states both facts at once without minting a type: the
|
|
17162
|
+
* model, plus the discriminant this POSITION guarantees. It is also what the
|
|
17163
|
+
* narrowing surface requires — `IsPolymorphic` and the `on` machinery in
|
|
17164
|
+
* `@foir/sdk/data` are written as `U extends { __typename: infer T }`, and an
|
|
17165
|
+
* OPTIONAL key does not satisfy that, so a union of bare models would stop
|
|
17166
|
+
* being recognised as polymorphic and `pick: { on: … }` would silently vanish
|
|
17167
|
+
* from the typed surface.
|
|
17168
|
+
*/
|
|
17169
|
+
withDiscriminant(branch, typeName) {
|
|
17170
|
+
return `(${branch} & { __typename: ${quote(typeName)} })`;
|
|
16443
17171
|
}
|
|
16444
17172
|
/**
|
|
16445
17173
|
* Re-declare each renamed member with the union's response keys.
|
|
@@ -16468,11 +17196,15 @@ var Emitter = class {
|
|
|
16468
17196
|
` *`,
|
|
16469
17197
|
` * \`${p.typeName}\` still names the shape outside this union.`,
|
|
16470
17198
|
` */`,
|
|
16471
|
-
`export type ${p.name} = Omit<`,
|
|
16472
|
-
` ${p.base},`,
|
|
17199
|
+
`export type ${p.name}${this.depthParam(p.generic)} = Omit<`,
|
|
17200
|
+
` ${p.base}${p.baseArg},`,
|
|
16473
17201
|
...indent(unionLines(p.fields.map((f) => quote(f.key))), " "),
|
|
16474
17202
|
`> & {`,
|
|
16475
|
-
...indent(
|
|
17203
|
+
...indent(
|
|
17204
|
+
p.fields.map(
|
|
17205
|
+
(f) => `${propKey(f.alias)}: ${p.base}${p.baseArg}[${quote(f.key)}];`
|
|
17206
|
+
)
|
|
17207
|
+
),
|
|
16476
17208
|
`};`,
|
|
16477
17209
|
""
|
|
16478
17210
|
);
|
|
@@ -16509,6 +17241,8 @@ var Emitter = class {
|
|
|
16509
17241
|
for (const key of this.modelKeys) {
|
|
16510
17242
|
const model = this.manifest.models[key];
|
|
16511
17243
|
const lines = [];
|
|
17244
|
+
const takesCut = this.cutModels.has(key);
|
|
17245
|
+
const cutHere = takesCut ? this.cutFields.get(key) : void 0;
|
|
16512
17246
|
for (const scalar of [...model.scalars].sort((a, b) => a.key.localeCompare(b.key))) {
|
|
16513
17247
|
if (scalar.deprecated) {
|
|
16514
17248
|
lines.push("/** @deprecated soft-deleted \u2014 still selected, always resolves null. */");
|
|
@@ -16521,13 +17255,36 @@ var Emitter = class {
|
|
|
16521
17255
|
if (composite.deprecated) {
|
|
16522
17256
|
lines.push("/** @deprecated soft-deleted \u2014 still selected, always resolves null. */");
|
|
16523
17257
|
}
|
|
16524
|
-
|
|
16525
|
-
|
|
16526
|
-
|
|
17258
|
+
const whole = this.compositeElement(key, composite, false, takesCut ? "C" : "");
|
|
17259
|
+
const element = cutHere?.has(composite.key) ? this.branchOnCut(this.compositeElement(key, composite, true, ""), whole) : whole;
|
|
17260
|
+
if (cutHere?.has(composite.key) && element !== whole) {
|
|
17261
|
+
lines.push(
|
|
17262
|
+
`/** Cut where this model is reached from inside a union member \u2014 only \`__typename\` arrives there. */`
|
|
17263
|
+
);
|
|
17264
|
+
}
|
|
16527
17265
|
lines.push(
|
|
16528
|
-
`${propKey(
|
|
17266
|
+
`${propKey(composite.key)}: ${wrap(element, { list: composite.list, nullable: composite.nullable })};`
|
|
16529
17267
|
);
|
|
16530
17268
|
}
|
|
17269
|
+
for (const structural of [...model.structurals ?? []].sort(
|
|
17270
|
+
(a, b) => a.key.localeCompare(b.key)
|
|
17271
|
+
)) {
|
|
17272
|
+
if (structural.deprecated) {
|
|
17273
|
+
lines.push("/** @deprecated soft-deleted \u2014 still selected, always resolves null. */");
|
|
17274
|
+
}
|
|
17275
|
+
lines.push(`${propKey(structural.key)}: ${this.structuralType(key, structural)};`);
|
|
17276
|
+
}
|
|
17277
|
+
for (const fieldKey of Object.keys(model.unions ?? {}).sort()) {
|
|
17278
|
+
const arg = this.depthArg(this.depth.unions.has(`${key}.${fieldKey}`));
|
|
17279
|
+
const whole = `${this.unionTypeName(model, fieldKey)}${arg}`;
|
|
17280
|
+
const element = cutHere?.has(fieldKey) ? this.branchOnCut(`(${this.truncatedUnionType(key, model, fieldKey)})`, whole) : whole;
|
|
17281
|
+
if (cutHere?.has(fieldKey)) {
|
|
17282
|
+
lines.push(
|
|
17283
|
+
`/** Nested union where this model is reached from inside a union member \u2014 \`depth\` buys a level. */`
|
|
17284
|
+
);
|
|
17285
|
+
}
|
|
17286
|
+
lines.push(`${propKey(fieldKey)}: Array<${element} | null> | null;`);
|
|
17287
|
+
}
|
|
16531
17288
|
const opCount = Object.keys(model.ops ?? {}).length;
|
|
16532
17289
|
out.push(
|
|
16533
17290
|
`/**`,
|
|
@@ -16535,8 +17292,15 @@ var Emitter = class {
|
|
|
16535
17292
|
` *`,
|
|
16536
17293
|
` * Complete: every field below is always returned. Relations are deliberately`,
|
|
16537
17294
|
` * absent \u2014 they exist on a result only when \`include\` asked for them.`,
|
|
17295
|
+
...takesCut ? [
|
|
17296
|
+
` *`,
|
|
17297
|
+
` * \`C\` is \`true\` where this shape is reached from inside a union member. The`,
|
|
17298
|
+
` * compiler stops in front of the fields marked below at that position and`,
|
|
17299
|
+
` * sends \`__typename\` alone; every other reference resolves it to \`false\` and`,
|
|
17300
|
+
` * reads exactly what it always did.`
|
|
17301
|
+
] : [],
|
|
16538
17302
|
` */`,
|
|
16539
|
-
`export interface ${model.typeName} {`,
|
|
17303
|
+
`export interface ${model.typeName}${this.depthParam(this.depth.models.has(key), takesCut)} {`,
|
|
16540
17304
|
...indent(lines),
|
|
16541
17305
|
`}`,
|
|
16542
17306
|
""
|
|
@@ -16546,66 +17310,20 @@ var Emitter = class {
|
|
|
16546
17310
|
return out;
|
|
16547
17311
|
}
|
|
16548
17312
|
/**
|
|
16549
|
-
*
|
|
17313
|
+
* `(C extends true ? <cut> : <whole>)`, or `<whole>` where the two agree.
|
|
16550
17314
|
*
|
|
16551
|
-
*
|
|
16552
|
-
*
|
|
16553
|
-
*
|
|
16554
|
-
*
|
|
16555
|
-
*
|
|
16556
|
-
*
|
|
16557
|
-
*
|
|
17315
|
+
* PARENTHESISED, and it has to be. A conditional type binds looser than `|`,
|
|
17316
|
+
* so `Array<C extends true ? A : B | null>` is `Array<C extends true ? A :
|
|
17317
|
+
* (B | null)>` — the nullability silently moves onto one arm. The wrapper
|
|
17318
|
+
* this is handed to appends `| null`.
|
|
17319
|
+
*
|
|
17320
|
+
* The collapse is not cosmetic either. `menu_item.children` is cut below a
|
|
17321
|
+
* union member AND cut by `compositeCycleMembers` at the model position, so
|
|
17322
|
+
* both arms are `FoirDegraded` — emitting the conditional would put a
|
|
17323
|
+
* parameter on `MenuItem` that no reference could ever make a difference with.
|
|
16558
17324
|
*/
|
|
16559
|
-
|
|
16560
|
-
|
|
16561
|
-
const isPublic = (k, deprecated) => !k.startsWith("_") && !deprecated;
|
|
16562
|
-
for (const scalar of [...model.scalars].sort((a, b) => a.key.localeCompare(b.key))) {
|
|
16563
|
-
if (!isPublic(scalar.key, scalar.deprecated)) continue;
|
|
16564
|
-
lines.push(`${propKey(scalar.key)}: ${this.scalarType(key, scalar)};`);
|
|
16565
|
-
}
|
|
16566
|
-
for (const composite of [...model.composites ?? []].sort(
|
|
16567
|
-
(a, b) => a.key.localeCompare(b.key)
|
|
16568
|
-
)) {
|
|
16569
|
-
if (!isPublic(composite.key, composite.deprecated)) continue;
|
|
16570
|
-
lines.push(`${propKey(composite.key)}: ${this.compositeType(key, composite)};`);
|
|
16571
|
-
}
|
|
16572
|
-
for (const fieldKey of Object.keys(model.unions ?? {}).sort()) {
|
|
16573
|
-
if (!isPublic(fieldKey)) continue;
|
|
16574
|
-
lines.push(
|
|
16575
|
-
`/** Nested union \u2014 the compiler stops at the cycle and sends only \`__typename\`. */`,
|
|
16576
|
-
`${propKey(fieldKey)}: Array<${this.degradedUnionName(model, fieldKey)} | null> | null;`
|
|
16577
|
-
);
|
|
16578
|
-
}
|
|
16579
|
-
return lines;
|
|
16580
|
-
}
|
|
16581
|
-
emitBlockMembers() {
|
|
16582
|
-
const needed = /* @__PURE__ */ new Set();
|
|
16583
|
-
for (const key of this.modelKeys) {
|
|
16584
|
-
for (const members of Object.values(this.manifest.models[key]?.unions ?? {})) {
|
|
16585
|
-
for (const m of members) if (!BLOCK_PRIMITIVE_TS[m]) needed.add(m);
|
|
16586
|
-
}
|
|
16587
|
-
}
|
|
16588
|
-
if (!needed.size) return [];
|
|
16589
|
-
this.imports.add("FoirBlockMeta");
|
|
16590
|
-
const out = [];
|
|
16591
|
-
for (const key of [...needed].sort()) {
|
|
16592
|
-
const model = this.manifest.models?.[key];
|
|
16593
|
-
if (!model) continue;
|
|
16594
|
-
const blockName = `${model.typeName}Block`;
|
|
16595
|
-
if (Object.values(BLOCK_PRIMITIVE_TS).includes(blockName)) {
|
|
16596
|
-
throw new FoirTypesGenerationError(
|
|
16597
|
-
`model "${key}" generates block type "${blockName}", which collides with a platform block primitive. The platform rejects such model keys at create time; this manifest should not have been servable.`
|
|
16598
|
-
);
|
|
16599
|
-
}
|
|
16600
|
-
out.push(
|
|
16601
|
-
`/** \`${key}\` as a block-union member. \`_type\` is the model key. */`,
|
|
16602
|
-
`export interface ${blockName} extends FoirBlockMeta<${quote(key)}, ${quote(blockName)}> {`,
|
|
16603
|
-
...indent(this.blockMemberFields(key, model)),
|
|
16604
|
-
`}`,
|
|
16605
|
-
""
|
|
16606
|
-
);
|
|
16607
|
-
}
|
|
16608
|
-
return out;
|
|
17325
|
+
branchOnCut(cut, whole) {
|
|
17326
|
+
return cut === whole ? whole : `(C extends true ? ${cut} : ${whole})`;
|
|
16609
17327
|
}
|
|
16610
17328
|
// -------------------------------------------------------------------------
|
|
16611
17329
|
// orderBy — the one per-model argument the manifest closes
|
|
@@ -16759,10 +17477,16 @@ var Emitter = class {
|
|
|
16759
17477
|
`};`
|
|
16760
17478
|
);
|
|
16761
17479
|
}
|
|
17480
|
+
const depthLines = this.depth.models.has(key) ? [
|
|
17481
|
+
` atDepth: {`,
|
|
17482
|
+
...TYPED_DEPTH_LEVELS.map((d) => ` ${d}: ${model.typeName}<${d}>;`),
|
|
17483
|
+
` };`
|
|
17484
|
+
] : [];
|
|
16762
17485
|
modelLines.push(
|
|
16763
17486
|
`${propKey(key)}: {`,
|
|
16764
17487
|
` typeName: ${quote(model.typeName)};`,
|
|
16765
17488
|
` fields: ${model.typeName};`,
|
|
17489
|
+
...depthLines,
|
|
16766
17490
|
...relationLines.length ? [" relations: {", ...indent(relationLines, " "), " };"] : [" relations: Record<never, never>;"],
|
|
16767
17491
|
...opLines.length ? [" ops: {", ...indent(opLines, " "), " };"] : (
|
|
16768
17492
|
// An embedded model, or a record model no op of which survived pruning.
|
|
@@ -16913,6 +17637,199 @@ function compositeCycleMembers(manifest) {
|
|
|
16913
17637
|
for (const [key, seen] of reach) if (seen.has(key)) cyclic.add(key);
|
|
16914
17638
|
return cyclic;
|
|
16915
17639
|
}
|
|
17640
|
+
function proseEntryUnions(manifest) {
|
|
17641
|
+
const out = /* @__PURE__ */ new Map();
|
|
17642
|
+
const keyByMemberName = modelKeyByMemberName(manifest);
|
|
17643
|
+
const seen = /* @__PURE__ */ new Set();
|
|
17644
|
+
const walk = (ownerKey, fields) => {
|
|
17645
|
+
const model = manifest.models?.[ownerKey];
|
|
17646
|
+
if (!model) return;
|
|
17647
|
+
const guard = `${ownerKey}|${fields.length}`;
|
|
17648
|
+
if (seen.has(guard)) return;
|
|
17649
|
+
seen.add(guard);
|
|
17650
|
+
const structurals = new Set((model.structurals ?? []).map((s) => s.key));
|
|
17651
|
+
const composites = new Map((model.composites ?? []).map((c) => [c.key, c.target]));
|
|
17652
|
+
for (const field of fields) {
|
|
17653
|
+
if (field.truncated) continue;
|
|
17654
|
+
if (structurals.has(field.key)) {
|
|
17655
|
+
const entries = (field.fields ?? []).find((f) => f.key === "entries");
|
|
17656
|
+
if (entries?.union) out.set(`${ownerKey}.${field.key}`, entries.union);
|
|
17657
|
+
continue;
|
|
17658
|
+
}
|
|
17659
|
+
const target = composites.get(field.key);
|
|
17660
|
+
if (target && field.fields?.length) walk(target, field.fields);
|
|
17661
|
+
}
|
|
17662
|
+
};
|
|
17663
|
+
for (const [key, model] of Object.entries(manifest.models ?? {})) {
|
|
17664
|
+
if (model?.selection?.fields) walk(key, model.selection.fields);
|
|
17665
|
+
}
|
|
17666
|
+
for (const union of Object.values(manifest.selectionUnions ?? {})) {
|
|
17667
|
+
for (const member of union?.members ?? []) {
|
|
17668
|
+
const key = keyByMemberName.get(member.typeName);
|
|
17669
|
+
if (key) walk(key, member.fields ?? []);
|
|
17670
|
+
}
|
|
17671
|
+
}
|
|
17672
|
+
return out;
|
|
17673
|
+
}
|
|
17674
|
+
function modelKeyByMemberName(manifest) {
|
|
17675
|
+
const out = /* @__PURE__ */ new Map();
|
|
17676
|
+
for (const [key, model] of Object.entries(manifest.models ?? {})) {
|
|
17677
|
+
if (!model?.typeName) continue;
|
|
17678
|
+
out.set(model.typeName, key);
|
|
17679
|
+
}
|
|
17680
|
+
for (const [key, model] of Object.entries(manifest.models ?? {})) {
|
|
17681
|
+
if (!model?.typeName) continue;
|
|
17682
|
+
const legacy = `${model.typeName}Block`;
|
|
17683
|
+
if (!out.has(legacy)) out.set(legacy, key);
|
|
17684
|
+
}
|
|
17685
|
+
return out;
|
|
17686
|
+
}
|
|
17687
|
+
function truncatedBlockComposites(manifest) {
|
|
17688
|
+
const keyByMemberName = modelKeyByMemberName(manifest);
|
|
17689
|
+
const out = /* @__PURE__ */ new Map();
|
|
17690
|
+
for (const union of Object.values(manifest.selectionUnions ?? {})) {
|
|
17691
|
+
for (const member of union?.members ?? []) {
|
|
17692
|
+
const key = keyByMemberName.get(member.typeName);
|
|
17693
|
+
if (!key) continue;
|
|
17694
|
+
const composites = new Set((manifest.models[key]?.composites ?? []).map((c) => c.key));
|
|
17695
|
+
for (const field of member.fields ?? []) {
|
|
17696
|
+
if (!field.truncated || field.union || !composites.has(field.key)) continue;
|
|
17697
|
+
let set = out.get(key);
|
|
17698
|
+
if (!set) out.set(key, set = /* @__PURE__ */ new Set());
|
|
17699
|
+
set.add(field.key);
|
|
17700
|
+
}
|
|
17701
|
+
}
|
|
17702
|
+
}
|
|
17703
|
+
return out;
|
|
17704
|
+
}
|
|
17705
|
+
function blockCutFields(manifest) {
|
|
17706
|
+
const keyByMemberName = modelKeyByMemberName(manifest);
|
|
17707
|
+
const out = /* @__PURE__ */ new Map();
|
|
17708
|
+
const walk = (key, fields, below) => {
|
|
17709
|
+
const model = manifest.models?.[key];
|
|
17710
|
+
if (!model) return;
|
|
17711
|
+
const composites = new Map((model.composites ?? []).map((c) => [c.key, c]));
|
|
17712
|
+
const unions = new Set(Object.keys(model.unions ?? {}));
|
|
17713
|
+
for (const field of fields) {
|
|
17714
|
+
if (field.truncated) {
|
|
17715
|
+
if (below && (unions.has(field.key) || composites.has(field.key))) {
|
|
17716
|
+
let set = out.get(key);
|
|
17717
|
+
if (!set) out.set(key, set = /* @__PURE__ */ new Set());
|
|
17718
|
+
set.add(field.key);
|
|
17719
|
+
}
|
|
17720
|
+
continue;
|
|
17721
|
+
}
|
|
17722
|
+
const composite = composites.get(field.key);
|
|
17723
|
+
if (!composite || !field.fields?.length) continue;
|
|
17724
|
+
walk(composite.target, field.fields, true);
|
|
17725
|
+
}
|
|
17726
|
+
};
|
|
17727
|
+
for (const union of Object.values(manifest.selectionUnions ?? {})) {
|
|
17728
|
+
for (const member of union?.members ?? []) {
|
|
17729
|
+
const key = keyByMemberName.get(member.typeName);
|
|
17730
|
+
if (!key) continue;
|
|
17731
|
+
walk(key, member.fields ?? [], true);
|
|
17732
|
+
}
|
|
17733
|
+
}
|
|
17734
|
+
const models = manifest.models ?? {};
|
|
17735
|
+
const memberKeys = /* @__PURE__ */ new Set();
|
|
17736
|
+
for (const model of Object.values(models)) {
|
|
17737
|
+
for (const members of Object.values(model?.unions ?? {})) {
|
|
17738
|
+
for (const m of members) if (models[m]) memberKeys.add(m);
|
|
17739
|
+
}
|
|
17740
|
+
}
|
|
17741
|
+
for (const key of memberKeys) {
|
|
17742
|
+
for (const fieldKey of Object.keys(models[key]?.unions ?? {})) {
|
|
17743
|
+
if (fieldKey.startsWith("_")) continue;
|
|
17744
|
+
let set = out.get(key);
|
|
17745
|
+
if (!set) out.set(key, set = /* @__PURE__ */ new Set());
|
|
17746
|
+
set.add(fieldKey);
|
|
17747
|
+
}
|
|
17748
|
+
}
|
|
17749
|
+
return out;
|
|
17750
|
+
}
|
|
17751
|
+
function cutReach(manifest, cuts = blockCutFields(manifest)) {
|
|
17752
|
+
const models = manifest.models ?? {};
|
|
17753
|
+
const cyclic = compositeCycleMembers(manifest);
|
|
17754
|
+
const cycleCut = (ownerKey, target) => cyclic.has(ownerKey) && cyclic.has(target);
|
|
17755
|
+
const out = /* @__PURE__ */ new Set();
|
|
17756
|
+
for (const [key, fields] of cuts) {
|
|
17757
|
+
const model = models[key];
|
|
17758
|
+
if (!model) continue;
|
|
17759
|
+
for (const field of fields) {
|
|
17760
|
+
if (model.unions?.[field]) {
|
|
17761
|
+
out.add(key);
|
|
17762
|
+
break;
|
|
17763
|
+
}
|
|
17764
|
+
const composite = (model.composites ?? []).find((c) => c.key === field);
|
|
17765
|
+
if (composite && !cycleCut(key, composite.target)) {
|
|
17766
|
+
out.add(key);
|
|
17767
|
+
break;
|
|
17768
|
+
}
|
|
17769
|
+
}
|
|
17770
|
+
}
|
|
17771
|
+
let changed = true;
|
|
17772
|
+
while (changed) {
|
|
17773
|
+
changed = false;
|
|
17774
|
+
for (const [key, model] of Object.entries(models)) {
|
|
17775
|
+
if (out.has(key)) continue;
|
|
17776
|
+
if ((model.composites ?? []).some((c) => out.has(c.target) && !cycleCut(key, c.target))) {
|
|
17777
|
+
out.add(key);
|
|
17778
|
+
changed = true;
|
|
17779
|
+
}
|
|
17780
|
+
}
|
|
17781
|
+
}
|
|
17782
|
+
return out;
|
|
17783
|
+
}
|
|
17784
|
+
function depthReach(manifest, truncated = truncatedBlockComposites(manifest), cut = cutReach(manifest)) {
|
|
17785
|
+
const models = manifest.models ?? {};
|
|
17786
|
+
const isPublic = (k, deprecated) => !k.startsWith("_") && !deprecated;
|
|
17787
|
+
const cyclic = compositeCycleMembers(manifest);
|
|
17788
|
+
const isCut = (ownerKey, composite) => (truncated.get(ownerKey)?.has(composite.key) ?? false) || cyclic.has(ownerKey) && cyclic.has(composite.target);
|
|
17789
|
+
const blocks = /* @__PURE__ */ new Set();
|
|
17790
|
+
const unions = /* @__PURE__ */ new Set();
|
|
17791
|
+
const modelIfaces = new Set(cut);
|
|
17792
|
+
for (const [key, model] of Object.entries(models)) {
|
|
17793
|
+
if (Object.keys(model.unions ?? {}).some((fk) => isPublic(fk))) blocks.add(key);
|
|
17794
|
+
}
|
|
17795
|
+
let changed = true;
|
|
17796
|
+
while (changed) {
|
|
17797
|
+
changed = false;
|
|
17798
|
+
for (const [key, model] of Object.entries(models)) {
|
|
17799
|
+
for (const [fieldKey, members] of Object.entries(model.unions ?? {})) {
|
|
17800
|
+
const id = `${key}.${fieldKey}`;
|
|
17801
|
+
if (unions.has(id)) continue;
|
|
17802
|
+
if (members.some((m) => blocks.has(m))) {
|
|
17803
|
+
unions.add(id);
|
|
17804
|
+
changed = true;
|
|
17805
|
+
}
|
|
17806
|
+
}
|
|
17807
|
+
}
|
|
17808
|
+
for (const [key, model] of Object.entries(models)) {
|
|
17809
|
+
if (!modelIfaces.has(key)) {
|
|
17810
|
+
const viaUnion = Object.keys(model.unions ?? {}).some((fk) => unions.has(`${key}.${fk}`));
|
|
17811
|
+
const viaComposite = (model.composites ?? []).some(
|
|
17812
|
+
(c) => modelIfaces.has(c.target) && !(cyclic.has(key) && cyclic.has(c.target))
|
|
17813
|
+
);
|
|
17814
|
+
if (viaUnion || viaComposite) {
|
|
17815
|
+
modelIfaces.add(key);
|
|
17816
|
+
changed = true;
|
|
17817
|
+
}
|
|
17818
|
+
}
|
|
17819
|
+
if (!blocks.has(key) && (model.composites ?? []).some(
|
|
17820
|
+
(c) => isPublic(c.key, c.deprecated) && modelIfaces.has(c.target) && !isCut(key, c)
|
|
17821
|
+
)) {
|
|
17822
|
+
blocks.add(key);
|
|
17823
|
+
changed = true;
|
|
17824
|
+
}
|
|
17825
|
+
if (blocks.has(key) && !modelIfaces.has(key)) {
|
|
17826
|
+
modelIfaces.add(key);
|
|
17827
|
+
changed = true;
|
|
17828
|
+
}
|
|
17829
|
+
}
|
|
17830
|
+
}
|
|
17831
|
+
return { models: modelIfaces, blocks, unions };
|
|
17832
|
+
}
|
|
16916
17833
|
|
|
16917
17834
|
// src/commands/types.ts
|
|
16918
17835
|
var DEFAULT_OUT = "src/foir.generated.ts";
|
|
@@ -17331,6 +18248,399 @@ function registerMcpCommand(program2, globalOpts) {
|
|
|
17331
18248
|
);
|
|
17332
18249
|
}
|
|
17333
18250
|
|
|
18251
|
+
// src/commands/chat.ts
|
|
18252
|
+
import chalk22 from "chalk";
|
|
18253
|
+
import inquirer10 from "inquirer";
|
|
18254
|
+
|
|
18255
|
+
// ../../packages/assistant/src/transport.ts
|
|
18256
|
+
import { DefaultChatTransport } from "ai";
|
|
18257
|
+
function hasScreenContext(ctx) {
|
|
18258
|
+
return ctx != null && Boolean(ctx.route || ctx.subjectType || ctx.subjectId || ctx.subjectTitle);
|
|
18259
|
+
}
|
|
18260
|
+
function formatScreenContext(ctx, routeCapabilityHint) {
|
|
18261
|
+
if (!hasScreenContext(ctx) || !ctx) return null;
|
|
18262
|
+
const lines = [];
|
|
18263
|
+
if (ctx.route) lines.push(`route: ${ctx.route}`);
|
|
18264
|
+
if (ctx.subjectType) lines.push(`subjectType: ${ctx.subjectType}`);
|
|
18265
|
+
if (ctx.subjectId) lines.push(`subjectId: ${ctx.subjectId}`);
|
|
18266
|
+
if (ctx.subjectTitle) lines.push(`subjectTitle: ${ctx.subjectTitle}`);
|
|
18267
|
+
let note = `Current admin screen (read-only context):
|
|
18268
|
+
${lines.map((l) => `- ${l}`).join("\n")}`;
|
|
18269
|
+
const hint2 = ctx.route ? routeCapabilityHint(ctx.route) : null;
|
|
18270
|
+
if (hint2) note += `
|
|
18271
|
+
Tools for this screen: ${hint2}`;
|
|
18272
|
+
return note;
|
|
18273
|
+
}
|
|
18274
|
+
function injectScreenContext(messages, ctx, trigger, routeCapabilityHint) {
|
|
18275
|
+
if (trigger !== "submit-message") return messages;
|
|
18276
|
+
const note = formatScreenContext(ctx, routeCapabilityHint);
|
|
18277
|
+
if (!note) return messages;
|
|
18278
|
+
const lastUserIndex = findLastUserIndex(messages);
|
|
18279
|
+
if (lastUserIndex < 0) return messages;
|
|
18280
|
+
return messages.map((message, index) => {
|
|
18281
|
+
if (index !== lastUserIndex) return message;
|
|
18282
|
+
return {
|
|
18283
|
+
...message,
|
|
18284
|
+
parts: [...message.parts, { type: "text", text: note }]
|
|
18285
|
+
};
|
|
18286
|
+
});
|
|
18287
|
+
}
|
|
18288
|
+
function findLastUserIndex(messages) {
|
|
18289
|
+
for (let i = messages.length - 1; i >= 0; i -= 1) {
|
|
18290
|
+
if (messages[i]?.role === "user") return i;
|
|
18291
|
+
}
|
|
18292
|
+
return -1;
|
|
18293
|
+
}
|
|
18294
|
+
async function buildChatRequestBody(args) {
|
|
18295
|
+
const workingToken = await args.getWorkingToken();
|
|
18296
|
+
const surface = args.body?.surface ?? args.defaultSurface;
|
|
18297
|
+
const screenContext = args.getScreenContext();
|
|
18298
|
+
const wireMessages = injectScreenContext(
|
|
18299
|
+
args.messages,
|
|
18300
|
+
screenContext,
|
|
18301
|
+
args.trigger,
|
|
18302
|
+
args.routeCapabilityHint
|
|
18303
|
+
);
|
|
18304
|
+
return {
|
|
18305
|
+
...args.body,
|
|
18306
|
+
messages: wireMessages,
|
|
18307
|
+
workingToken,
|
|
18308
|
+
surface,
|
|
18309
|
+
screenContext
|
|
18310
|
+
};
|
|
18311
|
+
}
|
|
18312
|
+
function createAssistantTransport(options) {
|
|
18313
|
+
const defaultSurface = options.defaultSurface ?? "panel";
|
|
18314
|
+
return new DefaultChatTransport({
|
|
18315
|
+
api: options.api,
|
|
18316
|
+
// The working token is the credential and rides in the body; never send the
|
|
18317
|
+
// admin session cookie to the (cross-origin) assistant host.
|
|
18318
|
+
credentials: "omit",
|
|
18319
|
+
fetch: options.fetch,
|
|
18320
|
+
prepareSendMessagesRequest: async ({ messages, body, trigger }) => ({
|
|
18321
|
+
body: await buildChatRequestBody({
|
|
18322
|
+
messages,
|
|
18323
|
+
body,
|
|
18324
|
+
trigger,
|
|
18325
|
+
getWorkingToken: options.getWorkingToken,
|
|
18326
|
+
getScreenContext: options.getScreenContext,
|
|
18327
|
+
routeCapabilityHint: options.routeCapabilityHint,
|
|
18328
|
+
defaultSurface
|
|
18329
|
+
})
|
|
18330
|
+
})
|
|
18331
|
+
});
|
|
18332
|
+
}
|
|
18333
|
+
|
|
18334
|
+
// src/lib/chat-session.ts
|
|
18335
|
+
import {
|
|
18336
|
+
getToolName,
|
|
18337
|
+
isToolUIPart,
|
|
18338
|
+
readUIMessageStream
|
|
18339
|
+
} from "ai";
|
|
18340
|
+
function approvalVerdictsOf(message) {
|
|
18341
|
+
const meta = message.metadata;
|
|
18342
|
+
if (!meta || typeof meta !== "object") return {};
|
|
18343
|
+
const approvals = meta.approvals;
|
|
18344
|
+
if (!approvals || typeof approvals !== "object") return {};
|
|
18345
|
+
return approvals;
|
|
18346
|
+
}
|
|
18347
|
+
function pendingApprovalsOf(message) {
|
|
18348
|
+
const verdicts = approvalVerdictsOf(message);
|
|
18349
|
+
const pending = [];
|
|
18350
|
+
for (const part of message.parts) {
|
|
18351
|
+
if (!isToolUIPart(part) || part.state !== "approval-requested") continue;
|
|
18352
|
+
const verdict = verdicts[part.toolCallId];
|
|
18353
|
+
pending.push({
|
|
18354
|
+
approvalId: part.approval.id,
|
|
18355
|
+
toolName: getToolName(part),
|
|
18356
|
+
input: part.input,
|
|
18357
|
+
verdict: verdict === "gated" || verdict === "destructive" ? verdict : void 0
|
|
18358
|
+
});
|
|
18359
|
+
}
|
|
18360
|
+
return pending;
|
|
18361
|
+
}
|
|
18362
|
+
function applyApprovalDecisions(message, decisions) {
|
|
18363
|
+
return {
|
|
18364
|
+
...message,
|
|
18365
|
+
parts: message.parts.map((part) => {
|
|
18366
|
+
if (!isToolUIPart(part) || part.state !== "approval-requested") return part;
|
|
18367
|
+
const approved = decisions.get(part.approval.id);
|
|
18368
|
+
if (approved === void 0) return part;
|
|
18369
|
+
return {
|
|
18370
|
+
...part,
|
|
18371
|
+
state: "approval-responded",
|
|
18372
|
+
approval: { ...part.approval, approved }
|
|
18373
|
+
};
|
|
18374
|
+
})
|
|
18375
|
+
};
|
|
18376
|
+
}
|
|
18377
|
+
function newId(prefix) {
|
|
18378
|
+
return `${prefix}_${globalThis.crypto.randomUUID()}`;
|
|
18379
|
+
}
|
|
18380
|
+
async function runTurn(options) {
|
|
18381
|
+
const {
|
|
18382
|
+
transport,
|
|
18383
|
+
chatId,
|
|
18384
|
+
renderer,
|
|
18385
|
+
approvalPrompt,
|
|
18386
|
+
abortSignal,
|
|
18387
|
+
maxApprovalRounds = 8
|
|
18388
|
+
} = options;
|
|
18389
|
+
let messages = [...options.messages];
|
|
18390
|
+
if (options.text !== void 0) {
|
|
18391
|
+
messages.push({
|
|
18392
|
+
id: newId("msg"),
|
|
18393
|
+
role: "user",
|
|
18394
|
+
parts: [{ type: "text", text: options.text }]
|
|
18395
|
+
});
|
|
18396
|
+
}
|
|
18397
|
+
for (let round = 0; round <= maxApprovalRounds; round++) {
|
|
18398
|
+
const assistant = await streamOneResponse({
|
|
18399
|
+
transport,
|
|
18400
|
+
chatId,
|
|
18401
|
+
messages,
|
|
18402
|
+
renderer,
|
|
18403
|
+
abortSignal
|
|
18404
|
+
});
|
|
18405
|
+
messages = [...messages, assistant];
|
|
18406
|
+
const pending = pendingApprovalsOf(assistant);
|
|
18407
|
+
if (pending.length === 0) return messages;
|
|
18408
|
+
if (round === maxApprovalRounds) return messages;
|
|
18409
|
+
const decisions = await approvalPrompt(pending);
|
|
18410
|
+
if (decisions.size === 0) return messages;
|
|
18411
|
+
messages = [
|
|
18412
|
+
...messages.slice(0, -1),
|
|
18413
|
+
applyApprovalDecisions(assistant, decisions)
|
|
18414
|
+
];
|
|
18415
|
+
}
|
|
18416
|
+
return messages;
|
|
18417
|
+
}
|
|
18418
|
+
async function streamOneResponse(args) {
|
|
18419
|
+
const last = args.messages[args.messages.length - 1];
|
|
18420
|
+
const stream = await args.transport.sendMessages({
|
|
18421
|
+
trigger: "submit-message",
|
|
18422
|
+
chatId: args.chatId,
|
|
18423
|
+
messageId: last?.id,
|
|
18424
|
+
messages: args.messages,
|
|
18425
|
+
abortSignal: args.abortSignal ?? new AbortController().signal,
|
|
18426
|
+
headers: void 0,
|
|
18427
|
+
body: void 0,
|
|
18428
|
+
metadata: void 0
|
|
18429
|
+
});
|
|
18430
|
+
let latest;
|
|
18431
|
+
let printedText = "";
|
|
18432
|
+
const toolStates = /* @__PURE__ */ new Map();
|
|
18433
|
+
for await (const snapshot of readUIMessageStream({ stream })) {
|
|
18434
|
+
latest = snapshot;
|
|
18435
|
+
const text = snapshot.parts.filter((p) => p.type === "text").map((p) => p.text).join("");
|
|
18436
|
+
if (text.length > printedText.length && text.startsWith(printedText)) {
|
|
18437
|
+
args.renderer?.onTextDelta?.(text.slice(printedText.length));
|
|
18438
|
+
printedText = text;
|
|
18439
|
+
}
|
|
18440
|
+
for (const part of snapshot.parts) {
|
|
18441
|
+
if (!isToolUIPart(part)) continue;
|
|
18442
|
+
if (toolStates.get(part.toolCallId) === part.state) continue;
|
|
18443
|
+
toolStates.set(part.toolCallId, part.state);
|
|
18444
|
+
args.renderer?.onToolUpdate?.({
|
|
18445
|
+
toolCallId: part.toolCallId,
|
|
18446
|
+
toolName: getToolName(part),
|
|
18447
|
+
input: part.input,
|
|
18448
|
+
state: part.state,
|
|
18449
|
+
errorText: "errorText" in part ? part.errorText : void 0
|
|
18450
|
+
});
|
|
18451
|
+
}
|
|
18452
|
+
}
|
|
18453
|
+
if (!latest) {
|
|
18454
|
+
throw new Error("The assistant closed the connection without replying.");
|
|
18455
|
+
}
|
|
18456
|
+
return latest;
|
|
18457
|
+
}
|
|
18458
|
+
|
|
18459
|
+
// src/commands/chat.ts
|
|
18460
|
+
var DEFAULT_ASSISTANT_URL = "https://assistant.foir.io";
|
|
18461
|
+
function resolveAssistantUrl(urlFlag) {
|
|
18462
|
+
return urlFlag ?? process.env.FOIR_ASSISTANT_URL ?? DEFAULT_ASSISTANT_URL;
|
|
18463
|
+
}
|
|
18464
|
+
function sessionTokenProvider(client, tenantId, projectId) {
|
|
18465
|
+
let token = "";
|
|
18466
|
+
let expiresAtMillis = 0;
|
|
18467
|
+
return async () => {
|
|
18468
|
+
if (token && Date.now() < expiresAtMillis - 12e4) return token;
|
|
18469
|
+
const resp = await client.identity.mintMcpWorkingToken({
|
|
18470
|
+
tenantId,
|
|
18471
|
+
projectId
|
|
18472
|
+
});
|
|
18473
|
+
token = resp.workingToken;
|
|
18474
|
+
expiresAtMillis = resp.expiresAt ? resp.expiresAt.getTime() : Date.now() + 30 * 6e4;
|
|
18475
|
+
return token;
|
|
18476
|
+
};
|
|
18477
|
+
}
|
|
18478
|
+
function describeInput(input) {
|
|
18479
|
+
if (!input || typeof input !== "object") return "";
|
|
18480
|
+
const record = input;
|
|
18481
|
+
for (const field of ["key", "model_key", "modelKey", "id", "action"]) {
|
|
18482
|
+
const value = record[field];
|
|
18483
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
18484
|
+
return value.length > 40 ? `${value.slice(0, 40)}\u2026` : value;
|
|
18485
|
+
}
|
|
18486
|
+
}
|
|
18487
|
+
return "";
|
|
18488
|
+
}
|
|
18489
|
+
function terminalRenderer() {
|
|
18490
|
+
const seen = /* @__PURE__ */ new Set();
|
|
18491
|
+
return {
|
|
18492
|
+
onTextDelta: (delta) => process.stdout.write(delta),
|
|
18493
|
+
onToolUpdate: (t) => {
|
|
18494
|
+
const target = describeInput(t.input);
|
|
18495
|
+
const label = target ? `${t.toolName} ${chalk22.dim(target)}` : t.toolName;
|
|
18496
|
+
if (t.state === "output-error") {
|
|
18497
|
+
process.stderr.write(
|
|
18498
|
+
`
|
|
18499
|
+
${chalk22.red("\u2717")} ${label} ${chalk22.red(t.errorText ?? "failed")}
|
|
18500
|
+
`
|
|
18501
|
+
);
|
|
18502
|
+
return;
|
|
18503
|
+
}
|
|
18504
|
+
if (t.state === "output-available") {
|
|
18505
|
+
process.stderr.write(`
|
|
18506
|
+
${chalk22.green("\u2713")} ${label}
|
|
18507
|
+
`);
|
|
18508
|
+
return;
|
|
18509
|
+
}
|
|
18510
|
+
if (!seen.has(t.toolCallId)) {
|
|
18511
|
+
seen.add(t.toolCallId);
|
|
18512
|
+
process.stderr.write(`
|
|
18513
|
+
${chalk22.cyan("\u2192")} ${label}\u2026
|
|
18514
|
+
`);
|
|
18515
|
+
}
|
|
18516
|
+
}
|
|
18517
|
+
};
|
|
18518
|
+
}
|
|
18519
|
+
function makeApprovalPrompt(ask = inquirer10.prompt) {
|
|
18520
|
+
return async (pending) => {
|
|
18521
|
+
const decisions = /* @__PURE__ */ new Map();
|
|
18522
|
+
const bulk = pending.filter((p) => p.verdict === "gated");
|
|
18523
|
+
const individual = pending.filter((p) => p.verdict !== "gated");
|
|
18524
|
+
if (bulk.length > 1) {
|
|
18525
|
+
const names = [...new Set(bulk.map((p) => p.toolName))].join(", ");
|
|
18526
|
+
const { approveAll } = await ask([
|
|
18527
|
+
{
|
|
18528
|
+
type: "confirm",
|
|
18529
|
+
name: "approveAll",
|
|
18530
|
+
message: `F\xF3ir wants to run ${bulk.length} routine changes (${names}). Approve all?`,
|
|
18531
|
+
default: false
|
|
18532
|
+
}
|
|
18533
|
+
]);
|
|
18534
|
+
for (const p of bulk) decisions.set(p.approvalId, approveAll);
|
|
18535
|
+
} else {
|
|
18536
|
+
individual.unshift(...bulk);
|
|
18537
|
+
}
|
|
18538
|
+
for (const p of individual) {
|
|
18539
|
+
const target = describeInput(p.input);
|
|
18540
|
+
const destructive = p.verdict !== "gated";
|
|
18541
|
+
const { approved } = await ask([
|
|
18542
|
+
{
|
|
18543
|
+
type: "confirm",
|
|
18544
|
+
name: "approved",
|
|
18545
|
+
message: `${destructive ? chalk22.yellow("Destructive:") : "Run"} ${p.toolName}${target ? ` (${target})` : ""}?`,
|
|
18546
|
+
default: false
|
|
18547
|
+
}
|
|
18548
|
+
]);
|
|
18549
|
+
decisions.set(p.approvalId, approved);
|
|
18550
|
+
}
|
|
18551
|
+
return decisions;
|
|
18552
|
+
};
|
|
18553
|
+
}
|
|
18554
|
+
function registerChatCommand(program2, globalOpts) {
|
|
18555
|
+
program2.command("chat").description("Talk to F\xF3ir in the terminal, with your own permissions").option(
|
|
18556
|
+
"--url <url>",
|
|
18557
|
+
"assistant endpoint (defaults to FOIR_ASSISTANT_URL, then the hosted endpoint)"
|
|
18558
|
+
).option(
|
|
18559
|
+
"-p, --prompt <text>",
|
|
18560
|
+
"send one message and exit, instead of opening an interactive session"
|
|
18561
|
+
).action(
|
|
18562
|
+
withErrorHandler(
|
|
18563
|
+
globalOpts,
|
|
18564
|
+
async (cmdOpts) => {
|
|
18565
|
+
const options = globalOpts();
|
|
18566
|
+
const credentials = await getCredentials();
|
|
18567
|
+
if (!credentials || isTokenExpired(credentials)) {
|
|
18568
|
+
throw new Error(
|
|
18569
|
+
"`foir chat` acts as you, so it needs a signed-in session. Run `foir login` first."
|
|
18570
|
+
);
|
|
18571
|
+
}
|
|
18572
|
+
const resolved = await resolveProjectContext(options);
|
|
18573
|
+
const client = await createPlatformClient(options);
|
|
18574
|
+
const getWorkingToken = sessionTokenProvider(
|
|
18575
|
+
client,
|
|
18576
|
+
resolved?.project.tenantId,
|
|
18577
|
+
resolved?.project.id
|
|
18578
|
+
);
|
|
18579
|
+
await getWorkingToken();
|
|
18580
|
+
const transport = createAssistantTransport({
|
|
18581
|
+
api: `${resolveAssistantUrl(cmdOpts.url)}/assistant/chat`,
|
|
18582
|
+
getWorkingToken,
|
|
18583
|
+
// A terminal has no screen and no open record, so it sends no screen
|
|
18584
|
+
// context. That is also what keeps the browser-only editor tools out
|
|
18585
|
+
// of the catalogue: the BFF adds them only for an editable screen, so
|
|
18586
|
+
// the CLI is offered exactly what it can execute.
|
|
18587
|
+
getScreenContext: () => null,
|
|
18588
|
+
routeCapabilityHint: () => null,
|
|
18589
|
+
defaultSurface: "cli"
|
|
18590
|
+
});
|
|
18591
|
+
const chatId = `cli_${globalThis.crypto.randomUUID()}`;
|
|
18592
|
+
const approvalPrompt = makeApprovalPrompt();
|
|
18593
|
+
const renderer = terminalRenderer();
|
|
18594
|
+
let messages = [];
|
|
18595
|
+
let controller = new AbortController();
|
|
18596
|
+
const onSigint = () => controller.abort();
|
|
18597
|
+
const runOne = async (text) => {
|
|
18598
|
+
controller = new AbortController();
|
|
18599
|
+
process.on("SIGINT", onSigint);
|
|
18600
|
+
try {
|
|
18601
|
+
messages = await runTurn({
|
|
18602
|
+
transport,
|
|
18603
|
+
chatId,
|
|
18604
|
+
messages,
|
|
18605
|
+
text,
|
|
18606
|
+
renderer,
|
|
18607
|
+
approvalPrompt,
|
|
18608
|
+
abortSignal: controller.signal
|
|
18609
|
+
});
|
|
18610
|
+
process.stdout.write("\n");
|
|
18611
|
+
} catch (err) {
|
|
18612
|
+
if (controller.signal.aborted) {
|
|
18613
|
+
process.stderr.write(chalk22.dim("\n(cancelled)\n"));
|
|
18614
|
+
return;
|
|
18615
|
+
}
|
|
18616
|
+
throw err;
|
|
18617
|
+
} finally {
|
|
18618
|
+
process.off("SIGINT", onSigint);
|
|
18619
|
+
}
|
|
18620
|
+
};
|
|
18621
|
+
if (cmdOpts.prompt) {
|
|
18622
|
+
await runOne(cmdOpts.prompt);
|
|
18623
|
+
return;
|
|
18624
|
+
}
|
|
18625
|
+
const where = resolved?.project.name ? ` in ${chalk22.bold(resolved.project.name)}` : "";
|
|
18626
|
+
process.stderr.write(
|
|
18627
|
+
`${chalk22.bold("F\xF3ir")}${where}. Ctrl-C cancels a turn; Ctrl-D or /exit ends the session.
|
|
18628
|
+
`
|
|
18629
|
+
);
|
|
18630
|
+
for (; ; ) {
|
|
18631
|
+
const { message } = await inquirer10.prompt([
|
|
18632
|
+
{ type: "input", name: "message", message: chalk22.cyan("you") }
|
|
18633
|
+
]);
|
|
18634
|
+
const text = message.trim();
|
|
18635
|
+
if (text === "") continue;
|
|
18636
|
+
if (text === "/exit" || text === "/quit") return;
|
|
18637
|
+
await runOne(text);
|
|
18638
|
+
}
|
|
18639
|
+
}
|
|
18640
|
+
)
|
|
18641
|
+
);
|
|
18642
|
+
}
|
|
18643
|
+
|
|
17334
18644
|
// src/cli.ts
|
|
17335
18645
|
var __filename = fileURLToPath(import.meta.url);
|
|
17336
18646
|
var __dirname = dirname5(__filename);
|
|
@@ -17391,4 +18701,5 @@ registerAppsCommands(program, getGlobalOpts);
|
|
|
17391
18701
|
registerSecretsCommands(program, getGlobalOpts);
|
|
17392
18702
|
registerTypesCommand(program, getGlobalOpts);
|
|
17393
18703
|
registerMcpCommand(program, getGlobalOpts);
|
|
18704
|
+
registerChatCommand(program, getGlobalOpts);
|
|
17394
18705
|
program.parse();
|