@eide/foir-proto-ts 0.101.0 → 0.102.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.
@@ -2355,6 +2355,24 @@ export declare type WriteEmbeddingsRequest = Message<"records.v1.WriteEmbeddings
2355
2355
  * @generated from field: optional string model_name = 5;
2356
2356
  */
2357
2357
  modelName?: string | undefined;
2358
+
2359
+ /**
2360
+ * key selects which embedding slot to write — a record may carry several
2361
+ * (e.g. "default", "title", a per-provider key). Empty means "default";
2362
+ * the unique constraint is (record_id, key, tenant_id, project_id).
2363
+ *
2364
+ * @generated from field: optional string key = 6;
2365
+ */
2366
+ key?: string | undefined;
2367
+
2368
+ /**
2369
+ * content_hash is the caller's digest of the source content the vector was
2370
+ * produced from. Stored verbatim so a later sweep can read it back (see
2371
+ * EmbeddingDigests) and skip re-embedding when the content is unchanged.
2372
+ *
2373
+ * @generated from field: optional string content_hash = 7;
2374
+ */
2375
+ contentHash?: string | undefined;
2358
2376
  };
2359
2377
 
2360
2378
  /**
@@ -2530,6 +2548,178 @@ export declare type SearchEmbeddingsResponse = Message<"records.v1.SearchEmbeddi
2530
2548
  */
2531
2549
  export declare const SearchEmbeddingsResponseSchema: GenMessage<SearchEmbeddingsResponse>;
2532
2550
 
2551
+ /**
2552
+ * RecordsMissingEmbedding lists the records of a model that have no stored
2553
+ * embedding for a given key — the gaps an embedding-coverage sweep needs to
2554
+ * fill. Customer/tenant/project scoping is enforced by RLS on the records +
2555
+ * embeddings tables; callers only ever see their own gaps. Forward cursor
2556
+ * pagination keyed on record id.
2557
+ *
2558
+ * @generated from message records.v1.RecordsMissingEmbeddingRequest
2559
+ */
2560
+ export declare type RecordsMissingEmbeddingRequest = Message<"records.v1.RecordsMissingEmbeddingRequest"> & {
2561
+ /**
2562
+ * @generated from field: string model_key = 1;
2563
+ */
2564
+ modelKey: string;
2565
+
2566
+ /**
2567
+ * key is the embedding slot to check coverage for. Empty means "default".
2568
+ *
2569
+ * @generated from field: optional string key = 2;
2570
+ */
2571
+ key?: string | undefined;
2572
+
2573
+ /**
2574
+ * @generated from field: optional string after = 3;
2575
+ */
2576
+ after?: string | undefined;
2577
+
2578
+ /**
2579
+ * @generated from field: optional int32 first = 4;
2580
+ */
2581
+ first?: number | undefined;
2582
+ };
2583
+
2584
+ /**
2585
+ * Describes the message records.v1.RecordsMissingEmbeddingRequest.
2586
+ * Use `create(RecordsMissingEmbeddingRequestSchema)` to create a new message.
2587
+ */
2588
+ export declare const RecordsMissingEmbeddingRequestSchema: GenMessage<RecordsMissingEmbeddingRequest>;
2589
+
2590
+ /**
2591
+ * @generated from message records.v1.MissingEmbeddingRecord
2592
+ */
2593
+ export declare type MissingEmbeddingRecord = Message<"records.v1.MissingEmbeddingRecord"> & {
2594
+ /**
2595
+ * @generated from field: string record_id = 1;
2596
+ */
2597
+ recordId: string;
2598
+
2599
+ /**
2600
+ * @generated from field: optional string natural_key = 2;
2601
+ */
2602
+ naturalKey?: string | undefined;
2603
+ };
2604
+
2605
+ /**
2606
+ * Describes the message records.v1.MissingEmbeddingRecord.
2607
+ * Use `create(MissingEmbeddingRecordSchema)` to create a new message.
2608
+ */
2609
+ export declare const MissingEmbeddingRecordSchema: GenMessage<MissingEmbeddingRecord>;
2610
+
2611
+ /**
2612
+ * @generated from message records.v1.RecordsMissingEmbeddingResponse
2613
+ */
2614
+ export declare type RecordsMissingEmbeddingResponse = Message<"records.v1.RecordsMissingEmbeddingResponse"> & {
2615
+ /**
2616
+ * @generated from field: repeated records.v1.MissingEmbeddingRecord records = 1;
2617
+ */
2618
+ records: MissingEmbeddingRecord[];
2619
+
2620
+ /**
2621
+ * @generated from field: optional common.v1.PageInfo page_info = 2;
2622
+ */
2623
+ pageInfo?: PageInfo | undefined;
2624
+
2625
+ /**
2626
+ * @generated from field: repeated string cursors = 3;
2627
+ */
2628
+ cursors: string[];
2629
+
2630
+ /**
2631
+ * total is the full count of records of this model missing the embedding,
2632
+ * ignoring pagination.
2633
+ *
2634
+ * @generated from field: int32 total = 4;
2635
+ */
2636
+ total: number;
2637
+ };
2638
+
2639
+ /**
2640
+ * Describes the message records.v1.RecordsMissingEmbeddingResponse.
2641
+ * Use `create(RecordsMissingEmbeddingResponseSchema)` to create a new message.
2642
+ */
2643
+ export declare const RecordsMissingEmbeddingResponseSchema: GenMessage<RecordsMissingEmbeddingResponse>;
2644
+
2645
+ /**
2646
+ * EmbeddingDigests reads back the stored content_hash for a set of records'
2647
+ * embeddings (one key). A record that has no embedding for the key simply
2648
+ * won't appear in the response — absence is the "needs embedding" signal.
2649
+ * RLS-scoped like every other records read.
2650
+ *
2651
+ * @generated from message records.v1.EmbeddingDigestsRequest
2652
+ */
2653
+ export declare type EmbeddingDigestsRequest = Message<"records.v1.EmbeddingDigestsRequest"> & {
2654
+ /**
2655
+ * record_ids to look up. Required, non-empty.
2656
+ *
2657
+ * @generated from field: repeated string record_ids = 1;
2658
+ */
2659
+ recordIds: string[];
2660
+
2661
+ /**
2662
+ * key is the embedding slot. Empty means "default".
2663
+ *
2664
+ * @generated from field: optional string key = 2;
2665
+ */
2666
+ key?: string | undefined;
2667
+
2668
+ /**
2669
+ * model_key optionally narrows the lookup; record ids are globally unique
2670
+ * so it is not required for correctness.
2671
+ *
2672
+ * @generated from field: optional string model_key = 3;
2673
+ */
2674
+ modelKey?: string | undefined;
2675
+ };
2676
+
2677
+ /**
2678
+ * Describes the message records.v1.EmbeddingDigestsRequest.
2679
+ * Use `create(EmbeddingDigestsRequestSchema)` to create a new message.
2680
+ */
2681
+ export declare const EmbeddingDigestsRequestSchema: GenMessage<EmbeddingDigestsRequest>;
2682
+
2683
+ /**
2684
+ * @generated from message records.v1.EmbeddingDigest
2685
+ */
2686
+ export declare type EmbeddingDigest = Message<"records.v1.EmbeddingDigest"> & {
2687
+ /**
2688
+ * @generated from field: string record_id = 1;
2689
+ */
2690
+ recordId: string;
2691
+
2692
+ /**
2693
+ * content_hash is null when the embedding row exists but was written
2694
+ * without a hash (e.g. by an older writer).
2695
+ *
2696
+ * @generated from field: optional string content_hash = 2;
2697
+ */
2698
+ contentHash?: string | undefined;
2699
+ };
2700
+
2701
+ /**
2702
+ * Describes the message records.v1.EmbeddingDigest.
2703
+ * Use `create(EmbeddingDigestSchema)` to create a new message.
2704
+ */
2705
+ export declare const EmbeddingDigestSchema: GenMessage<EmbeddingDigest>;
2706
+
2707
+ /**
2708
+ * @generated from message records.v1.EmbeddingDigestsResponse
2709
+ */
2710
+ export declare type EmbeddingDigestsResponse = Message<"records.v1.EmbeddingDigestsResponse"> & {
2711
+ /**
2712
+ * @generated from field: repeated records.v1.EmbeddingDigest digests = 1;
2713
+ */
2714
+ digests: EmbeddingDigest[];
2715
+ };
2716
+
2717
+ /**
2718
+ * Describes the message records.v1.EmbeddingDigestsResponse.
2719
+ * Use `create(EmbeddingDigestsResponseSchema)` to create a new message.
2720
+ */
2721
+ export declare const EmbeddingDigestsResponseSchema: GenMessage<EmbeddingDigestsResponse>;
2722
+
2533
2723
  /**
2534
2724
  * LookupRecord resolves a record_id via the record_lookups projection. Used
2535
2725
  * by api-public's per-lookup GraphQL field (<typeLowerCamel>By<KeyFields>).
@@ -3570,6 +3760,24 @@ export declare const RecordsService: GenService<{
3570
3760
  input: typeof SearchEmbeddingsRequestSchema;
3571
3761
  output: typeof SearchEmbeddingsResponseSchema;
3572
3762
  },
3763
+ /**
3764
+ * Coverage: which records lack an embedding, and what's the stored digest.
3765
+ *
3766
+ * @generated from rpc records.v1.RecordsService.RecordsMissingEmbedding
3767
+ */
3768
+ recordsMissingEmbedding: {
3769
+ methodKind: "unary";
3770
+ input: typeof RecordsMissingEmbeddingRequestSchema;
3771
+ output: typeof RecordsMissingEmbeddingResponseSchema;
3772
+ },
3773
+ /**
3774
+ * @generated from rpc records.v1.RecordsService.EmbeddingDigests
3775
+ */
3776
+ embeddingDigests: {
3777
+ methodKind: "unary";
3778
+ input: typeof EmbeddingDigestsRequestSchema;
3779
+ output: typeof EmbeddingDigestsResponseSchema;
3780
+ },
3573
3781
  /**
3574
3782
  * @generated from rpc records.v1.RecordsService.EnqueueGenerateEmbedding
3575
3783
  */
@@ -11,7 +11,7 @@ import { file_expressions_v1_expressions } from "../../expressions/v1/expression
11
11
  * Describes the file records/v1/records.proto.
12
12
  */
13
13
  export const file_records_v1_records = /*@__PURE__*/
14
- fileDesc("ChhyZWNvcmRzL3YxL3JlY29yZHMucHJvdG8SCnJlY29yZHMudjEihA0KBlJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIWCglwYXJlbnRfaWQYBCABKAlIAYgBARIrCgtyZWNvcmRfdHlwZRgFIAEoDjIWLnJlY29yZHMudjEuUmVjb3JkVHlwZRIlCgRkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIYCgtjdXN0b21lcl9pZBgIIAEoCUgDiAEBEhEKCXRlbmFudF9pZBgKIAEoCRISCgpwcm9qZWN0X2lkGAsgASgJEhcKCmNyZWF0ZWRfYnkYFCABKAlIBIgBARIXCgp1cGRhdGVkX2J5GBUgASgJSAWIAQESLgoKY3JlYXRlZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOdmVyc2lvbl9udW1iZXIYKCABKAVIBogBARIZCgxjb250ZW50X2hhc2gYKSABKAlIB4gBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YKiABKAlICIgBARIbCg5wdWJsaXNoX3N0YXR1cxgrIAEoCUgJiAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GCwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgKiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYLSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAuIAQESGAoLdmFyaWFudF9rZXkYMiABKAlIDIgBARIZCgx2YXJpYW50X25hbWUYMyABKAlIDYgBARIgChN2YXJpYW50X2Rlc2NyaXB0aW9uGDQgASgJSA6IAQESFwoKY2F0YWxvZ19pZBg1IAEoCUgPiAEBEhUKCHByaW9yaXR5GDYgASgFSBCIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGDcgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IEYgBARIXCgppc19kZWZhdWx0GDggASgISBKIAQESHwoSY3VycmVudF92ZXJzaW9uX2lkGDwgASgJSBOIAQESIQoUcHVibGlzaGVkX3ZlcnNpb25faWQYPSABKAlIFIgBARIlChhwdWJsaXNoZWRfdmVyc2lvbl9udW1iZXIYPiABKAVIFYgBARI1CgxwdWJsaXNoZWRfYXQYPyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBaIAQESGQoMcHVibGlzaGVkX2J5GEAgASgJSBeIAQESEwoLY2FuX3B1Ymxpc2gYQSABKAgSFQoNY2FuX3VucHVibGlzaBhCIAEoCBIfChdoYXNfdW5wdWJsaXNoZWRfY2hhbmdlcxhDIAEoCBIdChBtb2RlbF92ZXJzaW9uX2lkGEYgASgJSBiIAQFCDgoMX25hdHVyYWxfa2V5QgwKCl9wYXJlbnRfaWRCCwoJX21ldGFkYXRhQg4KDF9jdXN0b21lcl9pZEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUIRCg9fdmVyc2lvbl9udW1iZXJCDwoNX2NvbnRlbnRfaGFzaEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQhEKD19wdWJsaXNoX3N0YXR1c0IXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXRCDgoMX3ZhcmlhbnRfa2V5Qg8KDV92YXJpYW50X25hbWVCFgoUX3ZhcmlhbnRfZGVzY3JpcHRpb25CDQoLX2NhdGFsb2dfaWRCCwoJX3ByaW9yaXR5QhIKEF90YXJnZXRpbmdfcnVsZXNCDQoLX2lzX2RlZmF1bHRCFQoTX2N1cnJlbnRfdmVyc2lvbl9pZEIXChVfcHVibGlzaGVkX3ZlcnNpb25faWRCGwoZX3B1Ymxpc2hlZF92ZXJzaW9uX251bWJlckIPCg1fcHVibGlzaGVkX2F0Qg8KDV9wdWJsaXNoZWRfYnlCEwoRX21vZGVsX3ZlcnNpb25faWQi9QEKD1B1Ymxpc2hTY2hlZHVsZRISCgp2ZXJzaW9uX2lkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAUgASgJSAGIAQFCDwoNX3VucHVibGlzaF9hdEINCgtfY3JlYXRlZF9ieSIuCglTb3J0RmllbGQSDQoFZmllbGQYASABKAkSEgoKZGVzY2VuZGluZxgCIAEoCCKFAgoOQmF0Y2hPcGVyYXRpb24SLAoEdHlwZRgBIAEoDjIeLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb25UeXBlEg8KAmlkGAIgASgJSACIAQESFgoJbW9kZWxfa2V5GAMgASgJSAGIAQESGAoLbmF0dXJhbF9rZXkYBCABKAlIAogBARIqCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhgKC2N1c3RvbWVyX2lkGAYgASgJSASIAQFCBQoDX2lkQgwKCl9tb2RlbF9rZXlCDgoMX25hdHVyYWxfa2V5QgcKBV9kYXRhQg4KDF9jdXN0b21lcl9pZCKIAQoUQmF0Y2hPcGVyYXRpb25SZXN1bHQSDQoFaW5kZXgYASABKAUSDwoHc3VjY2VzcxgCIAEoCBInCgZyZWNvcmQYAyABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgAiAEBEhIKBWVycm9yGAQgASgJSAGIAQFCCQoHX3JlY29yZEIICgZfZXJyb3IimAIKE0NyZWF0ZVJlY29yZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhgKC25hdHVyYWxfa2V5GAIgASgJSACIAQESJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLY3VzdG9tZXJfaWQYBCABKAlIAYgBARIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBiABKAlIA4gBAUIOCgxfbmF0dXJhbF9rZXlCDgoMX2N1c3RvbWVyX2lkQgsKCV9tZXRhZGF0YUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIqYBChRDcmVhdGVSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIoCgd2YXJpYW50GAIgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAIgBARIoCgd2ZXJzaW9uGAMgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAYgBAUIKCghfdmFyaWFudEIKCghfdmVyc2lvbiIeChBHZXRSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJIjcKEUdldFJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIj8KFUdldFJlY29yZEJ5S2V5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkiPAoWR2V0UmVjb3JkQnlLZXlSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJCChlHZXRSZWNvcmRCeUtleU9ySWRSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgppZGVudGlmaWVyGAIgASgJIkAKGkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkItYCChJMaXN0UmVjb3Jkc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEiMKBHNvcnQYAiADKAsyFS5yZWNvcmRzLnYxLlNvcnRGaWVsZBIYCgtjdXN0b21lcl9pZBgDIAEoCUgAiAEBEhMKBnNlYXJjaBgEIAEoCUgBiAEBEg8KB3ByZXZpZXcYBSABKAgSKwoFd2hlcmUYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESEgoFYWZ0ZXIYByABKAlIA4gBARITCgZiZWZvcmUYCCABKAlIBIgBARISCgVmaXJzdBgJIAEoBUgFiAEBEhEKBGxhc3QYCiABKAVIBogBAUIOCgxfY3VzdG9tZXJfaWRCCQoHX3NlYXJjaEIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpUBChNMaXN0UmVjb3Jkc1Jlc3BvbnNlEiMKB3JlY29yZHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8imwIKE1VwZGF0ZVJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkSJwoGdXBkYXRlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBEhgKC3ZhcmlhbnRfa2V5GAQgASgJSAGIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAUgASgJSAKIAQESMgoMcmVwbGFjZV9kYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg4KDF9uYXR1cmFsX2tleUIOCgxfdmFyaWFudF9rZXlCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkIPCg1fcmVwbGFjZV9kYXRhIjoKFFVwZGF0ZVJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIiEKE0RlbGV0ZVJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlUmVjb3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKnAQoTVXBzZXJ0UmVjb3JkUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIRCgltb2RlbF9rZXkYAyABKAkSEwoLbmF0dXJhbF9rZXkYBCABKAkSJQoEZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGgoSY2hhbmdlX2Rlc2NyaXB0aW9uGAYgASgJIksKFFVwc2VydFJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkEg8KB2NyZWF0ZWQYAiABKAgiTgocQmF0Y2hSZWNvcmRPcGVyYXRpb25zUmVxdWVzdBIuCgpvcGVyYXRpb25zGAEgAygLMhoucmVjb3Jkcy52MS5CYXRjaE9wZXJhdGlvbiJSCh1CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXNwb25zZRIxCgdyZXN1bHRzGAEgAygLMiAucmVjb3Jkcy52MS5CYXRjaE9wZXJhdGlvblJlc3VsdCKdAQoYQnVsa1VwZGF0ZVJlY29yZHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRIrCgV3aGVyZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIsCgZ1cGRhdGUYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQFCCAoGX3doZXJlQgkKB191cGRhdGUiNwoZQnVsa1VwZGF0ZVJlY29yZHNSZXNwb25zZRINCgVjb3VudBgBIAEoBRILCgNpZHMYAiADKAkiMgodQmFja2ZpbGxRdWVyeWFibGVJbmRleFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJIjkKHkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXNwb25zZRIXCg9yZWNvcmRzX2luZGV4ZWQYASABKAUiMAobQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSJhChxCYWNrZmlsbE1vZGVsSW5kZXhlc1Jlc3BvbnNlEh4KFmxvb2t1cHNfcmVjb3Jkc193YWxrZWQYASABKAUSIQoZcXVlcnlhYmxlX3JlY29yZHNfaW5kZXhlZBgCIAEoBSJWChZEdXBsaWNhdGVSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhwKD25ld19uYXR1cmFsX2tleRgCIAEoCUgAiAEBQhIKEF9uZXdfbmF0dXJhbF9rZXkiPQoXRHVwbGljYXRlUmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiUAobRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXF1ZXN0EgsKA2lkcxgBIAMoCRIWCgltb2RlbF9rZXkYAiABKAlIAIgBAUIMCgpfbW9kZWxfa2V5IkMKHER1cGxpY2F0ZVJlY29yZHNCdWxrUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkIisKFVB1Ymxpc2hWZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJIjwKFlB1Ymxpc2hWZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiKwoWVW5wdWJsaXNoUmVjb3JkUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiKgoXVW5wdWJsaXNoUmVjb3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChZSZXZlcnRUb1ZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiPQoXUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQipgEKGUxpc3RSZWNvcmRWZXJzaW9uc1JlcXVlc3QSEQoJcGFyZW50X2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEwoGYmVmb3JlGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBARIRCgRsYXN0GAUgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Ip0BChpMaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRIkCgh2ZXJzaW9ucxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJlChRDcmVhdGVWYXJpYW50UmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEwoLdmFyaWFudF9rZXkYAiABKAkSJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPAoVQ3JlYXRlVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCKaAQoUVXBkYXRlVmFyaWFudFJlcXVlc3QSEgoKdmFyaWFudF9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0Cg5tZXRhZGF0YV9wYXRjaBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIRCg9fbWV0YWRhdGFfcGF0Y2giPAoVVXBkYXRlVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCIqChREZWxldGVWYXJpYW50UmVxdWVzdBISCgp2YXJpYW50X2lkGAEgASgJIigKFURlbGV0ZVZhcmlhbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkEKGFNldERlZmF1bHRWYXJpYW50UmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEgoKdmFyaWFudF9pZBgCIAEoCSI/ChlTZXREZWZhdWx0VmFyaWFudFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIqYBChlMaXN0UmVjb3JkVmFyaWFudHNSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKdAQoaTGlzdFJlY29yZFZhcmlhbnRzUmVzcG9uc2USJAoIdmFyaWFudHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iqgEKHFNjaGVkdWxlUmVjb3JkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCJECh1TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXNwb25zZRIjCgd2ZXJzaW9uGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiOQojQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCSJLCiRDYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoUmVzcG9uc2USIwoHdmVyc2lvbhgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIqkCCh1MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVxdWVzdBItCgRmcm9tGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEisKAnRvGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEhYKCW1vZGVsX2tleRgDIAEoCUgCiAEBEhIKBWFmdGVyGAQgASgJSAOIAQESEwoGYmVmb3JlGAUgASgJSASIAQESEgoFZmlyc3QYBiABKAVIBYgBARIRCgRsYXN0GAcgASgFSAaIAQFCBwoFX2Zyb21CBQoDX3RvQgwKCl9tb2RlbF9rZXlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqEBCh5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVzcG9uc2USJAoIdmVyc2lvbnMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iMAoaR2V0U2NoZWR1bGVkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCSJMChtHZXRTY2hlZHVsZWRQdWJsaXNoUmVzcG9uc2USLQoIc2NoZWR1bGUYASABKAsyGy5yZWNvcmRzLnYxLlB1Ymxpc2hTY2hlZHVsZSLyAQoYTGlzdERyYWZ0VmVyc2lvbnNSZXF1ZXN0EhYKCW1vZGVsX2tleRgBIAEoCUgAiAEBEhMKBnNlYXJjaBgCIAEoCUgBiAEBEhIKBWFmdGVyGAYgASgJSAKIAQESEwoGYmVmb3JlGAcgASgJSAOIAQESEgoFZmlyc3QYCCABKAVIBIgBARIRCgRsYXN0GAkgASgFSAWIAQESGAoQZGVkdXBlX2J5X3BhcmVudBgFIAEoCEIMCgpfbW9kZWxfa2V5QgkKB19zZWFyY2hCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpwBChlMaXN0RHJhZnRWZXJzaW9uc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIjIKG0JhdGNoUHVibGlzaFZlcnNpb25zUmVxdWVzdBITCgt2ZXJzaW9uX2lkcxgBIAMoCSJcChxCYXRjaFB1Ymxpc2hWZXJzaW9uc1Jlc3BvbnNlEiMKB3JlY29yZHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIXCg9wdWJsaXNoZWRfY291bnQYAiABKAUiuQEKGkJhdGNoUmVzb2x2ZVJlY29yZHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgpyZWNvcmRfaWRzGAIgAygJEhgKC2N1c3RvbWVyX2lkGAMgASgJSACIAQESLQoHY29udGV4dBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIPCgdwcmV2aWV3GAUgASgIQg4KDF9jdXN0b21lcl9pZEIKCghfY29udGV4dCJKChtCYXRjaFJlc29sdmVSZWNvcmRzUmVzcG9uc2USKwoHcmVjb3JkcxgBIAMoCzIaLnJlY29yZHMudjEuUmVzb2x2ZWRSZWNvcmQizQIKDlJlc29sdmVkUmVjb3JkEhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIlCgRkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFwoKdmFyaWFudF9pZBgGIAEoCUgBiAEBEhEKCWhhc19kcmFmdBgIIAEoCBIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfbmF0dXJhbF9rZXlCDQoLX3ZhcmlhbnRfaWQiLwoZTG9va3VwUmVjb3JkTW9kZWxzUmVxdWVzdBISCgpyZWNvcmRfaWRzGAEgAygJIjgKEFJlY29yZE1vZGVsRW50cnkSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCSJLChpMb29rdXBSZWNvcmRNb2RlbHNSZXNwb25zZRItCgdlbnRyaWVzGAEgAygLMhwucmVjb3Jkcy52MS5SZWNvcmRNb2RlbEVudHJ5IrABChNHbG9iYWxTZWFyY2hSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEhIKCm1vZGVsX2tleXMYAiADKAkSEgoFYWZ0ZXIYAyABKAlIAIgBARITCgZiZWZvcmUYBCABKAlIAYgBARISCgVmaXJzdBgFIAEoBUgCiAEBEhEKBGxhc3QYBiABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QikQEKEFNlYXJjaFJlc3VsdEl0ZW0SCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDQoFc2NvcmUYBSABKAFCDgoMX25hdHVyYWxfa2V5IqABChRHbG9iYWxTZWFyY2hSZXNwb25zZRItCgdyZWNvcmRzGAEgAygLMhwucmVjb3Jkcy52MS5TZWFyY2hSZXN1bHRJdGVtEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKhAQoORW1iZWRkaW5nU3RhdHMSEQoJbW9kZWxfa2V5GAEgASgJEhUKDXRvdGFsX3JlY29yZHMYAiABKAUSGAoQZW1iZWRkZWRfcmVjb3JkcxgDIAEoBRIXCg9wZW5kaW5nX3JlY29yZHMYBCABKAUSHQoQbGFzdF9lbWJlZGRlZF9hdBgFIAEoCUgAiAEBQhMKEV9sYXN0X2VtYmVkZGVkX2F0InUKD1JlY29yZEVtYmVkZGluZxIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhIKCmRpbWVuc2lvbnMYAyABKAUSGAoLZW1iZWRkZWRfYXQYBCABKAlIAIgBAUIOCgxfZW1iZWRkZWRfYXQikwEKDVNpbWlsYXJSZWNvcmQSCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoKc2ltaWxhcml0eRgFIAEoAUIOCgxfbmF0dXJhbF9rZXkiQAoYR2V0RW1iZWRkaW5nU3RhdHNSZXF1ZXN0EhYKCW1vZGVsX2tleRgBIAEoCUgAiAEBQgwKCl9tb2RlbF9rZXkiRgoZR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRIpCgVzdGF0cxgBIAMoCzIaLnJlY29yZHMudjEuRW1iZWRkaW5nU3RhdHMiLwoaR2V0UmVjb3JkRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJIk4KG0dldFJlY29yZEVtYmVkZGluZ3NSZXNwb25zZRIvCgplbWJlZGRpbmdzGAEgAygLMhsucmVjb3Jkcy52MS5SZWNvcmRFbWJlZGRpbmcizAEKGUZpbmRTaW1pbGFyUmVjb3Jkc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhYKCW1vZGVsX2tleRgCIAEoCUgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCDAoKX21vZGVsX2tleUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilAEKGkZpbmRTaW1pbGFyUmVjb3Jkc1Jlc3BvbnNlEioKB3JlY29yZHMYASADKAsyGS5yZWNvcmRzLnYxLlNpbWlsYXJSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIpsBChZXcml0ZUVtYmVkZGluZ3NSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIOCgZ2ZWN0b3IYAiADKAISEgoKZGltZW5zaW9ucxgDIAEoBRIVCghwcm92aWRlchgEIAEoCUgAiAEBEhcKCm1vZGVsX25hbWUYBSABKAlIAYgBAUILCglfcHJvdmlkZXJCDQoLX21vZGVsX25hbWUiKgoXV3JpdGVFbWJlZGRpbmdzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChdEZWxldGVFbWJlZGRpbmdzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiKwoYRGVsZXRlRW1iZWRkaW5nc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiZwofRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhMKBnNvdXJjZRgDIAEoCUgAiAEBQgkKB19zb3VyY2UiNAogRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nUmVzcG9uc2USEAoIZW5xdWV1ZWQYASABKAgizQEKF1NlYXJjaEVtYmVkZGluZ3NSZXF1ZXN0EhQKDHF1ZXJ5X3ZlY3RvchgBIAMoAhIWCgltb2RlbF9rZXkYAiABKAlIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQgwKCl9tb2RlbF9rZXlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpIBChhTZWFyY2hFbWJlZGRpbmdzUmVzcG9uc2USKgoHcmVzdWx0cxgBIAMoCzIZLnJlY29yZHMudjEuU2ltaWxhclJlY29yZBIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAMgAygJQgwKCl9wYWdlX2luZm8inwIKE0xvb2t1cFJlY29yZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEhAKCGtleV9oYXNoGAMgASgMEg8KB2NoYW5uZWwYBCABKAkSFwoKdmFyaWFudF9pZBgFIAEoCUgAiAEBEhMKBmxvY2FsZRgGIAEoCUgBiAEBEhgKC2N1c3RvbWVyX2lkGAcgASgJSAKIAQESNgoQY3VzdG9tZXJfY29udGV4dBgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlQg4KDF9jdXN0b21lcl9pZEITChFfY3VzdG9tZXJfY29udGV4dCI8ChRMb29rdXBSZWNvcmRSZXNwb25zZRIWCglyZWNvcmRfaWQYASABKAlIAIgBAUIMCgpfcmVjb3JkX2lkIukBCh5DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEhAKCGtleV9oYXNoGAMgASgMEg8KB2NoYW5uZWwYBCABKAkSFwoKdmFyaWFudF9pZBgFIAEoCUgAiAEBEhMKBmxvY2FsZRgGIAEoCUgBiAEBEh4KEWV4Y2x1ZGVfcmVjb3JkX2lkGAcgASgJSAKIAQFCDQoLX3ZhcmlhbnRfaWRCCQoHX2xvY2FsZUIUChJfZXhjbHVkZV9yZWNvcmRfaWQiNAofQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXNwb25zZRIRCglhdmFpbGFibGUYASABKAgilwEKFExvb2t1cENvbmZsaWN0RGV0YWlsEhEKCW1vZGVsX2tleRgBIAEoCRITCgtsb29rdXBfbmFtZRgCIAEoCRIPCgdjaGFubmVsGAMgASgJEhcKCnZhcmlhbnRfaWQYBCABKAlIAIgBARITCgZsb2NhbGUYBSABKAlIAYgBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlIuIBChpMaXN0TG9va3VwQ29uZmxpY3RzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSGAoLbG9va3VwX25hbWUYAiABKAlIAIgBARIPCgdjaGFubmVsGAMgASgJEhIKBWZpcnN0GAQgASgFSAGIAQESEgoFYWZ0ZXIYBSABKAlIAogBARIRCgRsYXN0GAYgASgFSAOIAQESEwoGYmVmb3JlGAcgASgJSASIAQFCDgoMX2xvb2t1cF9uYW1lQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZSKjAQobTGlzdExvb2t1cENvbmZsaWN0c1Jlc3BvbnNlEikKBmdyb3VwcxgBIAMoCzIZLnJlY29yZHMudjEuQ29uZmxpY3RHcm91cBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8imwEKDUNvbmZsaWN0R3JvdXASEwoLZW5jb2RlZF9rZXkYASABKAkSDwoHY2hhbm5lbBgCIAEoCRIXCgp2YXJpYW50X2lkGAMgASgJSACIAQESGAoLY3VzdG9tZXJfaWQYBCABKAlIAYgBARISCgpyZWNvcmRfaWRzGAUgAygJQg0KC192YXJpYW50X2lkQg4KDF9jdXN0b21lcl9pZCIvChpSZWJ1aWxkTW9kZWxMb29rdXBzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiNQobUmVidWlsZE1vZGVsTG9va3Vwc1Jlc3BvbnNlEhYKDnJlY29yZHNfd2Fsa2VkGAEgASgFInAKIkxpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1JlcXVlc3QSFgoJbW9kZWxfa2V5GAEgASgJSACIAQESFgoJcm93X2xpbWl0GAIgASgFSAGIAQFCDAoKX21vZGVsX2tleUIMCgpfcm93X2xpbWl0IlkKI0xpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1Jlc3BvbnNlEjIKB2VudHJpZXMYASADKAsyIS5yZWNvcmRzLnYxLlNsb3dRdWVyeUFkdmlzb3JFbnRyeSKRAQoVU2xvd1F1ZXJ5QWR2aXNvckVudHJ5EhEKCW1vZGVsX2tleRgBIAEoCRISCgpmaWVsZF9wYXRoGAIgASgJEhAKCG9wZXJhdG9yGAMgASgJEg0KBWNvdW50GAQgASgDEjAKDGxhc3Rfc2Vlbl9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiIAoeU2xvd1F1ZXJ5QWR2aXNvclN1bW1hcnlSZXF1ZXN0IlsKH1Nsb3dRdWVyeUFkdmlzb3JTdW1tYXJ5UmVzcG9uc2USOAoGbW9kZWxzGAEgAygLMigucmVjb3Jkcy52MS5TbG93UXVlcnlBZHZpc29yTW9kZWxTdW1tYXJ5IloKHFNsb3dRdWVyeUFkdmlzb3JNb2RlbFN1bW1hcnkSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2VudHJ5X2NvdW50GAIgASgFEhIKCnRvdGFsX2hpdHMYAyABKAMiXAohQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnlSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgpmaWVsZF9wYXRoGAIgASgJEhAKCG9wZXJhdG9yGAMgASgJIiQKIkNsZWFyU2xvd1F1ZXJ5QWR2aXNvckVudHJ5UmVzcG9uc2UqcwoKUmVjb3JkVHlwZRIbChdSRUNPUkRfVFlQRV9VTlNQRUNJRklFRBAAEhYKElJFQ09SRF9UWVBFX1JFQ09SRBABEhcKE1JFQ09SRF9UWVBFX1ZBUklBTlQQAhIXChNSRUNPUkRfVFlQRV9WRVJTSU9OEAMqnQEKEkJhdGNoT3BlcmF0aW9uVHlwZRIkCiBCQVRDSF9PUEVSQVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX0NSRUFURRABEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX1VQREFURRACEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX0RFTEVURRADMuYjCg5SZWNvcmRzU2VydmljZRJRCgxDcmVhdGVSZWNvcmQSHy5yZWNvcmRzLnYxLkNyZWF0ZVJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLkNyZWF0ZVJlY29yZFJlc3BvbnNlEkgKCUdldFJlY29yZBIcLnJlY29yZHMudjEuR2V0UmVjb3JkUmVxdWVzdBodLnJlY29yZHMudjEuR2V0UmVjb3JkUmVzcG9uc2USVwoOR2V0UmVjb3JkQnlLZXkSIS5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5UmVxdWVzdBoiLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlSZXNwb25zZRJjChJHZXRSZWNvcmRCeUtleU9ySWQSJS5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5T3JJZFJlcXVlc3QaJi5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEk4KC0xpc3RSZWNvcmRzEh4ucmVjb3Jkcy52MS5MaXN0UmVjb3Jkc1JlcXVlc3QaHy5yZWNvcmRzLnYxLkxpc3RSZWNvcmRzUmVzcG9uc2USUQoMVXBkYXRlUmVjb3JkEh8ucmVjb3Jkcy52MS5VcGRhdGVSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5VcGRhdGVSZWNvcmRSZXNwb25zZRJRCgxVcHNlcnRSZWNvcmQSHy5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlc3BvbnNlElEKDERlbGV0ZVJlY29yZBIfLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVzcG9uc2USbAoVQmF0Y2hSZWNvcmRPcGVyYXRpb25zEigucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXF1ZXN0GikucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXNwb25zZRJgChFCdWxrVXBkYXRlUmVjb3JkcxIkLnJlY29yZHMudjEuQnVsa1VwZGF0ZVJlY29yZHNSZXF1ZXN0GiUucmVjb3Jkcy52MS5CdWxrVXBkYXRlUmVjb3Jkc1Jlc3BvbnNlEm8KFkJhY2tmaWxsUXVlcnlhYmxlSW5kZXgSKS5yZWNvcmRzLnYxLkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXF1ZXN0GioucmVjb3Jkcy52MS5CYWNrZmlsbFF1ZXJ5YWJsZUluZGV4UmVzcG9uc2USaQoUQmFja2ZpbGxNb2RlbEluZGV4ZXMSJy5yZWNvcmRzLnYxLkJhY2tmaWxsTW9kZWxJbmRleGVzUmVxdWVzdBooLnJlY29yZHMudjEuQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXNwb25zZRJ+ChtMaXN0U2xvd1F1ZXJ5QWR2aXNvckVudHJpZXMSLi5yZWNvcmRzLnYxLkxpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1JlcXVlc3QaLy5yZWNvcmRzLnYxLkxpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1Jlc3BvbnNlEnIKF1Nsb3dRdWVyeUFkdmlzb3JTdW1tYXJ5EioucmVjb3Jkcy52MS5TbG93UXVlcnlBZHZpc29yU3VtbWFyeVJlcXVlc3QaKy5yZWNvcmRzLnYxLlNsb3dRdWVyeUFkdmlzb3JTdW1tYXJ5UmVzcG9uc2USewoaQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnkSLS5yZWNvcmRzLnYxLkNsZWFyU2xvd1F1ZXJ5QWR2aXNvckVudHJ5UmVxdWVzdBouLnJlY29yZHMudjEuQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnlSZXNwb25zZRJaCg9EdXBsaWNhdGVSZWNvcmQSIi5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZFJlcXVlc3QaIy5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZFJlc3BvbnNlEmkKFER1cGxpY2F0ZVJlY29yZHNCdWxrEicucmVjb3Jkcy52MS5EdXBsaWNhdGVSZWNvcmRzQnVsa1JlcXVlc3QaKC5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZHNCdWxrUmVzcG9uc2USVwoOUHVibGlzaFZlcnNpb24SIS5yZWNvcmRzLnYxLlB1Ymxpc2hWZXJzaW9uUmVxdWVzdBoiLnJlY29yZHMudjEuUHVibGlzaFZlcnNpb25SZXNwb25zZRJaCg9VbnB1Ymxpc2hSZWNvcmQSIi5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlcXVlc3QaIy5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlc3BvbnNlEloKD1JldmVydFRvVmVyc2lvbhIiLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVxdWVzdBojLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USYwoSTGlzdFJlY29yZFZlcnNpb25zEiUucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXF1ZXN0GiYucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRJUCg1DcmVhdGVWYXJpYW50EiAucmVjb3Jkcy52MS5DcmVhdGVWYXJpYW50UmVxdWVzdBohLnJlY29yZHMudjEuQ3JlYXRlVmFyaWFudFJlc3BvbnNlElQKDVVwZGF0ZVZhcmlhbnQSIC5yZWNvcmRzLnYxLlVwZGF0ZVZhcmlhbnRSZXF1ZXN0GiEucmVjb3Jkcy52MS5VcGRhdGVWYXJpYW50UmVzcG9uc2USVAoNRGVsZXRlVmFyaWFudBIgLnJlY29yZHMudjEuRGVsZXRlVmFyaWFudFJlcXVlc3QaIS5yZWNvcmRzLnYxLkRlbGV0ZVZhcmlhbnRSZXNwb25zZRJgChFTZXREZWZhdWx0VmFyaWFudBIkLnJlY29yZHMudjEuU2V0RGVmYXVsdFZhcmlhbnRSZXF1ZXN0GiUucmVjb3Jkcy52MS5TZXREZWZhdWx0VmFyaWFudFJlc3BvbnNlEmMKEkxpc3RSZWNvcmRWYXJpYW50cxIlLnJlY29yZHMudjEuTGlzdFJlY29yZFZhcmlhbnRzUmVxdWVzdBomLnJlY29yZHMudjEuTGlzdFJlY29yZFZhcmlhbnRzUmVzcG9uc2USbAoVU2NoZWR1bGVSZWNvcmRQdWJsaXNoEigucmVjb3Jkcy52MS5TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXF1ZXN0GikucmVjb3Jkcy52MS5TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXNwb25zZRKBAQocQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaBIvLnJlY29yZHMudjEuQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlcXVlc3QaMC5yZWNvcmRzLnYxLkNhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXNwb25zZRJvChZMaXN0U2NoZWR1bGVkUHVibGlzaGVzEikucmVjb3Jkcy52MS5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVxdWVzdBoqLnJlY29yZHMudjEuTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1Jlc3BvbnNlEmYKE0dldFNjaGVkdWxlZFB1Ymxpc2gSJi5yZWNvcmRzLnYxLkdldFNjaGVkdWxlZFB1Ymxpc2hSZXF1ZXN0GicucmVjb3Jkcy52MS5HZXRTY2hlZHVsZWRQdWJsaXNoUmVzcG9uc2USYAoRTGlzdERyYWZ0VmVyc2lvbnMSJC5yZWNvcmRzLnYxLkxpc3REcmFmdFZlcnNpb25zUmVxdWVzdBolLnJlY29yZHMudjEuTGlzdERyYWZ0VmVyc2lvbnNSZXNwb25zZRJpChRCYXRjaFB1Ymxpc2hWZXJzaW9ucxInLnJlY29yZHMudjEuQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXF1ZXN0GigucmVjb3Jkcy52MS5CYXRjaFB1Ymxpc2hWZXJzaW9uc1Jlc3BvbnNlEmYKE0JhdGNoUmVzb2x2ZVJlY29yZHMSJi5yZWNvcmRzLnYxLkJhdGNoUmVzb2x2ZVJlY29yZHNSZXF1ZXN0GicucmVjb3Jkcy52MS5CYXRjaFJlc29sdmVSZWNvcmRzUmVzcG9uc2USYwoSTG9va3VwUmVjb3JkTW9kZWxzEiUucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXNwb25zZRJRCgxHbG9iYWxTZWFyY2gSHy5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlcXVlc3QaIC5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlc3BvbnNlElEKDExvb2t1cFJlY29yZBIfLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVzcG9uc2UScgoXQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHkSKi5yZWNvcmRzLnYxLkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVxdWVzdBorLnJlY29yZHMudjEuQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXNwb25zZRJmChNMaXN0TG9va3VwQ29uZmxpY3RzEiYucmVjb3Jkcy52MS5MaXN0TG9va3VwQ29uZmxpY3RzUmVxdWVzdBonLnJlY29yZHMudjEuTGlzdExvb2t1cENvbmZsaWN0c1Jlc3BvbnNlEmYKE1JlYnVpbGRNb2RlbExvb2t1cHMSJi5yZWNvcmRzLnYxLlJlYnVpbGRNb2RlbExvb2t1cHNSZXF1ZXN0GicucmVjb3Jkcy52MS5SZWJ1aWxkTW9kZWxMb29rdXBzUmVzcG9uc2USYAoRR2V0RW1iZWRkaW5nU3RhdHMSJC5yZWNvcmRzLnYxLkdldEVtYmVkZGluZ1N0YXRzUmVxdWVzdBolLnJlY29yZHMudjEuR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRJmChNHZXRSZWNvcmRFbWJlZGRpbmdzEiYucmVjb3Jkcy52MS5HZXRSZWNvcmRFbWJlZGRpbmdzUmVxdWVzdBonLnJlY29yZHMudjEuR2V0UmVjb3JkRW1iZWRkaW5nc1Jlc3BvbnNlEmMKEkZpbmRTaW1pbGFyUmVjb3JkcxIlLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVxdWVzdBomLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVzcG9uc2USWgoPV3JpdGVFbWJlZGRpbmdzEiIucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXF1ZXN0GiMucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXNwb25zZRJdChBEZWxldGVFbWJlZGRpbmdzEiMucmVjb3Jkcy52MS5EZWxldGVFbWJlZGRpbmdzUmVxdWVzdBokLnJlY29yZHMudjEuRGVsZXRlRW1iZWRkaW5nc1Jlc3BvbnNlEl0KEFNlYXJjaEVtYmVkZGluZ3MSIy5yZWNvcmRzLnYxLlNlYXJjaEVtYmVkZGluZ3NSZXF1ZXN0GiQucmVjb3Jkcy52MS5TZWFyY2hFbWJlZGRpbmdzUmVzcG9uc2USdQoYRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nEisucmVjb3Jkcy52MS5FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXF1ZXN0GiwucmVjb3Jkcy52MS5FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXNwb25zZUI7WjlnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vcmVjb3Jkcy92MTtyZWNvcmRzdjFiBnByb3RvMw", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_common_v1_pagination, file_expressions_v1_expressions]);
14
+ fileDesc("ChhyZWNvcmRzL3YxL3JlY29yZHMucHJvdG8SCnJlY29yZHMudjEihA0KBlJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIWCglwYXJlbnRfaWQYBCABKAlIAYgBARIrCgtyZWNvcmRfdHlwZRgFIAEoDjIWLnJlY29yZHMudjEuUmVjb3JkVHlwZRIlCgRkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIYCgtjdXN0b21lcl9pZBgIIAEoCUgDiAEBEhEKCXRlbmFudF9pZBgKIAEoCRISCgpwcm9qZWN0X2lkGAsgASgJEhcKCmNyZWF0ZWRfYnkYFCABKAlIBIgBARIXCgp1cGRhdGVkX2J5GBUgASgJSAWIAQESLgoKY3JlYXRlZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOdmVyc2lvbl9udW1iZXIYKCABKAVIBogBARIZCgxjb250ZW50X2hhc2gYKSABKAlIB4gBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YKiABKAlICIgBARIbCg5wdWJsaXNoX3N0YXR1cxgrIAEoCUgJiAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GCwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgKiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYLSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAuIAQESGAoLdmFyaWFudF9rZXkYMiABKAlIDIgBARIZCgx2YXJpYW50X25hbWUYMyABKAlIDYgBARIgChN2YXJpYW50X2Rlc2NyaXB0aW9uGDQgASgJSA6IAQESFwoKY2F0YWxvZ19pZBg1IAEoCUgPiAEBEhUKCHByaW9yaXR5GDYgASgFSBCIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGDcgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IEYgBARIXCgppc19kZWZhdWx0GDggASgISBKIAQESHwoSY3VycmVudF92ZXJzaW9uX2lkGDwgASgJSBOIAQESIQoUcHVibGlzaGVkX3ZlcnNpb25faWQYPSABKAlIFIgBARIlChhwdWJsaXNoZWRfdmVyc2lvbl9udW1iZXIYPiABKAVIFYgBARI1CgxwdWJsaXNoZWRfYXQYPyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBaIAQESGQoMcHVibGlzaGVkX2J5GEAgASgJSBeIAQESEwoLY2FuX3B1Ymxpc2gYQSABKAgSFQoNY2FuX3VucHVibGlzaBhCIAEoCBIfChdoYXNfdW5wdWJsaXNoZWRfY2hhbmdlcxhDIAEoCBIdChBtb2RlbF92ZXJzaW9uX2lkGEYgASgJSBiIAQFCDgoMX25hdHVyYWxfa2V5QgwKCl9wYXJlbnRfaWRCCwoJX21ldGFkYXRhQg4KDF9jdXN0b21lcl9pZEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUIRCg9fdmVyc2lvbl9udW1iZXJCDwoNX2NvbnRlbnRfaGFzaEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQhEKD19wdWJsaXNoX3N0YXR1c0IXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXRCDgoMX3ZhcmlhbnRfa2V5Qg8KDV92YXJpYW50X25hbWVCFgoUX3ZhcmlhbnRfZGVzY3JpcHRpb25CDQoLX2NhdGFsb2dfaWRCCwoJX3ByaW9yaXR5QhIKEF90YXJnZXRpbmdfcnVsZXNCDQoLX2lzX2RlZmF1bHRCFQoTX2N1cnJlbnRfdmVyc2lvbl9pZEIXChVfcHVibGlzaGVkX3ZlcnNpb25faWRCGwoZX3B1Ymxpc2hlZF92ZXJzaW9uX251bWJlckIPCg1fcHVibGlzaGVkX2F0Qg8KDV9wdWJsaXNoZWRfYnlCEwoRX21vZGVsX3ZlcnNpb25faWQi9QEKD1B1Ymxpc2hTY2hlZHVsZRISCgp2ZXJzaW9uX2lkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAUgASgJSAGIAQFCDwoNX3VucHVibGlzaF9hdEINCgtfY3JlYXRlZF9ieSIuCglTb3J0RmllbGQSDQoFZmllbGQYASABKAkSEgoKZGVzY2VuZGluZxgCIAEoCCKFAgoOQmF0Y2hPcGVyYXRpb24SLAoEdHlwZRgBIAEoDjIeLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb25UeXBlEg8KAmlkGAIgASgJSACIAQESFgoJbW9kZWxfa2V5GAMgASgJSAGIAQESGAoLbmF0dXJhbF9rZXkYBCABKAlIAogBARIqCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhgKC2N1c3RvbWVyX2lkGAYgASgJSASIAQFCBQoDX2lkQgwKCl9tb2RlbF9rZXlCDgoMX25hdHVyYWxfa2V5QgcKBV9kYXRhQg4KDF9jdXN0b21lcl9pZCKIAQoUQmF0Y2hPcGVyYXRpb25SZXN1bHQSDQoFaW5kZXgYASABKAUSDwoHc3VjY2VzcxgCIAEoCBInCgZyZWNvcmQYAyABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgAiAEBEhIKBWVycm9yGAQgASgJSAGIAQFCCQoHX3JlY29yZEIICgZfZXJyb3IimAIKE0NyZWF0ZVJlY29yZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhgKC25hdHVyYWxfa2V5GAIgASgJSACIAQESJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLY3VzdG9tZXJfaWQYBCABKAlIAYgBARIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBiABKAlIA4gBAUIOCgxfbmF0dXJhbF9rZXlCDgoMX2N1c3RvbWVyX2lkQgsKCV9tZXRhZGF0YUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIqYBChRDcmVhdGVSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIoCgd2YXJpYW50GAIgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAIgBARIoCgd2ZXJzaW9uGAMgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAYgBAUIKCghfdmFyaWFudEIKCghfdmVyc2lvbiIeChBHZXRSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJIjcKEUdldFJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIj8KFUdldFJlY29yZEJ5S2V5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkiPAoWR2V0UmVjb3JkQnlLZXlSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJCChlHZXRSZWNvcmRCeUtleU9ySWRSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgppZGVudGlmaWVyGAIgASgJIkAKGkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkItYCChJMaXN0UmVjb3Jkc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEiMKBHNvcnQYAiADKAsyFS5yZWNvcmRzLnYxLlNvcnRGaWVsZBIYCgtjdXN0b21lcl9pZBgDIAEoCUgAiAEBEhMKBnNlYXJjaBgEIAEoCUgBiAEBEg8KB3ByZXZpZXcYBSABKAgSKwoFd2hlcmUYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESEgoFYWZ0ZXIYByABKAlIA4gBARITCgZiZWZvcmUYCCABKAlIBIgBARISCgVmaXJzdBgJIAEoBUgFiAEBEhEKBGxhc3QYCiABKAVIBogBAUIOCgxfY3VzdG9tZXJfaWRCCQoHX3NlYXJjaEIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpUBChNMaXN0UmVjb3Jkc1Jlc3BvbnNlEiMKB3JlY29yZHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8imwIKE1VwZGF0ZVJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkSJwoGdXBkYXRlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBEhgKC3ZhcmlhbnRfa2V5GAQgASgJSAGIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAUgASgJSAKIAQESMgoMcmVwbGFjZV9kYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg4KDF9uYXR1cmFsX2tleUIOCgxfdmFyaWFudF9rZXlCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkIPCg1fcmVwbGFjZV9kYXRhIjoKFFVwZGF0ZVJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIiEKE0RlbGV0ZVJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlUmVjb3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKnAQoTVXBzZXJ0UmVjb3JkUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIRCgltb2RlbF9rZXkYAyABKAkSEwoLbmF0dXJhbF9rZXkYBCABKAkSJQoEZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGgoSY2hhbmdlX2Rlc2NyaXB0aW9uGAYgASgJIksKFFVwc2VydFJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkEg8KB2NyZWF0ZWQYAiABKAgiTgocQmF0Y2hSZWNvcmRPcGVyYXRpb25zUmVxdWVzdBIuCgpvcGVyYXRpb25zGAEgAygLMhoucmVjb3Jkcy52MS5CYXRjaE9wZXJhdGlvbiJSCh1CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXNwb25zZRIxCgdyZXN1bHRzGAEgAygLMiAucmVjb3Jkcy52MS5CYXRjaE9wZXJhdGlvblJlc3VsdCKdAQoYQnVsa1VwZGF0ZVJlY29yZHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRIrCgV3aGVyZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIsCgZ1cGRhdGUYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQFCCAoGX3doZXJlQgkKB191cGRhdGUiNwoZQnVsa1VwZGF0ZVJlY29yZHNSZXNwb25zZRINCgVjb3VudBgBIAEoBRILCgNpZHMYAiADKAkiMgodQmFja2ZpbGxRdWVyeWFibGVJbmRleFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJIjkKHkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXNwb25zZRIXCg9yZWNvcmRzX2luZGV4ZWQYASABKAUiMAobQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSJhChxCYWNrZmlsbE1vZGVsSW5kZXhlc1Jlc3BvbnNlEh4KFmxvb2t1cHNfcmVjb3Jkc193YWxrZWQYASABKAUSIQoZcXVlcnlhYmxlX3JlY29yZHNfaW5kZXhlZBgCIAEoBSJWChZEdXBsaWNhdGVSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhwKD25ld19uYXR1cmFsX2tleRgCIAEoCUgAiAEBQhIKEF9uZXdfbmF0dXJhbF9rZXkiPQoXRHVwbGljYXRlUmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiUAobRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXF1ZXN0EgsKA2lkcxgBIAMoCRIWCgltb2RlbF9rZXkYAiABKAlIAIgBAUIMCgpfbW9kZWxfa2V5IkMKHER1cGxpY2F0ZVJlY29yZHNCdWxrUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkIisKFVB1Ymxpc2hWZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJIjwKFlB1Ymxpc2hWZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiKwoWVW5wdWJsaXNoUmVjb3JkUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiKgoXVW5wdWJsaXNoUmVjb3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChZSZXZlcnRUb1ZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiPQoXUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQipgEKGUxpc3RSZWNvcmRWZXJzaW9uc1JlcXVlc3QSEQoJcGFyZW50X2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEwoGYmVmb3JlGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBARIRCgRsYXN0GAUgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Ip0BChpMaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRIkCgh2ZXJzaW9ucxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJlChRDcmVhdGVWYXJpYW50UmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEwoLdmFyaWFudF9rZXkYAiABKAkSJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPAoVQ3JlYXRlVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCKaAQoUVXBkYXRlVmFyaWFudFJlcXVlc3QSEgoKdmFyaWFudF9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0Cg5tZXRhZGF0YV9wYXRjaBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIRCg9fbWV0YWRhdGFfcGF0Y2giPAoVVXBkYXRlVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCIqChREZWxldGVWYXJpYW50UmVxdWVzdBISCgp2YXJpYW50X2lkGAEgASgJIigKFURlbGV0ZVZhcmlhbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkEKGFNldERlZmF1bHRWYXJpYW50UmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEgoKdmFyaWFudF9pZBgCIAEoCSI/ChlTZXREZWZhdWx0VmFyaWFudFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIqYBChlMaXN0UmVjb3JkVmFyaWFudHNSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKdAQoaTGlzdFJlY29yZFZhcmlhbnRzUmVzcG9uc2USJAoIdmFyaWFudHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iqgEKHFNjaGVkdWxlUmVjb3JkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCJECh1TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXNwb25zZRIjCgd2ZXJzaW9uGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiOQojQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCSJLCiRDYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoUmVzcG9uc2USIwoHdmVyc2lvbhgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIqkCCh1MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVxdWVzdBItCgRmcm9tGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEisKAnRvGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEhYKCW1vZGVsX2tleRgDIAEoCUgCiAEBEhIKBWFmdGVyGAQgASgJSAOIAQESEwoGYmVmb3JlGAUgASgJSASIAQESEgoFZmlyc3QYBiABKAVIBYgBARIRCgRsYXN0GAcgASgFSAaIAQFCBwoFX2Zyb21CBQoDX3RvQgwKCl9tb2RlbF9rZXlCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqEBCh5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVzcG9uc2USJAoIdmVyc2lvbnMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iMAoaR2V0U2NoZWR1bGVkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCSJMChtHZXRTY2hlZHVsZWRQdWJsaXNoUmVzcG9uc2USLQoIc2NoZWR1bGUYASABKAsyGy5yZWNvcmRzLnYxLlB1Ymxpc2hTY2hlZHVsZSLyAQoYTGlzdERyYWZ0VmVyc2lvbnNSZXF1ZXN0EhYKCW1vZGVsX2tleRgBIAEoCUgAiAEBEhMKBnNlYXJjaBgCIAEoCUgBiAEBEhIKBWFmdGVyGAYgASgJSAKIAQESEwoGYmVmb3JlGAcgASgJSAOIAQESEgoFZmlyc3QYCCABKAVIBIgBARIRCgRsYXN0GAkgASgFSAWIAQESGAoQZGVkdXBlX2J5X3BhcmVudBgFIAEoCEIMCgpfbW9kZWxfa2V5QgkKB19zZWFyY2hCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpwBChlMaXN0RHJhZnRWZXJzaW9uc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIjIKG0JhdGNoUHVibGlzaFZlcnNpb25zUmVxdWVzdBITCgt2ZXJzaW9uX2lkcxgBIAMoCSJcChxCYXRjaFB1Ymxpc2hWZXJzaW9uc1Jlc3BvbnNlEiMKB3JlY29yZHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIXCg9wdWJsaXNoZWRfY291bnQYAiABKAUiuQEKGkJhdGNoUmVzb2x2ZVJlY29yZHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgpyZWNvcmRfaWRzGAIgAygJEhgKC2N1c3RvbWVyX2lkGAMgASgJSACIAQESLQoHY29udGV4dBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIPCgdwcmV2aWV3GAUgASgIQg4KDF9jdXN0b21lcl9pZEIKCghfY29udGV4dCJKChtCYXRjaFJlc29sdmVSZWNvcmRzUmVzcG9uc2USKwoHcmVjb3JkcxgBIAMoCzIaLnJlY29yZHMudjEuUmVzb2x2ZWRSZWNvcmQizQIKDlJlc29sdmVkUmVjb3JkEhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIlCgRkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFwoKdmFyaWFudF9pZBgGIAEoCUgBiAEBEhEKCWhhc19kcmFmdBgIIAEoCBIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfbmF0dXJhbF9rZXlCDQoLX3ZhcmlhbnRfaWQiLwoZTG9va3VwUmVjb3JkTW9kZWxzUmVxdWVzdBISCgpyZWNvcmRfaWRzGAEgAygJIjgKEFJlY29yZE1vZGVsRW50cnkSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCSJLChpMb29rdXBSZWNvcmRNb2RlbHNSZXNwb25zZRItCgdlbnRyaWVzGAEgAygLMhwucmVjb3Jkcy52MS5SZWNvcmRNb2RlbEVudHJ5IrABChNHbG9iYWxTZWFyY2hSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEhIKCm1vZGVsX2tleXMYAiADKAkSEgoFYWZ0ZXIYAyABKAlIAIgBARITCgZiZWZvcmUYBCABKAlIAYgBARISCgVmaXJzdBgFIAEoBUgCiAEBEhEKBGxhc3QYBiABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QikQEKEFNlYXJjaFJlc3VsdEl0ZW0SCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDQoFc2NvcmUYBSABKAFCDgoMX25hdHVyYWxfa2V5IqABChRHbG9iYWxTZWFyY2hSZXNwb25zZRItCgdyZWNvcmRzGAEgAygLMhwucmVjb3Jkcy52MS5TZWFyY2hSZXN1bHRJdGVtEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKhAQoORW1iZWRkaW5nU3RhdHMSEQoJbW9kZWxfa2V5GAEgASgJEhUKDXRvdGFsX3JlY29yZHMYAiABKAUSGAoQZW1iZWRkZWRfcmVjb3JkcxgDIAEoBRIXCg9wZW5kaW5nX3JlY29yZHMYBCABKAUSHQoQbGFzdF9lbWJlZGRlZF9hdBgFIAEoCUgAiAEBQhMKEV9sYXN0X2VtYmVkZGVkX2F0InUKD1JlY29yZEVtYmVkZGluZxIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhIKCmRpbWVuc2lvbnMYAyABKAUSGAoLZW1iZWRkZWRfYXQYBCABKAlIAIgBAUIOCgxfZW1iZWRkZWRfYXQikwEKDVNpbWlsYXJSZWNvcmQSCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoKc2ltaWxhcml0eRgFIAEoAUIOCgxfbmF0dXJhbF9rZXkiQAoYR2V0RW1iZWRkaW5nU3RhdHNSZXF1ZXN0EhYKCW1vZGVsX2tleRgBIAEoCUgAiAEBQgwKCl9tb2RlbF9rZXkiRgoZR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRIpCgVzdGF0cxgBIAMoCzIaLnJlY29yZHMudjEuRW1iZWRkaW5nU3RhdHMiLwoaR2V0UmVjb3JkRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJIk4KG0dldFJlY29yZEVtYmVkZGluZ3NSZXNwb25zZRIvCgplbWJlZGRpbmdzGAEgAygLMhsucmVjb3Jkcy52MS5SZWNvcmRFbWJlZGRpbmcizAEKGUZpbmRTaW1pbGFyUmVjb3Jkc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhYKCW1vZGVsX2tleRgCIAEoCUgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCDAoKX21vZGVsX2tleUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilAEKGkZpbmRTaW1pbGFyUmVjb3Jkc1Jlc3BvbnNlEioKB3JlY29yZHMYASADKAsyGS5yZWNvcmRzLnYxLlNpbWlsYXJSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIuEBChZXcml0ZUVtYmVkZGluZ3NSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIOCgZ2ZWN0b3IYAiADKAISEgoKZGltZW5zaW9ucxgDIAEoBRIVCghwcm92aWRlchgEIAEoCUgAiAEBEhcKCm1vZGVsX25hbWUYBSABKAlIAYgBARIQCgNrZXkYBiABKAlIAogBARIZCgxjb250ZW50X2hhc2gYByABKAlIA4gBAUILCglfcHJvdmlkZXJCDQoLX21vZGVsX25hbWVCBgoEX2tleUIPCg1fY29udGVudF9oYXNoIioKF1dyaXRlRW1iZWRkaW5nc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLAoXRGVsZXRlRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJIisKGERlbGV0ZUVtYmVkZGluZ3NSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIImcKH0VucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRITCgZzb3VyY2UYAyABKAlIAIgBAUIJCgdfc291cmNlIjQKIEVucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1Jlc3BvbnNlEhAKCGVucXVldWVkGAEgASgIIs0BChdTZWFyY2hFbWJlZGRpbmdzUmVxdWVzdBIUCgxxdWVyeV92ZWN0b3IYASADKAISFgoJbW9kZWxfa2V5GAIgASgJSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIMCgpfbW9kZWxfa2V5QggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKSAQoYU2VhcmNoRW1iZWRkaW5nc1Jlc3BvbnNlEioKB3Jlc3VsdHMYASADKAsyGS5yZWNvcmRzLnYxLlNpbWlsYXJSZWNvcmQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIokBCh5SZWNvcmRzTWlzc2luZ0VtYmVkZGluZ1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhAKA2tleRgCIAEoCUgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBAUIGCgRfa2V5QggKBl9hZnRlckIICgZfZmlyc3QiVQoWTWlzc2luZ0VtYmVkZGluZ1JlY29yZBIRCglyZWNvcmRfaWQYASABKAkSGAoLbmF0dXJhbF9rZXkYAiABKAlIAIgBAUIOCgxfbmF0dXJhbF9rZXkisQEKH1JlY29yZHNNaXNzaW5nRW1iZWRkaW5nUmVzcG9uc2USMwoHcmVjb3JkcxgBIAMoCzIiLnJlY29yZHMudjEuTWlzc2luZ0VtYmVkZGluZ1JlY29yZBIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAMgAygJEg0KBXRvdGFsGAQgASgFQgwKCl9wYWdlX2luZm8ibQoXRW1iZWRkaW5nRGlnZXN0c1JlcXVlc3QSEgoKcmVjb3JkX2lkcxgBIAMoCRIQCgNrZXkYAiABKAlIAIgBARIWCgltb2RlbF9rZXkYAyABKAlIAYgBAUIGCgRfa2V5QgwKCl9tb2RlbF9rZXkiUAoPRW1iZWRkaW5nRGlnZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIZCgxjb250ZW50X2hhc2gYAiABKAlIAIgBAUIPCg1fY29udGVudF9oYXNoIkgKGEVtYmVkZGluZ0RpZ2VzdHNSZXNwb25zZRIsCgdkaWdlc3RzGAEgAygLMhsucmVjb3Jkcy52MS5FbWJlZGRpbmdEaWdlc3QinwIKE0xvb2t1cFJlY29yZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEhAKCGtleV9oYXNoGAMgASgMEg8KB2NoYW5uZWwYBCABKAkSFwoKdmFyaWFudF9pZBgFIAEoCUgAiAEBEhMKBmxvY2FsZRgGIAEoCUgBiAEBEhgKC2N1c3RvbWVyX2lkGAcgASgJSAKIAQESNgoQY3VzdG9tZXJfY29udGV4dBgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlQg4KDF9jdXN0b21lcl9pZEITChFfY3VzdG9tZXJfY29udGV4dCI8ChRMb29rdXBSZWNvcmRSZXNwb25zZRIWCglyZWNvcmRfaWQYASABKAlIAIgBAUIMCgpfcmVjb3JkX2lkIukBCh5DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEhAKCGtleV9oYXNoGAMgASgMEg8KB2NoYW5uZWwYBCABKAkSFwoKdmFyaWFudF9pZBgFIAEoCUgAiAEBEhMKBmxvY2FsZRgGIAEoCUgBiAEBEh4KEWV4Y2x1ZGVfcmVjb3JkX2lkGAcgASgJSAKIAQFCDQoLX3ZhcmlhbnRfaWRCCQoHX2xvY2FsZUIUChJfZXhjbHVkZV9yZWNvcmRfaWQiNAofQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXNwb25zZRIRCglhdmFpbGFibGUYASABKAgilwEKFExvb2t1cENvbmZsaWN0RGV0YWlsEhEKCW1vZGVsX2tleRgBIAEoCRITCgtsb29rdXBfbmFtZRgCIAEoCRIPCgdjaGFubmVsGAMgASgJEhcKCnZhcmlhbnRfaWQYBCABKAlIAIgBARITCgZsb2NhbGUYBSABKAlIAYgBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlIuIBChpMaXN0TG9va3VwQ29uZmxpY3RzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSGAoLbG9va3VwX25hbWUYAiABKAlIAIgBARIPCgdjaGFubmVsGAMgASgJEhIKBWZpcnN0GAQgASgFSAGIAQESEgoFYWZ0ZXIYBSABKAlIAogBARIRCgRsYXN0GAYgASgFSAOIAQESEwoGYmVmb3JlGAcgASgJSASIAQFCDgoMX2xvb2t1cF9uYW1lQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZSKjAQobTGlzdExvb2t1cENvbmZsaWN0c1Jlc3BvbnNlEikKBmdyb3VwcxgBIAMoCzIZLnJlY29yZHMudjEuQ29uZmxpY3RHcm91cBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8imwEKDUNvbmZsaWN0R3JvdXASEwoLZW5jb2RlZF9rZXkYASABKAkSDwoHY2hhbm5lbBgCIAEoCRIXCgp2YXJpYW50X2lkGAMgASgJSACIAQESGAoLY3VzdG9tZXJfaWQYBCABKAlIAYgBARISCgpyZWNvcmRfaWRzGAUgAygJQg0KC192YXJpYW50X2lkQg4KDF9jdXN0b21lcl9pZCIvChpSZWJ1aWxkTW9kZWxMb29rdXBzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiNQobUmVidWlsZE1vZGVsTG9va3Vwc1Jlc3BvbnNlEhYKDnJlY29yZHNfd2Fsa2VkGAEgASgFInAKIkxpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1JlcXVlc3QSFgoJbW9kZWxfa2V5GAEgASgJSACIAQESFgoJcm93X2xpbWl0GAIgASgFSAGIAQFCDAoKX21vZGVsX2tleUIMCgpfcm93X2xpbWl0IlkKI0xpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1Jlc3BvbnNlEjIKB2VudHJpZXMYASADKAsyIS5yZWNvcmRzLnYxLlNsb3dRdWVyeUFkdmlzb3JFbnRyeSKRAQoVU2xvd1F1ZXJ5QWR2aXNvckVudHJ5EhEKCW1vZGVsX2tleRgBIAEoCRISCgpmaWVsZF9wYXRoGAIgASgJEhAKCG9wZXJhdG9yGAMgASgJEg0KBWNvdW50GAQgASgDEjAKDGxhc3Rfc2Vlbl9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiIAoeU2xvd1F1ZXJ5QWR2aXNvclN1bW1hcnlSZXF1ZXN0IlsKH1Nsb3dRdWVyeUFkdmlzb3JTdW1tYXJ5UmVzcG9uc2USOAoGbW9kZWxzGAEgAygLMigucmVjb3Jkcy52MS5TbG93UXVlcnlBZHZpc29yTW9kZWxTdW1tYXJ5IloKHFNsb3dRdWVyeUFkdmlzb3JNb2RlbFN1bW1hcnkSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2VudHJ5X2NvdW50GAIgASgFEhIKCnRvdGFsX2hpdHMYAyABKAMiXAohQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnlSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgpmaWVsZF9wYXRoGAIgASgJEhAKCG9wZXJhdG9yGAMgASgJIiQKIkNsZWFyU2xvd1F1ZXJ5QWR2aXNvckVudHJ5UmVzcG9uc2UqcwoKUmVjb3JkVHlwZRIbChdSRUNPUkRfVFlQRV9VTlNQRUNJRklFRBAAEhYKElJFQ09SRF9UWVBFX1JFQ09SRBABEhcKE1JFQ09SRF9UWVBFX1ZBUklBTlQQAhIXChNSRUNPUkRfVFlQRV9WRVJTSU9OEAMqnQEKEkJhdGNoT3BlcmF0aW9uVHlwZRIkCiBCQVRDSF9PUEVSQVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX0NSRUFURRABEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX1VQREFURRACEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX0RFTEVURRADMrklCg5SZWNvcmRzU2VydmljZRJRCgxDcmVhdGVSZWNvcmQSHy5yZWNvcmRzLnYxLkNyZWF0ZVJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLkNyZWF0ZVJlY29yZFJlc3BvbnNlEkgKCUdldFJlY29yZBIcLnJlY29yZHMudjEuR2V0UmVjb3JkUmVxdWVzdBodLnJlY29yZHMudjEuR2V0UmVjb3JkUmVzcG9uc2USVwoOR2V0UmVjb3JkQnlLZXkSIS5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5UmVxdWVzdBoiLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlSZXNwb25zZRJjChJHZXRSZWNvcmRCeUtleU9ySWQSJS5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5T3JJZFJlcXVlc3QaJi5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEk4KC0xpc3RSZWNvcmRzEh4ucmVjb3Jkcy52MS5MaXN0UmVjb3Jkc1JlcXVlc3QaHy5yZWNvcmRzLnYxLkxpc3RSZWNvcmRzUmVzcG9uc2USUQoMVXBkYXRlUmVjb3JkEh8ucmVjb3Jkcy52MS5VcGRhdGVSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5VcGRhdGVSZWNvcmRSZXNwb25zZRJRCgxVcHNlcnRSZWNvcmQSHy5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlc3BvbnNlElEKDERlbGV0ZVJlY29yZBIfLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVzcG9uc2USbAoVQmF0Y2hSZWNvcmRPcGVyYXRpb25zEigucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXF1ZXN0GikucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXNwb25zZRJgChFCdWxrVXBkYXRlUmVjb3JkcxIkLnJlY29yZHMudjEuQnVsa1VwZGF0ZVJlY29yZHNSZXF1ZXN0GiUucmVjb3Jkcy52MS5CdWxrVXBkYXRlUmVjb3Jkc1Jlc3BvbnNlEm8KFkJhY2tmaWxsUXVlcnlhYmxlSW5kZXgSKS5yZWNvcmRzLnYxLkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXF1ZXN0GioucmVjb3Jkcy52MS5CYWNrZmlsbFF1ZXJ5YWJsZUluZGV4UmVzcG9uc2USaQoUQmFja2ZpbGxNb2RlbEluZGV4ZXMSJy5yZWNvcmRzLnYxLkJhY2tmaWxsTW9kZWxJbmRleGVzUmVxdWVzdBooLnJlY29yZHMudjEuQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXNwb25zZRJ+ChtMaXN0U2xvd1F1ZXJ5QWR2aXNvckVudHJpZXMSLi5yZWNvcmRzLnYxLkxpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1JlcXVlc3QaLy5yZWNvcmRzLnYxLkxpc3RTbG93UXVlcnlBZHZpc29yRW50cmllc1Jlc3BvbnNlEnIKF1Nsb3dRdWVyeUFkdmlzb3JTdW1tYXJ5EioucmVjb3Jkcy52MS5TbG93UXVlcnlBZHZpc29yU3VtbWFyeVJlcXVlc3QaKy5yZWNvcmRzLnYxLlNsb3dRdWVyeUFkdmlzb3JTdW1tYXJ5UmVzcG9uc2USewoaQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnkSLS5yZWNvcmRzLnYxLkNsZWFyU2xvd1F1ZXJ5QWR2aXNvckVudHJ5UmVxdWVzdBouLnJlY29yZHMudjEuQ2xlYXJTbG93UXVlcnlBZHZpc29yRW50cnlSZXNwb25zZRJaCg9EdXBsaWNhdGVSZWNvcmQSIi5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZFJlcXVlc3QaIy5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZFJlc3BvbnNlEmkKFER1cGxpY2F0ZVJlY29yZHNCdWxrEicucmVjb3Jkcy52MS5EdXBsaWNhdGVSZWNvcmRzQnVsa1JlcXVlc3QaKC5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZHNCdWxrUmVzcG9uc2USVwoOUHVibGlzaFZlcnNpb24SIS5yZWNvcmRzLnYxLlB1Ymxpc2hWZXJzaW9uUmVxdWVzdBoiLnJlY29yZHMudjEuUHVibGlzaFZlcnNpb25SZXNwb25zZRJaCg9VbnB1Ymxpc2hSZWNvcmQSIi5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlcXVlc3QaIy5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlc3BvbnNlEloKD1JldmVydFRvVmVyc2lvbhIiLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVxdWVzdBojLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USYwoSTGlzdFJlY29yZFZlcnNpb25zEiUucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXF1ZXN0GiYucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRJUCg1DcmVhdGVWYXJpYW50EiAucmVjb3Jkcy52MS5DcmVhdGVWYXJpYW50UmVxdWVzdBohLnJlY29yZHMudjEuQ3JlYXRlVmFyaWFudFJlc3BvbnNlElQKDVVwZGF0ZVZhcmlhbnQSIC5yZWNvcmRzLnYxLlVwZGF0ZVZhcmlhbnRSZXF1ZXN0GiEucmVjb3Jkcy52MS5VcGRhdGVWYXJpYW50UmVzcG9uc2USVAoNRGVsZXRlVmFyaWFudBIgLnJlY29yZHMudjEuRGVsZXRlVmFyaWFudFJlcXVlc3QaIS5yZWNvcmRzLnYxLkRlbGV0ZVZhcmlhbnRSZXNwb25zZRJgChFTZXREZWZhdWx0VmFyaWFudBIkLnJlY29yZHMudjEuU2V0RGVmYXVsdFZhcmlhbnRSZXF1ZXN0GiUucmVjb3Jkcy52MS5TZXREZWZhdWx0VmFyaWFudFJlc3BvbnNlEmMKEkxpc3RSZWNvcmRWYXJpYW50cxIlLnJlY29yZHMudjEuTGlzdFJlY29yZFZhcmlhbnRzUmVxdWVzdBomLnJlY29yZHMudjEuTGlzdFJlY29yZFZhcmlhbnRzUmVzcG9uc2USbAoVU2NoZWR1bGVSZWNvcmRQdWJsaXNoEigucmVjb3Jkcy52MS5TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXF1ZXN0GikucmVjb3Jkcy52MS5TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXNwb25zZRKBAQocQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaBIvLnJlY29yZHMudjEuQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlcXVlc3QaMC5yZWNvcmRzLnYxLkNhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXNwb25zZRJvChZMaXN0U2NoZWR1bGVkUHVibGlzaGVzEikucmVjb3Jkcy52MS5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVxdWVzdBoqLnJlY29yZHMudjEuTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1Jlc3BvbnNlEmYKE0dldFNjaGVkdWxlZFB1Ymxpc2gSJi5yZWNvcmRzLnYxLkdldFNjaGVkdWxlZFB1Ymxpc2hSZXF1ZXN0GicucmVjb3Jkcy52MS5HZXRTY2hlZHVsZWRQdWJsaXNoUmVzcG9uc2USYAoRTGlzdERyYWZ0VmVyc2lvbnMSJC5yZWNvcmRzLnYxLkxpc3REcmFmdFZlcnNpb25zUmVxdWVzdBolLnJlY29yZHMudjEuTGlzdERyYWZ0VmVyc2lvbnNSZXNwb25zZRJpChRCYXRjaFB1Ymxpc2hWZXJzaW9ucxInLnJlY29yZHMudjEuQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXF1ZXN0GigucmVjb3Jkcy52MS5CYXRjaFB1Ymxpc2hWZXJzaW9uc1Jlc3BvbnNlEmYKE0JhdGNoUmVzb2x2ZVJlY29yZHMSJi5yZWNvcmRzLnYxLkJhdGNoUmVzb2x2ZVJlY29yZHNSZXF1ZXN0GicucmVjb3Jkcy52MS5CYXRjaFJlc29sdmVSZWNvcmRzUmVzcG9uc2USYwoSTG9va3VwUmVjb3JkTW9kZWxzEiUucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXNwb25zZRJRCgxHbG9iYWxTZWFyY2gSHy5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlcXVlc3QaIC5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlc3BvbnNlElEKDExvb2t1cFJlY29yZBIfLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVzcG9uc2UScgoXQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHkSKi5yZWNvcmRzLnYxLkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVxdWVzdBorLnJlY29yZHMudjEuQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXNwb25zZRJmChNMaXN0TG9va3VwQ29uZmxpY3RzEiYucmVjb3Jkcy52MS5MaXN0TG9va3VwQ29uZmxpY3RzUmVxdWVzdBonLnJlY29yZHMudjEuTGlzdExvb2t1cENvbmZsaWN0c1Jlc3BvbnNlEmYKE1JlYnVpbGRNb2RlbExvb2t1cHMSJi5yZWNvcmRzLnYxLlJlYnVpbGRNb2RlbExvb2t1cHNSZXF1ZXN0GicucmVjb3Jkcy52MS5SZWJ1aWxkTW9kZWxMb29rdXBzUmVzcG9uc2USYAoRR2V0RW1iZWRkaW5nU3RhdHMSJC5yZWNvcmRzLnYxLkdldEVtYmVkZGluZ1N0YXRzUmVxdWVzdBolLnJlY29yZHMudjEuR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRJmChNHZXRSZWNvcmRFbWJlZGRpbmdzEiYucmVjb3Jkcy52MS5HZXRSZWNvcmRFbWJlZGRpbmdzUmVxdWVzdBonLnJlY29yZHMudjEuR2V0UmVjb3JkRW1iZWRkaW5nc1Jlc3BvbnNlEmMKEkZpbmRTaW1pbGFyUmVjb3JkcxIlLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVxdWVzdBomLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVzcG9uc2USWgoPV3JpdGVFbWJlZGRpbmdzEiIucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXF1ZXN0GiMucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXNwb25zZRJdChBEZWxldGVFbWJlZGRpbmdzEiMucmVjb3Jkcy52MS5EZWxldGVFbWJlZGRpbmdzUmVxdWVzdBokLnJlY29yZHMudjEuRGVsZXRlRW1iZWRkaW5nc1Jlc3BvbnNlEl0KEFNlYXJjaEVtYmVkZGluZ3MSIy5yZWNvcmRzLnYxLlNlYXJjaEVtYmVkZGluZ3NSZXF1ZXN0GiQucmVjb3Jkcy52MS5TZWFyY2hFbWJlZGRpbmdzUmVzcG9uc2UScgoXUmVjb3Jkc01pc3NpbmdFbWJlZGRpbmcSKi5yZWNvcmRzLnYxLlJlY29yZHNNaXNzaW5nRW1iZWRkaW5nUmVxdWVzdBorLnJlY29yZHMudjEuUmVjb3Jkc01pc3NpbmdFbWJlZGRpbmdSZXNwb25zZRJdChBFbWJlZGRpbmdEaWdlc3RzEiMucmVjb3Jkcy52MS5FbWJlZGRpbmdEaWdlc3RzUmVxdWVzdBokLnJlY29yZHMudjEuRW1iZWRkaW5nRGlnZXN0c1Jlc3BvbnNlEnUKGEVucXVldWVHZW5lcmF0ZUVtYmVkZGluZxIrLnJlY29yZHMudjEuRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nUmVxdWVzdBosLnJlY29yZHMudjEuRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nUmVzcG9uc2VCO1o5Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL3JlY29yZHMvdjE7cmVjb3Jkc3YxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_common_v1_pagination, file_expressions_v1_expressions]);
15
15
 
16
16
  /**
17
17
  * Describes the message records.v1.Record.
@@ -636,131 +636,173 @@ export const SearchEmbeddingsRequestSchema = /*@__PURE__*/
636
636
  export const SearchEmbeddingsResponseSchema = /*@__PURE__*/
637
637
  messageDesc(file_records_v1_records, 88);
638
638
 
639
+ /**
640
+ * Describes the message records.v1.RecordsMissingEmbeddingRequest.
641
+ * Use `create(RecordsMissingEmbeddingRequestSchema)` to create a new message.
642
+ */
643
+ export const RecordsMissingEmbeddingRequestSchema = /*@__PURE__*/
644
+ messageDesc(file_records_v1_records, 89);
645
+
646
+ /**
647
+ * Describes the message records.v1.MissingEmbeddingRecord.
648
+ * Use `create(MissingEmbeddingRecordSchema)` to create a new message.
649
+ */
650
+ export const MissingEmbeddingRecordSchema = /*@__PURE__*/
651
+ messageDesc(file_records_v1_records, 90);
652
+
653
+ /**
654
+ * Describes the message records.v1.RecordsMissingEmbeddingResponse.
655
+ * Use `create(RecordsMissingEmbeddingResponseSchema)` to create a new message.
656
+ */
657
+ export const RecordsMissingEmbeddingResponseSchema = /*@__PURE__*/
658
+ messageDesc(file_records_v1_records, 91);
659
+
660
+ /**
661
+ * Describes the message records.v1.EmbeddingDigestsRequest.
662
+ * Use `create(EmbeddingDigestsRequestSchema)` to create a new message.
663
+ */
664
+ export const EmbeddingDigestsRequestSchema = /*@__PURE__*/
665
+ messageDesc(file_records_v1_records, 92);
666
+
667
+ /**
668
+ * Describes the message records.v1.EmbeddingDigest.
669
+ * Use `create(EmbeddingDigestSchema)` to create a new message.
670
+ */
671
+ export const EmbeddingDigestSchema = /*@__PURE__*/
672
+ messageDesc(file_records_v1_records, 93);
673
+
674
+ /**
675
+ * Describes the message records.v1.EmbeddingDigestsResponse.
676
+ * Use `create(EmbeddingDigestsResponseSchema)` to create a new message.
677
+ */
678
+ export const EmbeddingDigestsResponseSchema = /*@__PURE__*/
679
+ messageDesc(file_records_v1_records, 94);
680
+
639
681
  /**
640
682
  * Describes the message records.v1.LookupRecordRequest.
641
683
  * Use `create(LookupRecordRequestSchema)` to create a new message.
642
684
  */
643
685
  export const LookupRecordRequestSchema = /*@__PURE__*/
644
- messageDesc(file_records_v1_records, 89);
686
+ messageDesc(file_records_v1_records, 95);
645
687
 
646
688
  /**
647
689
  * Describes the message records.v1.LookupRecordResponse.
648
690
  * Use `create(LookupRecordResponseSchema)` to create a new message.
649
691
  */
650
692
  export const LookupRecordResponseSchema = /*@__PURE__*/
651
- messageDesc(file_records_v1_records, 90);
693
+ messageDesc(file_records_v1_records, 96);
652
694
 
653
695
  /**
654
696
  * Describes the message records.v1.CheckLookupAvailabilityRequest.
655
697
  * Use `create(CheckLookupAvailabilityRequestSchema)` to create a new message.
656
698
  */
657
699
  export const CheckLookupAvailabilityRequestSchema = /*@__PURE__*/
658
- messageDesc(file_records_v1_records, 91);
700
+ messageDesc(file_records_v1_records, 97);
659
701
 
660
702
  /**
661
703
  * Describes the message records.v1.CheckLookupAvailabilityResponse.
662
704
  * Use `create(CheckLookupAvailabilityResponseSchema)` to create a new message.
663
705
  */
664
706
  export const CheckLookupAvailabilityResponseSchema = /*@__PURE__*/
665
- messageDesc(file_records_v1_records, 92);
707
+ messageDesc(file_records_v1_records, 98);
666
708
 
667
709
  /**
668
710
  * Describes the message records.v1.LookupConflictDetail.
669
711
  * Use `create(LookupConflictDetailSchema)` to create a new message.
670
712
  */
671
713
  export const LookupConflictDetailSchema = /*@__PURE__*/
672
- messageDesc(file_records_v1_records, 93);
714
+ messageDesc(file_records_v1_records, 99);
673
715
 
674
716
  /**
675
717
  * Describes the message records.v1.ListLookupConflictsRequest.
676
718
  * Use `create(ListLookupConflictsRequestSchema)` to create a new message.
677
719
  */
678
720
  export const ListLookupConflictsRequestSchema = /*@__PURE__*/
679
- messageDesc(file_records_v1_records, 94);
721
+ messageDesc(file_records_v1_records, 100);
680
722
 
681
723
  /**
682
724
  * Describes the message records.v1.ListLookupConflictsResponse.
683
725
  * Use `create(ListLookupConflictsResponseSchema)` to create a new message.
684
726
  */
685
727
  export const ListLookupConflictsResponseSchema = /*@__PURE__*/
686
- messageDesc(file_records_v1_records, 95);
728
+ messageDesc(file_records_v1_records, 101);
687
729
 
688
730
  /**
689
731
  * Describes the message records.v1.ConflictGroup.
690
732
  * Use `create(ConflictGroupSchema)` to create a new message.
691
733
  */
692
734
  export const ConflictGroupSchema = /*@__PURE__*/
693
- messageDesc(file_records_v1_records, 96);
735
+ messageDesc(file_records_v1_records, 102);
694
736
 
695
737
  /**
696
738
  * Describes the message records.v1.RebuildModelLookupsRequest.
697
739
  * Use `create(RebuildModelLookupsRequestSchema)` to create a new message.
698
740
  */
699
741
  export const RebuildModelLookupsRequestSchema = /*@__PURE__*/
700
- messageDesc(file_records_v1_records, 97);
742
+ messageDesc(file_records_v1_records, 103);
701
743
 
702
744
  /**
703
745
  * Describes the message records.v1.RebuildModelLookupsResponse.
704
746
  * Use `create(RebuildModelLookupsResponseSchema)` to create a new message.
705
747
  */
706
748
  export const RebuildModelLookupsResponseSchema = /*@__PURE__*/
707
- messageDesc(file_records_v1_records, 98);
749
+ messageDesc(file_records_v1_records, 104);
708
750
 
709
751
  /**
710
752
  * Describes the message records.v1.ListSlowQueryAdvisorEntriesRequest.
711
753
  * Use `create(ListSlowQueryAdvisorEntriesRequestSchema)` to create a new message.
712
754
  */
713
755
  export const ListSlowQueryAdvisorEntriesRequestSchema = /*@__PURE__*/
714
- messageDesc(file_records_v1_records, 99);
756
+ messageDesc(file_records_v1_records, 105);
715
757
 
716
758
  /**
717
759
  * Describes the message records.v1.ListSlowQueryAdvisorEntriesResponse.
718
760
  * Use `create(ListSlowQueryAdvisorEntriesResponseSchema)` to create a new message.
719
761
  */
720
762
  export const ListSlowQueryAdvisorEntriesResponseSchema = /*@__PURE__*/
721
- messageDesc(file_records_v1_records, 100);
763
+ messageDesc(file_records_v1_records, 106);
722
764
 
723
765
  /**
724
766
  * Describes the message records.v1.SlowQueryAdvisorEntry.
725
767
  * Use `create(SlowQueryAdvisorEntrySchema)` to create a new message.
726
768
  */
727
769
  export const SlowQueryAdvisorEntrySchema = /*@__PURE__*/
728
- messageDesc(file_records_v1_records, 101);
770
+ messageDesc(file_records_v1_records, 107);
729
771
 
730
772
  /**
731
773
  * Describes the message records.v1.SlowQueryAdvisorSummaryRequest.
732
774
  * Use `create(SlowQueryAdvisorSummaryRequestSchema)` to create a new message.
733
775
  */
734
776
  export const SlowQueryAdvisorSummaryRequestSchema = /*@__PURE__*/
735
- messageDesc(file_records_v1_records, 102);
777
+ messageDesc(file_records_v1_records, 108);
736
778
 
737
779
  /**
738
780
  * Describes the message records.v1.SlowQueryAdvisorSummaryResponse.
739
781
  * Use `create(SlowQueryAdvisorSummaryResponseSchema)` to create a new message.
740
782
  */
741
783
  export const SlowQueryAdvisorSummaryResponseSchema = /*@__PURE__*/
742
- messageDesc(file_records_v1_records, 103);
784
+ messageDesc(file_records_v1_records, 109);
743
785
 
744
786
  /**
745
787
  * Describes the message records.v1.SlowQueryAdvisorModelSummary.
746
788
  * Use `create(SlowQueryAdvisorModelSummarySchema)` to create a new message.
747
789
  */
748
790
  export const SlowQueryAdvisorModelSummarySchema = /*@__PURE__*/
749
- messageDesc(file_records_v1_records, 104);
791
+ messageDesc(file_records_v1_records, 110);
750
792
 
751
793
  /**
752
794
  * Describes the message records.v1.ClearSlowQueryAdvisorEntryRequest.
753
795
  * Use `create(ClearSlowQueryAdvisorEntryRequestSchema)` to create a new message.
754
796
  */
755
797
  export const ClearSlowQueryAdvisorEntryRequestSchema = /*@__PURE__*/
756
- messageDesc(file_records_v1_records, 105);
798
+ messageDesc(file_records_v1_records, 111);
757
799
 
758
800
  /**
759
801
  * Describes the message records.v1.ClearSlowQueryAdvisorEntryResponse.
760
802
  * Use `create(ClearSlowQueryAdvisorEntryResponseSchema)` to create a new message.
761
803
  */
762
804
  export const ClearSlowQueryAdvisorEntryResponseSchema = /*@__PURE__*/
763
- messageDesc(file_records_v1_records, 106);
805
+ messageDesc(file_records_v1_records, 112);
764
806
 
765
807
  /**
766
808
  * Describes the enum records.v1.RecordType.
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { AcceptShareRequest, AcceptShareResponse, BulkSetSettingsRequest, BulkSetSettingsResponse, CancelScheduledContextDimensionPublishRequest, CancelScheduledContextDimensionPublishResponse, CancelScheduledDesignTokensPublishRequest, CancelScheduledDesignTokensPublishResponse, CancelScheduledProfileSchemaPublishRequest, CancelScheduledProfileSchemaPublishResponse, ClearRecentlyOpenedRequest, ClearRecentlyOpenedResponse, CountDesignTokenReferencesRequest, CountDesignTokenReferencesResponse, CreateContextDimensionRequest, CreateContextDimensionResponse, CreateCustomerProfileRequest, CreateCustomerProfileResponse, CreateLocaleRequest, CreateLocaleResponse, CreateNoteRequest, CreateNoteResponse, CreateShareRequest, CreateShareResponse, CreateVariantCatalogEntryRequest, CreateVariantCatalogEntryResponse, DeclineShareRequest, DeclineShareResponse, DeleteContextDimensionRequest, DeleteContextDimensionResponse, DeleteCustomerProfileRequest, DeleteCustomerProfileResponse, DeleteLocaleRequest, DeleteLocaleResponse, DeleteNoteRequest, DeleteNoteResponse, DeleteSettingRequest, DeleteSettingResponse, DeleteSettingsByCategoryRequest, DeleteSettingsByCategoryResponse, DeleteVariantCatalogEntryRequest, DeleteVariantCatalogEntryResponse, EnsureDefaultVariantCatalogEntryRequest, EnsureDefaultVariantCatalogEntryResponse, GetContextDimensionByKeyRequest, GetContextDimensionByKeyResponse, GetContextDimensionPublishStatusRequest, GetContextDimensionPublishStatusResponse, GetContextDimensionRequest, GetContextDimensionResponse, GetContextDimensionValuesRequest, GetContextDimensionValuesResponse, GetContextDimensionVersionRequest, GetContextDimensionVersionResponse, GetCustomerProfileRequest, GetCustomerProfileResponse, GetCustomerProfileSchemaRequest, GetCustomerProfileSchemaResponse, GetCustomerResolutionAttributesRequest, GetCustomerResolutionAttributesResponse, GetDefaultLocaleRequest, GetDefaultLocaleResponse, GetDefaultVariantCatalogEntryRequest, GetDefaultVariantCatalogEntryResponse, GetDesignTokensPublishStatusRequest, GetDesignTokensPublishStatusResponse, GetDesignTokensRequest, GetDesignTokensResponse, GetDesignTokenVersionRequest, GetDesignTokenVersionResponse, GetEditorConfigsRequest, GetEditorConfigsResponse, GetLocaleByCodeRequest, GetLocaleByCodeResponse, GetLocaleRequest, GetLocaleResponse, GetNavPreferencesRequest, GetNavPreferencesResponse, GetNoteRequest, GetNoteResponse, GetProfileSchemaPublishStatusRequest, GetProfileSchemaPublishStatusResponse, GetProfileSchemaVersionRequest, GetProfileSchemaVersionResponse, GetProjectPublishStatusRequest, GetProjectPublishStatusResponse, GetProjectSchemaRequest, GetProjectSchemaResponse, GetSettingsRequest, GetSettingsResponse, GetShareRequest, GetShareResponse, GetVariantCatalogEntryRequest, GetVariantCatalogEntryResponse, ListAuditLogsRequest, ListAuditLogsResponse, ListContextDimensionsRequest, ListContextDimensionsResponse, ListContextDimensionVersionsRequest, ListContextDimensionVersionsResponse, ListDesignTokenVersionsRequest, ListDesignTokenVersionsResponse, ListLocalesRequest, ListLocalesResponse, ListMyMentionsRequest, ListMyMentionsResponse, ListNotesRequest, ListNotesResponse, ListProfileSchemaVersionsRequest, ListProfileSchemaVersionsResponse, ListRecentlyOpenedRequest, ListRecentlyOpenedResponse, ListSharesRequest, ListSharesResponse, ListVariantCatalogRequest, ListVariantCatalogResponse, MarkMentionsSeenRequest, MarkMentionsSeenResponse, PublishContextDimensionRequest, PublishContextDimensionResponse, PublishDesignTokensRequest, PublishDesignTokensResponse, PublishProfileSchemaRequest, PublishProfileSchemaResponse, PublishProjectSchemaRequest, PublishProjectSchemaResponse, RemoveRecentlyOpenedRequest, RemoveRecentlyOpenedResponse, ResolveNoteRequest, ResolveNoteResponse, RestoreContextDimensionVersionRequest, RestoreContextDimensionVersionResponse, RestoreDesignTokenVersionRequest, RestoreDesignTokenVersionResponse, RestoreProfileSchemaVersionRequest, RestoreProfileSchemaVersionResponse, RevokeShareRequest, RevokeShareResponse, ScheduleContextDimensionPublishRequest, ScheduleContextDimensionPublishResponse, ScheduleDesignTokensPublishRequest, ScheduleDesignTokensPublishResponse, ScheduleProfileSchemaPublishRequest, ScheduleProfileSchemaPublishResponse, SearchCustomerProfilesRequest, SearchCustomerProfilesResponse, SearchNotesRequest, SearchNotesResponse, TrackRecentlyOpenedRequest, TrackRecentlyOpenedResponse, UnpublishContextDimensionRequest, UnpublishContextDimensionResponse, UnpublishDesignTokensRequest, UnpublishDesignTokensResponse, UnpublishProfileSchemaRequest, UnpublishProfileSchemaResponse, UnresolveNoteRequest, UnresolveNoteResponse, UpdateContextDimensionRequest, UpdateContextDimensionResponse, UpdateCustomerProfileRequest, UpdateCustomerProfileResponse, UpdateCustomerProfileSchemaRequest, UpdateCustomerProfileSchemaResponse, UpdateDesignTokensRequest, UpdateDesignTokensResponse, UpdateLocaleRequest, UpdateLocaleResponse, UpdateMentionStatusRequest, UpdateMentionStatusResponse, UpdateNavPreferencesRequest, UpdateNavPreferencesResponse, UpdateNoteRequest, UpdateNoteResponse, UpdateSettingRequest, UpdateSettingResponse, UpdateShareRequest, UpdateShareResponse, UpdateVariantCatalogEntryRequest, UpdateVariantCatalogEntryResponse } from "./settings_pbjs";
6
+ import { AcceptShareRequest, AcceptShareResponse, BulkSetSettingsRequest, BulkSetSettingsResponse, CancelScheduledContextDimensionPublishRequest, CancelScheduledContextDimensionPublishResponse, CancelScheduledDesignTokensPublishRequest, CancelScheduledDesignTokensPublishResponse, CancelScheduledProfileSchemaPublishRequest, CancelScheduledProfileSchemaPublishResponse, ClearRecentlyOpenedRequest, ClearRecentlyOpenedResponse, CountDesignTokenReferencesRequest, CountDesignTokenReferencesResponse, CreateContextDimensionRequest, CreateContextDimensionResponse, CreateCustomerProfileRequest, CreateCustomerProfileResponse, CreateLocaleRequest, CreateLocaleResponse, CreateNoteRequest, CreateNoteResponse, CreateShareRequest, CreateShareResponse, CreateVariantCatalogEntryRequest, CreateVariantCatalogEntryResponse, DeclineShareRequest, DeclineShareResponse, DeleteContextDimensionRequest, DeleteContextDimensionResponse, DeleteCustomerProfileRequest, DeleteCustomerProfileResponse, DeleteLocaleRequest, DeleteLocaleResponse, DeleteNoteRequest, DeleteNoteResponse, DeleteSettingRequest, DeleteSettingResponse, DeleteSettingsByCategoryRequest, DeleteSettingsByCategoryResponse, DeleteVariantCatalogEntryRequest, DeleteVariantCatalogEntryResponse, EnsureDefaultVariantCatalogEntryRequest, EnsureDefaultVariantCatalogEntryResponse, GetContextDimensionByKeyRequest, GetContextDimensionByKeyResponse, GetContextDimensionPublishStatusRequest, GetContextDimensionPublishStatusResponse, GetContextDimensionRequest, GetContextDimensionResponse, GetContextDimensionValuesRequest, GetContextDimensionValuesResponse, GetContextDimensionVersionRequest, GetContextDimensionVersionResponse, GetCustomerProfileRequest, GetCustomerProfileResponse, GetCustomerProfileSchemaRequest, GetCustomerProfileSchemaResponse, GetCustomerResolutionAttributesRequest, GetCustomerResolutionAttributesResponse, GetDefaultLocaleRequest, GetDefaultLocaleResponse, GetDefaultVariantCatalogEntryRequest, GetDefaultVariantCatalogEntryResponse, GetDesignTokensPublishStatusRequest, GetDesignTokensPublishStatusResponse, GetDesignTokensRequest, GetDesignTokensResponse, GetDesignTokenVersionRequest, GetDesignTokenVersionResponse, GetEditorConfigsRequest, GetEditorConfigsResponse, GetLocaleByCodeRequest, GetLocaleByCodeResponse, GetLocaleRequest, GetLocaleResponse, GetNavPreferencesRequest, GetNavPreferencesResponse, GetNoteRequest, GetNoteResponse, GetProfileSchemaPublishStatusRequest, GetProfileSchemaPublishStatusResponse, GetProfileSchemaVersionRequest, GetProfileSchemaVersionResponse, GetProjectPublishStatusRequest, GetProjectPublishStatusResponse, GetProjectSchemaRequest, GetProjectSchemaResponse, GetSettingsRequest, GetSettingsResponse, GetShareRequest, GetShareResponse, GetVariantCatalogEntryRequest, GetVariantCatalogEntryResponse, ListAuditLogsRequest, ListAuditLogsResponse, ListContextDimensionsRequest, ListContextDimensionsResponse, ListContextDimensionVersionsRequest, ListContextDimensionVersionsResponse, ListDesignTokenVersionsRequest, ListDesignTokenVersionsResponse, ListLocalesRequest, ListLocalesResponse, ListMyMentionsRequest, ListMyMentionsResponse, ListNotesRequest, ListNotesResponse, ListProfileSchemaVersionsRequest, ListProfileSchemaVersionsResponse, ListRecentlyOpenedRequest, ListRecentlyOpenedResponse, ListSharesRequest, ListSharesResponse, ListVariantCatalogRequest, ListVariantCatalogResponse, LookupCustomerProfileRequest, LookupCustomerProfileResponse, MarkMentionsSeenRequest, MarkMentionsSeenResponse, PublishContextDimensionRequest, PublishContextDimensionResponse, PublishDesignTokensRequest, PublishDesignTokensResponse, PublishProfileSchemaRequest, PublishProfileSchemaResponse, PublishProjectSchemaRequest, PublishProjectSchemaResponse, RemoveRecentlyOpenedRequest, RemoveRecentlyOpenedResponse, ResolveNoteRequest, ResolveNoteResponse, RestoreContextDimensionVersionRequest, RestoreContextDimensionVersionResponse, RestoreDesignTokenVersionRequest, RestoreDesignTokenVersionResponse, RestoreProfileSchemaVersionRequest, RestoreProfileSchemaVersionResponse, RevokeShareRequest, RevokeShareResponse, ScheduleContextDimensionPublishRequest, ScheduleContextDimensionPublishResponse, ScheduleDesignTokensPublishRequest, ScheduleDesignTokensPublishResponse, ScheduleProfileSchemaPublishRequest, ScheduleProfileSchemaPublishResponse, SearchCustomerProfilesRequest, SearchCustomerProfilesResponse, SearchNotesRequest, SearchNotesResponse, TrackRecentlyOpenedRequest, TrackRecentlyOpenedResponse, UnpublishContextDimensionRequest, UnpublishContextDimensionResponse, UnpublishDesignTokensRequest, UnpublishDesignTokensResponse, UnpublishProfileSchemaRequest, UnpublishProfileSchemaResponse, UnresolveNoteRequest, UnresolveNoteResponse, UpdateContextDimensionRequest, UpdateContextDimensionResponse, UpdateCustomerProfileRequest, UpdateCustomerProfileResponse, UpdateCustomerProfileSchemaRequest, UpdateCustomerProfileSchemaResponse, UpdateDesignTokensRequest, UpdateDesignTokensResponse, UpdateLocaleRequest, UpdateLocaleResponse, UpdateMentionStatusRequest, UpdateMentionStatusResponse, UpdateNavPreferencesRequest, UpdateNavPreferencesResponse, UpdateNoteRequest, UpdateNoteResponse, UpdateSettingRequest, UpdateSettingResponse, UpdateShareRequest, UpdateShareResponse, UpdateVariantCatalogEntryRequest, UpdateVariantCatalogEntryResponse } from "./settings_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -484,6 +484,15 @@ export declare const SettingsService: {
484
484
  readonly O: typeof SearchCustomerProfilesResponse,
485
485
  readonly kind: MethodKind.Unary,
486
486
  },
487
+ /**
488
+ * @generated from rpc settings.v1.SettingsService.LookupCustomerProfile
489
+ */
490
+ readonly lookupCustomerProfile: {
491
+ readonly name: "LookupCustomerProfile",
492
+ readonly I: typeof LookupCustomerProfileRequest,
493
+ readonly O: typeof LookupCustomerProfileResponse,
494
+ readonly kind: MethodKind.Unary,
495
+ },
487
496
  /**
488
497
  * @generated from rpc settings.v1.SettingsService.DeleteCustomerProfile
489
498
  */
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { AcceptShareRequest, AcceptShareResponse, BulkSetSettingsRequest, BulkSetSettingsResponse, CancelScheduledContextDimensionPublishRequest, CancelScheduledContextDimensionPublishResponse, CancelScheduledDesignTokensPublishRequest, CancelScheduledDesignTokensPublishResponse, CancelScheduledProfileSchemaPublishRequest, CancelScheduledProfileSchemaPublishResponse, ClearRecentlyOpenedRequest, ClearRecentlyOpenedResponse, CountDesignTokenReferencesRequest, CountDesignTokenReferencesResponse, CreateContextDimensionRequest, CreateContextDimensionResponse, CreateCustomerProfileRequest, CreateCustomerProfileResponse, CreateLocaleRequest, CreateLocaleResponse, CreateNoteRequest, CreateNoteResponse, CreateShareRequest, CreateShareResponse, CreateVariantCatalogEntryRequest, CreateVariantCatalogEntryResponse, DeclineShareRequest, DeclineShareResponse, DeleteContextDimensionRequest, DeleteContextDimensionResponse, DeleteCustomerProfileRequest, DeleteCustomerProfileResponse, DeleteLocaleRequest, DeleteLocaleResponse, DeleteNoteRequest, DeleteNoteResponse, DeleteSettingRequest, DeleteSettingResponse, DeleteSettingsByCategoryRequest, DeleteSettingsByCategoryResponse, DeleteVariantCatalogEntryRequest, DeleteVariantCatalogEntryResponse, EnsureDefaultVariantCatalogEntryRequest, EnsureDefaultVariantCatalogEntryResponse, GetContextDimensionByKeyRequest, GetContextDimensionByKeyResponse, GetContextDimensionPublishStatusRequest, GetContextDimensionPublishStatusResponse, GetContextDimensionRequest, GetContextDimensionResponse, GetContextDimensionValuesRequest, GetContextDimensionValuesResponse, GetContextDimensionVersionRequest, GetContextDimensionVersionResponse, GetCustomerProfileRequest, GetCustomerProfileResponse, GetCustomerProfileSchemaRequest, GetCustomerProfileSchemaResponse, GetCustomerResolutionAttributesRequest, GetCustomerResolutionAttributesResponse, GetDefaultLocaleRequest, GetDefaultLocaleResponse, GetDefaultVariantCatalogEntryRequest, GetDefaultVariantCatalogEntryResponse, GetDesignTokensPublishStatusRequest, GetDesignTokensPublishStatusResponse, GetDesignTokensRequest, GetDesignTokensResponse, GetDesignTokenVersionRequest, GetDesignTokenVersionResponse, GetEditorConfigsRequest, GetEditorConfigsResponse, GetLocaleByCodeRequest, GetLocaleByCodeResponse, GetLocaleRequest, GetLocaleResponse, GetNavPreferencesRequest, GetNavPreferencesResponse, GetNoteRequest, GetNoteResponse, GetProfileSchemaPublishStatusRequest, GetProfileSchemaPublishStatusResponse, GetProfileSchemaVersionRequest, GetProfileSchemaVersionResponse, GetProjectPublishStatusRequest, GetProjectPublishStatusResponse, GetProjectSchemaRequest, GetProjectSchemaResponse, GetSettingsRequest, GetSettingsResponse, GetShareRequest, GetShareResponse, GetVariantCatalogEntryRequest, GetVariantCatalogEntryResponse, ListAuditLogsRequest, ListAuditLogsResponse, ListContextDimensionsRequest, ListContextDimensionsResponse, ListContextDimensionVersionsRequest, ListContextDimensionVersionsResponse, ListDesignTokenVersionsRequest, ListDesignTokenVersionsResponse, ListLocalesRequest, ListLocalesResponse, ListMyMentionsRequest, ListMyMentionsResponse, ListNotesRequest, ListNotesResponse, ListProfileSchemaVersionsRequest, ListProfileSchemaVersionsResponse, ListRecentlyOpenedRequest, ListRecentlyOpenedResponse, ListSharesRequest, ListSharesResponse, ListVariantCatalogRequest, ListVariantCatalogResponse, MarkMentionsSeenRequest, MarkMentionsSeenResponse, PublishContextDimensionRequest, PublishContextDimensionResponse, PublishDesignTokensRequest, PublishDesignTokensResponse, PublishProfileSchemaRequest, PublishProfileSchemaResponse, PublishProjectSchemaRequest, PublishProjectSchemaResponse, RemoveRecentlyOpenedRequest, RemoveRecentlyOpenedResponse, ResolveNoteRequest, ResolveNoteResponse, RestoreContextDimensionVersionRequest, RestoreContextDimensionVersionResponse, RestoreDesignTokenVersionRequest, RestoreDesignTokenVersionResponse, RestoreProfileSchemaVersionRequest, RestoreProfileSchemaVersionResponse, RevokeShareRequest, RevokeShareResponse, ScheduleContextDimensionPublishRequest, ScheduleContextDimensionPublishResponse, ScheduleDesignTokensPublishRequest, ScheduleDesignTokensPublishResponse, ScheduleProfileSchemaPublishRequest, ScheduleProfileSchemaPublishResponse, SearchCustomerProfilesRequest, SearchCustomerProfilesResponse, SearchNotesRequest, SearchNotesResponse, TrackRecentlyOpenedRequest, TrackRecentlyOpenedResponse, UnpublishContextDimensionRequest, UnpublishContextDimensionResponse, UnpublishDesignTokensRequest, UnpublishDesignTokensResponse, UnpublishProfileSchemaRequest, UnpublishProfileSchemaResponse, UnresolveNoteRequest, UnresolveNoteResponse, UpdateContextDimensionRequest, UpdateContextDimensionResponse, UpdateCustomerProfileRequest, UpdateCustomerProfileResponse, UpdateCustomerProfileSchemaRequest, UpdateCustomerProfileSchemaResponse, UpdateDesignTokensRequest, UpdateDesignTokensResponse, UpdateLocaleRequest, UpdateLocaleResponse, UpdateMentionStatusRequest, UpdateMentionStatusResponse, UpdateNavPreferencesRequest, UpdateNavPreferencesResponse, UpdateNoteRequest, UpdateNoteResponse, UpdateSettingRequest, UpdateSettingResponse, UpdateShareRequest, UpdateShareResponse, UpdateVariantCatalogEntryRequest, UpdateVariantCatalogEntryResponse } from "./settings_pbjs";
6
+ import { AcceptShareRequest, AcceptShareResponse, BulkSetSettingsRequest, BulkSetSettingsResponse, CancelScheduledContextDimensionPublishRequest, CancelScheduledContextDimensionPublishResponse, CancelScheduledDesignTokensPublishRequest, CancelScheduledDesignTokensPublishResponse, CancelScheduledProfileSchemaPublishRequest, CancelScheduledProfileSchemaPublishResponse, ClearRecentlyOpenedRequest, ClearRecentlyOpenedResponse, CountDesignTokenReferencesRequest, CountDesignTokenReferencesResponse, CreateContextDimensionRequest, CreateContextDimensionResponse, CreateCustomerProfileRequest, CreateCustomerProfileResponse, CreateLocaleRequest, CreateLocaleResponse, CreateNoteRequest, CreateNoteResponse, CreateShareRequest, CreateShareResponse, CreateVariantCatalogEntryRequest, CreateVariantCatalogEntryResponse, DeclineShareRequest, DeclineShareResponse, DeleteContextDimensionRequest, DeleteContextDimensionResponse, DeleteCustomerProfileRequest, DeleteCustomerProfileResponse, DeleteLocaleRequest, DeleteLocaleResponse, DeleteNoteRequest, DeleteNoteResponse, DeleteSettingRequest, DeleteSettingResponse, DeleteSettingsByCategoryRequest, DeleteSettingsByCategoryResponse, DeleteVariantCatalogEntryRequest, DeleteVariantCatalogEntryResponse, EnsureDefaultVariantCatalogEntryRequest, EnsureDefaultVariantCatalogEntryResponse, GetContextDimensionByKeyRequest, GetContextDimensionByKeyResponse, GetContextDimensionPublishStatusRequest, GetContextDimensionPublishStatusResponse, GetContextDimensionRequest, GetContextDimensionResponse, GetContextDimensionValuesRequest, GetContextDimensionValuesResponse, GetContextDimensionVersionRequest, GetContextDimensionVersionResponse, GetCustomerProfileRequest, GetCustomerProfileResponse, GetCustomerProfileSchemaRequest, GetCustomerProfileSchemaResponse, GetCustomerResolutionAttributesRequest, GetCustomerResolutionAttributesResponse, GetDefaultLocaleRequest, GetDefaultLocaleResponse, GetDefaultVariantCatalogEntryRequest, GetDefaultVariantCatalogEntryResponse, GetDesignTokensPublishStatusRequest, GetDesignTokensPublishStatusResponse, GetDesignTokensRequest, GetDesignTokensResponse, GetDesignTokenVersionRequest, GetDesignTokenVersionResponse, GetEditorConfigsRequest, GetEditorConfigsResponse, GetLocaleByCodeRequest, GetLocaleByCodeResponse, GetLocaleRequest, GetLocaleResponse, GetNavPreferencesRequest, GetNavPreferencesResponse, GetNoteRequest, GetNoteResponse, GetProfileSchemaPublishStatusRequest, GetProfileSchemaPublishStatusResponse, GetProfileSchemaVersionRequest, GetProfileSchemaVersionResponse, GetProjectPublishStatusRequest, GetProjectPublishStatusResponse, GetProjectSchemaRequest, GetProjectSchemaResponse, GetSettingsRequest, GetSettingsResponse, GetShareRequest, GetShareResponse, GetVariantCatalogEntryRequest, GetVariantCatalogEntryResponse, ListAuditLogsRequest, ListAuditLogsResponse, ListContextDimensionsRequest, ListContextDimensionsResponse, ListContextDimensionVersionsRequest, ListContextDimensionVersionsResponse, ListDesignTokenVersionsRequest, ListDesignTokenVersionsResponse, ListLocalesRequest, ListLocalesResponse, ListMyMentionsRequest, ListMyMentionsResponse, ListNotesRequest, ListNotesResponse, ListProfileSchemaVersionsRequest, ListProfileSchemaVersionsResponse, ListRecentlyOpenedRequest, ListRecentlyOpenedResponse, ListSharesRequest, ListSharesResponse, ListVariantCatalogRequest, ListVariantCatalogResponse, LookupCustomerProfileRequest, LookupCustomerProfileResponse, MarkMentionsSeenRequest, MarkMentionsSeenResponse, PublishContextDimensionRequest, PublishContextDimensionResponse, PublishDesignTokensRequest, PublishDesignTokensResponse, PublishProfileSchemaRequest, PublishProfileSchemaResponse, PublishProjectSchemaRequest, PublishProjectSchemaResponse, RemoveRecentlyOpenedRequest, RemoveRecentlyOpenedResponse, ResolveNoteRequest, ResolveNoteResponse, RestoreContextDimensionVersionRequest, RestoreContextDimensionVersionResponse, RestoreDesignTokenVersionRequest, RestoreDesignTokenVersionResponse, RestoreProfileSchemaVersionRequest, RestoreProfileSchemaVersionResponse, RevokeShareRequest, RevokeShareResponse, ScheduleContextDimensionPublishRequest, ScheduleContextDimensionPublishResponse, ScheduleDesignTokensPublishRequest, ScheduleDesignTokensPublishResponse, ScheduleProfileSchemaPublishRequest, ScheduleProfileSchemaPublishResponse, SearchCustomerProfilesRequest, SearchCustomerProfilesResponse, SearchNotesRequest, SearchNotesResponse, TrackRecentlyOpenedRequest, TrackRecentlyOpenedResponse, UnpublishContextDimensionRequest, UnpublishContextDimensionResponse, UnpublishDesignTokensRequest, UnpublishDesignTokensResponse, UnpublishProfileSchemaRequest, UnpublishProfileSchemaResponse, UnresolveNoteRequest, UnresolveNoteResponse, UpdateContextDimensionRequest, UpdateContextDimensionResponse, UpdateCustomerProfileRequest, UpdateCustomerProfileResponse, UpdateCustomerProfileSchemaRequest, UpdateCustomerProfileSchemaResponse, UpdateDesignTokensRequest, UpdateDesignTokensResponse, UpdateLocaleRequest, UpdateLocaleResponse, UpdateMentionStatusRequest, UpdateMentionStatusResponse, UpdateNavPreferencesRequest, UpdateNavPreferencesResponse, UpdateNoteRequest, UpdateNoteResponse, UpdateSettingRequest, UpdateSettingResponse, UpdateShareRequest, UpdateShareResponse, UpdateVariantCatalogEntryRequest, UpdateVariantCatalogEntryResponse } from "./settings_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -484,6 +484,15 @@ export const SettingsService = {
484
484
  O: SearchCustomerProfilesResponse,
485
485
  kind: MethodKind.Unary,
486
486
  },
487
+ /**
488
+ * @generated from rpc settings.v1.SettingsService.LookupCustomerProfile
489
+ */
490
+ lookupCustomerProfile: {
491
+ name: "LookupCustomerProfile",
492
+ I: LookupCustomerProfileRequest,
493
+ O: LookupCustomerProfileResponse,
494
+ kind: MethodKind.Unary,
495
+ },
487
496
  /**
488
497
  * @generated from rpc settings.v1.SettingsService.DeleteCustomerProfile
489
498
  */