@eide/foir-proto-ts 0.3.8 → 0.4.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 +3 -1
- package/src/integrations/v1/integrations_connect.d.ts +44 -0
- package/src/integrations/v1/integrations_connect.js +44 -0
- package/src/integrations/v1/integrations_pb.d.ts +684 -0
- package/src/integrations/v1/integrations_pb.js +173 -0
- package/src/operations/v1/operations_pb.d.ts +5 -0
- package/src/operations/v1/operations_pb.js +1 -1
- package/src/settings/v1/settings_pb.d.ts +2 -2
- package/src/settings/v1/settings_pb.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eide/foir-proto-ts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./analytics/v1/analytics_pb": "./src/analytics/v1/analytics_pb.js",
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
"./hooks/v1/hooks_connect": "./src/hooks/v1/hooks_connect.js",
|
|
17
17
|
"./identity/v1/identity_pb": "./src/identity/v1/identity_pb.js",
|
|
18
18
|
"./identity/v1/identity_connect": "./src/identity/v1/identity_connect.js",
|
|
19
|
+
"./integrations/v1/integrations_pb": "./src/integrations/v1/integrations_pb.js",
|
|
20
|
+
"./integrations/v1/integrations_connect": "./src/integrations/v1/integrations_connect.js",
|
|
19
21
|
"./models/v1/models_pb": "./src/models/v1/models_pb.js",
|
|
20
22
|
"./models/v1/models_connect": "./src/models/v1/models_connect.js",
|
|
21
23
|
"./notifications/v1/notifications_pb": "./src/notifications/v1/notifications_pb.js",
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// @generated by protoc-gen-connect-es v1.6.1 with parameter "import_extension=js"
|
|
2
|
+
// @generated from file integrations/v1/integrations.proto (package integrations.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
// @ts-nocheck
|
|
5
|
+
|
|
6
|
+
import { GetIntegrationCredentialRequest, GetIntegrationCredentialResponse, WriteIntegrationCredentialRequest, WriteIntegrationCredentialResponse } from "./integrations_pbjs";
|
|
7
|
+
import { MethodKind } from "@bufbuild/protobuf";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @generated from service integrations.v1.IntegrationCredentialsService
|
|
11
|
+
*/
|
|
12
|
+
export declare const IntegrationCredentialsService: {
|
|
13
|
+
readonly typeName: "integrations.v1.IntegrationCredentialsService",
|
|
14
|
+
readonly methods: {
|
|
15
|
+
/**
|
|
16
|
+
* Return the plaintext credential for (project, integration). Requires
|
|
17
|
+
* the caller's capability set to include credentials:read for this
|
|
18
|
+
* integration. On success, updates last_read_at and emits an audit row.
|
|
19
|
+
*
|
|
20
|
+
* @generated from rpc integrations.v1.IntegrationCredentialsService.GetIntegrationCredential
|
|
21
|
+
*/
|
|
22
|
+
readonly getIntegrationCredential: {
|
|
23
|
+
readonly name: "GetIntegrationCredential",
|
|
24
|
+
readonly I: typeof GetIntegrationCredentialRequest,
|
|
25
|
+
readonly O: typeof GetIntegrationCredentialResponse,
|
|
26
|
+
readonly kind: MethodKind.Unary,
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* Encrypt and store a credential for (project, integration). Overwrites
|
|
30
|
+
* any existing value. Requires the caller's capability set to include
|
|
31
|
+
* credentials:write for this integration. Emits an audit row of kind
|
|
32
|
+
* credential_write.
|
|
33
|
+
*
|
|
34
|
+
* @generated from rpc integrations.v1.IntegrationCredentialsService.WriteIntegrationCredential
|
|
35
|
+
*/
|
|
36
|
+
readonly writeIntegrationCredential: {
|
|
37
|
+
readonly name: "WriteIntegrationCredential",
|
|
38
|
+
readonly I: typeof WriteIntegrationCredentialRequest,
|
|
39
|
+
readonly O: typeof WriteIntegrationCredentialResponse,
|
|
40
|
+
readonly kind: MethodKind.Unary,
|
|
41
|
+
},
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// @generated by protoc-gen-connect-es v1.6.1 with parameter "import_extension=js"
|
|
2
|
+
// @generated from file integrations/v1/integrations.proto (package integrations.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
// @ts-nocheck
|
|
5
|
+
|
|
6
|
+
import { GetIntegrationCredentialRequest, GetIntegrationCredentialResponse, WriteIntegrationCredentialRequest, WriteIntegrationCredentialResponse } from "./integrations_pbjs";
|
|
7
|
+
import { MethodKind } from "@bufbuild/protobuf";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @generated from service integrations.v1.IntegrationCredentialsService
|
|
11
|
+
*/
|
|
12
|
+
export const IntegrationCredentialsService = {
|
|
13
|
+
typeName: "integrations.v1.IntegrationCredentialsService",
|
|
14
|
+
methods: {
|
|
15
|
+
/**
|
|
16
|
+
* Return the plaintext credential for (project, integration). Requires
|
|
17
|
+
* the caller's capability set to include credentials:read for this
|
|
18
|
+
* integration. On success, updates last_read_at and emits an audit row.
|
|
19
|
+
*
|
|
20
|
+
* @generated from rpc integrations.v1.IntegrationCredentialsService.GetIntegrationCredential
|
|
21
|
+
*/
|
|
22
|
+
getIntegrationCredential: {
|
|
23
|
+
name: "GetIntegrationCredential",
|
|
24
|
+
I: GetIntegrationCredentialRequest,
|
|
25
|
+
O: GetIntegrationCredentialResponse,
|
|
26
|
+
kind: MethodKind.Unary,
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* Encrypt and store a credential for (project, integration). Overwrites
|
|
30
|
+
* any existing value. Requires the caller's capability set to include
|
|
31
|
+
* credentials:write for this integration. Emits an audit row of kind
|
|
32
|
+
* credential_write.
|
|
33
|
+
*
|
|
34
|
+
* @generated from rpc integrations.v1.IntegrationCredentialsService.WriteIntegrationCredential
|
|
35
|
+
*/
|
|
36
|
+
writeIntegrationCredential: {
|
|
37
|
+
name: "WriteIntegrationCredential",
|
|
38
|
+
I: WriteIntegrationCredentialRequest,
|
|
39
|
+
O: WriteIntegrationCredentialResponse,
|
|
40
|
+
kind: MethodKind.Unary,
|
|
41
|
+
},
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
@@ -0,0 +1,684 @@
|
|
|
1
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "import_extension=js"
|
|
2
|
+
// @generated from file integrations/v1/integrations.proto (package integrations.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
|
|
6
|
+
import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
7
|
+
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Describes the file integrations/v1/integrations.proto.
|
|
11
|
+
*/
|
|
12
|
+
export declare const file_integrations_v1_integrations: GenFile;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Middleware reference. v1 carries only the URL but is defined as a message
|
|
16
|
+
* so additional fields (timeouts, retry hints, etc.) can be added later
|
|
17
|
+
* without a schema migration.
|
|
18
|
+
*
|
|
19
|
+
* @generated from message integrations.v1.IntegrationMiddleware
|
|
20
|
+
*/
|
|
21
|
+
export declare type IntegrationMiddleware = Message<"integrations.v1.IntegrationMiddleware"> & {
|
|
22
|
+
/**
|
|
23
|
+
* @generated from field: string url = 1;
|
|
24
|
+
*/
|
|
25
|
+
url: string;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Describes the message integrations.v1.IntegrationMiddleware.
|
|
30
|
+
* Use `create(IntegrationMiddlewareSchema)` to create a new message.
|
|
31
|
+
*/
|
|
32
|
+
export declare const IntegrationMiddlewareSchema: GenMessage<IntegrationMiddleware>;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* External-service credentials. The `values` blob is never populated on
|
|
36
|
+
* read endpoints — it is written separately via the dedicated credentials
|
|
37
|
+
* endpoint and stored encrypted. It is present in the message so admin-UI
|
|
38
|
+
* and CLI write paths can carry authorized values end-to-end in a single
|
|
39
|
+
* request where appropriate.
|
|
40
|
+
*
|
|
41
|
+
* @generated from message integrations.v1.IntegrationCredentials
|
|
42
|
+
*/
|
|
43
|
+
export declare type IntegrationCredentials = Message<"integrations.v1.IntegrationCredentials"> & {
|
|
44
|
+
/**
|
|
45
|
+
* @generated from field: integrations.v1.CredentialStrategy strategy = 1;
|
|
46
|
+
*/
|
|
47
|
+
strategy: CredentialStrategy;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @generated from field: optional google.protobuf.Struct values = 2;
|
|
51
|
+
*/
|
|
52
|
+
values?: JsonObject;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Describes the message integrations.v1.IntegrationCredentials.
|
|
57
|
+
* Use `create(IntegrationCredentialsSchema)` to create a new message.
|
|
58
|
+
*/
|
|
59
|
+
export declare const IntegrationCredentialsSchema: GenMessage<IntegrationCredentials>;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* A single field in a model seed. Carries the type and any options the
|
|
63
|
+
* CLI/admin UI needs to create the seeded field. Kept deliberately flat —
|
|
64
|
+
* this is a bootstrap schema, not an ongoing declaration. The model's
|
|
65
|
+
* long-term shape lives under `models.<key>`.
|
|
66
|
+
*
|
|
67
|
+
* @generated from message integrations.v1.ModelSeedField
|
|
68
|
+
*/
|
|
69
|
+
export declare type ModelSeedField = Message<"integrations.v1.ModelSeedField"> & {
|
|
70
|
+
/**
|
|
71
|
+
* @generated from field: string type = 1;
|
|
72
|
+
*/
|
|
73
|
+
type: string;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @generated from field: bool required = 2;
|
|
77
|
+
*/
|
|
78
|
+
required: boolean;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @generated from field: bool natural_key = 3;
|
|
82
|
+
*/
|
|
83
|
+
naturalKey: boolean;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @generated from field: optional string label = 4;
|
|
87
|
+
*/
|
|
88
|
+
label?: string;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @generated from field: optional string help_text = 5;
|
|
92
|
+
*/
|
|
93
|
+
helpText?: string;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @generated from field: optional google.protobuf.Struct config = 6;
|
|
97
|
+
*/
|
|
98
|
+
config?: JsonObject;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Describes the message integrations.v1.ModelSeedField.
|
|
103
|
+
* Use `create(ModelSeedFieldSchema)` to create a new message.
|
|
104
|
+
*/
|
|
105
|
+
export declare const ModelSeedFieldSchema: GenMessage<ModelSeedField>;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Optional one-time bootstrap schema used at first push if the target model
|
|
109
|
+
* doesn't yet exist. Ignored on every subsequent push — the model's shape
|
|
110
|
+
* lives under `models` from that point on.
|
|
111
|
+
*
|
|
112
|
+
* @generated from message integrations.v1.ModelSeed
|
|
113
|
+
*/
|
|
114
|
+
export declare type ModelSeed = Message<"integrations.v1.ModelSeed"> & {
|
|
115
|
+
/**
|
|
116
|
+
* @generated from field: map<string, integrations.v1.ModelSeedField> fields = 1;
|
|
117
|
+
*/
|
|
118
|
+
fields: { [key: string]: ModelSeedField };
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Describes the message integrations.v1.ModelSeed.
|
|
123
|
+
* Use `create(ModelSeedSchema)` to create a new message.
|
|
124
|
+
*/
|
|
125
|
+
export declare const ModelSeedSchema: GenMessage<ModelSeed>;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Per-source-type sync mapping. Declares which foir model a source type
|
|
129
|
+
* writes into, which foir field holds the upstream natural key, and the
|
|
130
|
+
* explicit field mapping. No auto-inference, no alias tables.
|
|
131
|
+
*
|
|
132
|
+
* @generated from message integrations.v1.IntegrationSyncMapping
|
|
133
|
+
*/
|
|
134
|
+
export declare type IntegrationSyncMapping = Message<"integrations.v1.IntegrationSyncMapping"> & {
|
|
135
|
+
/**
|
|
136
|
+
* foir model key that this source type writes into.
|
|
137
|
+
*
|
|
138
|
+
* @generated from field: string model = 1;
|
|
139
|
+
*/
|
|
140
|
+
model: string;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* foir field holding the upstream natural key. UPSERTs are keyed on this.
|
|
144
|
+
*
|
|
145
|
+
* @generated from field: string natural_key = 2;
|
|
146
|
+
*/
|
|
147
|
+
naturalKey: string;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Explicit field mapping: source field name -> foir field key.
|
|
151
|
+
* Unmapped source fields are discarded at runtime.
|
|
152
|
+
*
|
|
153
|
+
* @generated from field: map<string, string> fields = 3;
|
|
154
|
+
*/
|
|
155
|
+
fields: { [key: string]: string };
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Optional one-time bootstrap schema if the target model is missing.
|
|
159
|
+
*
|
|
160
|
+
* @generated from field: optional integrations.v1.ModelSeed model_seed = 4;
|
|
161
|
+
*/
|
|
162
|
+
modelSeed?: ModelSeed;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Describes the message integrations.v1.IntegrationSyncMapping.
|
|
167
|
+
* Use `create(IntegrationSyncMappingSchema)` to create a new message.
|
|
168
|
+
*/
|
|
169
|
+
export declare const IntegrationSyncMappingSchema: GenMessage<IntegrationSyncMapping>;
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Status reported by the middleware after each sync cycle and on meaningful
|
|
173
|
+
* state transitions. Nothing here is computed platform-side — the middleware
|
|
174
|
+
* is the source of truth for its own status.
|
|
175
|
+
*
|
|
176
|
+
* @generated from message integrations.v1.IntegrationStatus
|
|
177
|
+
*/
|
|
178
|
+
export declare type IntegrationStatus = Message<"integrations.v1.IntegrationStatus"> & {
|
|
179
|
+
/**
|
|
180
|
+
* @generated from field: optional google.protobuf.Timestamp last_sync_at = 1;
|
|
181
|
+
*/
|
|
182
|
+
lastSyncAt?: Timestamp;
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* @generated from field: optional int64 last_sync_duration_ms = 2;
|
|
186
|
+
*/
|
|
187
|
+
lastSyncDurationMs?: bigint;
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* @generated from field: optional int64 last_sync_record_count = 3;
|
|
191
|
+
*/
|
|
192
|
+
lastSyncRecordCount?: bigint;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* @generated from field: optional string last_error = 4;
|
|
196
|
+
*/
|
|
197
|
+
lastError?: string;
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* @generated from field: optional google.protobuf.Timestamp last_error_at = 5;
|
|
201
|
+
*/
|
|
202
|
+
lastErrorAt?: Timestamp;
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* @generated from field: integrations.v1.SubscriptionHealth subscription_health = 6;
|
|
206
|
+
*/
|
|
207
|
+
subscriptionHealth: SubscriptionHealth;
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* @generated from field: integrations.v1.AuthStatus auth_status = 7;
|
|
211
|
+
*/
|
|
212
|
+
authStatus: AuthStatus;
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Free-text description of the middleware's delete handling for admin
|
|
216
|
+
* display. e.g. "soft (deletedAt field)", "hard", "ignore".
|
|
217
|
+
*
|
|
218
|
+
* @generated from field: optional string deletion_strategy = 8;
|
|
219
|
+
*/
|
|
220
|
+
deletionStrategy?: string;
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Describes the message integrations.v1.IntegrationStatus.
|
|
225
|
+
* Use `create(IntegrationStatusSchema)` to create a new message.
|
|
226
|
+
*/
|
|
227
|
+
export declare const IntegrationStatusSchema: GenMessage<IntegrationStatus>;
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* The full per-project integration declaration. Lives in the platform;
|
|
231
|
+
* declared from foir.config.ts or the admin UI.
|
|
232
|
+
*
|
|
233
|
+
* @generated from message integrations.v1.IntegrationConfig
|
|
234
|
+
*/
|
|
235
|
+
export declare type IntegrationConfig = Message<"integrations.v1.IntegrationConfig"> & {
|
|
236
|
+
/**
|
|
237
|
+
* Kebab-case name, unique per project. Matches the key in foir.config.ts
|
|
238
|
+
* under `integrations.<name>`.
|
|
239
|
+
*
|
|
240
|
+
* @generated from field: string name = 1;
|
|
241
|
+
*/
|
|
242
|
+
name: string;
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* @generated from field: bool enabled = 2;
|
|
246
|
+
*/
|
|
247
|
+
enabled: boolean;
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* @generated from field: integrations.v1.IntegrationMiddleware middleware = 3;
|
|
251
|
+
*/
|
|
252
|
+
middleware?: IntegrationMiddleware;
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* @generated from field: integrations.v1.IntegrationCredentials credentials = 4;
|
|
256
|
+
*/
|
|
257
|
+
credentials?: IntegrationCredentials;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Sync mapping, keyed by source-type name (e.g. "product", "collection").
|
|
261
|
+
*
|
|
262
|
+
* @generated from field: map<string, integrations.v1.IntegrationSyncMapping> sync = 5;
|
|
263
|
+
*/
|
|
264
|
+
sync: { [key: string]: IntegrationSyncMapping };
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Opaque middleware-specific settings. The platform and CLI do not
|
|
268
|
+
* interpret this blob — the middleware reads and validates it at runtime.
|
|
269
|
+
*
|
|
270
|
+
* @generated from field: optional google.protobuf.Struct settings = 6;
|
|
271
|
+
*/
|
|
272
|
+
settings?: JsonObject;
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Optional metadata for admin-UI display (display name, description,
|
|
276
|
+
* category). Unused by the runtime.
|
|
277
|
+
*
|
|
278
|
+
* @generated from field: optional google.protobuf.Struct metadata = 7;
|
|
279
|
+
*/
|
|
280
|
+
metadata?: JsonObject;
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Describes the message integrations.v1.IntegrationConfig.
|
|
285
|
+
* Use `create(IntegrationConfigSchema)` to create a new message.
|
|
286
|
+
*/
|
|
287
|
+
export declare const IntegrationConfigSchema: GenMessage<IntegrationConfig>;
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* @generated from message integrations.v1.ExtensionPlacement
|
|
291
|
+
*/
|
|
292
|
+
export declare type ExtensionPlacement = Message<"integrations.v1.ExtensionPlacement"> & {
|
|
293
|
+
/**
|
|
294
|
+
* @generated from field: integrations.v1.ExtensionTarget target = 1;
|
|
295
|
+
*/
|
|
296
|
+
target: ExtensionTarget;
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* foir model key this placement attaches to.
|
|
300
|
+
*
|
|
301
|
+
* @generated from field: string model = 2;
|
|
302
|
+
*/
|
|
303
|
+
model: string;
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Tab key used as an HTML slug and as the SDK addressable id.
|
|
307
|
+
*
|
|
308
|
+
* @generated from field: string tab = 3;
|
|
309
|
+
*/
|
|
310
|
+
tab: string;
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Human-readable tab title shown in the admin UI.
|
|
314
|
+
*
|
|
315
|
+
* @generated from field: string title = 4;
|
|
316
|
+
*/
|
|
317
|
+
title: string;
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Optional free-form hints for the placement (icon, ordering, etc.).
|
|
321
|
+
*
|
|
322
|
+
* @generated from field: optional google.protobuf.Struct hints = 5;
|
|
323
|
+
*/
|
|
324
|
+
hints?: JsonObject;
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Describes the message integrations.v1.ExtensionPlacement.
|
|
329
|
+
* Use `create(ExtensionPlacementSchema)` to create a new message.
|
|
330
|
+
*/
|
|
331
|
+
export declare const ExtensionPlacementSchema: GenMessage<ExtensionPlacement>;
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* @generated from message integrations.v1.ExtensionConfig
|
|
335
|
+
*/
|
|
336
|
+
export declare type ExtensionConfig = Message<"integrations.v1.ExtensionConfig"> & {
|
|
337
|
+
/**
|
|
338
|
+
* Kebab-case name, unique per project.
|
|
339
|
+
*
|
|
340
|
+
* @generated from field: string name = 1;
|
|
341
|
+
*/
|
|
342
|
+
name: string;
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* https URL of the iframe app. The admin UI loads this URL in an iframe
|
|
346
|
+
* at the declared placements.
|
|
347
|
+
*
|
|
348
|
+
* @generated from field: string url = 2;
|
|
349
|
+
*/
|
|
350
|
+
url: string;
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* @generated from field: repeated integrations.v1.ExtensionPlacement placements = 3;
|
|
354
|
+
*/
|
|
355
|
+
placements: ExtensionPlacement[];
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Optional metadata for admin-UI display.
|
|
359
|
+
*
|
|
360
|
+
* @generated from field: optional google.protobuf.Struct metadata = 4;
|
|
361
|
+
*/
|
|
362
|
+
metadata?: JsonObject;
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Describes the message integrations.v1.ExtensionConfig.
|
|
367
|
+
* Use `create(ExtensionConfigSchema)` to create a new message.
|
|
368
|
+
*/
|
|
369
|
+
export declare const ExtensionConfigSchema: GenMessage<ExtensionConfig>;
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* A single credential slot for one (project, integration). The encrypted
|
|
373
|
+
* payload's plaintext shape is middleware-specific (Shopify OAuth token,
|
|
374
|
+
* Stripe API key, SSH keypair, etc.) — the platform treats it as opaque
|
|
375
|
+
* bytes and never parses it.
|
|
376
|
+
*
|
|
377
|
+
* @generated from message integrations.v1.IntegrationCredentialValue
|
|
378
|
+
*/
|
|
379
|
+
export declare type IntegrationCredentialValue = Message<"integrations.v1.IntegrationCredentialValue"> & {
|
|
380
|
+
/**
|
|
381
|
+
* Plaintext credential bytes. Populated on read responses (after successful
|
|
382
|
+
* capability check + decryption) and on write requests. NEVER populated on
|
|
383
|
+
* any other response.
|
|
384
|
+
*
|
|
385
|
+
* @generated from field: bytes value = 1;
|
|
386
|
+
*/
|
|
387
|
+
value: Uint8Array;
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* Identifier of the key that encrypted this value at rest. Carried across
|
|
391
|
+
* the wire so rotation is possible without breaking old rows.
|
|
392
|
+
*
|
|
393
|
+
* @generated from field: string encryption_key_id = 2;
|
|
394
|
+
*/
|
|
395
|
+
encryptionKeyId: string;
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* When the credential was last decrypted and returned to a caller. Updated
|
|
399
|
+
* on every successful GetIntegrationCredential call. Null if never read.
|
|
400
|
+
*
|
|
401
|
+
* @generated from field: optional google.protobuf.Timestamp last_read_at = 3;
|
|
402
|
+
*/
|
|
403
|
+
lastReadAt?: Timestamp;
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* When the credential was last written. Null if never written.
|
|
407
|
+
*
|
|
408
|
+
* @generated from field: optional google.protobuf.Timestamp last_written_at = 4;
|
|
409
|
+
*/
|
|
410
|
+
lastWrittenAt?: Timestamp;
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Describes the message integrations.v1.IntegrationCredentialValue.
|
|
415
|
+
* Use `create(IntegrationCredentialValueSchema)` to create a new message.
|
|
416
|
+
*/
|
|
417
|
+
export declare const IntegrationCredentialValueSchema: GenMessage<IntegrationCredentialValue>;
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* @generated from message integrations.v1.GetIntegrationCredentialRequest
|
|
421
|
+
*/
|
|
422
|
+
export declare type GetIntegrationCredentialRequest = Message<"integrations.v1.GetIntegrationCredentialRequest"> & {
|
|
423
|
+
/**
|
|
424
|
+
* @generated from field: string project_id = 1;
|
|
425
|
+
*/
|
|
426
|
+
projectId: string;
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* @generated from field: string integration_name = 2;
|
|
430
|
+
*/
|
|
431
|
+
integrationName: string;
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Describes the message integrations.v1.GetIntegrationCredentialRequest.
|
|
436
|
+
* Use `create(GetIntegrationCredentialRequestSchema)` to create a new message.
|
|
437
|
+
*/
|
|
438
|
+
export declare const GetIntegrationCredentialRequestSchema: GenMessage<GetIntegrationCredentialRequest>;
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* @generated from message integrations.v1.GetIntegrationCredentialResponse
|
|
442
|
+
*/
|
|
443
|
+
export declare type GetIntegrationCredentialResponse = Message<"integrations.v1.GetIntegrationCredentialResponse"> & {
|
|
444
|
+
/**
|
|
445
|
+
* @generated from field: integrations.v1.IntegrationCredentialValue credential = 1;
|
|
446
|
+
*/
|
|
447
|
+
credential?: IntegrationCredentialValue;
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Describes the message integrations.v1.GetIntegrationCredentialResponse.
|
|
452
|
+
* Use `create(GetIntegrationCredentialResponseSchema)` to create a new message.
|
|
453
|
+
*/
|
|
454
|
+
export declare const GetIntegrationCredentialResponseSchema: GenMessage<GetIntegrationCredentialResponse>;
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* @generated from message integrations.v1.WriteIntegrationCredentialRequest
|
|
458
|
+
*/
|
|
459
|
+
export declare type WriteIntegrationCredentialRequest = Message<"integrations.v1.WriteIntegrationCredentialRequest"> & {
|
|
460
|
+
/**
|
|
461
|
+
* @generated from field: string project_id = 1;
|
|
462
|
+
*/
|
|
463
|
+
projectId: string;
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* @generated from field: string integration_name = 2;
|
|
467
|
+
*/
|
|
468
|
+
integrationName: string;
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Plaintext bytes to encrypt and store. Replaces any existing value for
|
|
472
|
+
* this (project, integration).
|
|
473
|
+
*
|
|
474
|
+
* @generated from field: bytes value = 3;
|
|
475
|
+
*/
|
|
476
|
+
value: Uint8Array;
|
|
477
|
+
|
|
478
|
+
/**
|
|
479
|
+
* Optional correlation context to include in the audit log entry
|
|
480
|
+
* (webhook delivery id, manual trigger id, admin action id, etc.).
|
|
481
|
+
*
|
|
482
|
+
* @generated from field: optional string context = 4;
|
|
483
|
+
*/
|
|
484
|
+
context?: string;
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* Describes the message integrations.v1.WriteIntegrationCredentialRequest.
|
|
489
|
+
* Use `create(WriteIntegrationCredentialRequestSchema)` to create a new message.
|
|
490
|
+
*/
|
|
491
|
+
export declare const WriteIntegrationCredentialRequestSchema: GenMessage<WriteIntegrationCredentialRequest>;
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* @generated from message integrations.v1.WriteIntegrationCredentialResponse
|
|
495
|
+
*/
|
|
496
|
+
export declare type WriteIntegrationCredentialResponse = Message<"integrations.v1.WriteIntegrationCredentialResponse"> & {
|
|
497
|
+
/**
|
|
498
|
+
* Metadata about the newly stored credential. Never includes the plaintext.
|
|
499
|
+
*
|
|
500
|
+
* @generated from field: string encryption_key_id = 1;
|
|
501
|
+
*/
|
|
502
|
+
encryptionKeyId: string;
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
* @generated from field: google.protobuf.Timestamp last_written_at = 2;
|
|
506
|
+
*/
|
|
507
|
+
lastWrittenAt?: Timestamp;
|
|
508
|
+
};
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* Describes the message integrations.v1.WriteIntegrationCredentialResponse.
|
|
512
|
+
* Use `create(WriteIntegrationCredentialResponseSchema)` to create a new message.
|
|
513
|
+
*/
|
|
514
|
+
export declare const WriteIntegrationCredentialResponseSchema: GenMessage<WriteIntegrationCredentialResponse>;
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
* Credential strategies the middleware uses when talking to the external
|
|
518
|
+
* service. Drives which authorization flow the admin UI renders.
|
|
519
|
+
*
|
|
520
|
+
* @generated from enum integrations.v1.CredentialStrategy
|
|
521
|
+
*/
|
|
522
|
+
export enum CredentialStrategy {
|
|
523
|
+
/**
|
|
524
|
+
* @generated from enum value: CREDENTIAL_STRATEGY_UNSPECIFIED = 0;
|
|
525
|
+
*/
|
|
526
|
+
UNSPECIFIED = 0,
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* @generated from enum value: CREDENTIAL_STRATEGY_OAUTH = 1;
|
|
530
|
+
*/
|
|
531
|
+
OAUTH = 1,
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* @generated from enum value: CREDENTIAL_STRATEGY_API_KEY = 2;
|
|
535
|
+
*/
|
|
536
|
+
API_KEY = 2,
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* @generated from enum value: CREDENTIAL_STRATEGY_SHARED_SECRET = 3;
|
|
540
|
+
*/
|
|
541
|
+
SHARED_SECRET = 3,
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* @generated from enum value: CREDENTIAL_STRATEGY_SSH_KEY = 4;
|
|
545
|
+
*/
|
|
546
|
+
SSH_KEY = 4,
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* @generated from enum value: CREDENTIAL_STRATEGY_NONE = 5;
|
|
550
|
+
*/
|
|
551
|
+
NONE = 5,
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* @generated from enum value: CREDENTIAL_STRATEGY_MANAGED = 6;
|
|
555
|
+
*/
|
|
556
|
+
MANAGED = 6,
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* Describes the enum integrations.v1.CredentialStrategy.
|
|
561
|
+
*/
|
|
562
|
+
export declare const CredentialStrategySchema: GenEnum<CredentialStrategy>;
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Subscription health reported by the middleware for the external-service
|
|
566
|
+
* webhook subscription this integration depends on.
|
|
567
|
+
*
|
|
568
|
+
* @generated from enum integrations.v1.SubscriptionHealth
|
|
569
|
+
*/
|
|
570
|
+
export enum SubscriptionHealth {
|
|
571
|
+
/**
|
|
572
|
+
* @generated from enum value: SUBSCRIPTION_HEALTH_UNSPECIFIED = 0;
|
|
573
|
+
*/
|
|
574
|
+
UNSPECIFIED = 0,
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* @generated from enum value: SUBSCRIPTION_HEALTH_OK = 1;
|
|
578
|
+
*/
|
|
579
|
+
OK = 1,
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* @generated from enum value: SUBSCRIPTION_HEALTH_STALE = 2;
|
|
583
|
+
*/
|
|
584
|
+
STALE = 2,
|
|
585
|
+
|
|
586
|
+
/**
|
|
587
|
+
* @generated from enum value: SUBSCRIPTION_HEALTH_BROKEN = 3;
|
|
588
|
+
*/
|
|
589
|
+
BROKEN = 3,
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
/**
|
|
593
|
+
* Describes the enum integrations.v1.SubscriptionHealth.
|
|
594
|
+
*/
|
|
595
|
+
export declare const SubscriptionHealthSchema: GenEnum<SubscriptionHealth>;
|
|
596
|
+
|
|
597
|
+
/**
|
|
598
|
+
* Auth status reported by the middleware for the external-service credentials.
|
|
599
|
+
*
|
|
600
|
+
* @generated from enum integrations.v1.AuthStatus
|
|
601
|
+
*/
|
|
602
|
+
export enum AuthStatus {
|
|
603
|
+
/**
|
|
604
|
+
* @generated from enum value: AUTH_STATUS_UNSPECIFIED = 0;
|
|
605
|
+
*/
|
|
606
|
+
UNSPECIFIED = 0,
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* @generated from enum value: AUTH_STATUS_OK = 1;
|
|
610
|
+
*/
|
|
611
|
+
OK = 1,
|
|
612
|
+
|
|
613
|
+
/**
|
|
614
|
+
* @generated from enum value: AUTH_STATUS_EXPIRED = 2;
|
|
615
|
+
*/
|
|
616
|
+
EXPIRED = 2,
|
|
617
|
+
|
|
618
|
+
/**
|
|
619
|
+
* @generated from enum value: AUTH_STATUS_REVOKED = 3;
|
|
620
|
+
*/
|
|
621
|
+
REVOKED = 3,
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* Describes the enum integrations.v1.AuthStatus.
|
|
626
|
+
*/
|
|
627
|
+
export declare const AuthStatusSchema: GenEnum<AuthStatus>;
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* @generated from enum integrations.v1.ExtensionTarget
|
|
631
|
+
*/
|
|
632
|
+
export enum ExtensionTarget {
|
|
633
|
+
/**
|
|
634
|
+
* @generated from enum value: EXTENSION_TARGET_UNSPECIFIED = 0;
|
|
635
|
+
*/
|
|
636
|
+
UNSPECIFIED = 0,
|
|
637
|
+
|
|
638
|
+
/**
|
|
639
|
+
* @generated from enum value: EXTENSION_TARGET_RECORD = 1;
|
|
640
|
+
*/
|
|
641
|
+
RECORD = 1,
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* @generated from enum value: EXTENSION_TARGET_MODEL_LIST = 2;
|
|
645
|
+
*/
|
|
646
|
+
MODEL_LIST = 2,
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
/**
|
|
650
|
+
* Describes the enum integrations.v1.ExtensionTarget.
|
|
651
|
+
*/
|
|
652
|
+
export declare const ExtensionTargetSchema: GenEnum<ExtensionTarget>;
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* @generated from service integrations.v1.IntegrationCredentialsService
|
|
656
|
+
*/
|
|
657
|
+
export declare const IntegrationCredentialsService: GenService<{
|
|
658
|
+
/**
|
|
659
|
+
* Return the plaintext credential for (project, integration). Requires
|
|
660
|
+
* the caller's capability set to include credentials:read for this
|
|
661
|
+
* integration. On success, updates last_read_at and emits an audit row.
|
|
662
|
+
*
|
|
663
|
+
* @generated from rpc integrations.v1.IntegrationCredentialsService.GetIntegrationCredential
|
|
664
|
+
*/
|
|
665
|
+
getIntegrationCredential: {
|
|
666
|
+
methodKind: "unary";
|
|
667
|
+
input: typeof GetIntegrationCredentialRequestSchema;
|
|
668
|
+
output: typeof GetIntegrationCredentialResponseSchema;
|
|
669
|
+
},
|
|
670
|
+
/**
|
|
671
|
+
* Encrypt and store a credential for (project, integration). Overwrites
|
|
672
|
+
* any existing value. Requires the caller's capability set to include
|
|
673
|
+
* credentials:write for this integration. Emits an audit row of kind
|
|
674
|
+
* credential_write.
|
|
675
|
+
*
|
|
676
|
+
* @generated from rpc integrations.v1.IntegrationCredentialsService.WriteIntegrationCredential
|
|
677
|
+
*/
|
|
678
|
+
writeIntegrationCredential: {
|
|
679
|
+
methodKind: "unary";
|
|
680
|
+
input: typeof WriteIntegrationCredentialRequestSchema;
|
|
681
|
+
output: typeof WriteIntegrationCredentialResponseSchema;
|
|
682
|
+
},
|
|
683
|
+
}>;
|
|
684
|
+
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "import_extension=js"
|
|
2
|
+
// @generated from file integrations/v1/integrations.proto (package integrations.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import { enumDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
|
|
6
|
+
import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Describes the file integrations/v1/integrations.proto.
|
|
10
|
+
*/
|
|
11
|
+
export const file_integrations_v1_integrations = /*@__PURE__*/
|
|
12
|
+
fileDesc("CiJpbnRlZ3JhdGlvbnMvdjEvaW50ZWdyYXRpb25zLnByb3RvEg9pbnRlZ3JhdGlvbnMudjEiJAoVSW50ZWdyYXRpb25NaWRkbGV3YXJlEgsKA3VybBgBIAEoCSKIAQoWSW50ZWdyYXRpb25DcmVkZW50aWFscxI1CghzdHJhdGVneRgBIAEoDjIjLmludGVncmF0aW9ucy52MS5DcmVkZW50aWFsU3RyYXRlZ3kSLAoGdmFsdWVzGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgkKB192YWx1ZXMiwgEKDk1vZGVsU2VlZEZpZWxkEgwKBHR5cGUYASABKAkSEAoIcmVxdWlyZWQYAiABKAgSEwoLbmF0dXJhbF9rZXkYAyABKAgSEgoFbGFiZWwYBCABKAlIAIgBARIWCgloZWxwX3RleHQYBSABKAlIAYgBARIsCgZjb25maWcYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQFCCAoGX2xhYmVsQgwKCl9oZWxwX3RleHRCCQoHX2NvbmZpZyKTAQoJTW9kZWxTZWVkEjYKBmZpZWxkcxgBIAMoCzImLmludGVncmF0aW9ucy52MS5Nb2RlbFNlZWQuRmllbGRzRW50cnkaTgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEi4KBXZhbHVlGAIgASgLMh8uaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZEZpZWxkOgI4ASL0AQoWSW50ZWdyYXRpb25TeW5jTWFwcGluZxINCgVtb2RlbBgBIAEoCRITCgtuYXR1cmFsX2tleRgCIAEoCRJDCgZmaWVsZHMYAyADKAsyMy5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TeW5jTWFwcGluZy5GaWVsZHNFbnRyeRIzCgptb2RlbF9zZWVkGAQgASgLMhouaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZEgAiAEBGi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDQoLX21vZGVsX3NlZWQi9QMKEUludGVncmF0aW9uU3RhdHVzEjUKDGxhc3Rfc3luY19hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIiChVsYXN0X3N5bmNfZHVyYXRpb25fbXMYAiABKANIAYgBARIjChZsYXN0X3N5bmNfcmVjb3JkX2NvdW50GAMgASgDSAKIAQESFwoKbGFzdF9lcnJvchgEIAEoCUgDiAEBEjYKDWxhc3RfZXJyb3JfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESQAoTc3Vic2NyaXB0aW9uX2hlYWx0aBgGIAEoDjIjLmludGVncmF0aW9ucy52MS5TdWJzY3JpcHRpb25IZWFsdGgSMAoLYXV0aF9zdGF0dXMYByABKA4yGy5pbnRlZ3JhdGlvbnMudjEuQXV0aFN0YXR1cxIeChFkZWxldGlvbl9zdHJhdGVneRgIIAEoCUgFiAEBQg8KDV9sYXN0X3N5bmNfYXRCGAoWX2xhc3Rfc3luY19kdXJhdGlvbl9tc0IZChdfbGFzdF9zeW5jX3JlY29yZF9jb3VudEINCgtfbGFzdF9lcnJvckIQCg5fbGFzdF9lcnJvcl9hdEIUChJfZGVsZXRpb25fc3RyYXRlZ3kiuAMKEUludGVncmF0aW9uQ29uZmlnEgwKBG5hbWUYASABKAkSDwoHZW5hYmxlZBgCIAEoCBI6CgptaWRkbGV3YXJlGAMgASgLMiYuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uTWlkZGxld2FyZRI8CgtjcmVkZW50aWFscxgEIAEoCzInLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNyZWRlbnRpYWxzEjoKBHN5bmMYBSADKAsyLC5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25Db25maWcuU3luY0VudHJ5Ei4KCHNldHRpbmdzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBGlQKCVN5bmNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TeW5jTWFwcGluZzoCOAFCCwoJX3NldHRpbmdzQgsKCV9tZXRhZGF0YSKoAQoSRXh0ZW5zaW9uUGxhY2VtZW50EjAKBnRhcmdldBgBIAEoDjIgLmludGVncmF0aW9ucy52MS5FeHRlbnNpb25UYXJnZXQSDQoFbW9kZWwYAiABKAkSCwoDdGFiGAMgASgJEg0KBXRpdGxlGAQgASgJEisKBWhpbnRzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQggKBl9oaW50cyKiAQoPRXh0ZW5zaW9uQ29uZmlnEgwKBG5hbWUYASABKAkSCwoDdXJsGAIgASgJEjcKCnBsYWNlbWVudHMYAyADKAsyIy5pbnRlZ3JhdGlvbnMudjEuRXh0ZW5zaW9uUGxhY2VtZW50Ei4KCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YSLcAQoaSW50ZWdyYXRpb25DcmVkZW50aWFsVmFsdWUSDQoFdmFsdWUYASABKAwSGQoRZW5jcnlwdGlvbl9rZXlfaWQYAiABKAkSNQoMbGFzdF9yZWFkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjgKD2xhc3Rfd3JpdHRlbl9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIPCg1fbGFzdF9yZWFkX2F0QhIKEF9sYXN0X3dyaXR0ZW5fYXQiTwofR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhgKEGludGVncmF0aW9uX25hbWUYAiABKAkiYwogR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsUmVzcG9uc2USPwoKY3JlZGVudGlhbBgBIAEoCzIrLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNyZWRlbnRpYWxWYWx1ZSKCAQohV3JpdGVJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSGAoQaW50ZWdyYXRpb25fbmFtZRgCIAEoCRINCgV2YWx1ZRgDIAEoDBIUCgdjb250ZXh0GAQgASgJSACIAQFCCgoIX2NvbnRleHQidAoiV3JpdGVJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXNwb25zZRIZChFlbmNyeXB0aW9uX2tleV9pZBgBIAEoCRIzCg9sYXN0X3dyaXR0ZW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKoACChJDcmVkZW50aWFsU3RyYXRlZ3kSIwofQ1JFREVOVElBTF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEh0KGUNSRURFTlRJQUxfU1RSQVRFR1lfT0FVVEgQARIfChtDUkVERU5USUFMX1NUUkFURUdZX0FQSV9LRVkQAhIlCiFDUkVERU5USUFMX1NUUkFURUdZX1NIQVJFRF9TRUNSRVQQAxIfChtDUkVERU5USUFMX1NUUkFURUdZX1NTSF9LRVkQBBIcChhDUkVERU5USUFMX1NUUkFURUdZX05PTkUQBRIfChtDUkVERU5USUFMX1NUUkFURUdZX01BTkFHRUQQBiqUAQoSU3Vic2NyaXB0aW9uSGVhbHRoEiMKH1NVQlNDUklQVElPTl9IRUFMVEhfVU5TUEVDSUZJRUQQABIaChZTVUJTQ1JJUFRJT05fSEVBTFRIX09LEAESHQoZU1VCU0NSSVBUSU9OX0hFQUxUSF9TVEFMRRACEh4KGlNVQlNDUklQVElPTl9IRUFMVEhfQlJPS0VOEAMqbwoKQXV0aFN0YXR1cxIbChdBVVRIX1NUQVRVU19VTlNQRUNJRklFRBAAEhIKDkFVVEhfU1RBVFVTX09LEAESFwoTQVVUSF9TVEFUVVNfRVhQSVJFRBACEhcKE0FVVEhfU1RBVFVTX1JFVk9LRUQQAypxCg9FeHRlbnNpb25UYXJnZXQSIAocRVhURU5TSU9OX1RBUkdFVF9VTlNQRUNJRklFRBAAEhsKF0VYVEVOU0lPTl9UQVJHRVRfUkVDT1JEEAESHwobRVhURU5TSU9OX1RBUkdFVF9NT0RFTF9MSVNUEAIyqAIKHUludGVncmF0aW9uQ3JlZGVudGlhbHNTZXJ2aWNlEn8KGEdldEludGVncmF0aW9uQ3JlZGVudGlhbBIwLmludGVncmF0aW9ucy52MS5HZXRJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXF1ZXN0GjEuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uQ3JlZGVudGlhbFJlc3BvbnNlEoUBChpXcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbBIyLmludGVncmF0aW9ucy52MS5Xcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlcXVlc3QaMy5pbnRlZ3JhdGlvbnMudjEuV3JpdGVJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXNwb25zZUJFWkNnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vaW50ZWdyYXRpb25zL3YxO2ludGVncmF0aW9uc3YxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp]);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Describes the message integrations.v1.IntegrationMiddleware.
|
|
16
|
+
* Use `create(IntegrationMiddlewareSchema)` to create a new message.
|
|
17
|
+
*/
|
|
18
|
+
export const IntegrationMiddlewareSchema = /*@__PURE__*/
|
|
19
|
+
messageDesc(file_integrations_v1_integrations, 0);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Describes the message integrations.v1.IntegrationCredentials.
|
|
23
|
+
* Use `create(IntegrationCredentialsSchema)` to create a new message.
|
|
24
|
+
*/
|
|
25
|
+
export const IntegrationCredentialsSchema = /*@__PURE__*/
|
|
26
|
+
messageDesc(file_integrations_v1_integrations, 1);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Describes the message integrations.v1.ModelSeedField.
|
|
30
|
+
* Use `create(ModelSeedFieldSchema)` to create a new message.
|
|
31
|
+
*/
|
|
32
|
+
export const ModelSeedFieldSchema = /*@__PURE__*/
|
|
33
|
+
messageDesc(file_integrations_v1_integrations, 2);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Describes the message integrations.v1.ModelSeed.
|
|
37
|
+
* Use `create(ModelSeedSchema)` to create a new message.
|
|
38
|
+
*/
|
|
39
|
+
export const ModelSeedSchema = /*@__PURE__*/
|
|
40
|
+
messageDesc(file_integrations_v1_integrations, 3);
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Describes the message integrations.v1.IntegrationSyncMapping.
|
|
44
|
+
* Use `create(IntegrationSyncMappingSchema)` to create a new message.
|
|
45
|
+
*/
|
|
46
|
+
export const IntegrationSyncMappingSchema = /*@__PURE__*/
|
|
47
|
+
messageDesc(file_integrations_v1_integrations, 4);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Describes the message integrations.v1.IntegrationStatus.
|
|
51
|
+
* Use `create(IntegrationStatusSchema)` to create a new message.
|
|
52
|
+
*/
|
|
53
|
+
export const IntegrationStatusSchema = /*@__PURE__*/
|
|
54
|
+
messageDesc(file_integrations_v1_integrations, 5);
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Describes the message integrations.v1.IntegrationConfig.
|
|
58
|
+
* Use `create(IntegrationConfigSchema)` to create a new message.
|
|
59
|
+
*/
|
|
60
|
+
export const IntegrationConfigSchema = /*@__PURE__*/
|
|
61
|
+
messageDesc(file_integrations_v1_integrations, 6);
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Describes the message integrations.v1.ExtensionPlacement.
|
|
65
|
+
* Use `create(ExtensionPlacementSchema)` to create a new message.
|
|
66
|
+
*/
|
|
67
|
+
export const ExtensionPlacementSchema = /*@__PURE__*/
|
|
68
|
+
messageDesc(file_integrations_v1_integrations, 7);
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Describes the message integrations.v1.ExtensionConfig.
|
|
72
|
+
* Use `create(ExtensionConfigSchema)` to create a new message.
|
|
73
|
+
*/
|
|
74
|
+
export const ExtensionConfigSchema = /*@__PURE__*/
|
|
75
|
+
messageDesc(file_integrations_v1_integrations, 8);
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Describes the message integrations.v1.IntegrationCredentialValue.
|
|
79
|
+
* Use `create(IntegrationCredentialValueSchema)` to create a new message.
|
|
80
|
+
*/
|
|
81
|
+
export const IntegrationCredentialValueSchema = /*@__PURE__*/
|
|
82
|
+
messageDesc(file_integrations_v1_integrations, 9);
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Describes the message integrations.v1.GetIntegrationCredentialRequest.
|
|
86
|
+
* Use `create(GetIntegrationCredentialRequestSchema)` to create a new message.
|
|
87
|
+
*/
|
|
88
|
+
export const GetIntegrationCredentialRequestSchema = /*@__PURE__*/
|
|
89
|
+
messageDesc(file_integrations_v1_integrations, 10);
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Describes the message integrations.v1.GetIntegrationCredentialResponse.
|
|
93
|
+
* Use `create(GetIntegrationCredentialResponseSchema)` to create a new message.
|
|
94
|
+
*/
|
|
95
|
+
export const GetIntegrationCredentialResponseSchema = /*@__PURE__*/
|
|
96
|
+
messageDesc(file_integrations_v1_integrations, 11);
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Describes the message integrations.v1.WriteIntegrationCredentialRequest.
|
|
100
|
+
* Use `create(WriteIntegrationCredentialRequestSchema)` to create a new message.
|
|
101
|
+
*/
|
|
102
|
+
export const WriteIntegrationCredentialRequestSchema = /*@__PURE__*/
|
|
103
|
+
messageDesc(file_integrations_v1_integrations, 12);
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Describes the message integrations.v1.WriteIntegrationCredentialResponse.
|
|
107
|
+
* Use `create(WriteIntegrationCredentialResponseSchema)` to create a new message.
|
|
108
|
+
*/
|
|
109
|
+
export const WriteIntegrationCredentialResponseSchema = /*@__PURE__*/
|
|
110
|
+
messageDesc(file_integrations_v1_integrations, 13);
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Describes the enum integrations.v1.CredentialStrategy.
|
|
114
|
+
*/
|
|
115
|
+
export const CredentialStrategySchema = /*@__PURE__*/
|
|
116
|
+
enumDesc(file_integrations_v1_integrations, 0);
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Credential strategies the middleware uses when talking to the external
|
|
120
|
+
* service. Drives which authorization flow the admin UI renders.
|
|
121
|
+
*
|
|
122
|
+
* @generated from enum integrations.v1.CredentialStrategy
|
|
123
|
+
*/
|
|
124
|
+
export const CredentialStrategy = /*@__PURE__*/
|
|
125
|
+
tsEnum(CredentialStrategySchema);
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Describes the enum integrations.v1.SubscriptionHealth.
|
|
129
|
+
*/
|
|
130
|
+
export const SubscriptionHealthSchema = /*@__PURE__*/
|
|
131
|
+
enumDesc(file_integrations_v1_integrations, 1);
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Subscription health reported by the middleware for the external-service
|
|
135
|
+
* webhook subscription this integration depends on.
|
|
136
|
+
*
|
|
137
|
+
* @generated from enum integrations.v1.SubscriptionHealth
|
|
138
|
+
*/
|
|
139
|
+
export const SubscriptionHealth = /*@__PURE__*/
|
|
140
|
+
tsEnum(SubscriptionHealthSchema);
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Describes the enum integrations.v1.AuthStatus.
|
|
144
|
+
*/
|
|
145
|
+
export const AuthStatusSchema = /*@__PURE__*/
|
|
146
|
+
enumDesc(file_integrations_v1_integrations, 2);
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Auth status reported by the middleware for the external-service credentials.
|
|
150
|
+
*
|
|
151
|
+
* @generated from enum integrations.v1.AuthStatus
|
|
152
|
+
*/
|
|
153
|
+
export const AuthStatus = /*@__PURE__*/
|
|
154
|
+
tsEnum(AuthStatusSchema);
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Describes the enum integrations.v1.ExtensionTarget.
|
|
158
|
+
*/
|
|
159
|
+
export const ExtensionTargetSchema = /*@__PURE__*/
|
|
160
|
+
enumDesc(file_integrations_v1_integrations, 3);
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* @generated from enum integrations.v1.ExtensionTarget
|
|
164
|
+
*/
|
|
165
|
+
export const ExtensionTarget = /*@__PURE__*/
|
|
166
|
+
tsEnum(ExtensionTargetSchema);
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* @generated from service integrations.v1.IntegrationCredentialsService
|
|
170
|
+
*/
|
|
171
|
+
export const IntegrationCredentialsService = /*@__PURE__*/
|
|
172
|
+
serviceDesc(file_integrations_v1_integrations, 0);
|
|
173
|
+
|
|
@@ -1427,6 +1427,11 @@ export declare type QuotaRuleUsage = Message<"operations.v1.QuotaRuleUsage"> & {
|
|
|
1427
1427
|
* @generated from field: int32 duration = 8;
|
|
1428
1428
|
*/
|
|
1429
1429
|
duration: number;
|
|
1430
|
+
|
|
1431
|
+
/**
|
|
1432
|
+
* @generated from field: string message = 9;
|
|
1433
|
+
*/
|
|
1434
|
+
message: string;
|
|
1430
1435
|
};
|
|
1431
1436
|
|
|
1432
1437
|
/**
|
|
@@ -9,7 +9,7 @@ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bu
|
|
|
9
9
|
* Describes the file operations/v1/operations.proto.
|
|
10
10
|
*/
|
|
11
11
|
export const file_operations_v1_operations = /*@__PURE__*/
|
|
12
|
-
fileDesc("Ch5vcGVyYXRpb25zL3YxL29wZXJhdGlvbnMucHJvdG8SDW9wZXJhdGlvbnMudjEiygcKCU9wZXJhdGlvbhIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhEKBGljb24YBSABKAlIAYgBARIVCghjYXRlZ29yeRgGIAEoCUgCiAEBEhAKCGVuZHBvaW50GAcgASgJEhoKDWVuZHBvaW50X2F1dGgYCCABKAlIA4gBARISCgp0aW1lb3V0X21zGAkgASgFEjIKDHJldHJ5X3BvbGljeRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIyCgxpbnB1dF9zY2hlbWEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESMwoNb3V0cHV0X3NjaGVtYRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIoCgJ1aRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIRCglpc19hY3RpdmUYDiABKAgSFQoNYWxsb3dlZF9yb2xlcxgPIAMoCRIzCg1zdHJlYW1fY29uZmlnGBAgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgIiAEBEiwKBnF1b3RhcxgRIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICYgBARIWCgljb25maWdfaWQYEiABKAlICogBARIyCgxwcmVjb25kaXRpb24YEyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAuIAQESEQoJdGVuYW50X2lkGBQgASgJEhcKCnByb2plY3RfaWQYFSABKAlIDIgBARIXCgpjcmVhdGVkX2J5GB4gASgJSA2IAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUIQCg5fZW5kcG9pbnRfYXV0aEIPCg1fcmV0cnlfcG9saWN5Qg8KDV9pbnB1dF9zY2hlbWFCEAoOX291dHB1dF9zY2hlbWFCBQoDX3VpQhAKDl9zdHJlYW1fY29uZmlnQgkKB19xdW90YXNCDAoKX2NvbmZpZ19pZEIPCg1fcHJlY29uZGl0aW9uQg0KC19wcm9qZWN0X2lkQg0KC19jcmVhdGVkX2J5Iv0EChJPcGVyYXRpb25FeGVjdXRpb24SCgoCaWQYASABKAkSFQoNb3BlcmF0aW9uX2tleRgCIAEoCRIOCgZzdGF0dXMYAyABKAkSGQoMdHJpZ2dlcl90eXBlGAQgASgJSACIAQESNQoPdHJpZ2dlcl9jb250ZXh0GAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEisKBWlucHV0GAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEhgKC3Jlc3VsdF9qc29uGAcgASgMSAOIAQESFwoKZXJyb3JfanNvbhgIIAEoDEgEiAEBEjMKCnN0YXJ0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESNQoMY29tcGxldGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBEhgKC2R1cmF0aW9uX21zGAsgASgFSAeIAQESEwoLcmV0cnlfY291bnQYDCABKAUSEQoJdGVuYW50X2lkGBQgASgJEhcKCnByb2plY3RfaWQYFSABKAlICIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIPCg1fdHJpZ2dlcl90eXBlQhIKEF90cmlnZ2VyX2NvbnRleHRCCAoGX2lucHV0Qg4KDF9yZXN1bHRfanNvbkINCgtfZXJyb3JfanNvbkINCgtfc3RhcnRlZF9hdEIPCg1fY29tcGxldGVkX2F0Qg4KDF9kdXJhdGlvbl9tc0INCgtfcHJvamVjdF9pZCLfBAoPRGVhZExldHRlckVudHJ5EgoKAmlkGAEgASgJEhUKDW9wZXJhdGlvbl9rZXkYAiABKAkSGQoMZXhlY3V0aW9uX2lkGAMgASgJSACIAQESKwoFaW5wdXQYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESGQoMdHJpZ2dlcl90eXBlGAUgASgJSAKIAQESEAoIYXR0ZW1wdHMYBiABKAUSEgoKbGFzdF9lcnJvchgHIAEoCRIXCgplcnJvcl9jb2RlGAggASgJSAOIAQESDgoGc3RhdHVzGAkgASgJEi0KCWZhaWxlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoKcmV0cmllZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARI1CgxkaXNtaXNzZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESGQoMZGlzbWlzc2VkX2J5GA0gASgJSAaIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX2V4ZWN1dGlvbl9pZEIICgZfaW5wdXRCDwoNX3RyaWdnZXJfdHlwZUINCgtfZXJyb3JfY29kZUINCgtfcmV0cmllZF9hdEIPCg1fZGlzbWlzc2VkX2F0Qg8KDV9kaXNtaXNzZWRfYnkitQIKDENpcmN1aXRTdGF0ZRIVCg1vcGVyYXRpb25fa2V5GAEgASgJEhAKCGVuZHBvaW50GAIgASgJEg0KBXN0YXRlGAMgASgJEhUKDWZhaWx1cmVfY291bnQYBCABKAUSOAoPbGFzdF9mYWlsdXJlX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjIKCW9wZW5lZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI1CgxoYWxmX29wZW5fYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQFCEgoQX2xhc3RfZmFpbHVyZV9hdEIMCgpfb3BlbmVkX2F0Qg8KDV9oYWxmX29wZW5fYXQigQEKDkV4ZWN1dGlvblN0YXRzEhUKDW9wZXJhdGlvbl9rZXkYASABKAkSDQoFdG90YWwYAiABKAUSDwoHc3VjY2VzcxgDIAEoBRIOCgZmYWlsZWQYBCABKAUSDwoHcGVuZGluZxgFIAEoBRIXCg9hdmdfZHVyYXRpb25fbXMYBiABKAEiVQoPRGVhZExldHRlclN0YXRzEg8KB3BlbmRpbmcYASABKAUSDwoHcmV0cmllZBgCIAEoBRIRCglkaXNtaXNzZWQYAyABKAUSDQoFdG90YWwYBCABKAUixgEKFUxpc3RPcGVyYXRpb25zUmVxdWVzdBIVCghjYXRlZ29yeRgBIAEoCUgAiAEBEhYKCWlzX2FjdGl2ZRgCIAEoCEgBiAEBEhMKBnNlYXJjaBgDIAEoCUgCiAEBEhYKCWNvbmZpZ19pZBgEIAEoCUgDiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUILCglfY2F0ZWdvcnlCDAoKX2lzX2FjdGl2ZUIJCgdfc2VhcmNoQgwKCl9jb25maWdfaWQiVQoWTGlzdE9wZXJhdGlvbnNSZXNwb25zZRIsCgpvcGVyYXRpb25zGAEgAygLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24SDQoFdG90YWwYAiABKAUiOwoTR2V0T3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgNrZXkYAiABKAlIAIgBAUIGCgRfa2V5IkMKFEdldE9wZXJhdGlvblJlc3BvbnNlEisKCW9wZXJhdGlvbhgBIAEoCzIYLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uIq8GChZDcmVhdGVPcGVyYXRpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEQoEaWNvbhgEIAEoCUgBiAEBEhUKCGNhdGVnb3J5GAUgASgJSAKIAQESEAoIZW5kcG9pbnQYBiABKAkSGgoNZW5kcG9pbnRfYXV0aBgHIAEoCUgDiAEBEhcKCnRpbWVvdXRfbXMYCCABKAVIBIgBARIyCgxpbnB1dF9zY2hlbWEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESMwoNb3V0cHV0X3NjaGVtYRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIoCgJ1aRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIWCgljb25maWdfaWQYDCABKAlICIgBARIzCg1zdHJlYW1fY29uZmlnGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgJiAEBEiwKBnF1b3RhcxgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICogBARIVCg1hbGxvd2VkX3JvbGVzGA8gAygJEjIKDHJldHJ5X3BvbGljeRgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIC4gBARIyCgxwcmVjb25kaXRpb24YESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAyIAQESFgoJaXNfYWN0aXZlGBIgASgISA2IAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUIQCg5fZW5kcG9pbnRfYXV0aEINCgtfdGltZW91dF9tc0IPCg1faW5wdXRfc2NoZW1hQhAKDl9vdXRwdXRfc2NoZW1hQgUKA191aUIMCgpfY29uZmlnX2lkQhAKDl9zdHJlYW1fY29uZmlnQgkKB19xdW90YXNCDwoNX3JldHJ5X3BvbGljeUIPCg1fcHJlY29uZGl0aW9uQgwKCl9pc19hY3RpdmUiRgoXQ3JlYXRlT3BlcmF0aW9uUmVzcG9uc2USKwoJb3BlcmF0aW9uGAEgASgLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24i6AUKFlVwZGF0ZU9wZXJhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESFQoIZW5kcG9pbnQYBCABKAlIAogBARIaCg1lbmRwb2ludF9hdXRoGAUgASgJSAOIAQESFwoKdGltZW91dF9tcxgGIAEoBUgEiAEBEjIKDGlucHV0X3NjaGVtYRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIzCg1vdXRwdXRfc2NoZW1hGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEigKAnVpGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhYKCWlzX2FjdGl2ZRgKIAEoCEgIiAEBEjMKDXN0cmVhbV9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAmIAQESLAoGcXVvdGFzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgKiAEBEjIKDHJldHJ5X3BvbGljeRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIC4gBARIyCgxwcmVjb25kaXRpb24YDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAyIAQESFQoNYWxsb3dlZF9yb2xlcxgPIAMoCUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCwoJX2VuZHBvaW50QhAKDl9lbmRwb2ludF9hdXRoQg0KC190aW1lb3V0X21zQg8KDV9pbnB1dF9zY2hlbWFCEAoOX291dHB1dF9zY2hlbWFCBQoDX3VpQgwKCl9pc19hY3RpdmVCEAoOX3N0cmVhbV9jb25maWdCCQoHX3F1b3Rhc0IPCg1fcmV0cnlfcG9saWN5Qg8KDV9wcmVjb25kaXRpb24iRgoXVXBkYXRlT3BlcmF0aW9uUmVzcG9uc2USKwoJb3BlcmF0aW9uGAEgASgLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24iJAoWRGVsZXRlT3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIqChdEZWxldGVPcGVyYXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqgDChdFeGVjdXRlT3BlcmF0aW9uUmVxdWVzdBIVCg1vcGVyYXRpb25fa2V5GAEgASgJEisKBWlucHV0GAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDHRyaWdnZXJfdHlwZRgDIAEoCUgBiAEBEjUKD3RyaWdnZXJfY29udGV4dBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIqCgRtb2RlGAUgASgOMhwub3BlcmF0aW9ucy52MS5FeGVjdXRpb25Nb2RlEhgKC2N1c3RvbWVyX2lkGAYgASgJSAOIAQESLAoGcmVjb3JkGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi0KB2NvbnRlbnQYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQFCCAoGX2lucHV0Qg8KDV90cmlnZ2VyX3R5cGVCEgoQX3RyaWdnZXJfY29udGV4dEIOCgxfY3VzdG9tZXJfaWRCCQoHX3JlY29yZEIKCghfY29udGVudCKpAgoYRXhlY3V0ZU9wZXJhdGlvblJlc3BvbnNlEjQKCWV4ZWN1dGlvbhgBIAEoCzIhLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uRXhlY3V0aW9uEhgKC3Jlc3VsdF9qc29uGAIgASgMSACIAQESGgoNZXJyb3JfbWVzc2FnZRgDIAEoCUgBiAEBEhEKCWNvbXBsZXRlZBgEIAEoCBIVCghwb2xsX3VybBgKIAEoCUgCiAEBEhcKCmNhbmNlbF91cmwYCyABKAlIA4gBARIUCgdtZXNzYWdlGAwgASgJSASIAQFCDgoMX3Jlc3VsdF9qc29uQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9wb2xsX3VybEINCgtfY2FuY2VsX3VybEIKCghfbWVzc2FnZSJ2Ch5MaXN0T3BlcmF0aW9uRXhlY3V0aW9uc1JlcXVlc3QSFQoNb3BlcmF0aW9uX2tleRgBIAEoCRITCgZzdGF0dXMYAiABKAlIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCCQoHX3N0YXR1cyJnCh9MaXN0T3BlcmF0aW9uRXhlY3V0aW9uc1Jlc3BvbnNlEjUKCmV4ZWN1dGlvbnMYASADKAsyIS5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbkV4ZWN1dGlvbhINCgV0b3RhbBgCIAEoBSJRCiFHZXRPcGVyYXRpb25FeGVjdXRpb25TdGF0c1JlcXVlc3QSGgoNb3BlcmF0aW9uX2tleRgBIAEoCUgAiAEBQhAKDl9vcGVyYXRpb25fa2V5IlIKIkdldE9wZXJhdGlvbkV4ZWN1dGlvblN0YXRzUmVzcG9uc2USLAoFc3RhdHMYASADKAsyHS5vcGVyYXRpb25zLnYxLkV4ZWN1dGlvblN0YXRzIosBChxMaXN0RGVhZExldHRlckVudHJpZXNSZXF1ZXN0EhoKDW9wZXJhdGlvbl9rZXkYASABKAlIAIgBARITCgZzdGF0dXMYAiABKAlIAYgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCEAoOX29wZXJhdGlvbl9rZXlCCQoHX3N0YXR1cyJfCh1MaXN0RGVhZExldHRlckVudHJpZXNSZXNwb25zZRIvCgdlbnRyaWVzGAEgAygLMh4ub3BlcmF0aW9ucy52MS5EZWFkTGV0dGVyRW50cnkSDQoFdG90YWwYAiABKAUiKQobUmV0cnlEZWFkTGV0dGVyRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIi8KHFJldHJ5RGVhZExldHRlckVudHJ5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIrCh1EaXNtaXNzRGVhZExldHRlckVudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSIxCh5EaXNtaXNzRGVhZExldHRlckVudHJ5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIbChlHZXREZWFkTGV0dGVyU3RhdHNSZXF1ZXN0IksKGkdldERlYWRMZXR0ZXJTdGF0c1Jlc3BvbnNlEi0KBXN0YXRzGAEgASgLMh4ub3BlcmF0aW9ucy52MS5EZWFkTGV0dGVyU3RhdHMiGgoYTGlzdENpcmN1aXRTdGF0ZXNSZXF1ZXN0IkgKGUxpc3RDaXJjdWl0U3RhdGVzUmVzcG9uc2USKwoGc3RhdGVzGAEgAygLMhsub3BlcmF0aW9ucy52MS5DaXJjdWl0U3RhdGUiLAoTUmVzZXRDaXJjdWl0UmVxdWVzdBIVCg1vcGVyYXRpb25fa2V5GAEgASgJIicKFFJlc2V0Q2lyY3VpdFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiGQoXR2V0U2lnbmluZ1NlY3JldFJlcXVlc3QiOgoYR2V0U2lnbmluZ1NlY3JldFJlc3BvbnNlEg4KBnNlY3JldBgBIAEoCRIOCgZwcmVmaXgYAiABKAkiIAoeUmVnZW5lcmF0ZVNpZ25pbmdTZWNyZXRSZXF1ZXN0IjEKH1JlZ2VuZXJhdGVTaWduaW5nU2VjcmV0UmVzcG9uc2USDgoGc2VjcmV0GAEgASgJIkIKHkdldEFwcGxpY2FibGVPcGVyYXRpb25zUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSDQoFbGltaXQYCiABKAUiTwofR2V0QXBwbGljYWJsZU9wZXJhdGlvbnNSZXNwb25zZRIsCgpvcGVyYXRpb25zGAEgAygLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24iKgocR2V0T3BlcmF0aW9uRXhlY3V0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJVCh1HZXRPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRI0CglleGVjdXRpb24YASABKAsyIS5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbkV4ZWN1dGlvbiItCh9DYW5jZWxPcGVyYXRpb25FeGVjdXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjMKIENhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiggEKHUdldE9wZXJhdGlvblF1b3RhVXNhZ2VSZXF1ZXN0EhUKDW9wZXJhdGlvbl9rZXkYASABKAkSGAoLY3VzdG9tZXJfaWQYAiABKAlIAIgBARIUCgd1c2VyX2lkGAMgASgJSAGIAQFCDgoMX2N1c3RvbWVyX2lkQgoKCF91c2VyX2lkIqEBCg5RdW90YVJ1bGVVc2FnZRISCgpydWxlX2luZGV4GAEgASgFEhMKC3NlZ21lbnRfa2V5GAIgASgJEg0KBWxpbWl0GAMgASgFEgwKBHVzZWQYBCABKAUSEQoJcmVtYWluaW5nGAUgASgFEhUKDXJlc2V0X2F0X3VuaXgYBiABKAMSDQoFc2NvcGUYByABKAkSEAoIZHVyYXRpb24YCCABKAUirQEKHkdldE9wZXJhdGlvblF1b3RhVXNhZ2VSZXNwb25zZRIYChB0b3RhbF9leGVjdXRpb25zGAEgASgDEhkKEXBlcmlvZF9leGVjdXRpb25zGAIgASgDEhgKC3F1b3RhX2xpbWl0GAMgASgDSACIAQESLAoFcnVsZXMYBCADKAsyHS5vcGVyYXRpb25zLnYxLlF1b3RhUnVsZVVzYWdlQg4KDF9xdW90YV9saW1pdCIcChpHZXRTaWduaW5nU2VjcmV0UmF3UmVxdWVzdCItChtHZXRTaWduaW5nU2VjcmV0UmF3UmVzcG9uc2USDgoGc2VjcmV0GAEgASgJKmIKDUV4ZWN1dGlvbk1vZGUSHgoaRVhFQ1VUSU9OX01PREVfVU5TUEVDSUZJRUQQABIXChNFWEVDVVRJT05fTU9ERV9TWU5DEAESGAoURVhFQ1VUSU9OX01PREVfQVNZTkMQAjKLEgoRT3BlcmF0aW9uc1NlcnZpY2USXQoOTGlzdE9wZXJhdGlvbnMSJC5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25zUmVxdWVzdBolLm9wZXJhdGlvbnMudjEuTGlzdE9wZXJhdGlvbnNSZXNwb25zZRJXCgxHZXRPcGVyYXRpb24SIi5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblJlcXVlc3QaIy5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblJlc3BvbnNlEmAKD0NyZWF0ZU9wZXJhdGlvbhIlLm9wZXJhdGlvbnMudjEuQ3JlYXRlT3BlcmF0aW9uUmVxdWVzdBomLm9wZXJhdGlvbnMudjEuQ3JlYXRlT3BlcmF0aW9uUmVzcG9uc2USYAoPVXBkYXRlT3BlcmF0aW9uEiUub3BlcmF0aW9ucy52MS5VcGRhdGVPcGVyYXRpb25SZXF1ZXN0GiYub3BlcmF0aW9ucy52MS5VcGRhdGVPcGVyYXRpb25SZXNwb25zZRJgCg9EZWxldGVPcGVyYXRpb24SJS5vcGVyYXRpb25zLnYxLkRlbGV0ZU9wZXJhdGlvblJlcXVlc3QaJi5vcGVyYXRpb25zLnYxLkRlbGV0ZU9wZXJhdGlvblJlc3BvbnNlEmMKEEV4ZWN1dGVPcGVyYXRpb24SJi5vcGVyYXRpb25zLnYxLkV4ZWN1dGVPcGVyYXRpb25SZXF1ZXN0Gicub3BlcmF0aW9ucy52MS5FeGVjdXRlT3BlcmF0aW9uUmVzcG9uc2USeAoXTGlzdE9wZXJhdGlvbkV4ZWN1dGlvbnMSLS5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25FeGVjdXRpb25zUmVxdWVzdBouLm9wZXJhdGlvbnMudjEuTGlzdE9wZXJhdGlvbkV4ZWN1dGlvbnNSZXNwb25zZRKBAQoaR2V0T3BlcmF0aW9uRXhlY3V0aW9uU3RhdHMSMC5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvbkV4ZWN1dGlvblN0YXRzUmVxdWVzdBoxLm9wZXJhdGlvbnMudjEuR2V0T3BlcmF0aW9uRXhlY3V0aW9uU3RhdHNSZXNwb25zZRJyChVMaXN0RGVhZExldHRlckVudHJpZXMSKy5vcGVyYXRpb25zLnYxLkxpc3REZWFkTGV0dGVyRW50cmllc1JlcXVlc3QaLC5vcGVyYXRpb25zLnYxLkxpc3REZWFkTGV0dGVyRW50cmllc1Jlc3BvbnNlEm8KFFJldHJ5RGVhZExldHRlckVudHJ5Eioub3BlcmF0aW9ucy52MS5SZXRyeURlYWRMZXR0ZXJFbnRyeVJlcXVlc3QaKy5vcGVyYXRpb25zLnYxLlJldHJ5RGVhZExldHRlckVudHJ5UmVzcG9uc2USdQoWRGlzbWlzc0RlYWRMZXR0ZXJFbnRyeRIsLm9wZXJhdGlvbnMudjEuRGlzbWlzc0RlYWRMZXR0ZXJFbnRyeVJlcXVlc3QaLS5vcGVyYXRpb25zLnYxLkRpc21pc3NEZWFkTGV0dGVyRW50cnlSZXNwb25zZRJpChJHZXREZWFkTGV0dGVyU3RhdHMSKC5vcGVyYXRpb25zLnYxLkdldERlYWRMZXR0ZXJTdGF0c1JlcXVlc3QaKS5vcGVyYXRpb25zLnYxLkdldERlYWRMZXR0ZXJTdGF0c1Jlc3BvbnNlEmYKEUxpc3RDaXJjdWl0U3RhdGVzEicub3BlcmF0aW9ucy52MS5MaXN0Q2lyY3VpdFN0YXRlc1JlcXVlc3QaKC5vcGVyYXRpb25zLnYxLkxpc3RDaXJjdWl0U3RhdGVzUmVzcG9uc2USVwoMUmVzZXRDaXJjdWl0EiIub3BlcmF0aW9ucy52MS5SZXNldENpcmN1aXRSZXF1ZXN0GiMub3BlcmF0aW9ucy52MS5SZXNldENpcmN1aXRSZXNwb25zZRJ4ChdHZXRBcHBsaWNhYmxlT3BlcmF0aW9ucxItLm9wZXJhdGlvbnMudjEuR2V0QXBwbGljYWJsZU9wZXJhdGlvbnNSZXF1ZXN0Gi4ub3BlcmF0aW9ucy52MS5HZXRBcHBsaWNhYmxlT3BlcmF0aW9uc1Jlc3BvbnNlEnIKFUdldE9wZXJhdGlvbkV4ZWN1dGlvbhIrLm9wZXJhdGlvbnMudjEuR2V0T3BlcmF0aW9uRXhlY3V0aW9uUmVxdWVzdBosLm9wZXJhdGlvbnMudjEuR2V0T3BlcmF0aW9uRXhlY3V0aW9uUmVzcG9uc2USewoYQ2FuY2VsT3BlcmF0aW9uRXhlY3V0aW9uEi4ub3BlcmF0aW9ucy52MS5DYW5jZWxPcGVyYXRpb25FeGVjdXRpb25SZXF1ZXN0Gi8ub3BlcmF0aW9ucy52MS5DYW5jZWxPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRJ1ChZHZXRPcGVyYXRpb25RdW90YVVzYWdlEiwub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25RdW90YVVzYWdlUmVxdWVzdBotLm9wZXJhdGlvbnMudjEuR2V0T3BlcmF0aW9uUXVvdGFVc2FnZVJlc3BvbnNlEmMKEEdldFNpZ25pbmdTZWNyZXQSJi5vcGVyYXRpb25zLnYxLkdldFNpZ25pbmdTZWNyZXRSZXF1ZXN0Gicub3BlcmF0aW9ucy52MS5HZXRTaWduaW5nU2VjcmV0UmVzcG9uc2USbAoTR2V0U2lnbmluZ1NlY3JldFJhdxIpLm9wZXJhdGlvbnMudjEuR2V0U2lnbmluZ1NlY3JldFJhd1JlcXVlc3QaKi5vcGVyYXRpb25zLnYxLkdldFNpZ25pbmdTZWNyZXRSYXdSZXNwb25zZRJ4ChdSZWdlbmVyYXRlU2lnbmluZ1NlY3JldBItLm9wZXJhdGlvbnMudjEuUmVnZW5lcmF0ZVNpZ25pbmdTZWNyZXRSZXF1ZXN0Gi4ub3BlcmF0aW9ucy52MS5SZWdlbmVyYXRlU2lnbmluZ1NlY3JldFJlc3BvbnNlQkFaP2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9vcGVyYXRpb25zL3YxO29wZXJhdGlvbnN2MWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp]);
|
|
12
|
+
fileDesc("Ch5vcGVyYXRpb25zL3YxL29wZXJhdGlvbnMucHJvdG8SDW9wZXJhdGlvbnMudjEiygcKCU9wZXJhdGlvbhIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhEKBGljb24YBSABKAlIAYgBARIVCghjYXRlZ29yeRgGIAEoCUgCiAEBEhAKCGVuZHBvaW50GAcgASgJEhoKDWVuZHBvaW50X2F1dGgYCCABKAlIA4gBARISCgp0aW1lb3V0X21zGAkgASgFEjIKDHJldHJ5X3BvbGljeRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIyCgxpbnB1dF9zY2hlbWEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESMwoNb3V0cHV0X3NjaGVtYRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIoCgJ1aRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIRCglpc19hY3RpdmUYDiABKAgSFQoNYWxsb3dlZF9yb2xlcxgPIAMoCRIzCg1zdHJlYW1fY29uZmlnGBAgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgIiAEBEiwKBnF1b3RhcxgRIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICYgBARIWCgljb25maWdfaWQYEiABKAlICogBARIyCgxwcmVjb25kaXRpb24YEyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAuIAQESEQoJdGVuYW50X2lkGBQgASgJEhcKCnByb2plY3RfaWQYFSABKAlIDIgBARIXCgpjcmVhdGVkX2J5GB4gASgJSA2IAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUIQCg5fZW5kcG9pbnRfYXV0aEIPCg1fcmV0cnlfcG9saWN5Qg8KDV9pbnB1dF9zY2hlbWFCEAoOX291dHB1dF9zY2hlbWFCBQoDX3VpQhAKDl9zdHJlYW1fY29uZmlnQgkKB19xdW90YXNCDAoKX2NvbmZpZ19pZEIPCg1fcHJlY29uZGl0aW9uQg0KC19wcm9qZWN0X2lkQg0KC19jcmVhdGVkX2J5Iv0EChJPcGVyYXRpb25FeGVjdXRpb24SCgoCaWQYASABKAkSFQoNb3BlcmF0aW9uX2tleRgCIAEoCRIOCgZzdGF0dXMYAyABKAkSGQoMdHJpZ2dlcl90eXBlGAQgASgJSACIAQESNQoPdHJpZ2dlcl9jb250ZXh0GAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEisKBWlucHV0GAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEhgKC3Jlc3VsdF9qc29uGAcgASgMSAOIAQESFwoKZXJyb3JfanNvbhgIIAEoDEgEiAEBEjMKCnN0YXJ0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESNQoMY29tcGxldGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBEhgKC2R1cmF0aW9uX21zGAsgASgFSAeIAQESEwoLcmV0cnlfY291bnQYDCABKAUSEQoJdGVuYW50X2lkGBQgASgJEhcKCnByb2plY3RfaWQYFSABKAlICIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIPCg1fdHJpZ2dlcl90eXBlQhIKEF90cmlnZ2VyX2NvbnRleHRCCAoGX2lucHV0Qg4KDF9yZXN1bHRfanNvbkINCgtfZXJyb3JfanNvbkINCgtfc3RhcnRlZF9hdEIPCg1fY29tcGxldGVkX2F0Qg4KDF9kdXJhdGlvbl9tc0INCgtfcHJvamVjdF9pZCLfBAoPRGVhZExldHRlckVudHJ5EgoKAmlkGAEgASgJEhUKDW9wZXJhdGlvbl9rZXkYAiABKAkSGQoMZXhlY3V0aW9uX2lkGAMgASgJSACIAQESKwoFaW5wdXQYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESGQoMdHJpZ2dlcl90eXBlGAUgASgJSAKIAQESEAoIYXR0ZW1wdHMYBiABKAUSEgoKbGFzdF9lcnJvchgHIAEoCRIXCgplcnJvcl9jb2RlGAggASgJSAOIAQESDgoGc3RhdHVzGAkgASgJEi0KCWZhaWxlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoKcmV0cmllZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARI1CgxkaXNtaXNzZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESGQoMZGlzbWlzc2VkX2J5GA0gASgJSAaIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX2V4ZWN1dGlvbl9pZEIICgZfaW5wdXRCDwoNX3RyaWdnZXJfdHlwZUINCgtfZXJyb3JfY29kZUINCgtfcmV0cmllZF9hdEIPCg1fZGlzbWlzc2VkX2F0Qg8KDV9kaXNtaXNzZWRfYnkitQIKDENpcmN1aXRTdGF0ZRIVCg1vcGVyYXRpb25fa2V5GAEgASgJEhAKCGVuZHBvaW50GAIgASgJEg0KBXN0YXRlGAMgASgJEhUKDWZhaWx1cmVfY291bnQYBCABKAUSOAoPbGFzdF9mYWlsdXJlX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjIKCW9wZW5lZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI1CgxoYWxmX29wZW5fYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQFCEgoQX2xhc3RfZmFpbHVyZV9hdEIMCgpfb3BlbmVkX2F0Qg8KDV9oYWxmX29wZW5fYXQigQEKDkV4ZWN1dGlvblN0YXRzEhUKDW9wZXJhdGlvbl9rZXkYASABKAkSDQoFdG90YWwYAiABKAUSDwoHc3VjY2VzcxgDIAEoBRIOCgZmYWlsZWQYBCABKAUSDwoHcGVuZGluZxgFIAEoBRIXCg9hdmdfZHVyYXRpb25fbXMYBiABKAEiVQoPRGVhZExldHRlclN0YXRzEg8KB3BlbmRpbmcYASABKAUSDwoHcmV0cmllZBgCIAEoBRIRCglkaXNtaXNzZWQYAyABKAUSDQoFdG90YWwYBCABKAUixgEKFUxpc3RPcGVyYXRpb25zUmVxdWVzdBIVCghjYXRlZ29yeRgBIAEoCUgAiAEBEhYKCWlzX2FjdGl2ZRgCIAEoCEgBiAEBEhMKBnNlYXJjaBgDIAEoCUgCiAEBEhYKCWNvbmZpZ19pZBgEIAEoCUgDiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUILCglfY2F0ZWdvcnlCDAoKX2lzX2FjdGl2ZUIJCgdfc2VhcmNoQgwKCl9jb25maWdfaWQiVQoWTGlzdE9wZXJhdGlvbnNSZXNwb25zZRIsCgpvcGVyYXRpb25zGAEgAygLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24SDQoFdG90YWwYAiABKAUiOwoTR2V0T3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgNrZXkYAiABKAlIAIgBAUIGCgRfa2V5IkMKFEdldE9wZXJhdGlvblJlc3BvbnNlEisKCW9wZXJhdGlvbhgBIAEoCzIYLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uIq8GChZDcmVhdGVPcGVyYXRpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEQoEaWNvbhgEIAEoCUgBiAEBEhUKCGNhdGVnb3J5GAUgASgJSAKIAQESEAoIZW5kcG9pbnQYBiABKAkSGgoNZW5kcG9pbnRfYXV0aBgHIAEoCUgDiAEBEhcKCnRpbWVvdXRfbXMYCCABKAVIBIgBARIyCgxpbnB1dF9zY2hlbWEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESMwoNb3V0cHV0X3NjaGVtYRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIoCgJ1aRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIWCgljb25maWdfaWQYDCABKAlICIgBARIzCg1zdHJlYW1fY29uZmlnGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgJiAEBEiwKBnF1b3RhcxgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICogBARIVCg1hbGxvd2VkX3JvbGVzGA8gAygJEjIKDHJldHJ5X3BvbGljeRgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIC4gBARIyCgxwcmVjb25kaXRpb24YESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAyIAQESFgoJaXNfYWN0aXZlGBIgASgISA2IAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUIQCg5fZW5kcG9pbnRfYXV0aEINCgtfdGltZW91dF9tc0IPCg1faW5wdXRfc2NoZW1hQhAKDl9vdXRwdXRfc2NoZW1hQgUKA191aUIMCgpfY29uZmlnX2lkQhAKDl9zdHJlYW1fY29uZmlnQgkKB19xdW90YXNCDwoNX3JldHJ5X3BvbGljeUIPCg1fcHJlY29uZGl0aW9uQgwKCl9pc19hY3RpdmUiRgoXQ3JlYXRlT3BlcmF0aW9uUmVzcG9uc2USKwoJb3BlcmF0aW9uGAEgASgLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24i6AUKFlVwZGF0ZU9wZXJhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESFQoIZW5kcG9pbnQYBCABKAlIAogBARIaCg1lbmRwb2ludF9hdXRoGAUgASgJSAOIAQESFwoKdGltZW91dF9tcxgGIAEoBUgEiAEBEjIKDGlucHV0X3NjaGVtYRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIzCg1vdXRwdXRfc2NoZW1hGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEigKAnVpGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhYKCWlzX2FjdGl2ZRgKIAEoCEgIiAEBEjMKDXN0cmVhbV9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAmIAQESLAoGcXVvdGFzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgKiAEBEjIKDHJldHJ5X3BvbGljeRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIC4gBARIyCgxwcmVjb25kaXRpb24YDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAyIAQESFQoNYWxsb3dlZF9yb2xlcxgPIAMoCUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCwoJX2VuZHBvaW50QhAKDl9lbmRwb2ludF9hdXRoQg0KC190aW1lb3V0X21zQg8KDV9pbnB1dF9zY2hlbWFCEAoOX291dHB1dF9zY2hlbWFCBQoDX3VpQgwKCl9pc19hY3RpdmVCEAoOX3N0cmVhbV9jb25maWdCCQoHX3F1b3Rhc0IPCg1fcmV0cnlfcG9saWN5Qg8KDV9wcmVjb25kaXRpb24iRgoXVXBkYXRlT3BlcmF0aW9uUmVzcG9uc2USKwoJb3BlcmF0aW9uGAEgASgLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24iJAoWRGVsZXRlT3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIqChdEZWxldGVPcGVyYXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqgDChdFeGVjdXRlT3BlcmF0aW9uUmVxdWVzdBIVCg1vcGVyYXRpb25fa2V5GAEgASgJEisKBWlucHV0GAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDHRyaWdnZXJfdHlwZRgDIAEoCUgBiAEBEjUKD3RyaWdnZXJfY29udGV4dBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIqCgRtb2RlGAUgASgOMhwub3BlcmF0aW9ucy52MS5FeGVjdXRpb25Nb2RlEhgKC2N1c3RvbWVyX2lkGAYgASgJSAOIAQESLAoGcmVjb3JkGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi0KB2NvbnRlbnQYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQFCCAoGX2lucHV0Qg8KDV90cmlnZ2VyX3R5cGVCEgoQX3RyaWdnZXJfY29udGV4dEIOCgxfY3VzdG9tZXJfaWRCCQoHX3JlY29yZEIKCghfY29udGVudCKpAgoYRXhlY3V0ZU9wZXJhdGlvblJlc3BvbnNlEjQKCWV4ZWN1dGlvbhgBIAEoCzIhLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uRXhlY3V0aW9uEhgKC3Jlc3VsdF9qc29uGAIgASgMSACIAQESGgoNZXJyb3JfbWVzc2FnZRgDIAEoCUgBiAEBEhEKCWNvbXBsZXRlZBgEIAEoCBIVCghwb2xsX3VybBgKIAEoCUgCiAEBEhcKCmNhbmNlbF91cmwYCyABKAlIA4gBARIUCgdtZXNzYWdlGAwgASgJSASIAQFCDgoMX3Jlc3VsdF9qc29uQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9wb2xsX3VybEINCgtfY2FuY2VsX3VybEIKCghfbWVzc2FnZSJ2Ch5MaXN0T3BlcmF0aW9uRXhlY3V0aW9uc1JlcXVlc3QSFQoNb3BlcmF0aW9uX2tleRgBIAEoCRITCgZzdGF0dXMYAiABKAlIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCCQoHX3N0YXR1cyJnCh9MaXN0T3BlcmF0aW9uRXhlY3V0aW9uc1Jlc3BvbnNlEjUKCmV4ZWN1dGlvbnMYASADKAsyIS5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbkV4ZWN1dGlvbhINCgV0b3RhbBgCIAEoBSJRCiFHZXRPcGVyYXRpb25FeGVjdXRpb25TdGF0c1JlcXVlc3QSGgoNb3BlcmF0aW9uX2tleRgBIAEoCUgAiAEBQhAKDl9vcGVyYXRpb25fa2V5IlIKIkdldE9wZXJhdGlvbkV4ZWN1dGlvblN0YXRzUmVzcG9uc2USLAoFc3RhdHMYASADKAsyHS5vcGVyYXRpb25zLnYxLkV4ZWN1dGlvblN0YXRzIosBChxMaXN0RGVhZExldHRlckVudHJpZXNSZXF1ZXN0EhoKDW9wZXJhdGlvbl9rZXkYASABKAlIAIgBARITCgZzdGF0dXMYAiABKAlIAYgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCEAoOX29wZXJhdGlvbl9rZXlCCQoHX3N0YXR1cyJfCh1MaXN0RGVhZExldHRlckVudHJpZXNSZXNwb25zZRIvCgdlbnRyaWVzGAEgAygLMh4ub3BlcmF0aW9ucy52MS5EZWFkTGV0dGVyRW50cnkSDQoFdG90YWwYAiABKAUiKQobUmV0cnlEZWFkTGV0dGVyRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIi8KHFJldHJ5RGVhZExldHRlckVudHJ5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIrCh1EaXNtaXNzRGVhZExldHRlckVudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSIxCh5EaXNtaXNzRGVhZExldHRlckVudHJ5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIbChlHZXREZWFkTGV0dGVyU3RhdHNSZXF1ZXN0IksKGkdldERlYWRMZXR0ZXJTdGF0c1Jlc3BvbnNlEi0KBXN0YXRzGAEgASgLMh4ub3BlcmF0aW9ucy52MS5EZWFkTGV0dGVyU3RhdHMiGgoYTGlzdENpcmN1aXRTdGF0ZXNSZXF1ZXN0IkgKGUxpc3RDaXJjdWl0U3RhdGVzUmVzcG9uc2USKwoGc3RhdGVzGAEgAygLMhsub3BlcmF0aW9ucy52MS5DaXJjdWl0U3RhdGUiLAoTUmVzZXRDaXJjdWl0UmVxdWVzdBIVCg1vcGVyYXRpb25fa2V5GAEgASgJIicKFFJlc2V0Q2lyY3VpdFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiGQoXR2V0U2lnbmluZ1NlY3JldFJlcXVlc3QiOgoYR2V0U2lnbmluZ1NlY3JldFJlc3BvbnNlEg4KBnNlY3JldBgBIAEoCRIOCgZwcmVmaXgYAiABKAkiIAoeUmVnZW5lcmF0ZVNpZ25pbmdTZWNyZXRSZXF1ZXN0IjEKH1JlZ2VuZXJhdGVTaWduaW5nU2VjcmV0UmVzcG9uc2USDgoGc2VjcmV0GAEgASgJIkIKHkdldEFwcGxpY2FibGVPcGVyYXRpb25zUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSDQoFbGltaXQYCiABKAUiTwofR2V0QXBwbGljYWJsZU9wZXJhdGlvbnNSZXNwb25zZRIsCgpvcGVyYXRpb25zGAEgAygLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24iKgocR2V0T3BlcmF0aW9uRXhlY3V0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJVCh1HZXRPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRI0CglleGVjdXRpb24YASABKAsyIS5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbkV4ZWN1dGlvbiItCh9DYW5jZWxPcGVyYXRpb25FeGVjdXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjMKIENhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiggEKHUdldE9wZXJhdGlvblF1b3RhVXNhZ2VSZXF1ZXN0EhUKDW9wZXJhdGlvbl9rZXkYASABKAkSGAoLY3VzdG9tZXJfaWQYAiABKAlIAIgBARIUCgd1c2VyX2lkGAMgASgJSAGIAQFCDgoMX2N1c3RvbWVyX2lkQgoKCF91c2VyX2lkIrIBCg5RdW90YVJ1bGVVc2FnZRISCgpydWxlX2luZGV4GAEgASgFEhMKC3NlZ21lbnRfa2V5GAIgASgJEg0KBWxpbWl0GAMgASgFEgwKBHVzZWQYBCABKAUSEQoJcmVtYWluaW5nGAUgASgFEhUKDXJlc2V0X2F0X3VuaXgYBiABKAMSDQoFc2NvcGUYByABKAkSEAoIZHVyYXRpb24YCCABKAUSDwoHbWVzc2FnZRgJIAEoCSKtAQoeR2V0T3BlcmF0aW9uUXVvdGFVc2FnZVJlc3BvbnNlEhgKEHRvdGFsX2V4ZWN1dGlvbnMYASABKAMSGQoRcGVyaW9kX2V4ZWN1dGlvbnMYAiABKAMSGAoLcXVvdGFfbGltaXQYAyABKANIAIgBARIsCgVydWxlcxgEIAMoCzIdLm9wZXJhdGlvbnMudjEuUXVvdGFSdWxlVXNhZ2VCDgoMX3F1b3RhX2xpbWl0IhwKGkdldFNpZ25pbmdTZWNyZXRSYXdSZXF1ZXN0Ii0KG0dldFNpZ25pbmdTZWNyZXRSYXdSZXNwb25zZRIOCgZzZWNyZXQYASABKAkqYgoNRXhlY3V0aW9uTW9kZRIeChpFWEVDVVRJT05fTU9ERV9VTlNQRUNJRklFRBAAEhcKE0VYRUNVVElPTl9NT0RFX1NZTkMQARIYChRFWEVDVVRJT05fTU9ERV9BU1lOQxACMosSChFPcGVyYXRpb25zU2VydmljZRJdCg5MaXN0T3BlcmF0aW9ucxIkLm9wZXJhdGlvbnMudjEuTGlzdE9wZXJhdGlvbnNSZXF1ZXN0GiUub3BlcmF0aW9ucy52MS5MaXN0T3BlcmF0aW9uc1Jlc3BvbnNlElcKDEdldE9wZXJhdGlvbhIiLm9wZXJhdGlvbnMudjEuR2V0T3BlcmF0aW9uUmVxdWVzdBojLm9wZXJhdGlvbnMudjEuR2V0T3BlcmF0aW9uUmVzcG9uc2USYAoPQ3JlYXRlT3BlcmF0aW9uEiUub3BlcmF0aW9ucy52MS5DcmVhdGVPcGVyYXRpb25SZXF1ZXN0GiYub3BlcmF0aW9ucy52MS5DcmVhdGVPcGVyYXRpb25SZXNwb25zZRJgCg9VcGRhdGVPcGVyYXRpb24SJS5vcGVyYXRpb25zLnYxLlVwZGF0ZU9wZXJhdGlvblJlcXVlc3QaJi5vcGVyYXRpb25zLnYxLlVwZGF0ZU9wZXJhdGlvblJlc3BvbnNlEmAKD0RlbGV0ZU9wZXJhdGlvbhIlLm9wZXJhdGlvbnMudjEuRGVsZXRlT3BlcmF0aW9uUmVxdWVzdBomLm9wZXJhdGlvbnMudjEuRGVsZXRlT3BlcmF0aW9uUmVzcG9uc2USYwoQRXhlY3V0ZU9wZXJhdGlvbhImLm9wZXJhdGlvbnMudjEuRXhlY3V0ZU9wZXJhdGlvblJlcXVlc3QaJy5vcGVyYXRpb25zLnYxLkV4ZWN1dGVPcGVyYXRpb25SZXNwb25zZRJ4ChdMaXN0T3BlcmF0aW9uRXhlY3V0aW9ucxItLm9wZXJhdGlvbnMudjEuTGlzdE9wZXJhdGlvbkV4ZWN1dGlvbnNSZXF1ZXN0Gi4ub3BlcmF0aW9ucy52MS5MaXN0T3BlcmF0aW9uRXhlY3V0aW9uc1Jlc3BvbnNlEoEBChpHZXRPcGVyYXRpb25FeGVjdXRpb25TdGF0cxIwLm9wZXJhdGlvbnMudjEuR2V0T3BlcmF0aW9uRXhlY3V0aW9uU3RhdHNSZXF1ZXN0GjEub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25FeGVjdXRpb25TdGF0c1Jlc3BvbnNlEnIKFUxpc3REZWFkTGV0dGVyRW50cmllcxIrLm9wZXJhdGlvbnMudjEuTGlzdERlYWRMZXR0ZXJFbnRyaWVzUmVxdWVzdBosLm9wZXJhdGlvbnMudjEuTGlzdERlYWRMZXR0ZXJFbnRyaWVzUmVzcG9uc2USbwoUUmV0cnlEZWFkTGV0dGVyRW50cnkSKi5vcGVyYXRpb25zLnYxLlJldHJ5RGVhZExldHRlckVudHJ5UmVxdWVzdBorLm9wZXJhdGlvbnMudjEuUmV0cnlEZWFkTGV0dGVyRW50cnlSZXNwb25zZRJ1ChZEaXNtaXNzRGVhZExldHRlckVudHJ5Eiwub3BlcmF0aW9ucy52MS5EaXNtaXNzRGVhZExldHRlckVudHJ5UmVxdWVzdBotLm9wZXJhdGlvbnMudjEuRGlzbWlzc0RlYWRMZXR0ZXJFbnRyeVJlc3BvbnNlEmkKEkdldERlYWRMZXR0ZXJTdGF0cxIoLm9wZXJhdGlvbnMudjEuR2V0RGVhZExldHRlclN0YXRzUmVxdWVzdBopLm9wZXJhdGlvbnMudjEuR2V0RGVhZExldHRlclN0YXRzUmVzcG9uc2USZgoRTGlzdENpcmN1aXRTdGF0ZXMSJy5vcGVyYXRpb25zLnYxLkxpc3RDaXJjdWl0U3RhdGVzUmVxdWVzdBooLm9wZXJhdGlvbnMudjEuTGlzdENpcmN1aXRTdGF0ZXNSZXNwb25zZRJXCgxSZXNldENpcmN1aXQSIi5vcGVyYXRpb25zLnYxLlJlc2V0Q2lyY3VpdFJlcXVlc3QaIy5vcGVyYXRpb25zLnYxLlJlc2V0Q2lyY3VpdFJlc3BvbnNlEngKF0dldEFwcGxpY2FibGVPcGVyYXRpb25zEi0ub3BlcmF0aW9ucy52MS5HZXRBcHBsaWNhYmxlT3BlcmF0aW9uc1JlcXVlc3QaLi5vcGVyYXRpb25zLnYxLkdldEFwcGxpY2FibGVPcGVyYXRpb25zUmVzcG9uc2UScgoVR2V0T3BlcmF0aW9uRXhlY3V0aW9uEisub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25FeGVjdXRpb25SZXF1ZXN0Giwub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRJ7ChhDYW5jZWxPcGVyYXRpb25FeGVjdXRpb24SLi5vcGVyYXRpb25zLnYxLkNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QaLy5vcGVyYXRpb25zLnYxLkNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvblJlc3BvbnNlEnUKFkdldE9wZXJhdGlvblF1b3RhVXNhZ2USLC5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblF1b3RhVXNhZ2VSZXF1ZXN0Gi0ub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25RdW90YVVzYWdlUmVzcG9uc2USYwoQR2V0U2lnbmluZ1NlY3JldBImLm9wZXJhdGlvbnMudjEuR2V0U2lnbmluZ1NlY3JldFJlcXVlc3QaJy5vcGVyYXRpb25zLnYxLkdldFNpZ25pbmdTZWNyZXRSZXNwb25zZRJsChNHZXRTaWduaW5nU2VjcmV0UmF3Eikub3BlcmF0aW9ucy52MS5HZXRTaWduaW5nU2VjcmV0UmF3UmVxdWVzdBoqLm9wZXJhdGlvbnMudjEuR2V0U2lnbmluZ1NlY3JldFJhd1Jlc3BvbnNlEngKF1JlZ2VuZXJhdGVTaWduaW5nU2VjcmV0Ei0ub3BlcmF0aW9ucy52MS5SZWdlbmVyYXRlU2lnbmluZ1NlY3JldFJlcXVlc3QaLi5vcGVyYXRpb25zLnYxLlJlZ2VuZXJhdGVTaWduaW5nU2VjcmV0UmVzcG9uc2VCQVo/Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL29wZXJhdGlvbnMvdjE7b3BlcmF0aW9uc3YxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp]);
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Describes the message operations.v1.Operation.
|
|
@@ -3992,9 +3992,9 @@ export declare const ProjectSchemaExperimentSchema: GenMessage<ProjectSchemaExpe
|
|
|
3992
3992
|
*/
|
|
3993
3993
|
export declare type ProjectSchemaProfileSchema = Message<"settings.v1.ProjectSchemaProfileSchema"> & {
|
|
3994
3994
|
/**
|
|
3995
|
-
* @generated from field:
|
|
3995
|
+
* @generated from field: string fields_json = 1;
|
|
3996
3996
|
*/
|
|
3997
|
-
|
|
3997
|
+
fieldsJson: string;
|
|
3998
3998
|
|
|
3999
3999
|
/**
|
|
4000
4000
|
* @generated from field: repeated string public_fields = 2;
|
|
@@ -10,7 +10,7 @@ import { file_expressions_v1_expressions } from "../../expressions/v1/expression
|
|
|
10
10
|
* Describes the file settings/v1/settings.proto.
|
|
11
11
|
*/
|
|
12
12
|
export const file_settings_v1_settings = /*@__PURE__*/
|
|
13
|
-
fileDesc("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiggMKB1NldHRpbmcSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhAKCGNhdGVnb3J5GAMgASgJEisKBXZhbHVlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDGRpc3BsYXlfbmFtZRgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESEQoJZGF0YV90eXBlGAcgASgJEhEKCWlzX3B1YmxpYxgIIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl92YWx1ZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfcHJvamVjdF9pZCKrBAoIQXVkaXRMb2cSCgoCaWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgd1c2VyX2lkGAMgASgJSACIAQESFgoJdGVuYW50X2lkGAQgASgJSAGIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgCiAEBEg4KBmFjdGlvbhgGIAEoCRIVCg1yZXNvdXJjZV90eXBlGAcgASgJEhgKC3Jlc291cmNlX2lkGAggASgJSAOIAQESLAoGYmVmb3JlGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWFmdGVyGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEhcKCmlwX2FkZHJlc3MYDCABKAlIB4gBARIXCgp1c2VyX2FnZW50GA0gASgJSAiIAQESFwoKcmVxdWVzdF9pZBgOIAEoCUgJiAEBQgoKCF91c2VyX2lkQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDgoMX3Jlc291cmNlX2lkQgkKB19iZWZvcmVCCAoGX2FmdGVyQgsKCV9tZXRhZGF0YUINCgtfaXBfYWRkcmVzc0INCgtfdXNlcl9hZ2VudEINCgtfcmVxdWVzdF9pZCKdBQoETm90ZRIKCgJpZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkSHwoSZW50aXR5X25hdHVyYWxfa2V5GAQgASgJSACIAQESFwoKdmVyc2lvbl9pZBgFIAEoCUgBiAEBEigKB2NvbnRlbnQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNvbnRlbnRfcGxhaW5fdGV4dBgHIAEoCUgCiAEBEhsKDnBhcmVudF9ub3RlX2lkGAogASgJSAOIAQESGwoOdGhyZWFkX3Jvb3RfaWQYCyABKAlIBIgBARITCgtpc19yZXNvbHZlZBgPIAEoCBI0CgtyZXNvbHZlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIYCgtyZXNvbHZlZF9ieRgRIAEoCUgGiAEBEi4KCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCXRlbmFudF9pZBgeIAEoCRIXCgpwcm9qZWN0X2lkGB8gASgJSAiIAQESEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIVChNfZW50aXR5X25hdHVyYWxfa2V5Qg0KC192ZXJzaW9uX2lkQhUKE19jb250ZW50X3BsYWluX3RleHRCEQoPX3BhcmVudF9ub3RlX2lkQhEKD190aHJlYWRfcm9vdF9pZEIOCgxfcmVzb2x2ZWRfYXRCDgoMX3Jlc29sdmVkX2J5QgsKCV9tZXRhZGF0YUINCgtfcHJvamVjdF9pZCKqBQoFU2hhcmUSCgoCaWQYASABKAkSNQoNcmVzb3VyY2VfdHlwZRgCIAEoDjIeLnNldHRpbmdzLnYxLlNoYXJlUmVzb3VyY2VUeXBlEhYKCXJlY29yZF9pZBgDIAEoCUgAiAEBEhQKB2ZpbGVfaWQYBCABKAlIAYgBARIWCgltb2RlbF9rZXkYBSABKAlIAogBARIfChdzaGFyZWRfd2l0aF9jdXN0b21lcl9pZBgGIAEoCRIwCgpwZXJtaXNzaW9uGAcgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uEigKBnN0YXR1cxgKIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzEjQKC2FjY2VwdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjMKCmV4cGlyZXNfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgFiAEBEhcKCnJldm9rZWRfYnkYHyABKAlIBogBARIzCgpyZXZva2VkX2F0GCAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWRCDAoKX21vZGVsX2tleUIOCgxfYWNjZXB0ZWRfYXRCDQoLX2V4cGlyZXNfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3Jldm9rZWRfYnlCDQoLX3Jldm9rZWRfYXQiUgoSR2V0U2V0dGluZ3NSZXF1ZXN0EhUKCGNhdGVnb3J5GAEgASgJSACIAQESEAoDa2V5GAIgASgJSAGIAQFCCwoJX2NhdGVnb3J5QgYKBF9rZXkiPQoTR2V0U2V0dGluZ3NSZXNwb25zZRImCghzZXR0aW5ncxgBIAMoCzIULnNldHRpbmdzLnYxLlNldHRpbmciSwoUVXBkYXRlU2V0dGluZ1JlcXVlc3QSCwoDa2V5GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI+ChVVcGRhdGVTZXR0aW5nUmVzcG9uc2USJQoHc2V0dGluZxgBIAEoCzIULnNldHRpbmdzLnYxLlNldHRpbmciuwIKFExpc3RBdWRpdExvZ3NSZXF1ZXN0EhMKBmFjdGlvbhgBIAEoCUgAiAEBEhoKDXJlc291cmNlX3R5cGUYAiABKAlIAYgBARIYCgtyZXNvdXJjZV9pZBgDIAEoCUgCiAEBEhQKB3VzZXJfaWQYBCABKAlIA4gBARItCgRmcm9tGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEisKAnRvGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfYWN0aW9uQhAKDl9yZXNvdXJjZV90eXBlQg4KDF9yZXNvdXJjZV9pZEIKCghfdXNlcl9pZEIHCgVfZnJvbUIFCgNfdG8iSwoVTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEiMKBGxvZ3MYASADKAsyFS5zZXR0aW5ncy52MS5BdWRpdExvZxINCgV0b3RhbBgCIAEoBSKVAQoRQ3JlYXRlTm90ZVJlcXVlc3QSEwoLZW50aXR5X3R5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEigKB2NvbnRlbnQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhsKDnBhcmVudF9ub3RlX2lkGAQgASgJSACIAQFCEQoPX3BhcmVudF9ub3RlX2lkIjUKEkNyZWF0ZU5vdGVSZXNwb25zZRIfCgRub3RlGAEgASgLMhEuc2V0dGluZ3MudjEuTm90ZSIcCg5HZXROb3RlUmVxdWVzdBIKCgJpZBgBIAEoCSIyCg9HZXROb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiiQEKEExpc3ROb3Rlc1JlcXVlc3QSEwoLZW50aXR5X3R5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEhsKDnBhcmVudF9ub3RlX2lkGAMgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQhEKD19wYXJlbnRfbm90ZV9pZCJEChFMaXN0Tm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUihAEKEVVwZGF0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJEi0KB2NvbnRlbnQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESGAoLaXNfcmVzb2x2ZWQYAyABKAhIAYgBAUIKCghfY29udGVudEIOCgxfaXNfcmVzb2x2ZWQiNQoSVXBkYXRlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIh8KEURlbGV0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIiUKEkRlbGV0ZU5vdGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqwFCgtOb3RlTWVudGlvbhIKCgJpZBgBIAEoCRIPCgdub3RlX2lkGAIgASgJEhkKEW1lbnRpb25lZF91c2VyX2lkGAMgASgJEg4KBnN0YXR1cxgEIAEoCRIwCgdzZWVuX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjgKD2Fja25vd2xlZGdlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI1Cgxjb21wbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGwoOY29tcGxldGVkX25vdGUYCCABKAlIA4gBARI1CgxkaXNtaXNzZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoOZGlzbWlzc19yZWFzb24YCiABKAlIBYgBARIxCghkdWVfZGF0ZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9zZWVuX2F0QhIKEF9hY2tub3dsZWRnZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIRCg9fY29tcGxldGVkX25vdGVCDwoNX2Rpc21pc3NlZF9hdEIRCg9fZGlzbWlzc19yZWFzb25CCwoJX2R1ZV9kYXRlQg0KC19wcm9qZWN0X2lkItoBChJNZW50aW9uV2l0aENvbnRleHQSKQoHbWVudGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLk5vdGVNZW50aW9uEh8KBG5vdGUYAiABKAsyES5zZXR0aW5ncy52MS5Ob3RlEhgKC2F1dGhvcl9uYW1lGAMgASgJSACIAQESGAoLZW50aXR5X3R5cGUYBCABKAlIAYgBARIWCgllbnRpdHlfaWQYBSABKAlIAogBAUIOCgxfYXV0aG9yX25hbWVCDgoMX2VudGl0eV90eXBlQgwKCl9lbnRpdHlfaWQiTwoNTWVudGlvbkNvdW50cxIPCgdwZW5kaW5nGAEgASgFEhAKCHBhc3RfZHVlGAIgASgFEhsKE2NvbXBsZXRlZF90aGlzX3dlZWsYAyABKAUicAoVTGlzdE15TWVudGlvbnNSZXF1ZXN0Eg4KBnN0YXR1cxgBIAMoCRIYCgtlbnRpdHlfdHlwZRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIOCgxfZW50aXR5X3R5cGUigwEKFkxpc3RNeU1lbnRpb25zUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5NZW50aW9uV2l0aENvbnRleHQSDQoFdG90YWwYAiABKAUSKgoGY291bnRzGAMgASgLMhouc2V0dGluZ3MudjEuTWVudGlvbkNvdW50cyKgAQoaVXBkYXRlTWVudGlvblN0YXR1c1JlcXVlc3QSEgoKbWVudGlvbl9pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSGwoOY29tcGxldGVkX25vdGUYAyABKAlIAIgBARIbCg5kaXNtaXNzX3JlYXNvbhgEIAEoCUgBiAEBQhEKD19jb21wbGV0ZWRfbm90ZUIRCg9fZGlzbWlzc19yZWFzb24iSAobVXBkYXRlTWVudGlvblN0YXR1c1Jlc3BvbnNlEikKB21lbnRpb24YASABKAsyGC5zZXR0aW5ncy52MS5Ob3RlTWVudGlvbiLaAQoSQ3JlYXRlU2hhcmVSZXF1ZXN0EjUKDXJlc291cmNlX3R5cGUYASABKA4yHi5zZXR0aW5ncy52MS5TaGFyZVJlc291cmNlVHlwZRIWCglyZWNvcmRfaWQYAiABKAlIAIgBARIUCgdmaWxlX2lkGAMgASgJSAGIAQESEwoLY3VzdG9tZXJfaWQYBCABKAkSMAoKcGVybWlzc2lvbhgFIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkIMCgpfcmVjb3JkX2lkQgoKCF9maWxlX2lkIjgKE0NyZWF0ZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIdCg9HZXRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiNQoQR2V0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIsgBChFMaXN0U2hhcmVzUmVxdWVzdBI6Cg1yZXNvdXJjZV90eXBlGAEgASgOMh4uc2V0dGluZ3MudjEuU2hhcmVSZXNvdXJjZVR5cGVIAIgBARIWCglyZWNvcmRfaWQYAiABKAlIAYgBARIUCgdmaWxlX2lkGAMgASgJSAKIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQhAKDl9yZXNvdXJjZV90eXBlQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWQiRwoSTGlzdFNoYXJlc1Jlc3BvbnNlEiIKBnNoYXJlcxgBIAMoCzISLnNldHRpbmdzLnYxLlNoYXJlEg0KBXRvdGFsGAIgASgFIqABChJVcGRhdGVTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkSNQoKcGVybWlzc2lvbhgCIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkgAiAEBEi0KBnN0YXR1cxgDIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzSAGIAQFCDQoLX3Blcm1pc3Npb25CCQoHX3N0YXR1cyI4ChNVcGRhdGVTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUiIAoSUmV2b2tlU2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJIiYKE1Jldm9rZVNoYXJlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIgChJBY2NlcHRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiOAoTQWNjZXB0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIiEKE0RlY2xpbmVTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiOQoURGVjbGluZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSK/AwoGTG9jYWxlEgoKAmlkGAEgASgJEg4KBmxvY2FsZRgCIAEoCRIUCgxkaXNwbGF5X25hbWUYAyABKAkSGAoLbmF0aXZlX25hbWUYBCABKAlIAIgBARISCgppc19kZWZhdWx0GAUgASgIEhEKCWlzX2FjdGl2ZRgGIAEoCBIOCgZpc19ydGwYByABKAgSHAoPZmFsbGJhY2tfbG9jYWxlGAggASgJSAGIAQESGQoRZmFsbGJhY2tfcHJpb3JpdHkYCSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfbmF0aXZlX25hbWVCEgoQX2ZhbGxiYWNrX2xvY2FsZUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSJnChJMaXN0TG9jYWxlc1JlcXVlc3QSHQoQaW5jbHVkZV9pbmFjdGl2ZRgBIAEoCEgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUITChFfaW5jbHVkZV9pbmFjdGl2ZSJKChNMaXN0TG9jYWxlc1Jlc3BvbnNlEiQKB2xvY2FsZXMYASADKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUSDQoFdG90YWwYAiABKAUiHgoQR2V0TG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChFHZXRMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUi3wEKE0NyZWF0ZUxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtuYXRpdmVfbmFtZRgDIAEoCUgAiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAYgBARITCgZpc19ydGwYBSABKAhIAogBARIcCg9mYWxsYmFja19sb2NhbGUYBiABKAlIA4gBAUIOCgxfbmF0aXZlX25hbWVCDQoLX2lzX2RlZmF1bHRCCQoHX2lzX3J0bEISChBfZmFsbGJhY2tfbG9jYWxlIjsKFENyZWF0ZUxvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSKXAgoTVXBkYXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxkaXNwbGF5X25hbWUYAiABKAlIAIgBARIYCgtuYXRpdmVfbmFtZRgDIAEoCUgBiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAogBARIWCglpc19hY3RpdmUYBSABKAhIA4gBARITCgZpc19ydGwYBiABKAhIBIgBARIcCg9mYWxsYmFja19sb2NhbGUYByABKAlIBYgBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9uYXRpdmVfbmFtZUINCgtfaXNfZGVmYXVsdEIMCgpfaXNfYWN0aXZlQgkKB19pc19ydGxCEgoQX2ZhbGxiYWNrX2xvY2FsZSI7ChRVcGRhdGVMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiIQoTRGVsZXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVMb2NhbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIpQBCg5OYXZQcmVmZXJlbmNlcxIZChFmYXZvcml0ZV9wcm9qZWN0cxgBIAMoCRIaChJmYXZvcml0ZV9uYXZfaXRlbXMYAiADKAkSGgoSY29sbGFwc2VkX3NlY3Rpb25zGAMgAygJEi8KDm5hdl9pdGVtX29yZGVyGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIaChhHZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QiTQoZR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRIwCgtwcmVmZXJlbmNlcxgBIAEoCzIbLnNldHRpbmdzLnYxLk5hdlByZWZlcmVuY2VzIvwBChtVcGRhdGVOYXZQcmVmZXJlbmNlc1JlcXVlc3QSNQoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlc0gAiAEBEh4KEXRvZ2dsZV9wcm9qZWN0X2lkGAIgASgJSAGIAQESHAoPdG9nZ2xlX25hdl9pdGVtGAMgASgJSAKIAQESGwoOdG9nZ2xlX3NlY3Rpb24YBCABKAlIA4gBAUIOCgxfcHJlZmVyZW5jZXNCFAoSX3RvZ2dsZV9wcm9qZWN0X2lkQhIKEF90b2dnbGVfbmF2X2l0ZW1CEQoPX3RvZ2dsZV9zZWN0aW9uIlAKHFVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyJeChJSZWNlbnRseU9wZW5lZEl0ZW0SDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgRwYXRoGAQgASgJEhEKCXRpbWVzdGFtcBgFIAEoAyIqChlMaXN0UmVjZW50bHlPcGVuZWRSZXF1ZXN0Eg0KBWxpbWl0GAEgASgFIkwKGkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uc2V0dGluZ3MudjEuUmVjZW50bHlPcGVuZWRJdGVtIlMKGlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCSIuChtUcmFja1JlY2VudGx5T3BlbmVkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI3ChtSZW1vdmVSZWNlbnRseU9wZW5lZFJlcXVlc3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSIvChxSZW1vdmVSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiHAoaQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QiLgobQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgimwQKEENvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgFIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAYgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgHIAEoCUgBiAEBEhEKCWlzX3N5c3RlbRgIIAEoCBIXCg9idWlsdF9pbl92YWx1ZXMYCSADKAkSEQoJZGF0YV90eXBlGAogASgJEhAKCGNhdGVnb3J5GAsgASgJEhMKC2lzX3JlcXVpcmVkGAwgASgIEhIKCnNvcnRfb3JkZXIYDSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSIzChVDb250ZXh0RGltZW5zaW9uVmFsdWUSCwoDa2V5GAEgASgJEg0KBWxhYmVsGAIgASgJIl0KHExpc3RDb250ZXh0RGltZW5zaW9uc1JlcXVlc3QSEwoGc2VhcmNoGAEgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zZWFyY2giYQodTGlzdENvbnRleHREaW1lbnNpb25zUmVzcG9uc2USMQoKZGltZW5zaW9ucxgBIAMoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24SDQoFdG90YWwYAiABKAUiKAoaR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiTwobR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iywEKHUNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEwoLc291cmNlX3R5cGUYBCABKAkSGAoQc291cmNlX21vZGVsX2tleRgFIAEoCRIfChJkZWZhdWx0X3JlY29yZF9rZXkYBiABKAlIAYgBAUIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleSJSCh5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiLdAQodVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgCiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5IlIKHlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIisKHURlbGV0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjEKHkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIngKIEdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXF1ZXN0EhUKDWRpbWVuc2lvbl9rZXkYASABKAkSEwoGc2VhcmNoGAIgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zZWFyY2giZgohR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1Jlc3BvbnNlEjIKBnZhbHVlcxgBIAMoCzIiLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WYWx1ZRINCgV0b3RhbBgCIAEoBSLnAQoUQ3VzdG9tZXJQcm9maWxlRmllbGQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBHR5cGUYAyABKAkSDQoFbGFiZWwYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSFgoJaGVscF90ZXh0GAYgASgJSACIAQESGAoLcGxhY2Vob2xkZXIYByABKAlIAYgBARIsCgZjb25maWcYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQFCDAoKX2hlbHBfdGV4dEIOCgxfcGxhY2Vob2xkZXJCCQoHX2NvbmZpZyLeAQoVQ3VzdG9tZXJQcm9maWxlU2NoZW1hEgoKAmlkGAEgASgJEjEKBmZpZWxkcxgCIAMoCzIhLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZUZpZWxkEhUKDXB1YmxpY19maWVsZHMYAyADKAkSDwoHdmVyc2lvbhgEIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIhCh9HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0IlYKIEdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjIKBnNjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSKgBAoTVmFyaWFudENhdGFsb2dFbnRyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESEAoIcHJpb3JpdHkYBiABKAUSEgoKaXNfZGVmYXVsdBgHIAEoCBIRCglpc19hY3RpdmUYCCABKAgSGgoNZXhwZXJpbWVudF9pZBgJIAEoCUgCiAEBEhgKC2ZhbGxiYWNrX2lkGAogASgJSAOIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgEiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIBYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0IQCg5fZXhwZXJpbWVudF9pZEIOCgxfZmFsbGJhY2tfaWRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnkiYAoZTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBIWCglpc19hY3RpdmUYASABKAhIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCDAoKX2lzX2FjdGl2ZSJeChpMaXN0VmFyaWFudENhdGFsb2dSZXNwb25zZRIxCgdlbnRyaWVzGAEgAygLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeRINCgV0b3RhbBgCIAEoBSIrCh1HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJRCh5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IqsCCiBDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFQoIcHJpb3JpdHkYBSABKAVIAogBARIXCgppc19kZWZhdWx0GAYgASgISAOIAQESFgoJaXNfYWN0aXZlGAcgASgISASIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSK4AgogVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGAQgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IAogBARIVCghwcmlvcml0eRgFIAEoBUgDiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0ILCglfcHJpb3JpdHlCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZSJUCiFVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Ii4KIERlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjQKIURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjAKGUdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiQwoaR2V0Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiVwoZU2V0Q3VzdG9tZXJQcm9maWxlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItChpTZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIm4KIlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlcXVlc3QSMQoGZmllbGRzGAEgAygLMiEuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlRmllbGQSFQoNcHVibGljX2ZpZWxkcxgCIAMoCSJZCiNVcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXNwb25zZRIyCgZzY2hlbWEYASABKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVTY2hlbWEiUwoVQ3VzdG9tZXJQcm9maWxlUmVzdWx0EhMKC2N1c3RvbWVyX2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ik0KHVNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBSJkCh5TZWFyY2hDdXN0b21lclByb2ZpbGVzUmVzcG9uc2USMwoHcmVzdWx0cxgBIAMoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVJlc3VsdBINCgV0b3RhbBgCIAEoBSIzChxEZWxldGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIjAKHURlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiPQomR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1JlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiWQoTUmVzb2x1dGlvbkF0dHJpYnV0ZRILCgNrZXkYASABKAkSNQoGdmFsdWVzGAIgAygLMiUuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZVZhbHVlIoABChhSZXNvbHV0aW9uQXR0cmlidXRlVmFsdWUSDQoFdmFsdWUYASABKAkSDQoFY291bnQYAiABKAUSNQoMbGFzdF9zZWVuX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV9sYXN0X3NlZW5fYXQijAIKJ0dldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXNwb25zZRIZChF0b3RhbF9yZXNvbHV0aW9ucxgBIAEoBRI0CgphdHRyaWJ1dGVzGAIgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZRI2Cg1maXJzdF9zZWVuX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjUKDGxhc3Rfc2Vlbl9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIQCg5fZmlyc3Rfc2Vlbl9hdEIPCg1fbGFzdF9zZWVuX2F0IiwKF0dldEVkaXRvckNvbmZpZ3NSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSLAAgoVRWRpdG9yQ29uZmlnUGxhY2VtZW50EhEKCWNvbmZpZ19pZBgBIAEoCRISCgpjb25maWdfa2V5GAIgASgJEhAKA3VybBgDIAEoCUgAiAEBEhsKDmFsbG93ZWRfb3JpZ2luGAQgASgJSAGIAQESEwoGaGVpZ2h0GAUgASgFSAKIAQESEgoFbGFiZWwYBiABKAlIA4gBARIUCgdhcGlfa2V5GAcgASgJSASIAQESFAoHYXBpX3VybBgIIAEoCUgFiAEBEh4KEWNvbm5lY3Rpb25fZG9tYWluGAkgASgJSAaIAQFCBgoEX3VybEIRCg9fYWxsb3dlZF9vcmlnaW5CCQoHX2hlaWdodEIICgZfbGFiZWxCCgoIX2FwaV9rZXlCCgoIX2FwaV91cmxCFAoSX2Nvbm5lY3Rpb25fZG9tYWluIlIKGEdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRI2CgpwbGFjZW1lbnRzGAEgAygLMiIuc2V0dGluZ3MudjEuRWRpdG9yQ29uZmlnUGxhY2VtZW50IuUDCgtFbWFpbEFjdGlvbhIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEh8KEnJlc2VuZF90ZW1wbGF0ZV9pZBgFIAEoCUgBiAEBEhkKDGRlZmF1bHRfZnJvbRgGIAEoCUgCiAEBEhwKD2RlZmF1bHRfc3ViamVjdBgHIAEoCUgDiAEBEjEKC2N1c3RvbV9kYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEhEKCWlzX2FjdGl2ZRgJIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgFiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkIVChNfcmVzZW5kX3RlbXBsYXRlX2lkQg8KDV9kZWZhdWx0X2Zyb21CEgoQX2RlZmF1bHRfc3ViamVjdEIOCgxfY3VzdG9tX2RhdGFCDQoLX3Byb2plY3RfaWQiOAoXTGlzdEVtYWlsQWN0aW9uc1JlcXVlc3QSDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFIlQKGExpc3RFbWFpbEFjdGlvbnNSZXNwb25zZRIpCgdhY3Rpb25zGAEgAygLMhguc2V0dGluZ3MudjEuRW1haWxBY3Rpb24SDQoFdG90YWwYAiABKAUiJAoVR2V0RW1haWxBY3Rpb25SZXF1ZXN0EgsKA2tleRgBIAEoCSJCChZHZXRFbWFpbEFjdGlvblJlc3BvbnNlEigKBmFjdGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLkVtYWlsQWN0aW9uIqYCChhVcGRhdGVFbWFpbEFjdGlvblJlcXVlc3QSCwoDa2V5GAEgASgJEh8KEnJlc2VuZF90ZW1wbGF0ZV9pZBgCIAEoCUgAiAEBEhkKDGRlZmF1bHRfZnJvbRgDIAEoCUgBiAEBEhwKD2RlZmF1bHRfc3ViamVjdBgEIAEoCUgCiAEBEjEKC2N1c3RvbV9kYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhYKCWlzX2FjdGl2ZRgGIAEoCEgEiAEBQhUKE19yZXNlbmRfdGVtcGxhdGVfaWRCDwoNX2RlZmF1bHRfZnJvbUISChBfZGVmYXVsdF9zdWJqZWN0Qg4KDF9jdXN0b21fZGF0YUIMCgpfaXNfYWN0aXZlIkUKGVVwZGF0ZUVtYWlsQWN0aW9uUmVzcG9uc2USKAoGYWN0aW9uGAEgASgLMhguc2V0dGluZ3MudjEuRW1haWxBY3Rpb24iKgoOUmVzZW5kVGVtcGxhdGUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCSIcChpMaXN0UmVzZW5kVGVtcGxhdGVzUmVxdWVzdCJNChtMaXN0UmVzZW5kVGVtcGxhdGVzUmVzcG9uc2USLgoJdGVtcGxhdGVzGAEgAygLMhsuc2V0dGluZ3MudjEuUmVzZW5kVGVtcGxhdGUiIAoSUmVzb2x2ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIjYKE1Jlc29sdmVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiIgoUVW5yZXNvbHZlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiOAoVVW5yZXNvbHZlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlImwKElNlYXJjaE5vdGVzUmVxdWVzdBINCgVxdWVyeRgBIAEoCRIYCgtlbnRpdHlfdHlwZRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIOCgxfZW50aXR5X3R5cGUiRgoTU2VhcmNoTm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUiGQoXTWFya01lbnRpb25zU2VlblJlcXVlc3QiKQoYTWFya01lbnRpb25zU2VlblJlc3BvbnNlEg0KBWNvdW50GAEgASgFIi4KH0dldENvbnRleHREaW1lbnNpb25CeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIlQKIEdldENvbnRleHREaW1lbnNpb25CeUtleVJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iGQoXR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QiPwoYR2V0RGVmYXVsdExvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSImChZHZXRMb2NhbGVCeUNvZGVSZXF1ZXN0EgwKBGNvZGUYASABKAkiPgoXR2V0TG9jYWxlQnlDb2RlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiYKJEdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdCJYCiVHZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSIjChREZWxldGVTZXR0aW5nUmVxdWVzdBILCgNrZXkYASABKAkiKAoVRGVsZXRlU2V0dGluZ1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMwofRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCSIxCiBEZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXNwb25zZRINCgVjb3VudBgBIAEoBSJNChZCdWxrU2V0U2V0dGluZ3NSZXF1ZXN0EjMKCHNldHRpbmdzGAEgAygLMiEuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1JlcXVlc3QiKAoXQnVsa1NldFNldHRpbmdzUmVzcG9uc2USDQoFY291bnQYASABKAUiKQonRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0IlsKKEVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IhkKF0dldFByb2plY3RTY2hlbWFSZXF1ZXN0ImUKElByb2plY3RTY2hlbWFNb2RlbBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRITCgtmaWVsZHNfanNvbhgEIAEoCRITCgtjb25maWdfanNvbhgFIAEoCSLCAQodUHJvamVjdFNjaGVtYUNvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgAiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgBiAEBEg4KBnZhbHVlcxgGIAMoCUITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5IlUKGVByb2plY3RTY2hlbWFBdXRoUHJvdmlkZXISCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSDAoEdHlwZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIIuUBChZQcm9qZWN0U2NoZW1hT3BlcmF0aW9uEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhAKCGVuZHBvaW50GAMgASgJEhIKCnRpbWVvdXRfbXMYBCABKAUSMgoMaW5wdXRfc2NoZW1hGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEjMKDW91dHB1dF9zY2hlbWEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQFCDwoNX2lucHV0X3NjaGVtYUIQCg5fb3V0cHV0X3NjaGVtYSJEChRQcm9qZWN0U2NoZW1hU2VnbWVudBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIRCglpc19hY3RpdmUYAyABKAgibwoXUHJvamVjdFNjaGVtYUV4cGVyaW1lbnQSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSDgoGc3RhdHVzGAMgASgJEikKCHZhcmlhbnRzGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJtChpQcm9qZWN0U2NoZW1hUHJvZmlsZVNjaGVtYRInCgZmaWVsZHMYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhUKDXB1YmxpY19maWVsZHMYAiADKAkSDwoHdmVyc2lvbhgDIAEoBSLNAwoYR2V0UHJvamVjdFNjaGVtYVJlc3BvbnNlEi8KBm1vZGVscxgBIAMoCzIfLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFNb2RlbBI+CgpkaW1lbnNpb25zGAIgAygLMiouc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYUNvbnRleHREaW1lbnNpb24SPgoOYXV0aF9wcm92aWRlcnMYAyADKAsyJi5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hQXV0aFByb3ZpZGVyEjcKCm9wZXJhdGlvbnMYBCADKAsyIy5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hT3BlcmF0aW9uEjMKCHNlZ21lbnRzGAUgAygLMiEuc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYVNlZ21lbnQSOQoLZXhwZXJpbWVudHMYBiADKAsyJC5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hRXhwZXJpbWVudBJECg5wcm9maWxlX3NjaGVtYRgHIAEoCzInLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFQcm9maWxlU2NoZW1hSACIAQFCEQoPX3Byb2ZpbGVfc2NoZW1hKnYKEVNoYXJlUmVzb3VyY2VUeXBlEiMKH1NIQVJFX1JFU09VUkNFX1RZUEVfVU5TUEVDSUZJRUQQABIeChpTSEFSRV9SRVNPVVJDRV9UWVBFX1JFQ09SRBABEhwKGFNIQVJFX1JFU09VUkNFX1RZUEVfRklMRRACKoUBCg9TaGFyZVBlcm1pc3Npb24SIAocU0hBUkVfUEVSTUlTU0lPTl9VTlNQRUNJRklFRBAAEhkKFVNIQVJFX1BFUk1JU1NJT05fVklFVxABEhkKFVNIQVJFX1BFUk1JU1NJT05fRURJVBACEhoKFlNIQVJFX1BFUk1JU1NJT05fQURNSU4QAyp7CgtTaGFyZVN0YXR1cxIcChhTSEFSRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIYChRTSEFSRV9TVEFUVVNfUEVORElORxABEhkKFVNIQVJFX1NUQVRVU19BQ0NFUFRFRBACEhkKFVNIQVJFX1NUQVRVU19ERUNMSU5FRBADMoYyCg9TZXR0aW5nc1NlcnZpY2USUAoLR2V0U2V0dGluZ3MSHy5zZXR0aW5ncy52MS5HZXRTZXR0aW5nc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5HZXRTZXR0aW5nc1Jlc3BvbnNlElYKDVVwZGF0ZVNldHRpbmcSIS5zZXR0aW5ncy52MS5VcGRhdGVTZXR0aW5nUmVxdWVzdBoiLnNldHRpbmdzLnYxLlVwZGF0ZVNldHRpbmdSZXNwb25zZRJWCg1EZWxldGVTZXR0aW5nEiEuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ1JlcXVlc3QaIi5zZXR0aW5ncy52MS5EZWxldGVTZXR0aW5nUmVzcG9uc2USdwoYRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5Eiwuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVxdWVzdBotLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlc3BvbnNlElwKD0J1bGtTZXRTZXR0aW5ncxIjLnNldHRpbmdzLnYxLkJ1bGtTZXRTZXR0aW5nc1JlcXVlc3QaJC5zZXR0aW5ncy52MS5CdWxrU2V0U2V0dGluZ3NSZXNwb25zZRJWCg1MaXN0QXVkaXRMb2dzEiEuc2V0dGluZ3MudjEuTGlzdEF1ZGl0TG9nc1JlcXVlc3QaIi5zZXR0aW5ncy52MS5MaXN0QXVkaXRMb2dzUmVzcG9uc2USTQoKQ3JlYXRlTm90ZRIeLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuQ3JlYXRlTm90ZVJlc3BvbnNlEkQKB0dldE5vdGUSGy5zZXR0aW5ncy52MS5HZXROb3RlUmVxdWVzdBocLnNldHRpbmdzLnYxLkdldE5vdGVSZXNwb25zZRJKCglMaXN0Tm90ZXMSHS5zZXR0aW5ncy52MS5MaXN0Tm90ZXNSZXF1ZXN0Gh4uc2V0dGluZ3MudjEuTGlzdE5vdGVzUmVzcG9uc2USTQoKVXBkYXRlTm90ZRIeLnNldHRpbmdzLnYxLlVwZGF0ZU5vdGVSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuVXBkYXRlTm90ZVJlc3BvbnNlEk0KCkRlbGV0ZU5vdGUSHi5zZXR0aW5ncy52MS5EZWxldGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLkRlbGV0ZU5vdGVSZXNwb25zZRJQCgtSZXNvbHZlTm90ZRIfLnNldHRpbmdzLnYxLlJlc29sdmVOb3RlUmVxdWVzdBogLnNldHRpbmdzLnYxLlJlc29sdmVOb3RlUmVzcG9uc2USVgoNVW5yZXNvbHZlTm90ZRIhLnNldHRpbmdzLnYxLlVucmVzb2x2ZU5vdGVSZXF1ZXN0GiIuc2V0dGluZ3MudjEuVW5yZXNvbHZlTm90ZVJlc3BvbnNlElAKC1NlYXJjaE5vdGVzEh8uc2V0dGluZ3MudjEuU2VhcmNoTm90ZXNSZXF1ZXN0GiAuc2V0dGluZ3MudjEuU2VhcmNoTm90ZXNSZXNwb25zZRJZCg5MaXN0TXlNZW50aW9ucxIiLnNldHRpbmdzLnYxLkxpc3RNeU1lbnRpb25zUmVxdWVzdBojLnNldHRpbmdzLnYxLkxpc3RNeU1lbnRpb25zUmVzcG9uc2USaAoTVXBkYXRlTWVudGlvblN0YXR1cxInLnNldHRpbmdzLnYxLlVwZGF0ZU1lbnRpb25TdGF0dXNSZXF1ZXN0Giguc2V0dGluZ3MudjEuVXBkYXRlTWVudGlvblN0YXR1c1Jlc3BvbnNlEl8KEE1hcmtNZW50aW9uc1NlZW4SJC5zZXR0aW5ncy52MS5NYXJrTWVudGlvbnNTZWVuUmVxdWVzdBolLnNldHRpbmdzLnYxLk1hcmtNZW50aW9uc1NlZW5SZXNwb25zZRJQCgtMaXN0TG9jYWxlcxIfLnNldHRpbmdzLnYxLkxpc3RMb2NhbGVzUmVxdWVzdBogLnNldHRpbmdzLnYxLkxpc3RMb2NhbGVzUmVzcG9uc2USSgoJR2V0TG9jYWxlEh0uc2V0dGluZ3MudjEuR2V0TG9jYWxlUmVxdWVzdBoeLnNldHRpbmdzLnYxLkdldExvY2FsZVJlc3BvbnNlEl8KEEdldERlZmF1bHRMb2NhbGUSJC5zZXR0aW5ncy52MS5HZXREZWZhdWx0TG9jYWxlUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldERlZmF1bHRMb2NhbGVSZXNwb25zZRJcCg9HZXRMb2NhbGVCeUNvZGUSIy5zZXR0aW5ncy52MS5HZXRMb2NhbGVCeUNvZGVSZXF1ZXN0GiQuc2V0dGluZ3MudjEuR2V0TG9jYWxlQnlDb2RlUmVzcG9uc2USUwoMQ3JlYXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuQ3JlYXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLkNyZWF0ZUxvY2FsZVJlc3BvbnNlElMKDFVwZGF0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLlVwZGF0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5VcGRhdGVMb2NhbGVSZXNwb25zZRJTCgxEZWxldGVMb2NhbGUSIC5zZXR0aW5ncy52MS5EZWxldGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuRGVsZXRlTG9jYWxlUmVzcG9uc2USYgoRR2V0TmF2UHJlZmVyZW5jZXMSJS5zZXR0aW5ncy52MS5HZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QaJi5zZXR0aW5ncy52MS5HZXROYXZQcmVmZXJlbmNlc1Jlc3BvbnNlEmsKFFVwZGF0ZU5hdlByZWZlcmVuY2VzEiguc2V0dGluZ3MudjEuVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXF1ZXN0Gikuc2V0dGluZ3MudjEuVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXNwb25zZRJlChJMaXN0UmVjZW50bHlPcGVuZWQSJi5zZXR0aW5ncy52MS5MaXN0UmVjZW50bHlPcGVuZWRSZXF1ZXN0Gicuc2V0dGluZ3MudjEuTGlzdFJlY2VudGx5T3BlbmVkUmVzcG9uc2USaAoTVHJhY2tSZWNlbnRseU9wZW5lZBInLnNldHRpbmdzLnYxLlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0Giguc2V0dGluZ3MudjEuVHJhY2tSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmsKFFJlbW92ZVJlY2VudGx5T3BlbmVkEiguc2V0dGluZ3MudjEuUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXF1ZXN0Gikuc2V0dGluZ3MudjEuUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXNwb25zZRJoChNDbGVhclJlY2VudGx5T3BlbmVkEicuc2V0dGluZ3MudjEuQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QaKC5zZXR0aW5ncy52MS5DbGVhclJlY2VudGx5T3BlbmVkUmVzcG9uc2USUAoLQ3JlYXRlU2hhcmUSHy5zZXR0aW5ncy52MS5DcmVhdGVTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5DcmVhdGVTaGFyZVJlc3BvbnNlEkcKCEdldFNoYXJlEhwuc2V0dGluZ3MudjEuR2V0U2hhcmVSZXF1ZXN0Gh0uc2V0dGluZ3MudjEuR2V0U2hhcmVSZXNwb25zZRJNCgpMaXN0U2hhcmVzEh4uc2V0dGluZ3MudjEuTGlzdFNoYXJlc1JlcXVlc3QaHy5zZXR0aW5ncy52MS5MaXN0U2hhcmVzUmVzcG9uc2USUAoLVXBkYXRlU2hhcmUSHy5zZXR0aW5ncy52MS5VcGRhdGVTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5VcGRhdGVTaGFyZVJlc3BvbnNlElAKC1Jldm9rZVNoYXJlEh8uc2V0dGluZ3MudjEuUmV2b2tlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuUmV2b2tlU2hhcmVSZXNwb25zZRJQCgtBY2NlcHRTaGFyZRIfLnNldHRpbmdzLnYxLkFjY2VwdFNoYXJlUmVxdWVzdBogLnNldHRpbmdzLnYxLkFjY2VwdFNoYXJlUmVzcG9uc2USUwoMRGVjbGluZVNoYXJlEiAuc2V0dGluZ3MudjEuRGVjbGluZVNoYXJlUmVxdWVzdBohLnNldHRpbmdzLnYxLkRlY2xpbmVTaGFyZVJlc3BvbnNlEm4KFUxpc3RDb250ZXh0RGltZW5zaW9ucxIpLnNldHRpbmdzLnYxLkxpc3RDb250ZXh0RGltZW5zaW9uc1JlcXVlc3QaKi5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvbnNSZXNwb25zZRJoChNHZXRDb250ZXh0RGltZW5zaW9uEicuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QaKC5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USdwoYR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5Eiwuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5UmVxdWVzdBotLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25CeUtleVJlc3BvbnNlEnEKFkNyZWF0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLkNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJxChZVcGRhdGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2UScQoWRGVsZXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuRGVsZXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnoKGUdldENvbnRleHREaW1lbnNpb25WYWx1ZXMSLS5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVxdWVzdBouLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXNwb25zZRJ3ChhHZXRDdXN0b21lclByb2ZpbGVTY2hlbWESLC5zZXR0aW5ncy52MS5HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0Gi0uc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2USZQoSR2V0Q3VzdG9tZXJQcm9maWxlEiYuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlUmVxdWVzdBonLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEmUKElNldEN1c3RvbWVyUHJvZmlsZRImLnNldHRpbmdzLnYxLlNldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaJy5zZXR0aW5ncy52MS5TZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRKAAQobVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hEi8uc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdBowLnNldHRpbmdzLnYxLlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEnEKFlNlYXJjaEN1c3RvbWVyUHJvZmlsZXMSKi5zZXR0aW5ncy52MS5TZWFyY2hDdXN0b21lclByb2ZpbGVzUmVxdWVzdBorLnNldHRpbmdzLnYxLlNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXNwb25zZRJuChVEZWxldGVDdXN0b21lclByb2ZpbGUSKS5zZXR0aW5ncy52MS5EZWxldGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0Giouc2V0dGluZ3MudjEuRGVsZXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USjAEKH0dldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXMSMy5zZXR0aW5ncy52MS5HZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzUmVxdWVzdBo0LnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXNwb25zZRJfChBHZXRFZGl0b3JDb25maWdzEiQuc2V0dGluZ3MudjEuR2V0RWRpdG9yQ29uZmlnc1JlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXRFZGl0b3JDb25maWdzUmVzcG9uc2USZQoSTGlzdFZhcmlhbnRDYXRhbG9nEiYuc2V0dGluZ3MudjEuTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBonLnNldHRpbmdzLnYxLkxpc3RWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEnEKFkdldFZhcmlhbnRDYXRhbG9nRW50cnkSKi5zZXR0aW5ncy52MS5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBorLnNldHRpbmdzLnYxLkdldFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5DcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLlVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5EZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLkRlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRKGAQodR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnkSMS5zZXR0aW5ncy52MS5HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaMi5zZXR0aW5ncy52MS5HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEo8BCiBFbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeRI0LnNldHRpbmdzLnYxLkVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBo1LnNldHRpbmdzLnYxLkVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USXwoQTGlzdEVtYWlsQWN0aW9ucxIkLnNldHRpbmdzLnYxLkxpc3RFbWFpbEFjdGlvbnNSZXF1ZXN0GiUuc2V0dGluZ3MudjEuTGlzdEVtYWlsQWN0aW9uc1Jlc3BvbnNlElkKDkdldEVtYWlsQWN0aW9uEiIuc2V0dGluZ3MudjEuR2V0RW1haWxBY3Rpb25SZXF1ZXN0GiMuc2V0dGluZ3MudjEuR2V0RW1haWxBY3Rpb25SZXNwb25zZRJiChFVcGRhdGVFbWFpbEFjdGlvbhIlLnNldHRpbmdzLnYxLlVwZGF0ZUVtYWlsQWN0aW9uUmVxdWVzdBomLnNldHRpbmdzLnYxLlVwZGF0ZUVtYWlsQWN0aW9uUmVzcG9uc2USaAoTTGlzdFJlc2VuZFRlbXBsYXRlcxInLnNldHRpbmdzLnYxLkxpc3RSZXNlbmRUZW1wbGF0ZXNSZXF1ZXN0Giguc2V0dGluZ3MudjEuTGlzdFJlc2VuZFRlbXBsYXRlc1Jlc3BvbnNlEl8KEEdldFByb2plY3RTY2hlbWESJC5zZXR0aW5ncy52MS5HZXRQcm9qZWN0U2NoZW1hUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldFByb2plY3RTY2hlbWFSZXNwb25zZUI9WjtnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vc2V0dGluZ3MvdjE7c2V0dGluZ3N2MWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
|
|
13
|
+
fileDesc("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiggMKB1NldHRpbmcSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhAKCGNhdGVnb3J5GAMgASgJEisKBXZhbHVlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDGRpc3BsYXlfbmFtZRgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESEQoJZGF0YV90eXBlGAcgASgJEhEKCWlzX3B1YmxpYxgIIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl92YWx1ZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfcHJvamVjdF9pZCKrBAoIQXVkaXRMb2cSCgoCaWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgd1c2VyX2lkGAMgASgJSACIAQESFgoJdGVuYW50X2lkGAQgASgJSAGIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgCiAEBEg4KBmFjdGlvbhgGIAEoCRIVCg1yZXNvdXJjZV90eXBlGAcgASgJEhgKC3Jlc291cmNlX2lkGAggASgJSAOIAQESLAoGYmVmb3JlGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWFmdGVyGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEhcKCmlwX2FkZHJlc3MYDCABKAlIB4gBARIXCgp1c2VyX2FnZW50GA0gASgJSAiIAQESFwoKcmVxdWVzdF9pZBgOIAEoCUgJiAEBQgoKCF91c2VyX2lkQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDgoMX3Jlc291cmNlX2lkQgkKB19iZWZvcmVCCAoGX2FmdGVyQgsKCV9tZXRhZGF0YUINCgtfaXBfYWRkcmVzc0INCgtfdXNlcl9hZ2VudEINCgtfcmVxdWVzdF9pZCKdBQoETm90ZRIKCgJpZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkSHwoSZW50aXR5X25hdHVyYWxfa2V5GAQgASgJSACIAQESFwoKdmVyc2lvbl9pZBgFIAEoCUgBiAEBEigKB2NvbnRlbnQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNvbnRlbnRfcGxhaW5fdGV4dBgHIAEoCUgCiAEBEhsKDnBhcmVudF9ub3RlX2lkGAogASgJSAOIAQESGwoOdGhyZWFkX3Jvb3RfaWQYCyABKAlIBIgBARITCgtpc19yZXNvbHZlZBgPIAEoCBI0CgtyZXNvbHZlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIYCgtyZXNvbHZlZF9ieRgRIAEoCUgGiAEBEi4KCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCXRlbmFudF9pZBgeIAEoCRIXCgpwcm9qZWN0X2lkGB8gASgJSAiIAQESEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIVChNfZW50aXR5X25hdHVyYWxfa2V5Qg0KC192ZXJzaW9uX2lkQhUKE19jb250ZW50X3BsYWluX3RleHRCEQoPX3BhcmVudF9ub3RlX2lkQhEKD190aHJlYWRfcm9vdF9pZEIOCgxfcmVzb2x2ZWRfYXRCDgoMX3Jlc29sdmVkX2J5QgsKCV9tZXRhZGF0YUINCgtfcHJvamVjdF9pZCKqBQoFU2hhcmUSCgoCaWQYASABKAkSNQoNcmVzb3VyY2VfdHlwZRgCIAEoDjIeLnNldHRpbmdzLnYxLlNoYXJlUmVzb3VyY2VUeXBlEhYKCXJlY29yZF9pZBgDIAEoCUgAiAEBEhQKB2ZpbGVfaWQYBCABKAlIAYgBARIWCgltb2RlbF9rZXkYBSABKAlIAogBARIfChdzaGFyZWRfd2l0aF9jdXN0b21lcl9pZBgGIAEoCRIwCgpwZXJtaXNzaW9uGAcgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uEigKBnN0YXR1cxgKIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzEjQKC2FjY2VwdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjMKCmV4cGlyZXNfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgFiAEBEhcKCnJldm9rZWRfYnkYHyABKAlIBogBARIzCgpyZXZva2VkX2F0GCAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWRCDAoKX21vZGVsX2tleUIOCgxfYWNjZXB0ZWRfYXRCDQoLX2V4cGlyZXNfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3Jldm9rZWRfYnlCDQoLX3Jldm9rZWRfYXQiUgoSR2V0U2V0dGluZ3NSZXF1ZXN0EhUKCGNhdGVnb3J5GAEgASgJSACIAQESEAoDa2V5GAIgASgJSAGIAQFCCwoJX2NhdGVnb3J5QgYKBF9rZXkiPQoTR2V0U2V0dGluZ3NSZXNwb25zZRImCghzZXR0aW5ncxgBIAMoCzIULnNldHRpbmdzLnYxLlNldHRpbmciSwoUVXBkYXRlU2V0dGluZ1JlcXVlc3QSCwoDa2V5GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI+ChVVcGRhdGVTZXR0aW5nUmVzcG9uc2USJQoHc2V0dGluZxgBIAEoCzIULnNldHRpbmdzLnYxLlNldHRpbmciuwIKFExpc3RBdWRpdExvZ3NSZXF1ZXN0EhMKBmFjdGlvbhgBIAEoCUgAiAEBEhoKDXJlc291cmNlX3R5cGUYAiABKAlIAYgBARIYCgtyZXNvdXJjZV9pZBgDIAEoCUgCiAEBEhQKB3VzZXJfaWQYBCABKAlIA4gBARItCgRmcm9tGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEisKAnRvGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfYWN0aW9uQhAKDl9yZXNvdXJjZV90eXBlQg4KDF9yZXNvdXJjZV9pZEIKCghfdXNlcl9pZEIHCgVfZnJvbUIFCgNfdG8iSwoVTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEiMKBGxvZ3MYASADKAsyFS5zZXR0aW5ncy52MS5BdWRpdExvZxINCgV0b3RhbBgCIAEoBSKVAQoRQ3JlYXRlTm90ZVJlcXVlc3QSEwoLZW50aXR5X3R5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEigKB2NvbnRlbnQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhsKDnBhcmVudF9ub3RlX2lkGAQgASgJSACIAQFCEQoPX3BhcmVudF9ub3RlX2lkIjUKEkNyZWF0ZU5vdGVSZXNwb25zZRIfCgRub3RlGAEgASgLMhEuc2V0dGluZ3MudjEuTm90ZSIcCg5HZXROb3RlUmVxdWVzdBIKCgJpZBgBIAEoCSIyCg9HZXROb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiiQEKEExpc3ROb3Rlc1JlcXVlc3QSEwoLZW50aXR5X3R5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEhsKDnBhcmVudF9ub3RlX2lkGAMgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQhEKD19wYXJlbnRfbm90ZV9pZCJEChFMaXN0Tm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUihAEKEVVwZGF0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJEi0KB2NvbnRlbnQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESGAoLaXNfcmVzb2x2ZWQYAyABKAhIAYgBAUIKCghfY29udGVudEIOCgxfaXNfcmVzb2x2ZWQiNQoSVXBkYXRlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIh8KEURlbGV0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIiUKEkRlbGV0ZU5vdGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqwFCgtOb3RlTWVudGlvbhIKCgJpZBgBIAEoCRIPCgdub3RlX2lkGAIgASgJEhkKEW1lbnRpb25lZF91c2VyX2lkGAMgASgJEg4KBnN0YXR1cxgEIAEoCRIwCgdzZWVuX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjgKD2Fja25vd2xlZGdlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI1Cgxjb21wbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGwoOY29tcGxldGVkX25vdGUYCCABKAlIA4gBARI1CgxkaXNtaXNzZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoOZGlzbWlzc19yZWFzb24YCiABKAlIBYgBARIxCghkdWVfZGF0ZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9zZWVuX2F0QhIKEF9hY2tub3dsZWRnZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIRCg9fY29tcGxldGVkX25vdGVCDwoNX2Rpc21pc3NlZF9hdEIRCg9fZGlzbWlzc19yZWFzb25CCwoJX2R1ZV9kYXRlQg0KC19wcm9qZWN0X2lkItoBChJNZW50aW9uV2l0aENvbnRleHQSKQoHbWVudGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLk5vdGVNZW50aW9uEh8KBG5vdGUYAiABKAsyES5zZXR0aW5ncy52MS5Ob3RlEhgKC2F1dGhvcl9uYW1lGAMgASgJSACIAQESGAoLZW50aXR5X3R5cGUYBCABKAlIAYgBARIWCgllbnRpdHlfaWQYBSABKAlIAogBAUIOCgxfYXV0aG9yX25hbWVCDgoMX2VudGl0eV90eXBlQgwKCl9lbnRpdHlfaWQiTwoNTWVudGlvbkNvdW50cxIPCgdwZW5kaW5nGAEgASgFEhAKCHBhc3RfZHVlGAIgASgFEhsKE2NvbXBsZXRlZF90aGlzX3dlZWsYAyABKAUicAoVTGlzdE15TWVudGlvbnNSZXF1ZXN0Eg4KBnN0YXR1cxgBIAMoCRIYCgtlbnRpdHlfdHlwZRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIOCgxfZW50aXR5X3R5cGUigwEKFkxpc3RNeU1lbnRpb25zUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5NZW50aW9uV2l0aENvbnRleHQSDQoFdG90YWwYAiABKAUSKgoGY291bnRzGAMgASgLMhouc2V0dGluZ3MudjEuTWVudGlvbkNvdW50cyKgAQoaVXBkYXRlTWVudGlvblN0YXR1c1JlcXVlc3QSEgoKbWVudGlvbl9pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSGwoOY29tcGxldGVkX25vdGUYAyABKAlIAIgBARIbCg5kaXNtaXNzX3JlYXNvbhgEIAEoCUgBiAEBQhEKD19jb21wbGV0ZWRfbm90ZUIRCg9fZGlzbWlzc19yZWFzb24iSAobVXBkYXRlTWVudGlvblN0YXR1c1Jlc3BvbnNlEikKB21lbnRpb24YASABKAsyGC5zZXR0aW5ncy52MS5Ob3RlTWVudGlvbiLaAQoSQ3JlYXRlU2hhcmVSZXF1ZXN0EjUKDXJlc291cmNlX3R5cGUYASABKA4yHi5zZXR0aW5ncy52MS5TaGFyZVJlc291cmNlVHlwZRIWCglyZWNvcmRfaWQYAiABKAlIAIgBARIUCgdmaWxlX2lkGAMgASgJSAGIAQESEwoLY3VzdG9tZXJfaWQYBCABKAkSMAoKcGVybWlzc2lvbhgFIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkIMCgpfcmVjb3JkX2lkQgoKCF9maWxlX2lkIjgKE0NyZWF0ZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIdCg9HZXRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiNQoQR2V0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIsgBChFMaXN0U2hhcmVzUmVxdWVzdBI6Cg1yZXNvdXJjZV90eXBlGAEgASgOMh4uc2V0dGluZ3MudjEuU2hhcmVSZXNvdXJjZVR5cGVIAIgBARIWCglyZWNvcmRfaWQYAiABKAlIAYgBARIUCgdmaWxlX2lkGAMgASgJSAKIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQhAKDl9yZXNvdXJjZV90eXBlQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWQiRwoSTGlzdFNoYXJlc1Jlc3BvbnNlEiIKBnNoYXJlcxgBIAMoCzISLnNldHRpbmdzLnYxLlNoYXJlEg0KBXRvdGFsGAIgASgFIqABChJVcGRhdGVTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkSNQoKcGVybWlzc2lvbhgCIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkgAiAEBEi0KBnN0YXR1cxgDIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzSAGIAQFCDQoLX3Blcm1pc3Npb25CCQoHX3N0YXR1cyI4ChNVcGRhdGVTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUiIAoSUmV2b2tlU2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJIiYKE1Jldm9rZVNoYXJlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIgChJBY2NlcHRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiOAoTQWNjZXB0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIiEKE0RlY2xpbmVTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiOQoURGVjbGluZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSK/AwoGTG9jYWxlEgoKAmlkGAEgASgJEg4KBmxvY2FsZRgCIAEoCRIUCgxkaXNwbGF5X25hbWUYAyABKAkSGAoLbmF0aXZlX25hbWUYBCABKAlIAIgBARISCgppc19kZWZhdWx0GAUgASgIEhEKCWlzX2FjdGl2ZRgGIAEoCBIOCgZpc19ydGwYByABKAgSHAoPZmFsbGJhY2tfbG9jYWxlGAggASgJSAGIAQESGQoRZmFsbGJhY2tfcHJpb3JpdHkYCSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfbmF0aXZlX25hbWVCEgoQX2ZhbGxiYWNrX2xvY2FsZUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSJnChJMaXN0TG9jYWxlc1JlcXVlc3QSHQoQaW5jbHVkZV9pbmFjdGl2ZRgBIAEoCEgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUITChFfaW5jbHVkZV9pbmFjdGl2ZSJKChNMaXN0TG9jYWxlc1Jlc3BvbnNlEiQKB2xvY2FsZXMYASADKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUSDQoFdG90YWwYAiABKAUiHgoQR2V0TG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChFHZXRMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUi3wEKE0NyZWF0ZUxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtuYXRpdmVfbmFtZRgDIAEoCUgAiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAYgBARITCgZpc19ydGwYBSABKAhIAogBARIcCg9mYWxsYmFja19sb2NhbGUYBiABKAlIA4gBAUIOCgxfbmF0aXZlX25hbWVCDQoLX2lzX2RlZmF1bHRCCQoHX2lzX3J0bEISChBfZmFsbGJhY2tfbG9jYWxlIjsKFENyZWF0ZUxvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSKXAgoTVXBkYXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxkaXNwbGF5X25hbWUYAiABKAlIAIgBARIYCgtuYXRpdmVfbmFtZRgDIAEoCUgBiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAogBARIWCglpc19hY3RpdmUYBSABKAhIA4gBARITCgZpc19ydGwYBiABKAhIBIgBARIcCg9mYWxsYmFja19sb2NhbGUYByABKAlIBYgBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9uYXRpdmVfbmFtZUINCgtfaXNfZGVmYXVsdEIMCgpfaXNfYWN0aXZlQgkKB19pc19ydGxCEgoQX2ZhbGxiYWNrX2xvY2FsZSI7ChRVcGRhdGVMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiIQoTRGVsZXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVMb2NhbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIpQBCg5OYXZQcmVmZXJlbmNlcxIZChFmYXZvcml0ZV9wcm9qZWN0cxgBIAMoCRIaChJmYXZvcml0ZV9uYXZfaXRlbXMYAiADKAkSGgoSY29sbGFwc2VkX3NlY3Rpb25zGAMgAygJEi8KDm5hdl9pdGVtX29yZGVyGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIaChhHZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QiTQoZR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRIwCgtwcmVmZXJlbmNlcxgBIAEoCzIbLnNldHRpbmdzLnYxLk5hdlByZWZlcmVuY2VzIvwBChtVcGRhdGVOYXZQcmVmZXJlbmNlc1JlcXVlc3QSNQoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlc0gAiAEBEh4KEXRvZ2dsZV9wcm9qZWN0X2lkGAIgASgJSAGIAQESHAoPdG9nZ2xlX25hdl9pdGVtGAMgASgJSAKIAQESGwoOdG9nZ2xlX3NlY3Rpb24YBCABKAlIA4gBAUIOCgxfcHJlZmVyZW5jZXNCFAoSX3RvZ2dsZV9wcm9qZWN0X2lkQhIKEF90b2dnbGVfbmF2X2l0ZW1CEQoPX3RvZ2dsZV9zZWN0aW9uIlAKHFVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyJeChJSZWNlbnRseU9wZW5lZEl0ZW0SDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgRwYXRoGAQgASgJEhEKCXRpbWVzdGFtcBgFIAEoAyIqChlMaXN0UmVjZW50bHlPcGVuZWRSZXF1ZXN0Eg0KBWxpbWl0GAEgASgFIkwKGkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uc2V0dGluZ3MudjEuUmVjZW50bHlPcGVuZWRJdGVtIlMKGlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCSIuChtUcmFja1JlY2VudGx5T3BlbmVkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI3ChtSZW1vdmVSZWNlbnRseU9wZW5lZFJlcXVlc3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSIvChxSZW1vdmVSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiHAoaQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QiLgobQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgimwQKEENvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgFIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAYgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgHIAEoCUgBiAEBEhEKCWlzX3N5c3RlbRgIIAEoCBIXCg9idWlsdF9pbl92YWx1ZXMYCSADKAkSEQoJZGF0YV90eXBlGAogASgJEhAKCGNhdGVnb3J5GAsgASgJEhMKC2lzX3JlcXVpcmVkGAwgASgIEhIKCnNvcnRfb3JkZXIYDSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSIzChVDb250ZXh0RGltZW5zaW9uVmFsdWUSCwoDa2V5GAEgASgJEg0KBWxhYmVsGAIgASgJIl0KHExpc3RDb250ZXh0RGltZW5zaW9uc1JlcXVlc3QSEwoGc2VhcmNoGAEgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zZWFyY2giYQodTGlzdENvbnRleHREaW1lbnNpb25zUmVzcG9uc2USMQoKZGltZW5zaW9ucxgBIAMoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24SDQoFdG90YWwYAiABKAUiKAoaR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiTwobR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iywEKHUNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEwoLc291cmNlX3R5cGUYBCABKAkSGAoQc291cmNlX21vZGVsX2tleRgFIAEoCRIfChJkZWZhdWx0X3JlY29yZF9rZXkYBiABKAlIAYgBAUIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleSJSCh5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiLdAQodVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgCiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5IlIKHlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIisKHURlbGV0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjEKHkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIngKIEdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXF1ZXN0EhUKDWRpbWVuc2lvbl9rZXkYASABKAkSEwoGc2VhcmNoGAIgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zZWFyY2giZgohR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1Jlc3BvbnNlEjIKBnZhbHVlcxgBIAMoCzIiLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WYWx1ZRINCgV0b3RhbBgCIAEoBSLnAQoUQ3VzdG9tZXJQcm9maWxlRmllbGQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBHR5cGUYAyABKAkSDQoFbGFiZWwYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSFgoJaGVscF90ZXh0GAYgASgJSACIAQESGAoLcGxhY2Vob2xkZXIYByABKAlIAYgBARIsCgZjb25maWcYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQFCDAoKX2hlbHBfdGV4dEIOCgxfcGxhY2Vob2xkZXJCCQoHX2NvbmZpZyLeAQoVQ3VzdG9tZXJQcm9maWxlU2NoZW1hEgoKAmlkGAEgASgJEjEKBmZpZWxkcxgCIAMoCzIhLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZUZpZWxkEhUKDXB1YmxpY19maWVsZHMYAyADKAkSDwoHdmVyc2lvbhgEIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIhCh9HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0IlYKIEdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjIKBnNjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSKgBAoTVmFyaWFudENhdGFsb2dFbnRyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESEAoIcHJpb3JpdHkYBiABKAUSEgoKaXNfZGVmYXVsdBgHIAEoCBIRCglpc19hY3RpdmUYCCABKAgSGgoNZXhwZXJpbWVudF9pZBgJIAEoCUgCiAEBEhgKC2ZhbGxiYWNrX2lkGAogASgJSAOIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgEiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIBYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0IQCg5fZXhwZXJpbWVudF9pZEIOCgxfZmFsbGJhY2tfaWRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnkiYAoZTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBIWCglpc19hY3RpdmUYASABKAhIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCDAoKX2lzX2FjdGl2ZSJeChpMaXN0VmFyaWFudENhdGFsb2dSZXNwb25zZRIxCgdlbnRyaWVzGAEgAygLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeRINCgV0b3RhbBgCIAEoBSIrCh1HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJRCh5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IqsCCiBDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFQoIcHJpb3JpdHkYBSABKAVIAogBARIXCgppc19kZWZhdWx0GAYgASgISAOIAQESFgoJaXNfYWN0aXZlGAcgASgISASIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSK4AgogVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGAQgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IAogBARIVCghwcmlvcml0eRgFIAEoBUgDiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0ILCglfcHJpb3JpdHlCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZSJUCiFVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Ii4KIERlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjQKIURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjAKGUdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiQwoaR2V0Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiVwoZU2V0Q3VzdG9tZXJQcm9maWxlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItChpTZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIm4KIlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlcXVlc3QSMQoGZmllbGRzGAEgAygLMiEuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlRmllbGQSFQoNcHVibGljX2ZpZWxkcxgCIAMoCSJZCiNVcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXNwb25zZRIyCgZzY2hlbWEYASABKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVTY2hlbWEiUwoVQ3VzdG9tZXJQcm9maWxlUmVzdWx0EhMKC2N1c3RvbWVyX2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ik0KHVNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBSJkCh5TZWFyY2hDdXN0b21lclByb2ZpbGVzUmVzcG9uc2USMwoHcmVzdWx0cxgBIAMoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVJlc3VsdBINCgV0b3RhbBgCIAEoBSIzChxEZWxldGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIjAKHURlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiPQomR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1JlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiWQoTUmVzb2x1dGlvbkF0dHJpYnV0ZRILCgNrZXkYASABKAkSNQoGdmFsdWVzGAIgAygLMiUuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZVZhbHVlIoABChhSZXNvbHV0aW9uQXR0cmlidXRlVmFsdWUSDQoFdmFsdWUYASABKAkSDQoFY291bnQYAiABKAUSNQoMbGFzdF9zZWVuX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV9sYXN0X3NlZW5fYXQijAIKJ0dldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXNwb25zZRIZChF0b3RhbF9yZXNvbHV0aW9ucxgBIAEoBRI0CgphdHRyaWJ1dGVzGAIgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZRI2Cg1maXJzdF9zZWVuX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjUKDGxhc3Rfc2Vlbl9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIQCg5fZmlyc3Rfc2Vlbl9hdEIPCg1fbGFzdF9zZWVuX2F0IiwKF0dldEVkaXRvckNvbmZpZ3NSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSLAAgoVRWRpdG9yQ29uZmlnUGxhY2VtZW50EhEKCWNvbmZpZ19pZBgBIAEoCRISCgpjb25maWdfa2V5GAIgASgJEhAKA3VybBgDIAEoCUgAiAEBEhsKDmFsbG93ZWRfb3JpZ2luGAQgASgJSAGIAQESEwoGaGVpZ2h0GAUgASgFSAKIAQESEgoFbGFiZWwYBiABKAlIA4gBARIUCgdhcGlfa2V5GAcgASgJSASIAQESFAoHYXBpX3VybBgIIAEoCUgFiAEBEh4KEWNvbm5lY3Rpb25fZG9tYWluGAkgASgJSAaIAQFCBgoEX3VybEIRCg9fYWxsb3dlZF9vcmlnaW5CCQoHX2hlaWdodEIICgZfbGFiZWxCCgoIX2FwaV9rZXlCCgoIX2FwaV91cmxCFAoSX2Nvbm5lY3Rpb25fZG9tYWluIlIKGEdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRI2CgpwbGFjZW1lbnRzGAEgAygLMiIuc2V0dGluZ3MudjEuRWRpdG9yQ29uZmlnUGxhY2VtZW50IuUDCgtFbWFpbEFjdGlvbhIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEh8KEnJlc2VuZF90ZW1wbGF0ZV9pZBgFIAEoCUgBiAEBEhkKDGRlZmF1bHRfZnJvbRgGIAEoCUgCiAEBEhwKD2RlZmF1bHRfc3ViamVjdBgHIAEoCUgDiAEBEjEKC2N1c3RvbV9kYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEhEKCWlzX2FjdGl2ZRgJIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgFiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkIVChNfcmVzZW5kX3RlbXBsYXRlX2lkQg8KDV9kZWZhdWx0X2Zyb21CEgoQX2RlZmF1bHRfc3ViamVjdEIOCgxfY3VzdG9tX2RhdGFCDQoLX3Byb2plY3RfaWQiOAoXTGlzdEVtYWlsQWN0aW9uc1JlcXVlc3QSDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFIlQKGExpc3RFbWFpbEFjdGlvbnNSZXNwb25zZRIpCgdhY3Rpb25zGAEgAygLMhguc2V0dGluZ3MudjEuRW1haWxBY3Rpb24SDQoFdG90YWwYAiABKAUiJAoVR2V0RW1haWxBY3Rpb25SZXF1ZXN0EgsKA2tleRgBIAEoCSJCChZHZXRFbWFpbEFjdGlvblJlc3BvbnNlEigKBmFjdGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLkVtYWlsQWN0aW9uIqYCChhVcGRhdGVFbWFpbEFjdGlvblJlcXVlc3QSCwoDa2V5GAEgASgJEh8KEnJlc2VuZF90ZW1wbGF0ZV9pZBgCIAEoCUgAiAEBEhkKDGRlZmF1bHRfZnJvbRgDIAEoCUgBiAEBEhwKD2RlZmF1bHRfc3ViamVjdBgEIAEoCUgCiAEBEjEKC2N1c3RvbV9kYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhYKCWlzX2FjdGl2ZRgGIAEoCEgEiAEBQhUKE19yZXNlbmRfdGVtcGxhdGVfaWRCDwoNX2RlZmF1bHRfZnJvbUISChBfZGVmYXVsdF9zdWJqZWN0Qg4KDF9jdXN0b21fZGF0YUIMCgpfaXNfYWN0aXZlIkUKGVVwZGF0ZUVtYWlsQWN0aW9uUmVzcG9uc2USKAoGYWN0aW9uGAEgASgLMhguc2V0dGluZ3MudjEuRW1haWxBY3Rpb24iKgoOUmVzZW5kVGVtcGxhdGUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCSIcChpMaXN0UmVzZW5kVGVtcGxhdGVzUmVxdWVzdCJNChtMaXN0UmVzZW5kVGVtcGxhdGVzUmVzcG9uc2USLgoJdGVtcGxhdGVzGAEgAygLMhsuc2V0dGluZ3MudjEuUmVzZW5kVGVtcGxhdGUiIAoSUmVzb2x2ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIjYKE1Jlc29sdmVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiIgoUVW5yZXNvbHZlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiOAoVVW5yZXNvbHZlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlImwKElNlYXJjaE5vdGVzUmVxdWVzdBINCgVxdWVyeRgBIAEoCRIYCgtlbnRpdHlfdHlwZRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIOCgxfZW50aXR5X3R5cGUiRgoTU2VhcmNoTm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUiGQoXTWFya01lbnRpb25zU2VlblJlcXVlc3QiKQoYTWFya01lbnRpb25zU2VlblJlc3BvbnNlEg0KBWNvdW50GAEgASgFIi4KH0dldENvbnRleHREaW1lbnNpb25CeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIlQKIEdldENvbnRleHREaW1lbnNpb25CeUtleVJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iGQoXR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QiPwoYR2V0RGVmYXVsdExvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSImChZHZXRMb2NhbGVCeUNvZGVSZXF1ZXN0EgwKBGNvZGUYASABKAkiPgoXR2V0TG9jYWxlQnlDb2RlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiYKJEdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdCJYCiVHZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSIjChREZWxldGVTZXR0aW5nUmVxdWVzdBILCgNrZXkYASABKAkiKAoVRGVsZXRlU2V0dGluZ1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMwofRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCSIxCiBEZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXNwb25zZRINCgVjb3VudBgBIAEoBSJNChZCdWxrU2V0U2V0dGluZ3NSZXF1ZXN0EjMKCHNldHRpbmdzGAEgAygLMiEuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1JlcXVlc3QiKAoXQnVsa1NldFNldHRpbmdzUmVzcG9uc2USDQoFY291bnQYASABKAUiKQonRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0IlsKKEVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IhkKF0dldFByb2plY3RTY2hlbWFSZXF1ZXN0ImUKElByb2plY3RTY2hlbWFNb2RlbBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRITCgtmaWVsZHNfanNvbhgEIAEoCRITCgtjb25maWdfanNvbhgFIAEoCSLCAQodUHJvamVjdFNjaGVtYUNvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgAiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgBiAEBEg4KBnZhbHVlcxgGIAMoCUITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5IlUKGVByb2plY3RTY2hlbWFBdXRoUHJvdmlkZXISCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSDAoEdHlwZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIIuUBChZQcm9qZWN0U2NoZW1hT3BlcmF0aW9uEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhAKCGVuZHBvaW50GAMgASgJEhIKCnRpbWVvdXRfbXMYBCABKAUSMgoMaW5wdXRfc2NoZW1hGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEjMKDW91dHB1dF9zY2hlbWEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQFCDwoNX2lucHV0X3NjaGVtYUIQCg5fb3V0cHV0X3NjaGVtYSJEChRQcm9qZWN0U2NoZW1hU2VnbWVudBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIRCglpc19hY3RpdmUYAyABKAgibwoXUHJvamVjdFNjaGVtYUV4cGVyaW1lbnQSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSDgoGc3RhdHVzGAMgASgJEikKCHZhcmlhbnRzGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJZChpQcm9qZWN0U2NoZW1hUHJvZmlsZVNjaGVtYRITCgtmaWVsZHNfanNvbhgBIAEoCRIVCg1wdWJsaWNfZmllbGRzGAIgAygJEg8KB3ZlcnNpb24YAyABKAUizQMKGEdldFByb2plY3RTY2hlbWFSZXNwb25zZRIvCgZtb2RlbHMYASADKAsyHy5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hTW9kZWwSPgoKZGltZW5zaW9ucxgCIAMoCzIqLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFDb250ZXh0RGltZW5zaW9uEj4KDmF1dGhfcHJvdmlkZXJzGAMgAygLMiYuc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYUF1dGhQcm92aWRlchI3CgpvcGVyYXRpb25zGAQgAygLMiMuc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYU9wZXJhdGlvbhIzCghzZWdtZW50cxgFIAMoCzIhLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFTZWdtZW50EjkKC2V4cGVyaW1lbnRzGAYgAygLMiQuc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYUV4cGVyaW1lbnQSRAoOcHJvZmlsZV9zY2hlbWEYByABKAsyJy5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hUHJvZmlsZVNjaGVtYUgAiAEBQhEKD19wcm9maWxlX3NjaGVtYSp2ChFTaGFyZVJlc291cmNlVHlwZRIjCh9TSEFSRV9SRVNPVVJDRV9UWVBFX1VOU1BFQ0lGSUVEEAASHgoaU0hBUkVfUkVTT1VSQ0VfVFlQRV9SRUNPUkQQARIcChhTSEFSRV9SRVNPVVJDRV9UWVBFX0ZJTEUQAiqFAQoPU2hhcmVQZXJtaXNzaW9uEiAKHFNIQVJFX1BFUk1JU1NJT05fVU5TUEVDSUZJRUQQABIZChVTSEFSRV9QRVJNSVNTSU9OX1ZJRVcQARIZChVTSEFSRV9QRVJNSVNTSU9OX0VESVQQAhIaChZTSEFSRV9QRVJNSVNTSU9OX0FETUlOEAMqewoLU2hhcmVTdGF0dXMSHAoYU0hBUkVfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGAoUU0hBUkVfU1RBVFVTX1BFTkRJTkcQARIZChVTSEFSRV9TVEFUVVNfQUNDRVBURUQQAhIZChVTSEFSRV9TVEFUVVNfREVDTElORUQQAzKGMgoPU2V0dGluZ3NTZXJ2aWNlElAKC0dldFNldHRpbmdzEh8uc2V0dGluZ3MudjEuR2V0U2V0dGluZ3NSZXF1ZXN0GiAuc2V0dGluZ3MudjEuR2V0U2V0dGluZ3NSZXNwb25zZRJWCg1VcGRhdGVTZXR0aW5nEiEuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1JlcXVlc3QaIi5zZXR0aW5ncy52MS5VcGRhdGVTZXR0aW5nUmVzcG9uc2USVgoNRGVsZXRlU2V0dGluZxIhLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdSZXF1ZXN0GiIuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ1Jlc3BvbnNlEncKGERlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeRIsLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlcXVlc3QaLS5zZXR0aW5ncy52MS5EZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXNwb25zZRJcCg9CdWxrU2V0U2V0dGluZ3MSIy5zZXR0aW5ncy52MS5CdWxrU2V0U2V0dGluZ3NSZXF1ZXN0GiQuc2V0dGluZ3MudjEuQnVsa1NldFNldHRpbmdzUmVzcG9uc2USVgoNTGlzdEF1ZGl0TG9ncxIhLnNldHRpbmdzLnYxLkxpc3RBdWRpdExvZ3NSZXF1ZXN0GiIuc2V0dGluZ3MudjEuTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEk0KCkNyZWF0ZU5vdGUSHi5zZXR0aW5ncy52MS5DcmVhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVSZXNwb25zZRJECgdHZXROb3RlEhsuc2V0dGluZ3MudjEuR2V0Tm90ZVJlcXVlc3QaHC5zZXR0aW5ncy52MS5HZXROb3RlUmVzcG9uc2USSgoJTGlzdE5vdGVzEh0uc2V0dGluZ3MudjEuTGlzdE5vdGVzUmVxdWVzdBoeLnNldHRpbmdzLnYxLkxpc3ROb3Rlc1Jlc3BvbnNlEk0KClVwZGF0ZU5vdGUSHi5zZXR0aW5ncy52MS5VcGRhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLlVwZGF0ZU5vdGVSZXNwb25zZRJNCgpEZWxldGVOb3RlEh4uc2V0dGluZ3MudjEuRGVsZXRlTm90ZVJlcXVlc3QaHy5zZXR0aW5ncy52MS5EZWxldGVOb3RlUmVzcG9uc2USUAoLUmVzb2x2ZU5vdGUSHy5zZXR0aW5ncy52MS5SZXNvbHZlTm90ZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5SZXNvbHZlTm90ZVJlc3BvbnNlElYKDVVucmVzb2x2ZU5vdGUSIS5zZXR0aW5ncy52MS5VbnJlc29sdmVOb3RlUmVxdWVzdBoiLnNldHRpbmdzLnYxLlVucmVzb2x2ZU5vdGVSZXNwb25zZRJQCgtTZWFyY2hOb3RlcxIfLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVxdWVzdBogLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVzcG9uc2USWQoOTGlzdE15TWVudGlvbnMSIi5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1JlcXVlc3QaIy5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1Jlc3BvbnNlEmgKE1VwZGF0ZU1lbnRpb25TdGF0dXMSJy5zZXR0aW5ncy52MS5VcGRhdGVNZW50aW9uU3RhdHVzUmVxdWVzdBooLnNldHRpbmdzLnYxLlVwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRJfChBNYXJrTWVudGlvbnNTZWVuEiQuc2V0dGluZ3MudjEuTWFya01lbnRpb25zU2VlblJlcXVlc3QaJS5zZXR0aW5ncy52MS5NYXJrTWVudGlvbnNTZWVuUmVzcG9uc2USUAoLTGlzdExvY2FsZXMSHy5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1Jlc3BvbnNlEkoKCUdldExvY2FsZRIdLnNldHRpbmdzLnYxLkdldExvY2FsZVJlcXVlc3QaHi5zZXR0aW5ncy52MS5HZXRMb2NhbGVSZXNwb25zZRJfChBHZXREZWZhdWx0TG9jYWxlEiQuc2V0dGluZ3MudjEuR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXREZWZhdWx0TG9jYWxlUmVzcG9uc2USXAoPR2V0TG9jYWxlQnlDb2RlEiMuc2V0dGluZ3MudjEuR2V0TG9jYWxlQnlDb2RlUmVxdWVzdBokLnNldHRpbmdzLnYxLkdldExvY2FsZUJ5Q29kZVJlc3BvbnNlElMKDENyZWF0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLkNyZWF0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5DcmVhdGVMb2NhbGVSZXNwb25zZRJTCgxVcGRhdGVMb2NhbGUSIC5zZXR0aW5ncy52MS5VcGRhdGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuVXBkYXRlTG9jYWxlUmVzcG9uc2USUwoMRGVsZXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuRGVsZXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLkRlbGV0ZUxvY2FsZVJlc3BvbnNlEmIKEUdldE5hdlByZWZlcmVuY2VzEiUuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXF1ZXN0GiYuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRJrChRVcGRhdGVOYXZQcmVmZXJlbmNlcxIoLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVxdWVzdBopLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USZQoSTGlzdFJlY2VudGx5T3BlbmVkEiYuc2V0dGluZ3MudjEuTGlzdFJlY2VudGx5T3BlbmVkUmVxdWVzdBonLnNldHRpbmdzLnYxLkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmgKE1RyYWNrUmVjZW50bHlPcGVuZWQSJy5zZXR0aW5ncy52MS5UcmFja1JlY2VudGx5T3BlbmVkUmVxdWVzdBooLnNldHRpbmdzLnYxLlRyYWNrUmVjZW50bHlPcGVuZWRSZXNwb25zZRJrChRSZW1vdmVSZWNlbnRseU9wZW5lZBIoLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVxdWVzdBopLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVzcG9uc2USaAoTQ2xlYXJSZWNlbnRseU9wZW5lZBInLnNldHRpbmdzLnYxLkNsZWFyUmVjZW50bHlPcGVuZWRSZXF1ZXN0Giguc2V0dGluZ3MudjEuQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlElAKC0NyZWF0ZVNoYXJlEh8uc2V0dGluZ3MudjEuQ3JlYXRlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuQ3JlYXRlU2hhcmVSZXNwb25zZRJHCghHZXRTaGFyZRIcLnNldHRpbmdzLnYxLkdldFNoYXJlUmVxdWVzdBodLnNldHRpbmdzLnYxLkdldFNoYXJlUmVzcG9uc2USTQoKTGlzdFNoYXJlcxIeLnNldHRpbmdzLnYxLkxpc3RTaGFyZXNSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuTGlzdFNoYXJlc1Jlc3BvbnNlElAKC1VwZGF0ZVNoYXJlEh8uc2V0dGluZ3MudjEuVXBkYXRlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuVXBkYXRlU2hhcmVSZXNwb25zZRJQCgtSZXZva2VTaGFyZRIfLnNldHRpbmdzLnYxLlJldm9rZVNoYXJlUmVxdWVzdBogLnNldHRpbmdzLnYxLlJldm9rZVNoYXJlUmVzcG9uc2USUAoLQWNjZXB0U2hhcmUSHy5zZXR0aW5ncy52MS5BY2NlcHRTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5BY2NlcHRTaGFyZVJlc3BvbnNlElMKDERlY2xpbmVTaGFyZRIgLnNldHRpbmdzLnYxLkRlY2xpbmVTaGFyZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5EZWNsaW5lU2hhcmVSZXNwb25zZRJuChVMaXN0Q29udGV4dERpbWVuc2lvbnMSKS5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvbnNSZXF1ZXN0Giouc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25zUmVzcG9uc2USaAoTR2V0Q29udGV4dERpbWVuc2lvbhInLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25SZXF1ZXN0Giguc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEncKGEdldENvbnRleHREaW1lbnNpb25CeUtleRIsLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25CeUtleVJlcXVlc3QaLS5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uQnlLZXlSZXNwb25zZRJxChZDcmVhdGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2UScQoWVXBkYXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuVXBkYXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnEKFkRlbGV0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJ6ChlHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzEi0uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1JlcXVlc3QaLi5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVzcG9uc2USdwoYR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hEiwuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdBotLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEmUKEkdldEN1c3RvbWVyUHJvZmlsZRImLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaJy5zZXR0aW5ncy52MS5HZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRJlChJTZXRDdXN0b21lclByb2ZpbGUSJi5zZXR0aW5ncy52MS5TZXRDdXN0b21lclByb2ZpbGVSZXF1ZXN0Gicuc2V0dGluZ3MudjEuU2V0Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USgAEKG1VwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYRIvLnNldHRpbmdzLnYxLlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlcXVlc3QaMC5zZXR0aW5ncy52MS5VcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXNwb25zZRJxChZTZWFyY2hDdXN0b21lclByb2ZpbGVzEiouc2V0dGluZ3MudjEuU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1JlcXVlc3QaKy5zZXR0aW5ncy52MS5TZWFyY2hDdXN0b21lclByb2ZpbGVzUmVzcG9uc2USbgoVRGVsZXRlQ3VzdG9tZXJQcm9maWxlEikuc2V0dGluZ3MudjEuRGVsZXRlQ3VzdG9tZXJQcm9maWxlUmVxdWVzdBoqLnNldHRpbmdzLnYxLkRlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEowBCh9HZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzEjMuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1JlcXVlc3QaNC5zZXR0aW5ncy52MS5HZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzUmVzcG9uc2USXwoQR2V0RWRpdG9yQ29uZmlncxIkLnNldHRpbmdzLnYxLkdldEVkaXRvckNvbmZpZ3NSZXF1ZXN0GiUuc2V0dGluZ3MudjEuR2V0RWRpdG9yQ29uZmlnc1Jlc3BvbnNlEmUKEkxpc3RWYXJpYW50Q2F0YWxvZxImLnNldHRpbmdzLnYxLkxpc3RWYXJpYW50Q2F0YWxvZ1JlcXVlc3QaJy5zZXR0aW5ncy52MS5MaXN0VmFyaWFudENhdGFsb2dSZXNwb25zZRJxChZHZXRWYXJpYW50Q2F0YWxvZ0VudHJ5Eiouc2V0dGluZ3MudjEuR2V0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaKy5zZXR0aW5ncy52MS5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLkNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGVVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5VcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLlVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlEZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuRGVsZXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5EZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2UShgEKHUdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5EjEuc2V0dGluZ3MudjEuR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0GjIuc2V0dGluZ3MudjEuR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRKPAQogRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnkSNC5zZXR0aW5ncy52MS5FbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaNS5zZXR0aW5ncy52MS5FbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEl8KEExpc3RFbWFpbEFjdGlvbnMSJC5zZXR0aW5ncy52MS5MaXN0RW1haWxBY3Rpb25zUmVxdWVzdBolLnNldHRpbmdzLnYxLkxpc3RFbWFpbEFjdGlvbnNSZXNwb25zZRJZCg5HZXRFbWFpbEFjdGlvbhIiLnNldHRpbmdzLnYxLkdldEVtYWlsQWN0aW9uUmVxdWVzdBojLnNldHRpbmdzLnYxLkdldEVtYWlsQWN0aW9uUmVzcG9uc2USYgoRVXBkYXRlRW1haWxBY3Rpb24SJS5zZXR0aW5ncy52MS5VcGRhdGVFbWFpbEFjdGlvblJlcXVlc3QaJi5zZXR0aW5ncy52MS5VcGRhdGVFbWFpbEFjdGlvblJlc3BvbnNlEmgKE0xpc3RSZXNlbmRUZW1wbGF0ZXMSJy5zZXR0aW5ncy52MS5MaXN0UmVzZW5kVGVtcGxhdGVzUmVxdWVzdBooLnNldHRpbmdzLnYxLkxpc3RSZXNlbmRUZW1wbGF0ZXNSZXNwb25zZRJfChBHZXRQcm9qZWN0U2NoZW1hEiQuc2V0dGluZ3MudjEuR2V0UHJvamVjdFNjaGVtYVJlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXRQcm9qZWN0U2NoZW1hUmVzcG9uc2VCPVo7Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL3NldHRpbmdzL3YxO3NldHRpbmdzdjFiBnByb3RvMw", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Describes the message settings.v1.Setting.
|