@streamlayer/sl-eslib 5.239.1 → 5.240.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamlayer/sl-eslib",
3
- "version": "5.239.1",
3
+ "version": "5.240.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -111,3 +111,9 @@ export const setEntityLimits: typeof Triggers["method"]["setEntityLimits"];
111
111
  * @generated from rpc streamlayer.triggers.Triggers.GetEntityLimits
112
112
  */
113
113
  export const getEntityLimits: typeof Triggers["method"]["getEntityLimits"];
114
+ /**
115
+ * Resolves an abstract trigger into a concrete trigger for a given event
116
+ *
117
+ * @generated from rpc streamlayer.triggers.Triggers.ResolveAbstractTrigger
118
+ */
119
+ export const resolveAbstractTrigger: typeof Triggers["method"]["resolveAbstractTrigger"];
@@ -130,3 +130,10 @@ export const setEntityLimits = Triggers.method.setEntityLimits;
130
130
  * @generated from rpc streamlayer.triggers.Triggers.GetEntityLimits
131
131
  */
132
132
  export const getEntityLimits = Triggers.method.getEntityLimits;
133
+
134
+ /**
135
+ * Resolves an abstract trigger into a concrete trigger for a given event
136
+ *
137
+ * @generated from rpc streamlayer.triggers.Triggers.ResolveAbstractTrigger
138
+ */
139
+ export const resolveAbstractTrigger = Triggers.method.resolveAbstractTrigger;
@@ -93,6 +93,34 @@ export declare type Trigger = Message<"streamlayer.triggers.Trigger"> & {
93
93
  * @generated from field: streamlayer.triggers.UseTriggerLimits use_limits = 14;
94
94
  */
95
95
  useLimits: UseTriggerLimits;
96
+
97
+ /**
98
+ * marks this as an abstract (template-level) trigger not bound to a specific game
99
+ *
100
+ * @generated from field: streamlayer.triggers.AbstractTriggerMode abstract = 15;
101
+ */
102
+ abstract: AbstractTriggerMode;
103
+
104
+ /**
105
+ * sport identifier, required when abstract = TRUE (e.g. "football")
106
+ *
107
+ * @generated from field: optional string sport = 16;
108
+ */
109
+ sport?: string;
110
+
111
+ /**
112
+ * human-readable reason why the trigger is disabled (e.g. "non-nfl-event")
113
+ *
114
+ * @generated from field: optional string disabled_reason = 17;
115
+ */
116
+ disabledReason?: string;
117
+
118
+ /**
119
+ * id of the abstract trigger this concrete trigger was resolved from (traceability)
120
+ *
121
+ * @generated from field: optional string abstract_trigger_id = 18;
122
+ */
123
+ abstractTriggerId?: string;
96
124
  };
97
125
 
98
126
  /**
@@ -385,6 +413,20 @@ export declare type EssentialTriggerData = Message<"streamlayer.triggers.Essenti
385
413
  * @generated from field: streamlayer.triggers.UseTriggerLimits use_limits = 13;
386
414
  */
387
415
  useLimits: UseTriggerLimits;
416
+
417
+ /**
418
+ * set to TRUE to create an abstract trigger (no scope_id required)
419
+ *
420
+ * @generated from field: streamlayer.triggers.AbstractTriggerMode abstract = 14;
421
+ */
422
+ abstract: AbstractTriggerMode;
423
+
424
+ /**
425
+ * required when abstract = TRUE; Phase I only accepts "football"
426
+ *
427
+ * @generated from field: optional string sport = 15;
428
+ */
429
+ sport?: string;
388
430
  };
389
431
 
390
432
  /**
@@ -615,6 +657,13 @@ export declare type StudioTarget = Message<"streamlayer.triggers.StudioTarget">
615
657
  * @generated from field: optional streamlayer.triggers.StudioTargetMeta meta = 5;
616
658
  */
617
659
  meta?: StudioTargetMeta;
660
+
661
+ /**
662
+ * marks this target as abstract (e.g. "home", "away", "home_QB")
663
+ *
664
+ * @generated from field: streamlayer.triggers.AbstractTriggerMode abstract = 6;
665
+ */
666
+ abstract: AbstractTriggerMode;
618
667
  };
619
668
 
620
669
  /**
@@ -662,6 +711,13 @@ export declare type GetMetadataRequest = Message<"streamlayer.triggers.GetMetada
662
711
  * @generated from field: string sport = 2;
663
712
  */
664
713
  sport: string;
714
+
715
+ /**
716
+ * when TRUE, returns abstract targets (home/away/position-based) instead of concrete game targets
717
+ *
718
+ * @generated from field: streamlayer.triggers.AbstractTriggerMode abstract = 3;
719
+ */
720
+ abstract: AbstractTriggerMode;
665
721
  };
666
722
 
667
723
  /**
@@ -2133,6 +2189,109 @@ export declare type GetEntityLimitsResponse = Message<"streamlayer.triggers.GetE
2133
2189
  */
2134
2190
  export declare const GetEntityLimitsResponseSchema: GenMessage<GetEntityLimitsResponse>;
2135
2191
 
2192
+ /**
2193
+ * Resolves an abstract trigger stored on a template into a concrete trigger for a specific event.
2194
+ * Called by sl-polls when a template with abstract triggers is applied to an event.
2195
+ *
2196
+ * @generated from message streamlayer.triggers.ResolveAbstractTriggerRequest
2197
+ */
2198
+ export declare type ResolveAbstractTriggerRequest = Message<"streamlayer.triggers.ResolveAbstractTriggerRequest"> & {
2199
+ /**
2200
+ * @generated from field: string abstract_trigger_id = 1;
2201
+ */
2202
+ abstractTriggerId: string;
2203
+
2204
+ /**
2205
+ * @generated from field: string event_id = 2;
2206
+ */
2207
+ eventId: string;
2208
+
2209
+ /**
2210
+ * entity to attach the resolved concrete trigger to (e.g. "moderation")
2211
+ *
2212
+ * @generated from field: string entity = 3;
2213
+ */
2214
+ entity: string;
2215
+
2216
+ /**
2217
+ * @generated from field: string entity_id = 4;
2218
+ */
2219
+ entityId: string;
2220
+
2221
+ /**
2222
+ * @generated from field: optional string organization_id = 5;
2223
+ */
2224
+ organizationId?: string;
2225
+ };
2226
+
2227
+ /**
2228
+ * Describes the message streamlayer.triggers.ResolveAbstractTriggerRequest.
2229
+ * Use `create(ResolveAbstractTriggerRequestSchema)` to create a new message.
2230
+ */
2231
+ export declare const ResolveAbstractTriggerRequestSchema: GenMessage<ResolveAbstractTriggerRequest>;
2232
+
2233
+ /**
2234
+ * @generated from message streamlayer.triggers.ResolveAbstractTriggerResponse
2235
+ */
2236
+ export declare type ResolveAbstractTriggerResponse = Message<"streamlayer.triggers.ResolveAbstractTriggerResponse"> & {
2237
+ /**
2238
+ * present when the trigger was successfully resolved
2239
+ *
2240
+ * @generated from field: optional streamlayer.triggers.ResolveAbstractTriggerResponse.Attributes data = 1;
2241
+ */
2242
+ data?: ResolveAbstractTriggerResponse_Attributes;
2243
+
2244
+ /**
2245
+ * TRUE when the event is applicable for abstract trigger resolution
2246
+ *
2247
+ * @generated from field: streamlayer.triggers.TriggerApplicable applicable = 2;
2248
+ */
2249
+ applicable: TriggerApplicable;
2250
+
2251
+ /**
2252
+ * human-readable reason when applicable = false
2253
+ *
2254
+ * @generated from field: optional string reason = 3;
2255
+ */
2256
+ reason?: string;
2257
+ };
2258
+
2259
+ /**
2260
+ * Describes the message streamlayer.triggers.ResolveAbstractTriggerResponse.
2261
+ * Use `create(ResolveAbstractTriggerResponseSchema)` to create a new message.
2262
+ */
2263
+ export declare const ResolveAbstractTriggerResponseSchema: GenMessage<ResolveAbstractTriggerResponse>;
2264
+
2265
+ /**
2266
+ * @generated from message streamlayer.triggers.ResolveAbstractTriggerResponse.Attributes
2267
+ */
2268
+ export declare type ResolveAbstractTriggerResponse_Attributes = Message<"streamlayer.triggers.ResolveAbstractTriggerResponse.Attributes"> & {
2269
+ /**
2270
+ * id of the newly created concrete trigger
2271
+ *
2272
+ * @generated from field: string id = 1;
2273
+ */
2274
+ id: string;
2275
+
2276
+ /**
2277
+ * @generated from field: string type = 2;
2278
+ */
2279
+ type: string;
2280
+
2281
+ /**
2282
+ * id of the abstract trigger this was resolved from
2283
+ *
2284
+ * @generated from field: string abstract_trigger_id = 3;
2285
+ */
2286
+ abstractTriggerId: string;
2287
+ };
2288
+
2289
+ /**
2290
+ * Describes the message streamlayer.triggers.ResolveAbstractTriggerResponse.Attributes.
2291
+ * Use `create(ResolveAbstractTriggerResponse_AttributesSchema)` to create a new message.
2292
+ */
2293
+ export declare const ResolveAbstractTriggerResponse_AttributesSchema: GenMessage<ResolveAbstractTriggerResponse_Attributes>;
2294
+
2136
2295
  /**
2137
2296
  * @generated from enum streamlayer.triggers.UseConditionThreshold
2138
2297
  */
@@ -2183,6 +2342,56 @@ export enum UseTriggerLimits {
2183
2342
  */
2184
2343
  export declare const UseTriggerLimitsSchema: GenEnum<UseTriggerLimits>;
2185
2344
 
2345
+ /**
2346
+ * @generated from enum streamlayer.triggers.AbstractTriggerMode
2347
+ */
2348
+ export enum AbstractTriggerMode {
2349
+ /**
2350
+ * @generated from enum value: ABSTRACT_TRIGGER_MODE_UNSET = 0;
2351
+ */
2352
+ UNSET = 0,
2353
+
2354
+ /**
2355
+ * @generated from enum value: ABSTRACT_TRIGGER_MODE_TRUE = 1;
2356
+ */
2357
+ TRUE = 1,
2358
+
2359
+ /**
2360
+ * @generated from enum value: ABSTRACT_TRIGGER_MODE_FALSE = 2;
2361
+ */
2362
+ FALSE = 2,
2363
+ }
2364
+
2365
+ /**
2366
+ * Describes the enum streamlayer.triggers.AbstractTriggerMode.
2367
+ */
2368
+ export declare const AbstractTriggerModeSchema: GenEnum<AbstractTriggerMode>;
2369
+
2370
+ /**
2371
+ * @generated from enum streamlayer.triggers.TriggerApplicable
2372
+ */
2373
+ export enum TriggerApplicable {
2374
+ /**
2375
+ * @generated from enum value: TRIGGER_APPLICABLE_UNSET = 0;
2376
+ */
2377
+ UNSET = 0,
2378
+
2379
+ /**
2380
+ * @generated from enum value: TRIGGER_APPLICABLE_TRUE = 1;
2381
+ */
2382
+ TRUE = 1,
2383
+
2384
+ /**
2385
+ * @generated from enum value: TRIGGER_APPLICABLE_FALSE = 2;
2386
+ */
2387
+ FALSE = 2,
2388
+ }
2389
+
2390
+ /**
2391
+ * Describes the enum streamlayer.triggers.TriggerApplicable.
2392
+ */
2393
+ export declare const TriggerApplicableSchema: GenEnum<TriggerApplicable>;
2394
+
2186
2395
  /**
2187
2396
  * @generated from enum streamlayer.triggers.StudioInput
2188
2397
  */
@@ -2429,5 +2638,15 @@ export declare const Triggers: GenService<{
2429
2638
  input: typeof GetEntityLimitsRequestSchema;
2430
2639
  output: typeof GetEntityLimitsResponseSchema;
2431
2640
  },
2641
+ /**
2642
+ * Resolves an abstract trigger into a concrete trigger for a given event
2643
+ *
2644
+ * @generated from rpc streamlayer.triggers.Triggers.ResolveAbstractTrigger
2645
+ */
2646
+ resolveAbstractTrigger: {
2647
+ methodKind: "unary";
2648
+ input: typeof ResolveAbstractTriggerRequestSchema;
2649
+ output: typeof ResolveAbstractTriggerResponseSchema;
2650
+ },
2432
2651
  }>;
2433
2652
 
@@ -9,7 +9,7 @@ import { file_streamlayer_common_streamlayer_common } from "../common/streamlaye
9
9
  * Describes the file streamlayer/triggers/triggers.proto.
10
10
  */
11
11
  export const file_streamlayer_triggers_triggers = /*@__PURE__*/
12
- fileDesc("CiNzdHJlYW1sYXllci90cmlnZ2Vycy90cmlnZ2Vycy5wcm90bxIUc3RyZWFtbGF5ZXIudHJpZ2dlcnMi8gIKB1RyaWdnZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRINCgVzY29wZRgEIAEoCRIQCghzY29wZV9pZBgFIAEoCRIRCglhY3RpdmF0ZWQYBiABKAgSDgoGZW50aXR5GAcgASgJEhEKCWVudGl0eV9pZBgIIAEoCRIQCghkaXNhYmxlZBgJIAEoCBIRCgl0aHJlc2hvbGQYCiABKAUSFwoPZGlzYWJsZWRfZW50aXR5GAsgASgIEhkKEXVzZV9lbnRpdHlfbGltaXRzGAwgASgIEkwKF3VzZV9jb25kaXRpb25fdGhyZXNob2xkGA0gASgOMisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXNlQ29uZGl0aW9uVGhyZXNob2xkEjoKCnVzZV9saW1pdHMYDiABKA4yJi5zdHJlYW1sYXllci50cmlnZ2Vycy5Vc2VUcmlnZ2VyTGltaXRzIngKBUV2ZW50EgoKAmlkGAEgASgJEhIKCmRhdGFzb3VyY2UYAiABKAkSDQoFc2NvcGUYAyABKAkSEAoIc2NvcGVfaWQYBCABKAkSDAoEbmFtZRgFIAEoCRINCgV2YWx1ZRgGIAEoCRIRCgl0aW1lc3RhbXAYByABKAMiZwoWVHJpZ2dlckNvbmRpdGlvbk9wdGlvbhINCgVldmVudBgBIAEoCRIPCgdjb21wYXJlGAIgASgJEgwKBHR5cGUYAyABKAkSDwoHdGFyZ2V0cxgEIAMoCRIOCgZwYXJlbnQYBSABKAkilwQKEFRyaWdnZXJDb25kaXRpb24SCgoCaWQYASABKAkSFwoKdHJpZ2dlcl9pZBgCIAEoCUgAiAEBEhIKBWV2ZW50GAMgASgJSAGIAQESFwoKZGF0YXNvdXJjZRgEIAEoCUgCiAEBEhIKBXNjb3BlGAUgASgJSAOIAQESFQoIc2NvcGVfaWQYBiABKAlIBIgBARIUCgdjb21wYXJlGAcgASgJSAWIAQESEQoEdHlwZRgIIAEoCUgGiAEBEg8KB3RhcmdldHMYCSADKAkSFAoHY3VycmVudBgKIAEoCUgHiAEBEhEKCWFjdGl2YXRlZBgLIAEoCBIYCgtjaGFpbl9vcmRlchgMIAEoBUgIiAEBEhwKD2NoYWluX29wZXJhdGlvbhgNIAEoCUgJiAEBEigKA2xvZxgOIAMoCzIbLnN0cmVhbWxheWVyLnRyaWdnZXJzLkV2ZW50Ej0KB29wdGlvbnMYDyADKAsyLC5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyQ29uZGl0aW9uT3B0aW9uQg0KC190cmlnZ2VyX2lkQggKBl9ldmVudEINCgtfZGF0YXNvdXJjZUIICgZfc2NvcGVCCwoJX3Njb3BlX2lkQgoKCF9jb21wYXJlQgcKBV90eXBlQgoKCF9jdXJyZW50Qg4KDF9jaGFpbl9vcmRlckISChBfY2hhaW5fb3BlcmF0aW9uIvQCChRFc3NlbnRpYWxUcmlnZ2VyRGF0YRIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhIKCmRhdGFzb3VyY2UYAyABKAkSDQoFc2NvcGUYBCABKAkSEAoIc2NvcGVfaWQYBSABKAkSDgoGZW50aXR5GAYgASgJEhEKCWVudGl0eV9pZBgHIAEoCRIQCghkaXNhYmxlZBgIIAEoCBIRCgl0aHJlc2hvbGQYCSABKAUSFwoPZGlzYWJsZWRfZW50aXR5GAogASgIEhkKEXVzZV9lbnRpdHlfbGltaXRzGAsgASgIEkwKF3VzZV9jb25kaXRpb25fdGhyZXNob2xkGAwgASgOMisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXNlQ29uZGl0aW9uVGhyZXNob2xkEjoKCnVzZV9saW1pdHMYDSABKA4yJi5zdHJlYW1sYXllci50cmlnZ2Vycy5Vc2VUcmlnZ2VyTGltaXRzIqEBChZFc3NlbnRpYWxDb25kaXRpb25EYXRhEg0KBWV2ZW50GAEgASgJEg8KB2NvbXBhcmUYAiABKAkSFwoPY2hhaW5fb3BlcmF0aW9uGAMgASgJEg8KB3RhcmdldHMYBCADKAkSPQoHb3B0aW9ucxgFIAMoCzIsLnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXJDb25kaXRpb25PcHRpb24i8wIKFVRyaWdnZXJXaXRoQ29uZGl0aW9ucxIuCgd0cmlnZ2VyGAEgASgLMh0uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlchI6Cgpjb25kaXRpb25zGAIgAygLMiYuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlckNvbmRpdGlvbhJHCgZsaW1pdHMYAyADKAsyNy5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyV2l0aENvbmRpdGlvbnMuTGltaXRzRW50cnkSRwoGY291bnRzGAQgAygLMjcuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlcldpdGhDb25kaXRpb25zLkNvdW50c0VudHJ5Gi0KC0xpbWl0c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAEaLQoLQ291bnRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASLZAgoTVHJpZ2dlclN1YnNjcmlwdGlvbhIKCgJpZBgBIAEoCRISCgp0cmlnZ2VyX2lkGAIgASgJEg0KBXJvdXRlGAMgASgJEg4KBmVudGl0eRgEIAEoCRIRCgllbnRpdHlfaWQYBSABKAkSRwoHcGF5bG9hZBgGIAMoCzI2LnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXJTdWJzY3JpcHRpb24uUGF5bG9hZEVudHJ5EkcKB29wdGlvbnMYByADKAsyNi5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyU3Vic2NyaXB0aW9uLk9wdGlvbnNFbnRyeRouCgxQYXlsb2FkRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARouCgxPcHRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLLAgoZRXNzZW50aWFsU3Vic2NyaXB0aW9uRGF0YRINCgVyb3V0ZRgBIAEoCRIOCgZlbnRpdHkYAiABKAkSEQoJZW50aXR5X2lkGAMgASgJEk0KB3BheWxvYWQYBCADKAsyPC5zdHJlYW1sYXllci50cmlnZ2Vycy5Fc3NlbnRpYWxTdWJzY3JpcHRpb25EYXRhLlBheWxvYWRFbnRyeRJNCgdvcHRpb25zGAUgAygLMjwuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRXNzZW50aWFsU3Vic2NyaXB0aW9uRGF0YS5PcHRpb25zRW50cnkaLgoMUGF5bG9hZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaLgoMT3B0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiQgoQU3R1ZGlvVGFyZ2V0TWV0YRIXCg9wbGF5ZXJfcG9zaXRpb24YASABKAkSFQoNcGxheWVyX251bWJlchgCIAEoCSKRAQoMU3R1ZGlvVGFyZ2V0Eg0KBWxhYmVsGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEgoKAmlkGAMgASgJEg0KBWdyb3VwGAQgASgJEjkKBG1ldGEYBSABKAsyJi5zdHJlYW1sYXllci50cmlnZ2Vycy5TdHVkaW9UYXJnZXRNZXRhSACIAQFCBwoFX21ldGEiVQoLU3R1ZGlvTGltaXQSDQoFbGltaXQYASABKAkSDQoFbGFiZWwYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24iNQoSR2V0TWV0YWRhdGFSZXF1ZXN0EhAKCGV2ZW50X2lkGAEgASgJEg0KBXNwb3J0GAIgASgJIu0HChNHZXRNZXRhZGF0YVJlc3BvbnNlEksKBGRhdGEYASABKAsyPS5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRNZXRhZGF0YVJlc3BvbnNlLlN0dWRpb0NvbmRpdGlvbkRhdGEa4wEKC1N0dWRpb0V2ZW50EgoKAmlkGAEgASgJEg0KBXNwb3J0GAIgASgJEg8KB3ByaW1hcnkYAyABKAgSMAoFaW5wdXQYBCABKA4yIS5zdHJlYW1sYXllci50cmlnZ2Vycy5TdHVkaW9JbnB1dBINCgVsYWJlbBgFIAEoCRIZChFwcmVmZXJyZWRfb3B0aW9ucxgGIAMoCRIPCgdjb21wYXJlGAcgAygJEhoKDXRhcmdldF9zb3VyY2UYCCABKAlIAIgBARINCgVncm91cBgJIAEoCUIQCg5fdGFyZ2V0X3NvdXJjZRpBCgpUYXJnZXRMaXN0EjMKB3RhcmdldHMYASADKAsyIi5zdHJlYW1sYXllci50cmlnZ2Vycy5TdHVkaW9UYXJnZXQaRAoER2FtZRIKCgJpZBgBIAEoCRINCgVzcG9ydBgCIAEoCRISCgpkYXRhc291cmNlGAMgASgJEg0KBXNjb3BlGAQgASgJGpkEChNTdHVkaW9Db25kaXRpb25EYXRhEg0KBWluZGV4GAEgAygJElkKBmV2ZW50cxgCIAMoCzJJLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldE1ldGFkYXRhUmVzcG9uc2UuU3R1ZGlvQ29uZGl0aW9uRGF0YS5FdmVudHNFbnRyeRJbCgdzb3VyY2VzGAMgAygLMkouc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0TWV0YWRhdGFSZXNwb25zZS5TdHVkaW9Db25kaXRpb25EYXRhLlNvdXJjZXNFbnRyeRI8CgRnYW1lGAQgASgLMi4uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0TWV0YWRhdGFSZXNwb25zZS5HYW1lEjEKBmxpbWl0cxgFIAMoCzIhLnN0cmVhbWxheWVyLnRyaWdnZXJzLlN0dWRpb0xpbWl0GmQKC0V2ZW50c0VudHJ5EgsKA2tleRgBIAEoCRJECgV2YWx1ZRgCIAEoCzI1LnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldE1ldGFkYXRhUmVzcG9uc2UuU3R1ZGlvRXZlbnQ6AjgBGmQKDFNvdXJjZXNFbnRyeRILCgNrZXkYASABKAkSQwoFdmFsdWUYAiABKAsyNC5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRNZXRhZGF0YVJlc3BvbnNlLlRhcmdldExpc3Q6AjgBIuICChRDcmVhdGVUcmlnZ2VyUmVxdWVzdBI7Cgd0cmlnZ2VyGAEgASgLMiouc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRXNzZW50aWFsVHJpZ2dlckRhdGESQAoKY29uZGl0aW9ucxgCIAMoCzIsLnN0cmVhbWxheWVyLnRyaWdnZXJzLkVzc2VudGlhbENvbmRpdGlvbkRhdGESRgoGbGltaXRzGAMgAygLMjYuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ3JlYXRlVHJpZ2dlclJlcXVlc3QuTGltaXRzRW50cnkSHAoPb3JnYW5pemF0aW9uX2lkGAQgASgJSACIAQESFQoIZXZlbnRfaWQYBSABKAlIAYgBARotCgtMaW1pdHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAU6AjgBQhIKEF9vcmdhbml6YXRpb25faWRCCwoJX2V2ZW50X2lkIoUBChVDcmVhdGVUcmlnZ2VyUmVzcG9uc2USRAoEZGF0YRgBIAEoCzI2LnN0cmVhbWxheWVyLnRyaWdnZXJzLkNyZWF0ZVRyaWdnZXJSZXNwb25zZS5BdHRyaWJ1dGVzGiYKCkF0dHJpYnV0ZXMSCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCSK1BwoVQ3JlYXRlVHJpZ2dlcnNSZXF1ZXN0ElMKBGRhdGEYASABKAsyRS5zdHJlYW1sYXllci50cmlnZ2Vycy5DcmVhdGVUcmlnZ2Vyc1JlcXVlc3QuQ3JlYXRlVHJpZ2dlcnNSZXF1ZXN0RGF0YRIcCg9vcmdhbml6YXRpb25faWQYAiABKAlIAIgBARIVCghldmVudF9pZBgDIAEoCUgBiAEBGpcCCg9VbmlxVHJpZ2dlckRhdGESDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIQCghkaXNhYmxlZBgDIAEoCBIRCgl0aHJlc2hvbGQYBCABKAUSFwoPZGlzYWJsZWRfZW50aXR5GAUgASgIEhkKEXVzZV9lbnRpdHlfbGltaXRzGAYgASgIEkwKF3VzZV9jb25kaXRpb25fdGhyZXNob2xkGAcgASgOMisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXNlQ29uZGl0aW9uVGhyZXNob2xkEjoKCnVzZV9saW1pdHMYCCABKA4yJi5zdHJlYW1sYXllci50cmlnZ2Vycy5Vc2VUcmlnZ2VyTGltaXRzGpkCCgdUcmlnZ2VyEkwKB3RyaWdnZXIYASABKAsyOy5zdHJlYW1sYXllci50cmlnZ2Vycy5DcmVhdGVUcmlnZ2Vyc1JlcXVlc3QuVW5pcVRyaWdnZXJEYXRhEkAKCmNvbmRpdGlvbnMYAiADKAsyLC5zdHJlYW1sYXllci50cmlnZ2Vycy5Fc3NlbnRpYWxDb25kaXRpb25EYXRhEk8KBmxpbWl0cxgDIAMoCzI/LnN0cmVhbWxheWVyLnRyaWdnZXJzLkNyZWF0ZVRyaWdnZXJzUmVxdWVzdC5UcmlnZ2VyLkxpbWl0c0VudHJ5Gi0KC0xpbWl0c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAEaugEKGUNyZWF0ZVRyaWdnZXJzUmVxdWVzdERhdGESEgoKZGF0YXNvdXJjZRgDIAEoCRINCgVzY29wZRgEIAEoCRIQCghzY29wZV9pZBgFIAEoCRIOCgZlbnRpdHkYBiABKAkSEQoJZW50aXR5X2lkGAcgASgJEkUKCHRyaWdnZXJzGAggAygLMjMuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ3JlYXRlVHJpZ2dlcnNSZXF1ZXN0LlRyaWdnZXJCEgoQX29yZ2FuaXphdGlvbl9pZEILCglfZXZlbnRfaWQihwEKFkNyZWF0ZVRyaWdnZXJzUmVzcG9uc2USRQoEZGF0YRgBIAMoCzI3LnN0cmVhbWxheWVyLnRyaWdnZXJzLkNyZWF0ZVRyaWdnZXJzUmVzcG9uc2UuQXR0cmlidXRlcxomCgpBdHRyaWJ1dGVzEgoKAmlkGAEgASgJEgwKBHR5cGUYAiABKAkipQMKFFVwZGF0ZVRyaWdnZXJSZXF1ZXN0EkIKB3VwZGF0ZXMYASADKAsyMS5zdHJlYW1sYXllci50cmlnZ2Vycy5VcGRhdGVUcmlnZ2VyUmVxdWVzdC5VcGRhdGUSHAoPb3JnYW5pemF0aW9uX2lkGAIgASgJSACIAQESFQoIZXZlbnRfaWQYAyABKAlIAYgBARryAQoGVXBkYXRlEi4KB3RyaWdnZXIYASABKAsyHS5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyEjoKCmNvbmRpdGlvbnMYAiADKAsyJi5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyQ29uZGl0aW9uEk0KBmxpbWl0cxgDIAMoCzI9LnN0cmVhbWxheWVyLnRyaWdnZXJzLlVwZGF0ZVRyaWdnZXJSZXF1ZXN0LlVwZGF0ZS5MaW1pdHNFbnRyeRotCgtMaW1pdHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAU6AjgBQhIKEF9vcmdhbml6YXRpb25faWRCCwoJX2V2ZW50X2lkIhcKFVVwZGF0ZVRyaWdnZXJSZXNwb25zZSJ4ChRFbmFibGVUcmlnZ2VyUmVxdWVzdBIKCgJpZBgBIAEoCRIcCg9vcmdhbml6YXRpb25faWQYAiABKAlIAIgBARIVCghldmVudF9pZBgDIAEoCUgBiAEBQhIKEF9vcmdhbml6YXRpb25faWRCCwoJX2V2ZW50X2lkIhcKFUVuYWJsZVRyaWdnZXJSZXNwb25zZSJ5ChVEaXNhYmxlVHJpZ2dlclJlcXVlc3QSCgoCaWQYASABKAkSHAoPb3JnYW5pemF0aW9uX2lkGAIgASgJSACIAQESFQoIZXZlbnRfaWQYAyABKAlIAYgBAUISChBfb3JnYW5pemF0aW9uX2lkQgsKCV9ldmVudF9pZCIYChZEaXNhYmxlVHJpZ2dlclJlc3BvbnNlIngKFERlbGV0ZVRyaWdnZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhwKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUgAiAEBEhUKCGV2ZW50X2lkGAMgASgJSAGIAQFCEgoQX29yZ2FuaXphdGlvbl9pZEILCglfZXZlbnRfaWQihQEKFURlbGV0ZVRyaWdnZXJSZXNwb25zZRJECgRkYXRhGAEgASgLMjYuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRGVsZXRlVHJpZ2dlclJlc3BvbnNlLkF0dHJpYnV0ZXMaJgoKQXR0cmlidXRlcxIKCgJpZBgBIAEoCRIMCgR0eXBlGAIgASgJIh8KEUdldFRyaWdnZXJSZXF1ZXN0EgoKAmlkGAEgASgJIsABChJHZXRUcmlnZ2VyUmVzcG9uc2USQQoEZGF0YRgBIAEoCzIzLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldFRyaWdnZXJSZXNwb25zZS5BdHRyaWJ1dGVzGmcKCkF0dHJpYnV0ZXMSCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCRI/CgphdHRyaWJ1dGVzGAMgASgLMisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlcldpdGhDb25kaXRpb25zIpkDChFUcmlnZ2VyQWN0aXZhdGlvbhIUCgxhY3RpdmF0ZWRfYXQYASABKAUSEwoLc25hcHNob3RfaWQYAiABKAkSIQoZYWN0aXZhdGVkX2NvbmRpdGlvbl9jb3VudBgDIAEoBRIOCgZlbnRpdHkYBCABKAkSEQoJZW50aXR5X2lkGAUgASgJElYKCmdhbWVfZXZlbnQYBiABKAsyQi5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyQWN0aXZhdGlvbi5UcmlnZ2VyQWN0aXZhdGlvbkdhbWVFdmVudBIuCgd0cmlnZ2VyGAcgASgLMh0uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlchI6Cgpjb25kaXRpb25zGAggAygLMiYuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlckNvbmRpdGlvbhpPChpUcmlnZ2VyQWN0aXZhdGlvbkdhbWVFdmVudBIMCgR0aW1lGAEgASgJEg4KBnBlcmlvZBgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCSJ4ChlUcmlnZ2VyQWN0aXZhdGlvbnNSZXF1ZXN0Eg8KAmlkGAEgASgJSACIAQESFgoJZW50aXR5X2lkGAIgASgJSAGIAQESDQoFbGltaXQYAyABKAUSDgoGb2Zmc2V0GAQgASgFQgUKA19pZEIMCgpfZW50aXR5X2lkIlMKGlRyaWdnZXJBY3RpdmF0aW9uc1Jlc3BvbnNlEjUKBGRhdGEYASADKAsyJy5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyQWN0aXZhdGlvbiI4ChNMaXN0VHJpZ2dlcnNSZXF1ZXN0Eg4KBmVudGl0eRgBIAEoCRIRCgllbnRpdHlfaWQYAiABKAkiwgEKE0xpc3RUcmlnZ2VyUmVzcG9uc2USQgoEZGF0YRgBIAMoCzI0LnN0cmVhbWxheWVyLnRyaWdnZXJzLkxpc3RUcmlnZ2VyUmVzcG9uc2UuQXR0cmlidXRlcxpnCgpBdHRyaWJ1dGVzEgoKAmlkGAEgASgJEgwKBHR5cGUYAiABKAkSPwoKYXR0cmlidXRlcxgDIAEoCzIrLnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXJXaXRoQ29uZGl0aW9ucyJtChBTdWJzY3JpYmVSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYASABKAkSRQoMc3Vic2NyaXB0aW9uGAIgASgLMi8uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRXNzZW50aWFsU3Vic2NyaXB0aW9uRGF0YSJ9ChFTdWJzY3JpYmVSZXNwb25zZRJACgRkYXRhGAEgASgLMjIuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuU3Vic2NyaWJlUmVzcG9uc2UuQXR0cmlidXRlcxomCgpBdHRyaWJ1dGVzEgoKAmlkGAEgASgJEgwKBHR5cGUYAiABKAkiUQoYTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYASABKAkSDgoGZW50aXR5GAIgASgJEhEKCWVudGl0eV9pZBgDIAEoCSLOAQoYTGlzdFN1YnNjcmlwdGlvblJlc3BvbnNlEkkKBGRhdGEYASADKAsyOy5zdHJlYW1sYXllci50cmlnZ2Vycy5MaXN0U3Vic2NyaXB0aW9uUmVzcG9uc2UuUmVzcG9uc2VJdGVtGmcKDFJlc3BvbnNlSXRlbRIKCgJpZBgBIAEoCRIMCgR0eXBlGAIgASgJEj0KCmF0dHJpYnV0ZXMYAyABKAsyKS5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyU3Vic2NyaXB0aW9uIicKGUNhbmNlbFN1YnNjcmlwdGlvblJlcXVlc3QSCgoCaWQYASABKAkijwEKGkNhbmNlbFN1YnNjcmlwdGlvblJlc3BvbnNlEkkKBGRhdGEYASABKAsyOy5zdHJlYW1sYXllci50cmlnZ2Vycy5DYW5jZWxTdWJzY3JpcHRpb25SZXNwb25zZS5BdHRyaWJ1dGVzGiYKCkF0dHJpYnV0ZXMSCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCSKmAQoGRW50aXR5Eg4KBmVudGl0eRgBIAEoCRIRCgllbnRpdHlfaWQYAiABKAkSEAoIZGlzYWJsZWQYAyABKAgSOAoGbGltaXRzGAQgAygLMiguc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRW50aXR5LkxpbWl0c0VudHJ5Gi0KC0xpbWl0c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAEilwEKE1VwZGF0ZUVudGl0eVJlcXVlc3QSKgoEZGF0YRgBIAMoCzIcLnN0cmVhbWxheWVyLnRyaWdnZXJzLkVudGl0eRIcCg9vcmdhbml6YXRpb25faWQYAiABKAlIAIgBARIVCghldmVudF9pZBgDIAEoCUgBiAEBQhIKEF9vcmdhbml6YXRpb25faWRCCwoJX2V2ZW50X2lkIhYKFFVwZGF0ZUVudGl0eVJlc3BvbnNlIjUKEEdldEVudGl0eVJlcXVlc3QSDgoGZW50aXR5GAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCSI/ChFHZXRFbnRpdHlSZXNwb25zZRIqCgRkYXRhGAEgASgLMhwuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRW50aXR5ItgBChNFbmFibGVFbnRpdHlSZXF1ZXN0EkAKCGVudGl0aWVzGAEgAygLMi4uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRW5hYmxlRW50aXR5UmVxdWVzdC5EYXRhEhwKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUgAiAEBEhUKCGV2ZW50X2lkGAMgASgJSAGIAQEaKQoERGF0YRIOCgZlbnRpdHkYASABKAkSEQoJZW50aXR5X2lkGAIgASgJQhIKEF9vcmdhbml6YXRpb25faWRCCwoJX2V2ZW50X2lkIhYKFEVuYWJsZUVudGl0eVJlc3BvbnNlItoBChREaXNhYmxlRW50aXR5UmVxdWVzdBJBCghlbnRpdGllcxgBIAMoCzIvLnN0cmVhbWxheWVyLnRyaWdnZXJzLkRpc2FibGVFbnRpdHlSZXF1ZXN0LkRhdGESHAoPb3JnYW5pemF0aW9uX2lkGAIgASgJSACIAQESFQoIZXZlbnRfaWQYAyABKAlIAYgBARopCgREYXRhEg4KBmVudGl0eRgBIAEoCRIRCgllbnRpdHlfaWQYAiABKAlCEgoQX29yZ2FuaXphdGlvbl9pZEILCglfZXZlbnRfaWQiFwoVRGlzYWJsZUVudGl0eVJlc3BvbnNlIiYKFUdldFNwb3J0TGltaXRzUmVxdWVzdBINCgVzcG9ydBgBIAEoCSJLChZHZXRTcG9ydExpbWl0c1Jlc3BvbnNlEjEKBmxpbWl0cxgBIAMoCzIhLnN0cmVhbWxheWVyLnRyaWdnZXJzLlN0dWRpb0xpbWl0IpsCChZTZXRFbnRpdHlMaW1pdHNSZXF1ZXN0Eg4KBmVudGl0eRgBIAEoCRIRCgllbnRpdHlfaWQYAiABKAkSSAoGbGltaXRzGAMgAygLMjguc3RyZWFtbGF5ZXIudHJpZ2dlcnMuU2V0RW50aXR5TGltaXRzUmVxdWVzdC5MaW1pdHNFbnRyeRIPCgdlbmFibGVkGAQgASgIEhwKD29yZ2FuaXphdGlvbl9pZBgFIAEoCUgAiAEBEhUKCGV2ZW50X2lkGAYgASgJSAGIAQEaLQoLTGltaXRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4AUISChBfb3JnYW5pemF0aW9uX2lkQgsKCV9ldmVudF9pZCIZChdTZXRFbnRpdHlMaW1pdHNSZXNwb25zZSI7ChZHZXRFbnRpdHlMaW1pdHNSZXF1ZXN0Eg4KBmVudGl0eRgBIAEoCRIRCgllbnRpdHlfaWQYAiABKAkipAEKF0dldEVudGl0eUxpbWl0c1Jlc3BvbnNlEkkKBmxpbWl0cxgBIAMoCzI5LnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldEVudGl0eUxpbWl0c1Jlc3BvbnNlLkxpbWl0c0VudHJ5Eg8KB2VuYWJsZWQYAiABKAgaLQoLTGltaXRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASqFAQoVVXNlQ29uZGl0aW9uVGhyZXNob2xkEiEKHVVTRV9DT05ESVRJT05fVEhSRVNIT0xEX1VOU0VUEAASIwofVVNFX0NPTkRJVElPTl9USFJFU0hPTERfRU5BQkxFRBABEiQKIFVTRV9DT05ESVRJT05fVEhSRVNIT0xEX0RJU0FCTEVEEAIqcQoQVXNlVHJpZ2dlckxpbWl0cxIcChhVU0VfVFJJR0dFUl9MSU1JVFNfVU5TRVQQABIeChpVU0VfVFJJR0dFUl9MSU1JVFNfRU5BQkxFRBABEh8KG1VTRV9UUklHR0VSX0xJTUlUU19ESVNBQkxFRBACKoMCCgtTdHVkaW9JbnB1dBIWChJTVFVESU9fSU5QVVRfVU5TRVQQABIXChNTVFVESU9fSU5QVVRfU0VMRUNUEAESHQoZU1RVRElPX0lOUFVUX1NFTEVDVF9NVUxUSRACEh0KGVNUVURJT19JTlBVVF9USU1FX01JTlVURVMQAxIXChNTVFVESU9fSU5QVVRfU1RSSU5HEAQSFwoTU1RVRElPX0lOUFVUX05VTUJFUhAFEhcKE1NUVURJT19JTlBVVF9QT0lOVFMQBhIhCh1TVFVESU9fSU5QVVRfREFURV9USU1FX1BJQ0tFUhAHEhcKE1NUVURJT19JTlBVVF9SRVBFQVQQCDLGFgoIVHJpZ2dlcnMSgwEKC0dldE1ldGFkYXRhEiguc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0TWV0YWRhdGFSZXF1ZXN0Gikuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0TWV0YWRhdGFSZXNwb25zZSIfiqYdE3N0dWRpby5tZXRhZGF0YS5nZXSgph0CqKYdARKLAQoNQ3JlYXRlVHJpZ2dlchIqLnN0cmVhbWxheWVyLnRyaWdnZXJzLkNyZWF0ZVRyaWdnZXJSZXF1ZXN0Gisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ3JlYXRlVHJpZ2dlclJlc3BvbnNlIiGKph0Vc3R1ZGlvLnRyaWdnZXIuY3JlYXRloKYdAqimHQESkwEKDkNyZWF0ZVRyaWdnZXJzEisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ3JlYXRlVHJpZ2dlcnNSZXF1ZXN0Giwuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ3JlYXRlVHJpZ2dlcnNSZXNwb25zZSImiqYdGnN0dWRpby50cmlnZ2VyLmNyZWF0ZS5tYW55oKYdAqimHQESiwEKDVVwZGF0ZVRyaWdnZXISKi5zdHJlYW1sYXllci50cmlnZ2Vycy5VcGRhdGVUcmlnZ2VyUmVxdWVzdBorLnN0cmVhbWxheWVyLnRyaWdnZXJzLlVwZGF0ZVRyaWdnZXJSZXNwb25zZSIhiqYdFXN0dWRpby50cmlnZ2VyLnVwZGF0ZaCmHQKoph0BEosBCg1FbmFibGVUcmlnZ2VyEiouc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRW5hYmxlVHJpZ2dlclJlcXVlc3QaKy5zdHJlYW1sYXllci50cmlnZ2Vycy5FbmFibGVUcmlnZ2VyUmVzcG9uc2UiIYqmHRVzdHVkaW8udHJpZ2dlci5lbmFibGWgph0CqKYdARKPAQoORGlzYWJsZVRyaWdnZXISKy5zdHJlYW1sYXllci50cmlnZ2Vycy5EaXNhYmxlVHJpZ2dlclJlcXVlc3QaLC5zdHJlYW1sYXllci50cmlnZ2Vycy5EaXNhYmxlVHJpZ2dlclJlc3BvbnNlIiKKph0Wc3R1ZGlvLnRyaWdnZXIuZGlzYWJsZaCmHQKoph0BEosBCg1EZWxldGVUcmlnZ2VyEiouc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRGVsZXRlVHJpZ2dlclJlcXVlc3QaKy5zdHJlYW1sYXllci50cmlnZ2Vycy5EZWxldGVUcmlnZ2VyUmVzcG9uc2UiIYqmHRVzdHVkaW8udHJpZ2dlci5kZWxldGWgph0CqKYdARJ/CgpHZXRUcmlnZ2VyEicuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0VHJpZ2dlclJlcXVlc3QaKC5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRUcmlnZ2VyUmVzcG9uc2UiHoqmHRJzdHVkaW8udHJpZ2dlci5nZXSgph0CqKYdARKFAQoMTGlzdFRyaWdnZXJzEikuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuTGlzdFRyaWdnZXJzUmVxdWVzdBopLnN0cmVhbWxheWVyLnRyaWdnZXJzLkxpc3RUcmlnZ2VyUmVzcG9uc2UiH4qmHRNzdHVkaW8udHJpZ2dlci5saXN0oKYdAqimHQESggEKCVN1YnNjcmliZRImLnN0cmVhbWxheWVyLnRyaWdnZXJzLlN1YnNjcmliZVJlcXVlc3QaJy5zdHJlYW1sYXllci50cmlnZ2Vycy5TdWJzY3JpYmVSZXNwb25zZSIkiqYdGHN0dWRpby50cmlnZ2VyLnN1YnNjcmliZaCmHQKoph0BEp8BChJUcmlnZ2VyQWN0aXZhdGlvbnMSLy5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyQWN0aXZhdGlvbnNSZXF1ZXN0GjAuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlckFjdGl2YXRpb25zUmVzcG9uc2UiJoqmHRpzdHVkaW8udHJpZ2dlci5hY3RpdmF0aW9uc6CmHQKoph0BEpkBChFMaXN0U3Vic2NyaXB0aW9ucxIuLnN0cmVhbWxheWVyLnRyaWdnZXJzLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdBouLnN0cmVhbWxheWVyLnRyaWdnZXJzLkxpc3RTdWJzY3JpcHRpb25SZXNwb25zZSIkiqYdGHN0dWRpby5zdWJzY3JpcHRpb24ubGlzdKCmHQKoph0BEp8BChJDYW5jZWxTdWJzY3JpcHRpb24SLy5zdHJlYW1sYXllci50cmlnZ2Vycy5DYW5jZWxTdWJzY3JpcHRpb25SZXF1ZXN0GjAuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ2FuY2VsU3Vic2NyaXB0aW9uUmVzcG9uc2UiJoqmHRpzdHVkaW8uc3Vic2NyaXB0aW9uLmNhbmNlbKCmHQKoph0BEocBCgxVcGRhdGVFbnRpdHkSKS5zdHJlYW1sYXllci50cmlnZ2Vycy5VcGRhdGVFbnRpdHlSZXF1ZXN0Giouc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXBkYXRlRW50aXR5UmVzcG9uc2UiIIqmHRRzdHVkaW8uZW50aXR5LnVwZGF0ZaCmHQKoph0BEnsKCUdldEVudGl0eRImLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldEVudGl0eVJlcXVlc3QaJy5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRFbnRpdHlSZXNwb25zZSIdiqYdEXN0dWRpby5lbnRpdHkuZ2V0oKYdAqimHQEShwEKDEVuYWJsZUVudGl0eRIpLnN0cmVhbWxheWVyLnRyaWdnZXJzLkVuYWJsZUVudGl0eVJlcXVlc3QaKi5zdHJlYW1sYXllci50cmlnZ2Vycy5FbmFibGVFbnRpdHlSZXNwb25zZSIgiqYdFHN0dWRpby5lbnRpdHkuZW5hYmxloKYdAqimHQESiwEKDURpc2FibGVFbnRpdHkSKi5zdHJlYW1sYXllci50cmlnZ2Vycy5EaXNhYmxlRW50aXR5UmVxdWVzdBorLnN0cmVhbWxheWVyLnRyaWdnZXJzLkRpc2FibGVFbnRpdHlSZXNwb25zZSIhiqYdFXN0dWRpby5lbnRpdHkuZGlzYWJsZaCmHQKoph0BEooBCg5HZXRTcG9ydExpbWl0cxIrLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldFNwb3J0TGltaXRzUmVxdWVzdBosLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldFNwb3J0TGltaXRzUmVzcG9uc2UiHYqmHRFzdHVkaW8ubGltaXRzLmdldKCmHQKoph0BEpQBCg9TZXRFbnRpdHlMaW1pdHMSLC5zdHJlYW1sYXllci50cmlnZ2Vycy5TZXRFbnRpdHlMaW1pdHNSZXF1ZXN0Gi0uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuU2V0RW50aXR5TGltaXRzUmVzcG9uc2UiJIqmHRhzdHVkaW8uZW50aXR5LnNldC1saW1pdHOgph0CqKYdARKUAQoPR2V0RW50aXR5TGltaXRzEiwuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0RW50aXR5TGltaXRzUmVxdWVzdBotLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldEVudGl0eUxpbWl0c1Jlc3BvbnNlIiSKph0Yc3R1ZGlvLmVudGl0eS5nZXQtbGltaXRzoKYdAqimHQEaDIq1GAh0cmlnZ2Vyc0J9Chhjb20uc3RyZWFtbGF5ZXIudHJpZ2dlcnNCGFN0cmVhbUxheWVyVHJpZ2dlcnNQcm90b1ABWjxnaXRodWIuY29tL3N0cmVhbWxheWVyL3NsLXByb3RvZmlsZXMvdjQvdHJpZ2dlcnM7c2xfdHJpZ2dlcnOiAgZTTF9BUEliBnByb3RvMw", [file_streamlayer_common_streamlayer_common]);
12
+ fileDesc("CiNzdHJlYW1sYXllci90cmlnZ2Vycy90cmlnZ2Vycy5wcm90bxIUc3RyZWFtbGF5ZXIudHJpZ2dlcnMiuQQKB1RyaWdnZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRINCgVzY29wZRgEIAEoCRIQCghzY29wZV9pZBgFIAEoCRIRCglhY3RpdmF0ZWQYBiABKAgSDgoGZW50aXR5GAcgASgJEhEKCWVudGl0eV9pZBgIIAEoCRIQCghkaXNhYmxlZBgJIAEoCBIRCgl0aHJlc2hvbGQYCiABKAUSFwoPZGlzYWJsZWRfZW50aXR5GAsgASgIEhkKEXVzZV9lbnRpdHlfbGltaXRzGAwgASgIEkwKF3VzZV9jb25kaXRpb25fdGhyZXNob2xkGA0gASgOMisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXNlQ29uZGl0aW9uVGhyZXNob2xkEjoKCnVzZV9saW1pdHMYDiABKA4yJi5zdHJlYW1sYXllci50cmlnZ2Vycy5Vc2VUcmlnZ2VyTGltaXRzEjsKCGFic3RyYWN0GA8gASgOMikuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQWJzdHJhY3RUcmlnZ2VyTW9kZRISCgVzcG9ydBgQIAEoCUgAiAEBEhwKD2Rpc2FibGVkX3JlYXNvbhgRIAEoCUgBiAEBEiAKE2Fic3RyYWN0X3RyaWdnZXJfaWQYEiABKAlIAogBAUIICgZfc3BvcnRCEgoQX2Rpc2FibGVkX3JlYXNvbkIWChRfYWJzdHJhY3RfdHJpZ2dlcl9pZCJ4CgVFdmVudBIKCgJpZBgBIAEoCRISCgpkYXRhc291cmNlGAIgASgJEg0KBXNjb3BlGAMgASgJEhAKCHNjb3BlX2lkGAQgASgJEgwKBG5hbWUYBSABKAkSDQoFdmFsdWUYBiABKAkSEQoJdGltZXN0YW1wGAcgASgDImcKFlRyaWdnZXJDb25kaXRpb25PcHRpb24SDQoFZXZlbnQYASABKAkSDwoHY29tcGFyZRgCIAEoCRIMCgR0eXBlGAMgASgJEg8KB3RhcmdldHMYBCADKAkSDgoGcGFyZW50GAUgASgJIpcEChBUcmlnZ2VyQ29uZGl0aW9uEgoKAmlkGAEgASgJEhcKCnRyaWdnZXJfaWQYAiABKAlIAIgBARISCgVldmVudBgDIAEoCUgBiAEBEhcKCmRhdGFzb3VyY2UYBCABKAlIAogBARISCgVzY29wZRgFIAEoCUgDiAEBEhUKCHNjb3BlX2lkGAYgASgJSASIAQESFAoHY29tcGFyZRgHIAEoCUgFiAEBEhEKBHR5cGUYCCABKAlIBogBARIPCgd0YXJnZXRzGAkgAygJEhQKB2N1cnJlbnQYCiABKAlIB4gBARIRCglhY3RpdmF0ZWQYCyABKAgSGAoLY2hhaW5fb3JkZXIYDCABKAVICIgBARIcCg9jaGFpbl9vcGVyYXRpb24YDSABKAlICYgBARIoCgNsb2cYDiADKAsyGy5zdHJlYW1sYXllci50cmlnZ2Vycy5FdmVudBI9CgdvcHRpb25zGA8gAygLMiwuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlckNvbmRpdGlvbk9wdGlvbkINCgtfdHJpZ2dlcl9pZEIICgZfZXZlbnRCDQoLX2RhdGFzb3VyY2VCCAoGX3Njb3BlQgsKCV9zY29wZV9pZEIKCghfY29tcGFyZUIHCgVfdHlwZUIKCghfY3VycmVudEIOCgxfY2hhaW5fb3JkZXJCEgoQX2NoYWluX29wZXJhdGlvbiLPAwoURXNzZW50aWFsVHJpZ2dlckRhdGESDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRISCgpkYXRhc291cmNlGAMgASgJEg0KBXNjb3BlGAQgASgJEhAKCHNjb3BlX2lkGAUgASgJEg4KBmVudGl0eRgGIAEoCRIRCgllbnRpdHlfaWQYByABKAkSEAoIZGlzYWJsZWQYCCABKAgSEQoJdGhyZXNob2xkGAkgASgFEhcKD2Rpc2FibGVkX2VudGl0eRgKIAEoCBIZChF1c2VfZW50aXR5X2xpbWl0cxgLIAEoCBJMChd1c2VfY29uZGl0aW9uX3RocmVzaG9sZBgMIAEoDjIrLnN0cmVhbWxheWVyLnRyaWdnZXJzLlVzZUNvbmRpdGlvblRocmVzaG9sZBI6Cgp1c2VfbGltaXRzGA0gASgOMiYuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXNlVHJpZ2dlckxpbWl0cxI7CghhYnN0cmFjdBgOIAEoDjIpLnN0cmVhbWxheWVyLnRyaWdnZXJzLkFic3RyYWN0VHJpZ2dlck1vZGUSEgoFc3BvcnQYDyABKAlIAIgBAUIICgZfc3BvcnQioQEKFkVzc2VudGlhbENvbmRpdGlvbkRhdGESDQoFZXZlbnQYASABKAkSDwoHY29tcGFyZRgCIAEoCRIXCg9jaGFpbl9vcGVyYXRpb24YAyABKAkSDwoHdGFyZ2V0cxgEIAMoCRI9CgdvcHRpb25zGAUgAygLMiwuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlckNvbmRpdGlvbk9wdGlvbiLzAgoVVHJpZ2dlcldpdGhDb25kaXRpb25zEi4KB3RyaWdnZXIYASABKAsyHS5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyEjoKCmNvbmRpdGlvbnMYAiADKAsyJi5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyQ29uZGl0aW9uEkcKBmxpbWl0cxgDIAMoCzI3LnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXJXaXRoQ29uZGl0aW9ucy5MaW1pdHNFbnRyeRJHCgZjb3VudHMYBCADKAsyNy5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyV2l0aENvbmRpdGlvbnMuQ291bnRzRW50cnkaLQoLTGltaXRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ARotCgtDb3VudHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAU6AjgBItkCChNUcmlnZ2VyU3Vic2NyaXB0aW9uEgoKAmlkGAEgASgJEhIKCnRyaWdnZXJfaWQYAiABKAkSDQoFcm91dGUYAyABKAkSDgoGZW50aXR5GAQgASgJEhEKCWVudGl0eV9pZBgFIAEoCRJHCgdwYXlsb2FkGAYgAygLMjYuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlclN1YnNjcmlwdGlvbi5QYXlsb2FkRW50cnkSRwoHb3B0aW9ucxgHIAMoCzI2LnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXJTdWJzY3JpcHRpb24uT3B0aW9uc0VudHJ5Gi4KDFBheWxvYWRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGi4KDE9wdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIssCChlFc3NlbnRpYWxTdWJzY3JpcHRpb25EYXRhEg0KBXJvdXRlGAEgASgJEg4KBmVudGl0eRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkSTQoHcGF5bG9hZBgEIAMoCzI8LnN0cmVhbWxheWVyLnRyaWdnZXJzLkVzc2VudGlhbFN1YnNjcmlwdGlvbkRhdGEuUGF5bG9hZEVudHJ5Ek0KB29wdGlvbnMYBSADKAsyPC5zdHJlYW1sYXllci50cmlnZ2Vycy5Fc3NlbnRpYWxTdWJzY3JpcHRpb25EYXRhLk9wdGlvbnNFbnRyeRouCgxQYXlsb2FkRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARouCgxPcHRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJCChBTdHVkaW9UYXJnZXRNZXRhEhcKD3BsYXllcl9wb3NpdGlvbhgBIAEoCRIVCg1wbGF5ZXJfbnVtYmVyGAIgASgJIs4BCgxTdHVkaW9UYXJnZXQSDQoFbGFiZWwYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSCgoCaWQYAyABKAkSDQoFZ3JvdXAYBCABKAkSOQoEbWV0YRgFIAEoCzImLnN0cmVhbWxheWVyLnRyaWdnZXJzLlN0dWRpb1RhcmdldE1ldGFIAIgBARI7CghhYnN0cmFjdBgGIAEoDjIpLnN0cmVhbWxheWVyLnRyaWdnZXJzLkFic3RyYWN0VHJpZ2dlck1vZGVCBwoFX21ldGEiVQoLU3R1ZGlvTGltaXQSDQoFbGltaXQYASABKAkSDQoFbGFiZWwYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24icgoSR2V0TWV0YWRhdGFSZXF1ZXN0EhAKCGV2ZW50X2lkGAEgASgJEg0KBXNwb3J0GAIgASgJEjsKCGFic3RyYWN0GAMgASgOMikuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQWJzdHJhY3RUcmlnZ2VyTW9kZSLtBwoTR2V0TWV0YWRhdGFSZXNwb25zZRJLCgRkYXRhGAEgASgLMj0uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0TWV0YWRhdGFSZXNwb25zZS5TdHVkaW9Db25kaXRpb25EYXRhGuMBCgtTdHVkaW9FdmVudBIKCgJpZBgBIAEoCRINCgVzcG9ydBgCIAEoCRIPCgdwcmltYXJ5GAMgASgIEjAKBWlucHV0GAQgASgOMiEuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuU3R1ZGlvSW5wdXQSDQoFbGFiZWwYBSABKAkSGQoRcHJlZmVycmVkX29wdGlvbnMYBiADKAkSDwoHY29tcGFyZRgHIAMoCRIaCg10YXJnZXRfc291cmNlGAggASgJSACIAQESDQoFZ3JvdXAYCSABKAlCEAoOX3RhcmdldF9zb3VyY2UaQQoKVGFyZ2V0TGlzdBIzCgd0YXJnZXRzGAEgAygLMiIuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuU3R1ZGlvVGFyZ2V0GkQKBEdhbWUSCgoCaWQYASABKAkSDQoFc3BvcnQYAiABKAkSEgoKZGF0YXNvdXJjZRgDIAEoCRINCgVzY29wZRgEIAEoCRqZBAoTU3R1ZGlvQ29uZGl0aW9uRGF0YRINCgVpbmRleBgBIAMoCRJZCgZldmVudHMYAiADKAsySS5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRNZXRhZGF0YVJlc3BvbnNlLlN0dWRpb0NvbmRpdGlvbkRhdGEuRXZlbnRzRW50cnkSWwoHc291cmNlcxgDIAMoCzJKLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldE1ldGFkYXRhUmVzcG9uc2UuU3R1ZGlvQ29uZGl0aW9uRGF0YS5Tb3VyY2VzRW50cnkSPAoEZ2FtZRgEIAEoCzIuLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldE1ldGFkYXRhUmVzcG9uc2UuR2FtZRIxCgZsaW1pdHMYBSADKAsyIS5zdHJlYW1sYXllci50cmlnZ2Vycy5TdHVkaW9MaW1pdBpkCgtFdmVudHNFbnRyeRILCgNrZXkYASABKAkSRAoFdmFsdWUYAiABKAsyNS5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRNZXRhZGF0YVJlc3BvbnNlLlN0dWRpb0V2ZW50OgI4ARpkCgxTb3VyY2VzRW50cnkSCwoDa2V5GAEgASgJEkMKBXZhbHVlGAIgASgLMjQuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0TWV0YWRhdGFSZXNwb25zZS5UYXJnZXRMaXN0OgI4ASLiAgoUQ3JlYXRlVHJpZ2dlclJlcXVlc3QSOwoHdHJpZ2dlchgBIAEoCzIqLnN0cmVhbWxheWVyLnRyaWdnZXJzLkVzc2VudGlhbFRyaWdnZXJEYXRhEkAKCmNvbmRpdGlvbnMYAiADKAsyLC5zdHJlYW1sYXllci50cmlnZ2Vycy5Fc3NlbnRpYWxDb25kaXRpb25EYXRhEkYKBmxpbWl0cxgDIAMoCzI2LnN0cmVhbWxheWVyLnRyaWdnZXJzLkNyZWF0ZVRyaWdnZXJSZXF1ZXN0LkxpbWl0c0VudHJ5EhwKD29yZ2FuaXphdGlvbl9pZBgEIAEoCUgAiAEBEhUKCGV2ZW50X2lkGAUgASgJSAGIAQEaLQoLTGltaXRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4AUISChBfb3JnYW5pemF0aW9uX2lkQgsKCV9ldmVudF9pZCKFAQoVQ3JlYXRlVHJpZ2dlclJlc3BvbnNlEkQKBGRhdGEYASABKAsyNi5zdHJlYW1sYXllci50cmlnZ2Vycy5DcmVhdGVUcmlnZ2VyUmVzcG9uc2UuQXR0cmlidXRlcxomCgpBdHRyaWJ1dGVzEgoKAmlkGAEgASgJEgwKBHR5cGUYAiABKAkitQcKFUNyZWF0ZVRyaWdnZXJzUmVxdWVzdBJTCgRkYXRhGAEgASgLMkUuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ3JlYXRlVHJpZ2dlcnNSZXF1ZXN0LkNyZWF0ZVRyaWdnZXJzUmVxdWVzdERhdGESHAoPb3JnYW5pemF0aW9uX2lkGAIgASgJSACIAQESFQoIZXZlbnRfaWQYAyABKAlIAYgBARqXAgoPVW5pcVRyaWdnZXJEYXRhEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIZGlzYWJsZWQYAyABKAgSEQoJdGhyZXNob2xkGAQgASgFEhcKD2Rpc2FibGVkX2VudGl0eRgFIAEoCBIZChF1c2VfZW50aXR5X2xpbWl0cxgGIAEoCBJMChd1c2VfY29uZGl0aW9uX3RocmVzaG9sZBgHIAEoDjIrLnN0cmVhbWxheWVyLnRyaWdnZXJzLlVzZUNvbmRpdGlvblRocmVzaG9sZBI6Cgp1c2VfbGltaXRzGAggASgOMiYuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXNlVHJpZ2dlckxpbWl0cxqZAgoHVHJpZ2dlchJMCgd0cmlnZ2VyGAEgASgLMjsuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ3JlYXRlVHJpZ2dlcnNSZXF1ZXN0LlVuaXFUcmlnZ2VyRGF0YRJACgpjb25kaXRpb25zGAIgAygLMiwuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRXNzZW50aWFsQ29uZGl0aW9uRGF0YRJPCgZsaW1pdHMYAyADKAsyPy5zdHJlYW1sYXllci50cmlnZ2Vycy5DcmVhdGVUcmlnZ2Vyc1JlcXVlc3QuVHJpZ2dlci5MaW1pdHNFbnRyeRotCgtMaW1pdHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAU6AjgBGroBChlDcmVhdGVUcmlnZ2Vyc1JlcXVlc3REYXRhEhIKCmRhdGFzb3VyY2UYAyABKAkSDQoFc2NvcGUYBCABKAkSEAoIc2NvcGVfaWQYBSABKAkSDgoGZW50aXR5GAYgASgJEhEKCWVudGl0eV9pZBgHIAEoCRJFCgh0cmlnZ2VycxgIIAMoCzIzLnN0cmVhbWxheWVyLnRyaWdnZXJzLkNyZWF0ZVRyaWdnZXJzUmVxdWVzdC5UcmlnZ2VyQhIKEF9vcmdhbml6YXRpb25faWRCCwoJX2V2ZW50X2lkIocBChZDcmVhdGVUcmlnZ2Vyc1Jlc3BvbnNlEkUKBGRhdGEYASADKAsyNy5zdHJlYW1sYXllci50cmlnZ2Vycy5DcmVhdGVUcmlnZ2Vyc1Jlc3BvbnNlLkF0dHJpYnV0ZXMaJgoKQXR0cmlidXRlcxIKCgJpZBgBIAEoCRIMCgR0eXBlGAIgASgJIqUDChRVcGRhdGVUcmlnZ2VyUmVxdWVzdBJCCgd1cGRhdGVzGAEgAygLMjEuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXBkYXRlVHJpZ2dlclJlcXVlc3QuVXBkYXRlEhwKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUgAiAEBEhUKCGV2ZW50X2lkGAMgASgJSAGIAQEa8gEKBlVwZGF0ZRIuCgd0cmlnZ2VyGAEgASgLMh0uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlchI6Cgpjb25kaXRpb25zGAIgAygLMiYuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlckNvbmRpdGlvbhJNCgZsaW1pdHMYAyADKAsyPS5zdHJlYW1sYXllci50cmlnZ2Vycy5VcGRhdGVUcmlnZ2VyUmVxdWVzdC5VcGRhdGUuTGltaXRzRW50cnkaLQoLTGltaXRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4AUISChBfb3JnYW5pemF0aW9uX2lkQgsKCV9ldmVudF9pZCIXChVVcGRhdGVUcmlnZ2VyUmVzcG9uc2UieAoURW5hYmxlVHJpZ2dlclJlcXVlc3QSCgoCaWQYASABKAkSHAoPb3JnYW5pemF0aW9uX2lkGAIgASgJSACIAQESFQoIZXZlbnRfaWQYAyABKAlIAYgBAUISChBfb3JnYW5pemF0aW9uX2lkQgsKCV9ldmVudF9pZCIXChVFbmFibGVUcmlnZ2VyUmVzcG9uc2UieQoVRGlzYWJsZVRyaWdnZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhwKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUgAiAEBEhUKCGV2ZW50X2lkGAMgASgJSAGIAQFCEgoQX29yZ2FuaXphdGlvbl9pZEILCglfZXZlbnRfaWQiGAoWRGlzYWJsZVRyaWdnZXJSZXNwb25zZSJ4ChREZWxldGVUcmlnZ2VyUmVxdWVzdBIKCgJpZBgBIAEoCRIcCg9vcmdhbml6YXRpb25faWQYAiABKAlIAIgBARIVCghldmVudF9pZBgDIAEoCUgBiAEBQhIKEF9vcmdhbml6YXRpb25faWRCCwoJX2V2ZW50X2lkIoUBChVEZWxldGVUcmlnZ2VyUmVzcG9uc2USRAoEZGF0YRgBIAEoCzI2LnN0cmVhbWxheWVyLnRyaWdnZXJzLkRlbGV0ZVRyaWdnZXJSZXNwb25zZS5BdHRyaWJ1dGVzGiYKCkF0dHJpYnV0ZXMSCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCSIfChFHZXRUcmlnZ2VyUmVxdWVzdBIKCgJpZBgBIAEoCSLAAQoSR2V0VHJpZ2dlclJlc3BvbnNlEkEKBGRhdGEYASABKAsyMy5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRUcmlnZ2VyUmVzcG9uc2UuQXR0cmlidXRlcxpnCgpBdHRyaWJ1dGVzEgoKAmlkGAEgASgJEgwKBHR5cGUYAiABKAkSPwoKYXR0cmlidXRlcxgDIAEoCzIrLnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXJXaXRoQ29uZGl0aW9ucyKZAwoRVHJpZ2dlckFjdGl2YXRpb24SFAoMYWN0aXZhdGVkX2F0GAEgASgFEhMKC3NuYXBzaG90X2lkGAIgASgJEiEKGWFjdGl2YXRlZF9jb25kaXRpb25fY291bnQYAyABKAUSDgoGZW50aXR5GAQgASgJEhEKCWVudGl0eV9pZBgFIAEoCRJWCgpnYW1lX2V2ZW50GAYgASgLMkIuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlckFjdGl2YXRpb24uVHJpZ2dlckFjdGl2YXRpb25HYW1lRXZlbnQSLgoHdHJpZ2dlchgHIAEoCzIdLnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXISOgoKY29uZGl0aW9ucxgIIAMoCzImLnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXJDb25kaXRpb24aTwoaVHJpZ2dlckFjdGl2YXRpb25HYW1lRXZlbnQSDAoEdGltZRgBIAEoCRIOCgZwZXJpb2QYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkieAoZVHJpZ2dlckFjdGl2YXRpb25zUmVxdWVzdBIPCgJpZBgBIAEoCUgAiAEBEhYKCWVudGl0eV9pZBgCIAEoCUgBiAEBEg0KBWxpbWl0GAMgASgFEg4KBm9mZnNldBgEIAEoBUIFCgNfaWRCDAoKX2VudGl0eV9pZCJTChpUcmlnZ2VyQWN0aXZhdGlvbnNSZXNwb25zZRI1CgRkYXRhGAEgAygLMicuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlckFjdGl2YXRpb24iOAoTTGlzdFRyaWdnZXJzUmVxdWVzdBIOCgZlbnRpdHkYASABKAkSEQoJZW50aXR5X2lkGAIgASgJIsIBChNMaXN0VHJpZ2dlclJlc3BvbnNlEkIKBGRhdGEYASADKAsyNC5zdHJlYW1sYXllci50cmlnZ2Vycy5MaXN0VHJpZ2dlclJlc3BvbnNlLkF0dHJpYnV0ZXMaZwoKQXR0cmlidXRlcxIKCgJpZBgBIAEoCRIMCgR0eXBlGAIgASgJEj8KCmF0dHJpYnV0ZXMYAyABKAsyKy5zdHJlYW1sYXllci50cmlnZ2Vycy5UcmlnZ2VyV2l0aENvbmRpdGlvbnMibQoQU3Vic2NyaWJlUmVxdWVzdBISCgp0cmlnZ2VyX2lkGAEgASgJEkUKDHN1YnNjcmlwdGlvbhgCIAEoCzIvLnN0cmVhbWxheWVyLnRyaWdnZXJzLkVzc2VudGlhbFN1YnNjcmlwdGlvbkRhdGEifQoRU3Vic2NyaWJlUmVzcG9uc2USQAoEZGF0YRgBIAEoCzIyLnN0cmVhbWxheWVyLnRyaWdnZXJzLlN1YnNjcmliZVJlc3BvbnNlLkF0dHJpYnV0ZXMaJgoKQXR0cmlidXRlcxIKCgJpZBgBIAEoCRIMCgR0eXBlGAIgASgJIlEKGExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdBISCgp0cmlnZ2VyX2lkGAEgASgJEg4KBmVudGl0eRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkizgEKGExpc3RTdWJzY3JpcHRpb25SZXNwb25zZRJJCgRkYXRhGAEgAygLMjsuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuTGlzdFN1YnNjcmlwdGlvblJlc3BvbnNlLlJlc3BvbnNlSXRlbRpnCgxSZXNwb25zZUl0ZW0SCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCRI9CgphdHRyaWJ1dGVzGAMgASgLMikuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlclN1YnNjcmlwdGlvbiInChlDYW5jZWxTdWJzY3JpcHRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIo8BChpDYW5jZWxTdWJzY3JpcHRpb25SZXNwb25zZRJJCgRkYXRhGAEgASgLMjsuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ2FuY2VsU3Vic2NyaXB0aW9uUmVzcG9uc2UuQXR0cmlidXRlcxomCgpBdHRyaWJ1dGVzEgoKAmlkGAEgASgJEgwKBHR5cGUYAiABKAkipgEKBkVudGl0eRIOCgZlbnRpdHkYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEhAKCGRpc2FibGVkGAMgASgIEjgKBmxpbWl0cxgEIAMoCzIoLnN0cmVhbWxheWVyLnRyaWdnZXJzLkVudGl0eS5MaW1pdHNFbnRyeRotCgtMaW1pdHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAU6AjgBIpcBChNVcGRhdGVFbnRpdHlSZXF1ZXN0EioKBGRhdGEYASADKAsyHC5zdHJlYW1sYXllci50cmlnZ2Vycy5FbnRpdHkSHAoPb3JnYW5pemF0aW9uX2lkGAIgASgJSACIAQESFQoIZXZlbnRfaWQYAyABKAlIAYgBAUISChBfb3JnYW5pemF0aW9uX2lkQgsKCV9ldmVudF9pZCIWChRVcGRhdGVFbnRpdHlSZXNwb25zZSI1ChBHZXRFbnRpdHlSZXF1ZXN0Eg4KBmVudGl0eRgBIAEoCRIRCgllbnRpdHlfaWQYAiABKAkiPwoRR2V0RW50aXR5UmVzcG9uc2USKgoEZGF0YRgBIAEoCzIcLnN0cmVhbWxheWVyLnRyaWdnZXJzLkVudGl0eSLYAQoTRW5hYmxlRW50aXR5UmVxdWVzdBJACghlbnRpdGllcxgBIAMoCzIuLnN0cmVhbWxheWVyLnRyaWdnZXJzLkVuYWJsZUVudGl0eVJlcXVlc3QuRGF0YRIcCg9vcmdhbml6YXRpb25faWQYAiABKAlIAIgBARIVCghldmVudF9pZBgDIAEoCUgBiAEBGikKBERhdGESDgoGZW50aXR5GAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCUISChBfb3JnYW5pemF0aW9uX2lkQgsKCV9ldmVudF9pZCIWChRFbmFibGVFbnRpdHlSZXNwb25zZSLaAQoURGlzYWJsZUVudGl0eVJlcXVlc3QSQQoIZW50aXRpZXMYASADKAsyLy5zdHJlYW1sYXllci50cmlnZ2Vycy5EaXNhYmxlRW50aXR5UmVxdWVzdC5EYXRhEhwKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUgAiAEBEhUKCGV2ZW50X2lkGAMgASgJSAGIAQEaKQoERGF0YRIOCgZlbnRpdHkYASABKAkSEQoJZW50aXR5X2lkGAIgASgJQhIKEF9vcmdhbml6YXRpb25faWRCCwoJX2V2ZW50X2lkIhcKFURpc2FibGVFbnRpdHlSZXNwb25zZSImChVHZXRTcG9ydExpbWl0c1JlcXVlc3QSDQoFc3BvcnQYASABKAkiSwoWR2V0U3BvcnRMaW1pdHNSZXNwb25zZRIxCgZsaW1pdHMYASADKAsyIS5zdHJlYW1sYXllci50cmlnZ2Vycy5TdHVkaW9MaW1pdCKbAgoWU2V0RW50aXR5TGltaXRzUmVxdWVzdBIOCgZlbnRpdHkYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEkgKBmxpbWl0cxgDIAMoCzI4LnN0cmVhbWxheWVyLnRyaWdnZXJzLlNldEVudGl0eUxpbWl0c1JlcXVlc3QuTGltaXRzRW50cnkSDwoHZW5hYmxlZBgEIAEoCBIcCg9vcmdhbml6YXRpb25faWQYBSABKAlIAIgBARIVCghldmVudF9pZBgGIAEoCUgBiAEBGi0KC0xpbWl0c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAFCEgoQX29yZ2FuaXphdGlvbl9pZEILCglfZXZlbnRfaWQiGQoXU2V0RW50aXR5TGltaXRzUmVzcG9uc2UiOwoWR2V0RW50aXR5TGltaXRzUmVxdWVzdBIOCgZlbnRpdHkYASABKAkSEQoJZW50aXR5X2lkGAIgASgJIqQBChdHZXRFbnRpdHlMaW1pdHNSZXNwb25zZRJJCgZsaW1pdHMYASADKAsyOS5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRFbnRpdHlMaW1pdHNSZXNwb25zZS5MaW1pdHNFbnRyeRIPCgdlbmFibGVkGAIgASgIGi0KC0xpbWl0c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAEiowEKHVJlc29sdmVBYnN0cmFjdFRyaWdnZXJSZXF1ZXN0EhsKE2Fic3RyYWN0X3RyaWdnZXJfaWQYASABKAkSEAoIZXZlbnRfaWQYAiABKAkSDgoGZW50aXR5GAMgASgJEhEKCWVudGl0eV9pZBgEIAEoCRIcCg9vcmdhbml6YXRpb25faWQYBSABKAlIAIgBAUISChBfb3JnYW5pemF0aW9uX2lkIp8CCh5SZXNvbHZlQWJzdHJhY3RUcmlnZ2VyUmVzcG9uc2USUgoEZGF0YRgBIAEoCzI/LnN0cmVhbWxheWVyLnRyaWdnZXJzLlJlc29sdmVBYnN0cmFjdFRyaWdnZXJSZXNwb25zZS5BdHRyaWJ1dGVzSACIAQESOwoKYXBwbGljYWJsZRgCIAEoDjInLnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXJBcHBsaWNhYmxlEhMKBnJlYXNvbhgDIAEoCUgBiAEBGkMKCkF0dHJpYnV0ZXMSCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCRIbChNhYnN0cmFjdF90cmlnZ2VyX2lkGAMgASgJQgcKBV9kYXRhQgkKB19yZWFzb24qhQEKFVVzZUNvbmRpdGlvblRocmVzaG9sZBIhCh1VU0VfQ09ORElUSU9OX1RIUkVTSE9MRF9VTlNFVBAAEiMKH1VTRV9DT05ESVRJT05fVEhSRVNIT0xEX0VOQUJMRUQQARIkCiBVU0VfQ09ORElUSU9OX1RIUkVTSE9MRF9ESVNBQkxFRBACKnEKEFVzZVRyaWdnZXJMaW1pdHMSHAoYVVNFX1RSSUdHRVJfTElNSVRTX1VOU0VUEAASHgoaVVNFX1RSSUdHRVJfTElNSVRTX0VOQUJMRUQQARIfChtVU0VfVFJJR0dFUl9MSU1JVFNfRElTQUJMRUQQAip3ChNBYnN0cmFjdFRyaWdnZXJNb2RlEh8KG0FCU1RSQUNUX1RSSUdHRVJfTU9ERV9VTlNFVBAAEh4KGkFCU1RSQUNUX1RSSUdHRVJfTU9ERV9UUlVFEAESHwobQUJTVFJBQ1RfVFJJR0dFUl9NT0RFX0ZBTFNFEAIqbAoRVHJpZ2dlckFwcGxpY2FibGUSHAoYVFJJR0dFUl9BUFBMSUNBQkxFX1VOU0VUEAASGwoXVFJJR0dFUl9BUFBMSUNBQkxFX1RSVUUQARIcChhUUklHR0VSX0FQUExJQ0FCTEVfRkFMU0UQAiqDAgoLU3R1ZGlvSW5wdXQSFgoSU1RVRElPX0lOUFVUX1VOU0VUEAASFwoTU1RVRElPX0lOUFVUX1NFTEVDVBABEh0KGVNUVURJT19JTlBVVF9TRUxFQ1RfTVVMVEkQAhIdChlTVFVESU9fSU5QVVRfVElNRV9NSU5VVEVTEAMSFwoTU1RVRElPX0lOUFVUX1NUUklORxAEEhcKE1NUVURJT19JTlBVVF9OVU1CRVIQBRIXChNTVFVESU9fSU5QVVRfUE9JTlRTEAYSIQodU1RVRElPX0lOUFVUX0RBVEVfVElNRV9QSUNLRVIQBxIXChNTVFVESU9fSU5QVVRfUkVQRUFUEAgy+RcKCFRyaWdnZXJzEoMBCgtHZXRNZXRhZGF0YRIoLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldE1ldGFkYXRhUmVxdWVzdBopLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldE1ldGFkYXRhUmVzcG9uc2UiH4qmHRNzdHVkaW8ubWV0YWRhdGEuZ2V0oKYdAqimHQESiwEKDUNyZWF0ZVRyaWdnZXISKi5zdHJlYW1sYXllci50cmlnZ2Vycy5DcmVhdGVUcmlnZ2VyUmVxdWVzdBorLnN0cmVhbWxheWVyLnRyaWdnZXJzLkNyZWF0ZVRyaWdnZXJSZXNwb25zZSIhiqYdFXN0dWRpby50cmlnZ2VyLmNyZWF0ZaCmHQKoph0BEpMBCg5DcmVhdGVUcmlnZ2VycxIrLnN0cmVhbWxheWVyLnRyaWdnZXJzLkNyZWF0ZVRyaWdnZXJzUmVxdWVzdBosLnN0cmVhbWxheWVyLnRyaWdnZXJzLkNyZWF0ZVRyaWdnZXJzUmVzcG9uc2UiJoqmHRpzdHVkaW8udHJpZ2dlci5jcmVhdGUubWFueaCmHQKoph0BEosBCg1VcGRhdGVUcmlnZ2VyEiouc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXBkYXRlVHJpZ2dlclJlcXVlc3QaKy5zdHJlYW1sYXllci50cmlnZ2Vycy5VcGRhdGVUcmlnZ2VyUmVzcG9uc2UiIYqmHRVzdHVkaW8udHJpZ2dlci51cGRhdGWgph0CqKYdARKLAQoNRW5hYmxlVHJpZ2dlchIqLnN0cmVhbWxheWVyLnRyaWdnZXJzLkVuYWJsZVRyaWdnZXJSZXF1ZXN0Gisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRW5hYmxlVHJpZ2dlclJlc3BvbnNlIiGKph0Vc3R1ZGlvLnRyaWdnZXIuZW5hYmxloKYdAqimHQESjwEKDkRpc2FibGVUcmlnZ2VyEisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRGlzYWJsZVRyaWdnZXJSZXF1ZXN0Giwuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRGlzYWJsZVRyaWdnZXJSZXNwb25zZSIiiqYdFnN0dWRpby50cmlnZ2VyLmRpc2FibGWgph0CqKYdARKLAQoNRGVsZXRlVHJpZ2dlchIqLnN0cmVhbWxheWVyLnRyaWdnZXJzLkRlbGV0ZVRyaWdnZXJSZXF1ZXN0Gisuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRGVsZXRlVHJpZ2dlclJlc3BvbnNlIiGKph0Vc3R1ZGlvLnRyaWdnZXIuZGVsZXRloKYdAqimHQESfwoKR2V0VHJpZ2dlchInLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldFRyaWdnZXJSZXF1ZXN0Giguc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0VHJpZ2dlclJlc3BvbnNlIh6Kph0Sc3R1ZGlvLnRyaWdnZXIuZ2V0oKYdAqimHQEShQEKDExpc3RUcmlnZ2VycxIpLnN0cmVhbWxheWVyLnRyaWdnZXJzLkxpc3RUcmlnZ2Vyc1JlcXVlc3QaKS5zdHJlYW1sYXllci50cmlnZ2Vycy5MaXN0VHJpZ2dlclJlc3BvbnNlIh+Kph0Tc3R1ZGlvLnRyaWdnZXIubGlzdKCmHQKoph0BEoIBCglTdWJzY3JpYmUSJi5zdHJlYW1sYXllci50cmlnZ2Vycy5TdWJzY3JpYmVSZXF1ZXN0Gicuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuU3Vic2NyaWJlUmVzcG9uc2UiJIqmHRhzdHVkaW8udHJpZ2dlci5zdWJzY3JpYmWgph0CqKYdARKfAQoSVHJpZ2dlckFjdGl2YXRpb25zEi8uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVHJpZ2dlckFjdGl2YXRpb25zUmVxdWVzdBowLnN0cmVhbWxheWVyLnRyaWdnZXJzLlRyaWdnZXJBY3RpdmF0aW9uc1Jlc3BvbnNlIiaKph0ac3R1ZGlvLnRyaWdnZXIuYWN0aXZhdGlvbnOgph0CqKYdARKZAQoRTGlzdFN1YnNjcmlwdGlvbnMSLi5zdHJlYW1sYXllci50cmlnZ2Vycy5MaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3QaLi5zdHJlYW1sYXllci50cmlnZ2Vycy5MaXN0U3Vic2NyaXB0aW9uUmVzcG9uc2UiJIqmHRhzdHVkaW8uc3Vic2NyaXB0aW9uLmxpc3Sgph0CqKYdARKfAQoSQ2FuY2VsU3Vic2NyaXB0aW9uEi8uc3RyZWFtbGF5ZXIudHJpZ2dlcnMuQ2FuY2VsU3Vic2NyaXB0aW9uUmVxdWVzdBowLnN0cmVhbWxheWVyLnRyaWdnZXJzLkNhbmNlbFN1YnNjcmlwdGlvblJlc3BvbnNlIiaKph0ac3R1ZGlvLnN1YnNjcmlwdGlvbi5jYW5jZWygph0CqKYdARKHAQoMVXBkYXRlRW50aXR5Eikuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuVXBkYXRlRW50aXR5UmVxdWVzdBoqLnN0cmVhbWxheWVyLnRyaWdnZXJzLlVwZGF0ZUVudGl0eVJlc3BvbnNlIiCKph0Uc3R1ZGlvLmVudGl0eS51cGRhdGWgph0CqKYdARJ7CglHZXRFbnRpdHkSJi5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRFbnRpdHlSZXF1ZXN0Gicuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuR2V0RW50aXR5UmVzcG9uc2UiHYqmHRFzdHVkaW8uZW50aXR5LmdldKCmHQKoph0BEocBCgxFbmFibGVFbnRpdHkSKS5zdHJlYW1sYXllci50cmlnZ2Vycy5FbmFibGVFbnRpdHlSZXF1ZXN0Giouc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRW5hYmxlRW50aXR5UmVzcG9uc2UiIIqmHRRzdHVkaW8uZW50aXR5LmVuYWJsZaCmHQKoph0BEosBCg1EaXNhYmxlRW50aXR5Eiouc3RyZWFtbGF5ZXIudHJpZ2dlcnMuRGlzYWJsZUVudGl0eVJlcXVlc3QaKy5zdHJlYW1sYXllci50cmlnZ2Vycy5EaXNhYmxlRW50aXR5UmVzcG9uc2UiIYqmHRVzdHVkaW8uZW50aXR5LmRpc2FibGWgph0CqKYdARKKAQoOR2V0U3BvcnRMaW1pdHMSKy5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRTcG9ydExpbWl0c1JlcXVlc3QaLC5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRTcG9ydExpbWl0c1Jlc3BvbnNlIh2Kph0Rc3R1ZGlvLmxpbWl0cy5nZXSgph0CqKYdARKUAQoPU2V0RW50aXR5TGltaXRzEiwuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuU2V0RW50aXR5TGltaXRzUmVxdWVzdBotLnN0cmVhbWxheWVyLnRyaWdnZXJzLlNldEVudGl0eUxpbWl0c1Jlc3BvbnNlIiSKph0Yc3R1ZGlvLmVudGl0eS5zZXQtbGltaXRzoKYdAqimHQESlAEKD0dldEVudGl0eUxpbWl0cxIsLnN0cmVhbWxheWVyLnRyaWdnZXJzLkdldEVudGl0eUxpbWl0c1JlcXVlc3QaLS5zdHJlYW1sYXllci50cmlnZ2Vycy5HZXRFbnRpdHlMaW1pdHNSZXNwb25zZSIkiqYdGHN0dWRpby5lbnRpdHkuZ2V0LWxpbWl0c6CmHQKoph0BErABChZSZXNvbHZlQWJzdHJhY3RUcmlnZ2VyEjMuc3RyZWFtbGF5ZXIudHJpZ2dlcnMuUmVzb2x2ZUFic3RyYWN0VHJpZ2dlclJlcXVlc3QaNC5zdHJlYW1sYXllci50cmlnZ2Vycy5SZXNvbHZlQWJzdHJhY3RUcmlnZ2VyUmVzcG9uc2UiK4qmHR9zdHVkaW8uYWJzdHJhY3QudHJpZ2dlci5yZXNvbHZloKYdAqimHQEaDIq1GAh0cmlnZ2Vyc0J9Chhjb20uc3RyZWFtbGF5ZXIudHJpZ2dlcnNCGFN0cmVhbUxheWVyVHJpZ2dlcnNQcm90b1ABWjxnaXRodWIuY29tL3N0cmVhbWxheWVyL3NsLXByb3RvZmlsZXMvdjQvdHJpZ2dlcnM7c2xfdHJpZ2dlcnOiAgZTTF9BUEliBnByb3RvMw", [file_streamlayer_common_streamlayer_common]);
13
13
 
14
14
  /**
15
15
  * Describes the message streamlayer.triggers.Trigger.
@@ -522,6 +522,27 @@ export const GetEntityLimitsRequestSchema = /*@__PURE__*/
522
522
  export const GetEntityLimitsResponseSchema = /*@__PURE__*/
523
523
  messageDesc(file_streamlayer_triggers_triggers, 53);
524
524
 
525
+ /**
526
+ * Describes the message streamlayer.triggers.ResolveAbstractTriggerRequest.
527
+ * Use `create(ResolveAbstractTriggerRequestSchema)` to create a new message.
528
+ */
529
+ export const ResolveAbstractTriggerRequestSchema = /*@__PURE__*/
530
+ messageDesc(file_streamlayer_triggers_triggers, 54);
531
+
532
+ /**
533
+ * Describes the message streamlayer.triggers.ResolveAbstractTriggerResponse.
534
+ * Use `create(ResolveAbstractTriggerResponseSchema)` to create a new message.
535
+ */
536
+ export const ResolveAbstractTriggerResponseSchema = /*@__PURE__*/
537
+ messageDesc(file_streamlayer_triggers_triggers, 55);
538
+
539
+ /**
540
+ * Describes the message streamlayer.triggers.ResolveAbstractTriggerResponse.Attributes.
541
+ * Use `create(ResolveAbstractTriggerResponse_AttributesSchema)` to create a new message.
542
+ */
543
+ export const ResolveAbstractTriggerResponse_AttributesSchema = /*@__PURE__*/
544
+ messageDesc(file_streamlayer_triggers_triggers, 55, 0);
545
+
525
546
  /**
526
547
  * Describes the enum streamlayer.triggers.UseConditionThreshold.
527
548
  */
@@ -546,11 +567,35 @@ export const UseTriggerLimitsSchema = /*@__PURE__*/
546
567
  export const UseTriggerLimits = /*@__PURE__*/
547
568
  tsEnum(UseTriggerLimitsSchema);
548
569
 
570
+ /**
571
+ * Describes the enum streamlayer.triggers.AbstractTriggerMode.
572
+ */
573
+ export const AbstractTriggerModeSchema = /*@__PURE__*/
574
+ enumDesc(file_streamlayer_triggers_triggers, 2);
575
+
576
+ /**
577
+ * @generated from enum streamlayer.triggers.AbstractTriggerMode
578
+ */
579
+ export const AbstractTriggerMode = /*@__PURE__*/
580
+ tsEnum(AbstractTriggerModeSchema);
581
+
582
+ /**
583
+ * Describes the enum streamlayer.triggers.TriggerApplicable.
584
+ */
585
+ export const TriggerApplicableSchema = /*@__PURE__*/
586
+ enumDesc(file_streamlayer_triggers_triggers, 3);
587
+
588
+ /**
589
+ * @generated from enum streamlayer.triggers.TriggerApplicable
590
+ */
591
+ export const TriggerApplicable = /*@__PURE__*/
592
+ tsEnum(TriggerApplicableSchema);
593
+
549
594
  /**
550
595
  * Describes the enum streamlayer.triggers.StudioInput.
551
596
  */
552
597
  export const StudioInputSchema = /*@__PURE__*/
553
- enumDesc(file_streamlayer_triggers_triggers, 2);
598
+ enumDesc(file_streamlayer_triggers_triggers, 4);
554
599
 
555
600
  /**
556
601
  * @generated from enum streamlayer.triggers.StudioInput