@dxos/protocols 0.8.4-main.bc674ce → 0.8.4-main.bd9b33e6c8
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/README.md +1 -1
- package/dist/src/FeedProtocol.d.ts +528 -0
- package/dist/src/FeedProtocol.d.ts.map +1 -0
- package/dist/src/FeedProtocol.js +237 -0
- package/dist/src/FeedProtocol.js.map +1 -0
- package/dist/src/FunctionProtocol.d.ts +2 -2
- package/dist/src/FunctionProtocol.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/client/queue_pb.d.ts +42 -0
- package/dist/src/buf/proto/gen/dxos/client/queue_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/client/queue_pb.js +7 -2
- package/dist/src/buf/proto/gen/dxos/client/queue_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/client/services_pb.d.ts +5 -1
- package/dist/src/buf/proto/gen/dxos/client/services_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/client/services_pb.js +5 -1
- package/dist/src/buf/proto/gen/dxos/client/services_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/config_pb.d.ts +0 -4
- package/dist/src/buf/proto/gen/dxos/config_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/config_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/config_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.d.ts +28 -0
- package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.js +10 -5
- package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/google_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.d.ts +1 -0
- package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/tracing_pb.js +1 -1
- package/dist/src/codec.test.js +1 -1
- package/dist/src/edge/EdgeFunctionEnv.d.ts +11 -23
- package/dist/src/edge/EdgeFunctionEnv.d.ts.map +1 -1
- package/dist/src/edge/edge.d.ts +161 -0
- package/dist/src/edge/edge.d.ts.map +1 -1
- package/dist/src/edge/edge.js +9 -0
- package/dist/src/edge/edge.js.map +1 -1
- package/dist/src/edge/errors.d.ts +1 -1
- package/dist/src/edge/errors.js +1 -1
- package/dist/src/edge/index.d.ts +3 -3
- package/dist/src/edge/index.js +3 -3
- package/dist/src/errors/encoding.d.ts +1 -1
- package/dist/src/errors/encoding.js +1 -1
- package/dist/src/errors/errors.d.ts +1 -1
- package/dist/src/errors/errors.js +1 -1
- package/dist/src/errors/errors.test.js +1 -1
- package/dist/src/errors/helpers.d.ts +1 -1
- package/dist/src/errors/index.d.ts +5 -5
- package/dist/src/errors/index.js +5 -5
- package/dist/src/index.d.ts +12 -12
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -12
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexing.test.js +1 -1
- package/dist/src/proto/gen/dxos/client/services.d.ts +998 -973
- package/dist/src/proto/gen/dxos/client/services.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/client/services.js +95 -94
- package/dist/src/proto/gen/dxos/client/services.js.map +1 -1
- package/dist/src/proto/gen/dxos/config.d.ts +0 -5
- package/dist/src/proto/gen/dxos/config.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/config.js.map +1 -1
- package/dist/src/proto/gen/dxos/devtools/host.d.ts +31 -31
- package/dist/src/proto/gen/dxos/devtools/host.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/edge/messenger.d.ts +24 -0
- package/dist/src/proto/gen/dxos/edge/messenger.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/edge/messenger.js.map +1 -1
- package/dist/src/proto/gen/dxos/halo/credentials.d.ts +1 -1
- package/dist/src/proto/gen/google/protobuf.d.ts +326 -40
- package/dist/src/proto/gen/google/protobuf.d.ts.map +1 -1
- package/dist/src/proto/gen/google/protobuf.js +127 -1
- package/dist/src/proto/gen/google/protobuf.js.map +1 -1
- package/dist/src/proto/gen/index.d.ts +26 -0
- package/dist/src/proto/gen/index.d.ts.map +1 -1
- package/dist/src/proto/gen/index.js +1 -1
- package/dist/src/proto/gen/index.js.map +1 -1
- package/dist/src/proto/index.d.ts +2 -2
- package/dist/src/proto/index.js +1 -1
- package/dist/src/proto/types.d.ts +1 -1
- package/dist/src/space-archive.d.ts +60 -1
- package/dist/src/space-archive.d.ts.map +1 -1
- package/dist/src/space-archive.js +13 -1
- package/dist/src/space-archive.js.map +1 -1
- package/dist/src/types.d.ts +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -14
- package/src/FeedProtocol.ts +320 -0
- package/src/FunctionProtocol.ts +2 -4
- package/src/buf/proto/gen/dxos/agent/dashboard_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/agent/echo-proxy_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/agent/epoch_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/agent/functions_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/bot_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/client/invitation_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/client/logging_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/client/queue_pb.ts +51 -2
- package/src/buf/proto/gen/dxos/client/services_pb.ts +7 -2
- package/src/buf/proto/gen/dxos/config_pb.ts +2 -7
- package/src/buf/proto/gen/dxos/devtools/diagnostics_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/devtools/host_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/devtools/swarm_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/blob_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/feed_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/filter_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/indexing_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/metadata_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/model/document_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/model/messenger_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/model/text_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/object_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/query_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/service_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/snapshot_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/echo/timeframe_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/edge/calls_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/edge/messenger_pb.ts +39 -6
- package/src/buf/proto/gen/dxos/edge/signal_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/error_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/field_options_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/google_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/gravity_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/halo/credentials/auth_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/halo/credentials/greet_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/halo/credentials/identity_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/halo/credentials_pb.ts +2 -1
- package/src/buf/proto/gen/dxos/halo/invitations_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/halo/keyring_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/halo/keys_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/halo/signed_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/iframe_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/keys_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/bridge_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/broadcast_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/messaging_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/muxer_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/presence_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/protocol_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/replicator_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/signal_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/swarm_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/teleport/admission-discovery_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/teleport/auth_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/teleport/automerge_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/teleport/blobsync_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/teleport/control_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/teleport/gossip_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/teleport/notarization_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/mesh/teleport/replicator_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/registry_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/rpc_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/service/agentmanager_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/service/publisher_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/service/supervisor_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/service/tunnel_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/tracing_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/type_pb.ts +1 -1
- package/src/buf/proto/gen/dxos/value_pb.ts +1 -1
- package/src/buf/proto/gen/example/testing/data_pb.ts +1 -1
- package/src/buf/proto/gen/example/testing/rpc_pb.ts +1 -1
- package/src/codec.test.ts +1 -1
- package/src/edge/EdgeFunctionEnv.ts +20 -26
- package/src/edge/edge.ts +115 -0
- package/src/edge/errors.ts +1 -1
- package/src/edge/index.ts +3 -3
- package/src/errors/encoding.ts +2 -2
- package/src/errors/errors.test.ts +1 -1
- package/src/errors/errors.ts +2 -2
- package/src/errors/helpers.ts +1 -1
- package/src/errors/index.ts +5 -5
- package/src/index.ts +12 -14
- package/src/indexing.test.ts +1 -1
- package/src/proto/dxos/client/queue.proto +11 -0
- package/src/proto/dxos/client/services.proto +1 -0
- package/src/proto/dxos/config.proto +1 -3
- package/src/proto/dxos/edge/messenger.proto +10 -0
- package/src/proto/dxos/halo/credentials.proto +1 -0
- package/src/proto/gen/dxos/client/services.ts +998 -973
- package/src/proto/gen/dxos/config.ts +0 -5
- package/src/proto/gen/dxos/devtools/host.ts +31 -31
- package/src/proto/gen/dxos/edge/messenger.ts +24 -0
- package/src/proto/gen/dxos/halo/credentials.ts +1 -1
- package/src/proto/gen/google/protobuf.ts +326 -40
- package/src/proto/gen/index.ts +27 -1
- package/src/proto/index.ts +2 -2
- package/src/proto/types.ts +1 -1
- package/src/space-archive.ts +70 -1
- package/src/types.ts +2 -2
- package/dist/src/queue.d.ts +0 -3
- package/dist/src/queue.d.ts.map +0 -1
- package/dist/src/queue.js +0 -5
- package/dist/src/queue.js.map +0 -1
- package/src/queue.ts +0 -14
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/protocols",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.bd9b33e6c8",
|
|
4
4
|
"description": "Protobuf definitions for DXOS protocols.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -63,23 +63,23 @@
|
|
|
63
63
|
"src"
|
|
64
64
|
],
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@bufbuild/protobuf": "2.
|
|
67
|
-
"@dxos/codec-protobuf": "0.8.4-main.
|
|
68
|
-
"@dxos/
|
|
69
|
-
"@dxos/errors": "0.8.4-main.
|
|
70
|
-
"@dxos/
|
|
71
|
-
"@dxos/
|
|
72
|
-
"@dxos/keys": "0.8.4-main.
|
|
73
|
-
"@dxos/
|
|
66
|
+
"@bufbuild/protobuf": "2.11.0",
|
|
67
|
+
"@dxos/codec-protobuf": "0.8.4-main.bd9b33e6c8",
|
|
68
|
+
"@dxos/effect": "0.8.4-main.bd9b33e6c8",
|
|
69
|
+
"@dxos/errors": "0.8.4-main.bd9b33e6c8",
|
|
70
|
+
"@dxos/invariant": "0.8.4-main.bd9b33e6c8",
|
|
71
|
+
"@dxos/timeframe": "0.8.4-main.bd9b33e6c8",
|
|
72
|
+
"@dxos/keys": "0.8.4-main.bd9b33e6c8",
|
|
73
|
+
"@dxos/util": "0.8.4-main.bd9b33e6c8"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@bufbuild/buf": "1.
|
|
77
|
-
"@bufbuild/protoc-gen-es": "2.
|
|
78
|
-
"effect": "3.
|
|
79
|
-
"@dxos/protobuf-compiler": "0.8.4-main.
|
|
76
|
+
"@bufbuild/buf": "1.65.0",
|
|
77
|
+
"@bufbuild/protoc-gen-es": "2.11.0",
|
|
78
|
+
"effect": "3.20.0",
|
|
79
|
+
"@dxos/protobuf-compiler": "0.8.4-main.bd9b33e6c8"
|
|
80
80
|
},
|
|
81
81
|
"peerDependencies": {
|
|
82
|
-
"effect": "3.
|
|
82
|
+
"effect": "3.20.0"
|
|
83
83
|
},
|
|
84
84
|
"publishConfig": {
|
|
85
85
|
"access": "public"
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2026 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
export {
|
|
6
|
+
type QueueService,
|
|
7
|
+
type QueueQuery,
|
|
8
|
+
type QueueQueryResult as QueryResult,
|
|
9
|
+
type QueryQueueRequest,
|
|
10
|
+
type InsertIntoQueueRequest,
|
|
11
|
+
type DeleteFromQueueRequest,
|
|
12
|
+
type SyncQueueRequest,
|
|
13
|
+
} from './proto/gen/dxos/client/services.js';
|
|
14
|
+
|
|
15
|
+
export const KEY_QUEUE_POSITION = 'org.dxos.key.queue-position';
|
|
16
|
+
|
|
17
|
+
import * as Schema from 'effect/Schema';
|
|
18
|
+
|
|
19
|
+
import { invariant } from '@dxos/invariant';
|
|
20
|
+
import { SpaceId } from '@dxos/keys';
|
|
21
|
+
|
|
22
|
+
import { EdgeService } from './edge/edge.js';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Opaque pagination cursor for feed queries.
|
|
26
|
+
*/
|
|
27
|
+
export const FeedCursor = Schema.String.pipe(Schema.brand('@dxos/feed/FeedCursor'));
|
|
28
|
+
export type FeedCursor = Schema.Schema.Type<typeof FeedCursor>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Replicated queue block payload and ordering metadata.
|
|
32
|
+
*/
|
|
33
|
+
export const Block = Schema.Struct({
|
|
34
|
+
/**
|
|
35
|
+
* Appears on blocks returned from query.
|
|
36
|
+
*/
|
|
37
|
+
feedId: Schema.UndefinedOr(Schema.String),
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Actor that produced this block.
|
|
41
|
+
*/
|
|
42
|
+
actorId: Schema.String,
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Per-feed monotonic sequence assigned by the actor.
|
|
46
|
+
*/
|
|
47
|
+
sequence: Schema.Number,
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Actor of the immediate predecessor block, if any.
|
|
51
|
+
*/
|
|
52
|
+
prevActorId: Schema.NullOr(Schema.String),
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Sequence of the immediate predecessor block, if any.
|
|
56
|
+
*/
|
|
57
|
+
prevSequence: Schema.NullOr(Schema.Number),
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Globally ordered position assigned by a position authority.
|
|
61
|
+
* Unlike `sequence` (per-feed causal order), this enables merged incremental reads across feeds.
|
|
62
|
+
*/
|
|
63
|
+
position: Schema.NullOr(Schema.Number),
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Milliseconds since Unix epoch when the block was created.
|
|
67
|
+
*/
|
|
68
|
+
timestamp: Schema.Number,
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Serialized application payload.
|
|
72
|
+
*/
|
|
73
|
+
data: Schema.Uint8Array,
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Local insertion ID.
|
|
77
|
+
* Not replicated.
|
|
78
|
+
*/
|
|
79
|
+
// TODO(dmaretskyi): Remove. Use cursors.
|
|
80
|
+
insertionId: Schema.optional(Schema.Number),
|
|
81
|
+
});
|
|
82
|
+
export interface Block extends Schema.Schema.Type<typeof Block> {}
|
|
83
|
+
|
|
84
|
+
//
|
|
85
|
+
// RPC Schemas
|
|
86
|
+
//
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Query parameters for retrieving blocks from one namespace in one space.
|
|
90
|
+
*/
|
|
91
|
+
export const QueryRequest = Schema.Struct({
|
|
92
|
+
/**
|
|
93
|
+
* Optional request correlation identifier.
|
|
94
|
+
*/
|
|
95
|
+
requestId: Schema.optional(Schema.String),
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Target space identifier.
|
|
99
|
+
*/
|
|
100
|
+
spaceId: SpaceId,
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Feed namespace to query.
|
|
104
|
+
*/
|
|
105
|
+
feedNamespace: Schema.String,
|
|
106
|
+
|
|
107
|
+
query: Schema.optional(
|
|
108
|
+
Schema.Union(
|
|
109
|
+
Schema.Struct({
|
|
110
|
+
/**
|
|
111
|
+
* Explicit list of feed IDs to read from.
|
|
112
|
+
*/
|
|
113
|
+
feedIds: Schema.Array(Schema.String),
|
|
114
|
+
}),
|
|
115
|
+
Schema.Struct({
|
|
116
|
+
/**
|
|
117
|
+
* Existing subscription to resolve feed IDs from.
|
|
118
|
+
*/
|
|
119
|
+
subscriptionId: Schema.String,
|
|
120
|
+
}),
|
|
121
|
+
),
|
|
122
|
+
),
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Get changes following this cursor (exclusive).
|
|
126
|
+
*
|
|
127
|
+
* Must not be used with `position`.
|
|
128
|
+
*/
|
|
129
|
+
cursor: Schema.optional(FeedCursor),
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Get changes following this position.
|
|
133
|
+
* Returned blocks have strictly greater position than this.
|
|
134
|
+
*
|
|
135
|
+
* Must not be used with `cursor`.
|
|
136
|
+
*/
|
|
137
|
+
position: Schema.optional(Schema.Number),
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Only return blocks that are not positioned.
|
|
141
|
+
*
|
|
142
|
+
* Must not be used with `cursor` or `position`.
|
|
143
|
+
*/
|
|
144
|
+
unpositionedOnly: Schema.optional(Schema.Boolean),
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Maximum number of blocks to return.
|
|
148
|
+
*/
|
|
149
|
+
limit: Schema.optional(Schema.Number),
|
|
150
|
+
});
|
|
151
|
+
export interface QueryRequest extends Schema.Schema.Type<typeof QueryRequest> {}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Result payload for a query operation.
|
|
155
|
+
*/
|
|
156
|
+
export const QueryResponse = Schema.Struct({
|
|
157
|
+
/**
|
|
158
|
+
* Echoed request correlation identifier.
|
|
159
|
+
*/
|
|
160
|
+
requestId: Schema.optional(Schema.String),
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Cursor to continue reading from this result boundary.
|
|
164
|
+
*/
|
|
165
|
+
nextCursor: FeedCursor,
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Indicates whether more matching blocks are available.
|
|
169
|
+
*/
|
|
170
|
+
hasMore: Schema.Boolean,
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Returned blocks for the current page.
|
|
174
|
+
*/
|
|
175
|
+
blocks: Schema.Array(Block),
|
|
176
|
+
});
|
|
177
|
+
export interface QueryResponse extends Schema.Schema.Type<typeof QueryResponse> {}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Parameters for creating or refreshing a feed subscription.
|
|
181
|
+
*/
|
|
182
|
+
export const SubscribeRequest = Schema.Struct({
|
|
183
|
+
/**
|
|
184
|
+
* Optional request correlation identifier.
|
|
185
|
+
*/
|
|
186
|
+
requestId: Schema.optional(Schema.String),
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Optional space scope for the subscription.
|
|
190
|
+
*/
|
|
191
|
+
spaceId: Schema.optional(Schema.String),
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Feeds to include in the subscription.
|
|
195
|
+
*/
|
|
196
|
+
feedIds: Schema.Array(Schema.String),
|
|
197
|
+
});
|
|
198
|
+
export interface SubscribeRequest extends Schema.Schema.Type<typeof SubscribeRequest> {}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Response payload for subscription creation.
|
|
202
|
+
*/
|
|
203
|
+
export const SubscribeResponse = Schema.Struct({
|
|
204
|
+
/**
|
|
205
|
+
* Echoed request correlation identifier.
|
|
206
|
+
*/
|
|
207
|
+
requestId: Schema.optional(Schema.String),
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Identifier to use in subsequent subscription queries.
|
|
211
|
+
*/
|
|
212
|
+
subscriptionId: Schema.String,
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Expiration timestamp in milliseconds since Unix epoch.
|
|
216
|
+
*/
|
|
217
|
+
expiresAt: Schema.Number,
|
|
218
|
+
});
|
|
219
|
+
export interface SubscribeResponse extends Schema.Schema.Type<typeof SubscribeResponse> {}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Request payload for appending one or more blocks.
|
|
223
|
+
*/
|
|
224
|
+
export const AppendRequest = Schema.Struct({
|
|
225
|
+
/**
|
|
226
|
+
* Optional request correlation identifier.
|
|
227
|
+
*/
|
|
228
|
+
requestId: Schema.optional(Schema.String),
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Target space identifier.
|
|
232
|
+
*/
|
|
233
|
+
spaceId: Schema.String,
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Namespace that all appended blocks belong to.
|
|
237
|
+
*/
|
|
238
|
+
feedNamespace: Schema.String,
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Blocks to append.
|
|
242
|
+
*/
|
|
243
|
+
blocks: Schema.Array(Block),
|
|
244
|
+
});
|
|
245
|
+
export interface AppendRequest extends Schema.Schema.Type<typeof AppendRequest> {}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Result payload for append operations.
|
|
249
|
+
*/
|
|
250
|
+
export const AppendResponse = Schema.Struct({
|
|
251
|
+
/**
|
|
252
|
+
* Echoed request correlation identifier.
|
|
253
|
+
*/
|
|
254
|
+
requestId: Schema.optional(Schema.String),
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Assigned global positions for appended blocks.
|
|
258
|
+
*/
|
|
259
|
+
positions: Schema.Array(Schema.Number),
|
|
260
|
+
});
|
|
261
|
+
export interface AppendResponse extends Schema.Schema.Type<typeof AppendResponse> {}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Tagged transport message union for queue protocol RPC traffic.
|
|
265
|
+
*/
|
|
266
|
+
export const ProtocolMessage = Schema.Union(
|
|
267
|
+
Schema.TaggedStruct('QueryRequest', QueryRequest.fields),
|
|
268
|
+
Schema.TaggedStruct('QueryResponse', QueryResponse.fields),
|
|
269
|
+
Schema.TaggedStruct('SubscribeRequest', SubscribeRequest.fields),
|
|
270
|
+
Schema.TaggedStruct('SubscribeResponse', SubscribeResponse.fields),
|
|
271
|
+
Schema.TaggedStruct('AppendRequest', AppendRequest.fields),
|
|
272
|
+
Schema.TaggedStruct('AppendResponse', AppendResponse.fields),
|
|
273
|
+
Schema.TaggedStruct('Error', {
|
|
274
|
+
/**
|
|
275
|
+
* Human-readable error message.
|
|
276
|
+
*/
|
|
277
|
+
message: Schema.String,
|
|
278
|
+
}),
|
|
279
|
+
).pipe(
|
|
280
|
+
Schema.extend(
|
|
281
|
+
Schema.Struct({
|
|
282
|
+
senderPeerId: Schema.UndefinedOr(Schema.String),
|
|
283
|
+
/**
|
|
284
|
+
* Could be undefined if the recipient could be assumed from the context.
|
|
285
|
+
*/
|
|
286
|
+
recipientPeerId: Schema.UndefinedOr(Schema.String),
|
|
287
|
+
}),
|
|
288
|
+
),
|
|
289
|
+
);
|
|
290
|
+
export type ProtocolMessage = Schema.Schema.Type<typeof ProtocolMessage>;
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Reserved namespaces with protocol-level semantics.
|
|
294
|
+
*/
|
|
295
|
+
export const WellKnownNamespaces = {
|
|
296
|
+
data: 'data',
|
|
297
|
+
trace: 'trace',
|
|
298
|
+
} as const;
|
|
299
|
+
|
|
300
|
+
export const isWellKnownNamespace = (namespace: string) =>
|
|
301
|
+
Object.values(WellKnownNamespaces).includes(namespace as any);
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Encodes queue replicator service identifier as `<service>:<namespace>:<spaceId>`.
|
|
305
|
+
*/
|
|
306
|
+
export const encodeServiceId = (namespace: string, spaceId: SpaceId) =>
|
|
307
|
+
`${EdgeService.QUEUE_REPLICATOR}:${namespace}:${spaceId}`;
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Decodes and validates queue replicator service identifier.
|
|
311
|
+
*/
|
|
312
|
+
export const decodeServiceId = (
|
|
313
|
+
serviceId: string,
|
|
314
|
+
): { namespace: keyof typeof WellKnownNamespaces; spaceId: SpaceId } => {
|
|
315
|
+
const [service, namespace, spaceId] = serviceId.split(':');
|
|
316
|
+
invariant(service === EdgeService.QUEUE_REPLICATOR, `Invalid service: ${service}`);
|
|
317
|
+
invariant(isWellKnownNamespace(namespace), `Invalid namespace: ${namespace}`);
|
|
318
|
+
invariant(SpaceId.isValid(spaceId), `Invalid spaceId: ${spaceId}`);
|
|
319
|
+
return { namespace: namespace as keyof typeof WellKnownNamespaces, spaceId };
|
|
320
|
+
};
|
package/src/FunctionProtocol.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type * as QueryProto from '@dxos/protocols/proto/dxos/echo/query';
|
|
|
7
7
|
import type * as DataProto from '@dxos/protocols/proto/dxos/echo/service';
|
|
8
8
|
|
|
9
9
|
import { type EdgeFunctionEnv } from './edge';
|
|
10
|
-
import
|
|
10
|
+
import type * as FeedProtocol from './FeedProtocol';
|
|
11
11
|
|
|
12
12
|
//
|
|
13
13
|
// Function protocol definition
|
|
@@ -18,8 +18,6 @@ import { type QueueService } from './queue';
|
|
|
18
18
|
// - Protobuf service definitions are allowed (Q: What about PublicKey, Timeframe, etc.).
|
|
19
19
|
// - Breaking changes in this interface should be carefully considered.
|
|
20
20
|
|
|
21
|
-
// TODO(dmaretskyi): Consider moving this to protocols.
|
|
22
|
-
|
|
23
21
|
/**
|
|
24
22
|
* Function implementation.
|
|
25
23
|
* This is a contract between the user-defined function and the runtime.
|
|
@@ -77,7 +75,7 @@ export interface Context {
|
|
|
77
75
|
* Queue service.
|
|
78
76
|
* Available if the function is invoked in context of a space.
|
|
79
77
|
*/
|
|
80
|
-
queueService?: QueueService;
|
|
78
|
+
queueService?: FeedProtocol.QueueService;
|
|
81
79
|
|
|
82
80
|
/**
|
|
83
81
|
* Functions service.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// @generated by protoc-gen-es v2.
|
|
5
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=js"
|
|
6
6
|
// @generated from file dxos/agent/dashboard.proto (package dxos.agent.dashboard, syntax proto3)
|
|
7
7
|
/* eslint-disable */
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// @generated by protoc-gen-es v2.
|
|
5
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=js"
|
|
6
6
|
// @generated from file dxos/agent/echo-proxy.proto (package dxos.agent.echoproxy, syntax proto3)
|
|
7
7
|
/* eslint-disable */
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// @generated by protoc-gen-es v2.
|
|
5
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=js"
|
|
6
6
|
// @generated from file dxos/agent/epoch.proto (package dxos.agent.epoch, syntax proto3)
|
|
7
7
|
/* eslint-disable */
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// @generated by protoc-gen-es v2.
|
|
5
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=js"
|
|
6
6
|
// @generated from file dxos/agent/functions.proto (package dxos.agent.functions, syntax proto3)
|
|
7
7
|
/* eslint-disable */
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2020 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// @generated by protoc-gen-es v2.
|
|
5
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=js"
|
|
6
6
|
// @generated from file dxos/bot.proto (package dxos.bot, syntax proto3)
|
|
7
7
|
/* eslint-disable */
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2021 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// @generated by protoc-gen-es v2.
|
|
5
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=js"
|
|
6
6
|
// @generated from file dxos/client/invitation.proto (package dxos.client.services, syntax proto3)
|
|
7
7
|
/* eslint-disable */
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2021 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// @generated by protoc-gen-es v2.
|
|
5
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=js"
|
|
6
6
|
// @generated from file dxos/client/logging.proto (package dxos.client.services, syntax proto3)
|
|
7
7
|
/* eslint-disable */
|
|
8
8
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @generated by protoc-gen-es v2.
|
|
1
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=js"
|
|
2
2
|
// @generated from file dxos/client/queue.proto (package dxos.client.services, syntax proto3)
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
|
|
@@ -12,7 +12,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
|
12
12
|
* Describes the file dxos/client/queue.proto.
|
|
13
13
|
*/
|
|
14
14
|
export const file_dxos_client_queue: GenFile = /*@__PURE__*/
|
|
15
|
-
fileDesc("
|
|
15
|
+
fileDesc("ChdkeG9zL2NsaWVudC9xdWV1ZS5wcm90bxIUZHhvcy5jbGllbnQuc2VydmljZXMi0wIKClF1ZXVlUXVlcnkSEAoIc3BhY2VfaWQYASABKAkSHQoQcXVldWVzX25hbWVzcGFjZRgCIAEoCUgAiAEBEhEKCXF1ZXVlX2lkcxgDIAMoCRISCgVhZnRlchgEIAEoCUgBiAEBEhMKBmJlZm9yZRgFIAEoCUgCiAEBEhsKDmJlZ2luX3Bvc2l0aW9uGAYgASgDSAOIAQESGQoMZW5kX3Bvc2l0aW9uGAcgASgDSASIAQESEgoFbGltaXQYCCABKAVIBYgBARIUCgdyZXZlcnNlGAkgASgISAaIAQESEgoKb2JqZWN0X2lkcxhkIAMoCUITChFfcXVldWVzX25hbWVzcGFjZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIRCg9fYmVnaW5fcG9zaXRpb25CDwoNX2VuZF9wb3NpdGlvbkIICgZfbGltaXRCCgoIX3JldmVyc2UiZgoQUXVldWVRdWVyeVJlc3VsdBIoCgdvYmplY3RzGAEgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBITCgtuZXh0X2N1cnNvchgCIAEoCRITCgtwcmV2X2N1cnNvchgDIAEoCSJEChFRdWVyeVF1ZXVlUmVxdWVzdBIvCgVxdWVyeRgBIAEoCzIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXVlUXVlcnkifAoWSW5zZXJ0SW50b1F1ZXVlUmVxdWVzdBIUCgxzdWJzcGFjZV90YWcYASABKAkSEAoIc3BhY2VfaWQYAiABKAkSEAoIcXVldWVfaWQYAyABKAkSKAoHb2JqZWN0cxgEIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiZgoWRGVsZXRlRnJvbVF1ZXVlUmVxdWVzdBIUCgxzdWJzcGFjZV90YWcYASABKAkSEAoIc3BhY2VfaWQYAiABKAkSEAoIcXVldWVfaWQYAyABKAkSEgoKb2JqZWN0X2lkcxgEIAMoCSKgAQoQU3luY1F1ZXVlUmVxdWVzdBIUCgxzdWJzcGFjZV90YWcYASABKAkSEAoIc3BhY2VfaWQYAiABKAkSEAoIcXVldWVfaWQYAyABKAkSGAoLc2hvdWxkX3B1c2gYBCABKAhIAIgBARIYCgtzaG91bGRfcHVsbBgFIAEoCEgBiAEBQg4KDF9zaG91bGRfcHVzaEIOCgxfc2hvdWxkX3B1bGwy7AIKDFF1ZXVlU2VydmljZRJdCgpRdWVyeVF1ZXVlEicuZHhvcy5jbGllbnQuc2VydmljZXMuUXVlcnlRdWV1ZVJlcXVlc3QaJi5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWV1ZVF1ZXJ5UmVzdWx0ElcKD0luc2VydEludG9RdWV1ZRIsLmR4b3MuY2xpZW50LnNlcnZpY2VzLkluc2VydEludG9RdWV1ZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSVwoPRGVsZXRlRnJvbVF1ZXVlEiwuZHhvcy5jbGllbnQuc2VydmljZXMuRGVsZXRlRnJvbVF1ZXVlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJLCglTeW5jUXVldWUSJi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TeW5jUXVldWVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5YgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_empty]);
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* @generated from message dxos.client.services.QueueQuery
|
|
@@ -198,6 +198,47 @@ export type DeleteFromQueueRequest = Message<"dxos.client.services.DeleteFromQue
|
|
|
198
198
|
export const DeleteFromQueueRequestSchema: GenMessage<DeleteFromQueueRequest> = /*@__PURE__*/
|
|
199
199
|
messageDesc(file_dxos_client_queue, 4);
|
|
200
200
|
|
|
201
|
+
/**
|
|
202
|
+
* @generated from message dxos.client.services.SyncQueueRequest
|
|
203
|
+
*/
|
|
204
|
+
export type SyncQueueRequest = Message<"dxos.client.services.SyncQueueRequest"> & {
|
|
205
|
+
/**
|
|
206
|
+
* @generated from field: string subspace_tag = 1;
|
|
207
|
+
*/
|
|
208
|
+
subspaceTag: string;
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* @generated from field: string space_id = 2;
|
|
212
|
+
*/
|
|
213
|
+
spaceId: string;
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* @generated from field: string queue_id = 3;
|
|
217
|
+
*/
|
|
218
|
+
queueId: string;
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* / Whether to push local changes to the server. Defaults to true.
|
|
222
|
+
*
|
|
223
|
+
* @generated from field: optional bool should_push = 4;
|
|
224
|
+
*/
|
|
225
|
+
shouldPush?: boolean;
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* / Whether to pull remote changes from the server. Defaults to true.
|
|
229
|
+
*
|
|
230
|
+
* @generated from field: optional bool should_pull = 5;
|
|
231
|
+
*/
|
|
232
|
+
shouldPull?: boolean;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Describes the message dxos.client.services.SyncQueueRequest.
|
|
237
|
+
* Use `create(SyncQueueRequestSchema)` to create a new message.
|
|
238
|
+
*/
|
|
239
|
+
export const SyncQueueRequestSchema: GenMessage<SyncQueueRequest> = /*@__PURE__*/
|
|
240
|
+
messageDesc(file_dxos_client_queue, 5);
|
|
241
|
+
|
|
201
242
|
/**
|
|
202
243
|
* @generated from service dxos.client.services.QueueService
|
|
203
244
|
*/
|
|
@@ -226,6 +267,14 @@ export const QueueService: GenService<{
|
|
|
226
267
|
input: typeof DeleteFromQueueRequestSchema;
|
|
227
268
|
output: typeof EmptySchema;
|
|
228
269
|
},
|
|
270
|
+
/**
|
|
271
|
+
* @generated from rpc dxos.client.services.QueueService.SyncQueue
|
|
272
|
+
*/
|
|
273
|
+
syncQueue: {
|
|
274
|
+
methodKind: "unary";
|
|
275
|
+
input: typeof SyncQueueRequestSchema;
|
|
276
|
+
output: typeof EmptySchema;
|
|
277
|
+
},
|
|
229
278
|
}> = /*@__PURE__*/
|
|
230
279
|
serviceDesc(file_dxos_client_queue, 0);
|
|
231
280
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2021 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// @generated by protoc-gen-es v2.
|
|
5
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=js"
|
|
6
6
|
// @generated from file dxos/client/services.proto (package dxos.client.services, syntax proto3)
|
|
7
7
|
/* eslint-disable */
|
|
8
8
|
|
|
@@ -45,7 +45,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
|
45
45
|
* Describes the file dxos/client/services.proto.
|
|
46
46
|
*/
|
|
47
47
|
export const file_dxos_client_services: GenFile = /*@__PURE__*/
|
|
48
|
-
fileDesc("ChpkeG9zL2NsaWVudC9zZXJ2aWNlcy5wcm90bxIUZHhvcy5jbGllbnQuc2VydmljZXMiSQoTVXBkYXRlU3RhdHVzUmVxdWVzdBIyCgZzdGF0dXMYASABKA4yIi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TeXN0ZW1TdGF0dXMiOAoSUXVlcnlTdGF0dXNSZXF1ZXN0EhUKCGludGVydmFsGAEgASgFSACIAQFCCwoJX2ludGVydmFsIkkKE1F1ZXJ5U3RhdHVzUmVzcG9uc2USMgoGc3RhdHVzGAEgASgOMiIuZHhvcy5jbGllbnQuc2VydmljZXMuU3lzdGVtU3RhdHVzIp8BChVHZXREaWFnbm9zdGljc1JlcXVlc3QSSQoEa2V5cxgBIAEoDjI2LmR4b3MuY2xpZW50LnNlcnZpY2VzLkdldERpYWdub3N0aWNzUmVxdWVzdC5LRVlfT1BUSU9OSACIAQEiMgoKS0VZX09QVElPThIICgROT05FEAASDAoIVFJVTkNBVEUQARIMCghIVU1BTklaRRACQgcKBV9rZXlzInUKFkdldERpYWdub3N0aWNzUmVzcG9uc2USLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgtkaWFnbm9zdGljcxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi5AIKCFBsYXRmb3JtEjoKBHR5cGUYASABKA4yLC5keG9zLmNsaWVudC5zZXJ2aWNlcy5QbGF0Zm9ybS5QTEFURk9STV9UWVBFEhcKCnVzZXJfYWdlbnQYAiABKAlIAIgBARIVCghwbGF0Zm9ybRgDIAEoCUgBiAEBEhEKBGFyY2gYBCABKAlIAogBARIUCgdydW50aW1lGAUgASgJSAOIAQESEwoGdXB0aW1lGAYgASgNSASIAQESLAoGbWVtb3J5GAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBIjkKDVBMQVRGT1JNX1RZUEUSCwoHQlJPV1NFUhAAEhEKDVNIQVJFRF9XT1JLRVIQARIICgROT0RFEAJCDQoLX3VzZXJfYWdlbnRCCwoJX3BsYXRmb3JtQgcKBV9hcmNoQgoKCF9ydW50aW1lQgkKB191cHRpbWVCCQoHX21lbW9yeSLJAQoISWRlbnRpdHkSCwoDZGlkGAQgASgJEioKDGlkZW50aXR5X2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSLAoJc3BhY2Vfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleUgAiAEBEjwKB3Byb2ZpbGUYAyABKAsyJi5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJvZmlsZURvY3VtZW50SAGIAQFCDAoKX3NwYWNlX2tleUIKCghfcHJvZmlsZSKPAQogUmVxdWVzdFJlY292ZXJ5Q2hhbGxlbmdlUmVzcG9uc2USKAoKZGV2aWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSLgoQY29udHJvbF9mZWVkX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSEQoJY2hhbGxlbmdlGAMgASgJIroDChZSZWNvdmVySWRlbnRpdHlSZXF1ZXN0EhcKDXJlY292ZXJ5X2NvZGUYASABKAlIABJSCghleHRlcm5hbBgCIAEoCzI+LmR4b3MuY2xpZW50LnNlcnZpY2VzLlJlY292ZXJJZGVudGl0eVJlcXVlc3QuRXh0ZXJuYWxTaWduYXR1cmVIABIPCgV0b2tlbhgDIAEoCUgAGpYCChFFeHRlcm5hbFNpZ25hdHVyZRIoCgpsb29rdXBfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgpkZXZpY2Vfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIuChBjb250cm9sX2ZlZWRfa2V5GAMgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIRCglzaWduYXR1cmUYBCABKAwSHQoQY2xpZW50X2RhdGFfanNvbhgFIAEoDEgAiAEBEh8KEmF1dGhlbnRpY2F0b3JfZGF0YRgGIAEoDEgBiAEBQhMKEV9jbGllbnRfZGF0YV9qc29uQhUKE19hdXRoZW50aWNhdG9yX2RhdGFCCQoHcmVxdWVzdCKBAQoWUmVjb3ZlcnlDcmVkZW50aWFsRGF0YRIqCgxyZWNvdmVyeV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EigKCmxvb2t1cF9rZXkYAiABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EhEKCWFsZ29yaXRobRgDIAEoCSJrCh9DcmVhdGVSZWNvdmVyeUNyZWRlbnRpYWxSZXF1ZXN0Ej8KBGRhdGEYASABKAsyLC5keG9zLmNsaWVudC5zZXJ2aWNlcy5SZWNvdmVyeUNyZWRlbnRpYWxEYXRhSACIAQFCBwoFX2RhdGEiUAogQ3JlYXRlUmVjb3ZlcnlDcmVkZW50aWFsUmVzcG9uc2USGgoNcmVjb3ZlcnlfY29kZRgBIAEoCUgAiAEBQhAKDl9yZWNvdmVyeV9jb2RlIlsKFVF1ZXJ5SWRlbnRpdHlSZXNwb25zZRI1CghpZGVudGl0eRgBIAEoCzIeLmR4b3MuY2xpZW50LnNlcnZpY2VzLklkZW50aXR5SACIAQFCCwoJX2lkZW50aXR5InIKF1NpZ25QcmVzZW50YXRpb25SZXF1ZXN0EjkKDHByZXNlbnRhdGlvbhgBIAEoCzIjLmR4b3MuaGFsby5jcmVkZW50aWFscy5QcmVzZW50YXRpb24SEgoFbm9uY2UYAiABKAxIAIgBAUIICgZfbm9uY2UixQEKFUNyZWF0ZUlkZW50aXR5UmVxdWVzdBI8Cgdwcm9maWxlGAEgASgLMiYuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLlByb2ZpbGVEb2N1bWVudEgAiAEBEkkKDmRldmljZV9wcm9maWxlGAMgASgLMiwuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkRldmljZVByb2ZpbGVEb2N1bWVudEgBiAEBQgoKCF9wcm9maWxlQhEKD19kZXZpY2VfcHJvZmlsZUoECAIQAyKnAgoGRGV2aWNlEigKCmRldmljZV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5Ei4KBGtpbmQYAiABKA4yIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5EZXZpY2VLaW5kEkIKB3Byb2ZpbGUYAyABKAsyLC5keG9zLmhhbG8uY3JlZGVudGlhbHMuRGV2aWNlUHJvZmlsZURvY3VtZW50SACIAQESPAoIcHJlc2VuY2UYBCABKA4yKi5keG9zLmNsaWVudC5zZXJ2aWNlcy5EZXZpY2UuUHJlc2VuY2VTdGF0ZSI1Cg1QcmVzZW5jZVN0YXRlEgsKB09GRkxJTkUQABIKCgZPTkxJTkUQARILCgdSRU1PVkVEEAJCCgoIX3Byb2ZpbGUiRQoUUXVlcnlEZXZpY2VzUmVzcG9uc2USLQoHZGV2aWNlcxgBIAMoCzIcLmR4b3MuY2xpZW50LnNlcnZpY2VzLkRldmljZSKqAQoHQ29udGFjdBIpCgtpZGVudGl0eUtleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSPAoHcHJvZmlsZRgBIAEoCzImLmR4b3MuaGFsby5jcmVkZW50aWFscy5Qcm9maWxlRG9jdW1lbnRIAIgBARIqCgxjb21tb25TcGFjZXMYAyADKAsyFC5keG9zLmtleXMuUHVibGljS2V5QgoKCF9wcm9maWxlIj4KC0NvbnRhY3RCb29rEi8KCGNvbnRhY3RzGAEgAygLMh0uZHhvcy5jbGllbnQuc2VydmljZXMuQ29udGFjdCKWAgoLU3BhY2VNZW1iZXISMAoIaWRlbnRpdHkYASABKAsyHi5keG9zLmNsaWVudC5zZXJ2aWNlcy5JZGVudGl0eRJBCghwcmVzZW5jZRgCIAEoDjIvLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlTWVtYmVyLlByZXNlbmNlU3RhdGUSMQoKcGVlclN0YXRlcxgDIAMoCzIdLmR4b3MubWVzaC5wcmVzZW5jZS5QZWVyU3RhdGUSNQoEcm9sZRgEIAEoDjInLmR4b3MuaGFsby5jcmVkZW50aWFscy5TcGFjZU1lbWJlci5Sb2xlIigKDVByZXNlbmNlU3RhdGUSCwoHT0ZGTElORRAAEgoKBk9OTElORRABIuYSCgVTcGFjZRIKCgJpZBgFIAEoCRInCglzcGFjZV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5Ei8KBXN0YXRlGAIgASgOMiAuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2VTdGF0ZRJACghwaXBlbGluZRgDIAEoCzIpLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlLlBpcGVsaW5lU3RhdGVIAIgBARIlCgVlcnJvchgEIAEoCzIRLmR4b3MuZXJyb3IuRXJyb3JIAYgBARJJChBlZGdlX3JlcGxpY2F0aW9uGAYgASgOMiouZHhvcy5lY2hvLm1ldGFkYXRhLkVkZ2VSZXBsaWNhdGlvblNldHRpbmdIAogBARIyCgdtZW1iZXJzGAogAygLMiEuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2VNZW1iZXISKgoHY3JlYXRvchgLIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXlIA4gBARIyCgVjYWNoZRgUIAEoCzIeLmR4b3MuZWNoby5tZXRhZGF0YS5TcGFjZUNhY2hlSASIAQESNAoHbWV0cmljcxgVIAEoCzIjLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlLk1ldHJpY3Ma1wMKB01ldHJpY3MSLQoEb3BlbhgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARI8ChNwaXBlbGluZV9pbml0X2JlZ2luGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEj8KFmNvbnRyb2xfcGlwZWxpbmVfcmVhZHkYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESOwoSZGF0YV9waXBlbGluZV9vcGVuGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjwKE2RhdGFfcGlwZWxpbmVfcmVhZHkYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESLgoFcmVhZHkYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQFCBwoFX29wZW5CFgoUX3BpcGVsaW5lX2luaXRfYmVnaW5CGQoXX2NvbnRyb2xfcGlwZWxpbmVfcmVhZHlCFQoTX2RhdGFfcGlwZWxpbmVfb3BlbkIWChRfZGF0YV9waXBlbGluZV9yZWFkeUIICgZfcmVhZHka3AoKDVBpcGVsaW5lU3RhdGUSMwoQY29udHJvbF9mZWVkX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXlIAIgBARIwCg1kYXRhX2ZlZWRfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleUgBiAEBEisKDWNvbnRyb2xfZmVlZHMYEiADKAsyFC5keG9zLmtleXMuUHVibGljS2V5EigKCmRhdGFfZmVlZHMYEyADKAsyFC5keG9zLmtleXMuUHVibGljS2V5Ej0KDWN1cnJlbnRfZXBvY2gYFCABKAsyIS5keG9zLmhhbG8uY3JlZGVudGlhbHMuQ3JlZGVudGlhbEgCiAEBEj0KDWFwcGxpZWRfZXBvY2gYFSABKAsyIS5keG9zLmhhbG8uY3JlZGVudGlhbHMuQ3JlZGVudGlhbEgDiAEBEkwKGWN1cnJlbnRfY29udHJvbF90aW1lZnJhbWUYCiABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgEiAEBEksKGHRhcmdldF9jb250cm9sX3RpbWVmcmFtZRgLIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAWIAQESSgoXdG90YWxfY29udHJvbF90aW1lZnJhbWUYDiABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgGiAEBEkoKF2tub3duX2NvbnRyb2xfdGltZWZyYW1lGA8gASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIB4gBARJHChRzdGFydF9kYXRhX3RpbWVmcmFtZRhkIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAiIAQESSQoWY3VycmVudF9kYXRhX3RpbWVmcmFtZRgMIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAmIAQESSAoVdGFyZ2V0X2RhdGFfdGltZWZyYW1lGA0gASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JICogBARJHChR0b3RhbF9kYXRhX3RpbWVmcmFtZRgQIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAuIAQESRwoUa25vd25fZGF0YV90aW1lZnJhbWUYESABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgMiAEBEhsKDnNwYWNlX3Jvb3RfdXJsGBYgASgJSA2IAQFCEwoRX2NvbnRyb2xfZmVlZF9rZXlCEAoOX2RhdGFfZmVlZF9rZXlCEAoOX2N1cnJlbnRfZXBvY2hCEAoOX2FwcGxpZWRfZXBvY2hCHAoaX2N1cnJlbnRfY29udHJvbF90aW1lZnJhbWVCGwoZX3RhcmdldF9jb250cm9sX3RpbWVmcmFtZUIaChhfdG90YWxfY29udHJvbF90aW1lZnJhbWVCGgoYX2tub3duX2NvbnRyb2xfdGltZWZyYW1lQhcKFV9zdGFydF9kYXRhX3RpbWVmcmFtZUIZChdfY3VycmVudF9kYXRhX3RpbWVmcmFtZUIYChZfdGFyZ2V0X2RhdGFfdGltZWZyYW1lQhcKFV90b3RhbF9kYXRhX3RpbWVmcmFtZUIXChVfa25vd25fZGF0YV90aW1lZnJhbWVCEQoPX3NwYWNlX3Jvb3RfdXJsQgsKCV9waXBlbGluZUIICgZfZXJyb3JCEwoRX2VkZ2VfcmVwbGljYXRpb25CCgoIX2NyZWF0b3JCCAoGX2NhY2hlIt0BChJVcGRhdGVTcGFjZVJlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRI0CgVzdGF0ZRgCIAEoDjIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlU3RhdGVIAIgBARJJChBlZGdlX3JlcGxpY2F0aW9uGAMgASgOMiouZHhvcy5lY2hvLm1ldGFkYXRhLkVkZ2VSZXBsaWNhdGlvblNldHRpbmdIAYgBAUIICgZfc3RhdGVCEwoRX2VkZ2VfcmVwbGljYXRpb24iQgoTUXVlcnlTcGFjZXNSZXNwb25zZRIrCgZzcGFjZXMYASADKAsyGy5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZSJ1ChJQb3N0TWVzc2FnZVJlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIPCgdjaGFubmVsGAIgASgJEiUKB21lc3NhZ2UYAyABKAsyFC5nb29nbGUucHJvdG9idWYuQW55IlQKGFN1YnNjcmliZU1lc3NhZ2VzUmVxdWVzdBInCglzcGFjZV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5Eg8KB2NoYW5uZWwYAiABKAkiegoXV3JpdGVDcmVkZW50aWFsc1JlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRI2CgtjcmVkZW50aWFscxgCIAMoCzIhLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsImQKF1F1ZXJ5Q3JlZGVudGlhbHNSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSFAoHbm9fdGFpbBgCIAEoCEgAiAEBQgoKCF9ub190YWlsIvUCChJDcmVhdGVFcG9jaFJlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRJKCgltaWdyYXRpb24YAiABKA4yMi5keG9zLmNsaWVudC5zZXJ2aWNlcy5DcmVhdGVFcG9jaFJlcXVlc3QuTWlncmF0aW9uSACIAQESHwoSYXV0b21lcmdlX3Jvb3RfdXJsGAMgASgJSAGIAQEiowEKCU1pZ3JhdGlvbhIICgROT05FEAASEgoOSU5JVF9BVVRPTUVSR0UQARIgChxQUlVORV9BVVRPTUVSR0VfUk9PVF9ISVNUT1JZEAISGwoXRlJBR01FTlRfQVVUT01FUkdFX1JPT1QQAxIaChZSRVBMQUNFX0FVVE9NRVJHRV9ST09UEAQSHQoZTUlHUkFURV9SRUZFUkVOQ0VTX1RPX0RYThAFQgwKCl9taWdyYXRpb25CFQoTX2F1dG9tZXJnZV9yb290X3VybCLIAQoTQ3JlYXRlRXBvY2hSZXNwb25zZRJAChBlcG9jaF9jcmVkZW50aWFsGAEgASgLMiEuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkNyZWRlbnRpYWxIAIgBARJEChFjb250cm9sX3RpbWVmcmFtZRgCIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAGIAQFCEwoRX2Vwb2NoX2NyZWRlbnRpYWxCFAoSX2NvbnRyb2xfdGltZWZyYW1lIqcBChdVcGRhdGVNZW1iZXJSb2xlUmVxdWVzdBInCglzcGFjZV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EigKCm1lbWJlcl9rZXkYAiABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EjkKCG5ld19yb2xlGAMgASgOMicuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLlNwYWNlTWVtYmVyLlJvbGUipQEKE0FkbWl0Q29udGFjdFJlcXVlc3QSLgoHY29udGFjdBgBIAEoCzIdLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbnRhY3QSNQoEcm9sZRgCIAEoDjInLmR4b3MuaGFsby5jcmVkZW50aWFscy5TcGFjZU1lbWJlci5Sb2xlEicKCXNwYWNlX2tleRgDIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkiSQoQQ29udGFjdEFkbWlzc2lvbhI1CgpjcmVkZW50aWFsGAEgASgLMiEuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkNyZWRlbnRpYWwiPwoRSm9pblNwYWNlUmVzcG9uc2USKgoFc3BhY2UYASABKAsyGy5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZSJAChVKb2luQnlTcGFjZUtleVJlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleSIyCgxTcGFjZUFyY2hpdmUSEAoIZmlsZW5hbWUYASABKAkSEAoIY29udGVudHMYAiABKAwiJgoSRXhwb3J0U3BhY2VSZXF1ZXN0EhAKCHNwYWNlX2lkGAEgASgJIkoKE0V4cG9ydFNwYWNlUmVzcG9uc2USMwoHYXJjaGl2ZRgBIAEoCzIiLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlQXJjaGl2ZSJJChJJbXBvcnRTcGFjZVJlcXVlc3QSMwoHYXJjaGl2ZRgBIAEoCzIiLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlQXJjaGl2ZSIrChNJbXBvcnRTcGFjZVJlc3BvbnNlEhQKDG5ld19zcGFjZV9pZBgBIAEoCSKtAQoXQWNjZXB0SW52aXRhdGlvblJlcXVlc3QSNAoKaW52aXRhdGlvbhgBIAEoCzIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLkludml0YXRpb24SSQoOZGV2aWNlX3Byb2ZpbGUYAiABKAsyLC5keG9zLmhhbG8uY3JlZGVudGlhbHMuRGV2aWNlUHJvZmlsZURvY3VtZW50SACIAQFCEQoPX2RldmljZV9wcm9maWxlIkEKFUF1dGhlbnRpY2F0aW9uUmVxdWVzdBIVCg1pbnZpdGF0aW9uX2lkGAEgASgJEhEKCWF1dGhfY29kZRgCIAEoCSIwChdDYW5jZWxJbnZpdGF0aW9uUmVxdWVzdBIVCg1pbnZpdGF0aW9uX2lkGAEgASgJIoUBChBJbnZpdGF0aW9uTWV0aG9kEjMKB2NyZWF0ZWQYASABKAsyIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uSAASNAoIYWNjZXB0ZWQYAiABKAsyIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uSABCBgoEa2luZCLiAgoYUXVlcnlJbnZpdGF0aW9uc1Jlc3BvbnNlEkUKBmFjdGlvbhgBIAEoDjI1LmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5SW52aXRhdGlvbnNSZXNwb25zZS5BY3Rpb24SQQoEdHlwZRgCIAEoDjIzLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5SW52aXRhdGlvbnNSZXNwb25zZS5UeXBlEjUKC2ludml0YXRpb25zGAMgAygLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbhIVCghleGlzdGluZxgEIAEoCEgAiAEBIj4KBkFjdGlvbhIJCgVBRERFRBAAEgsKB1JFTU9WRUQQARIJCgVTQVZFRBACEhEKDUxPQURfQ09NUExFVEUQAyIhCgRUeXBlEgsKB0NSRUFURUQQABIMCghBQ0NFUFRFRBABQgsKCV9leGlzdGluZyJaCiFMb2FkUGVyc2lzdGVudEludml0YXRpb25zUmVzcG9uc2USNQoLaW52aXRhdGlvbnMYASADKAsyIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uIoUCCg1OZXR3b3JrU3RhdHVzEjQKBXN3YXJtGAEgASgOMiUuZHhvcy5jbGllbnQuc2VydmljZXMuQ29ubmVjdGlvblN0YXRlEj0KCXNpZ25hbGluZxgCIAMoCzIqLmR4b3MuY2xpZW50LnNlcnZpY2VzLk5ldHdvcmtTdGF0dXMuU2lnbmFsEjcKD2Nvbm5lY3Rpb25faW5mbxgDIAMoCzIeLmR4b3MuZGV2dG9vbHMuc3dhcm0uU3dhcm1JbmZvGkYKBlNpZ25hbBIOCgZzZXJ2ZXIYASABKAkSLAoFc3RhdGUYAiABKA4yHS5keG9zLm1lc2guc2lnbmFsLlNpZ25hbFN0YXRlIksKE1VwZGF0ZUNvbmZpZ1JlcXVlc3QSNAoFc3dhcm0YASABKA4yJS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Db25uZWN0aW9uU3RhdGUiQQoaU3Vic2NyaWJlU3dhcm1TdGF0ZVJlcXVlc3QSIwoFdG9waWMYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5IoECCgpFZGdlU3RhdHVzEj8KBXN0YXRlGAEgASgOMjAuZHhvcy5jbGllbnQuc2VydmljZXMuRWRnZVN0YXR1cy5Db25uZWN0aW9uU3RhdGUSCwoDcnR0GAIgASgFEg4KBnVwdGltZRgDIAEoBRIVCg1yYXRlX2J5dGVzX3VwGAQgASgFEhcKD3JhdGVfYnl0ZXNfZG93bhgFIAEoBRIVCg1tZXNzYWdlc19zZW50GAYgASgFEhkKEW1lc3NhZ2VzX3JlY2VpdmVkGAcgASgFIjMKD0Nvbm5lY3Rpb25TdGF0ZRIRCg1OT1RfQ09OTkVDVEVEEAASDQoJQ09OTkVDVEVEEAEiSwoXUXVlcnlFZGdlU3RhdHVzUmVzcG9uc2USMAoGc3RhdHVzGAEgASgLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuRWRnZVN0YXR1cyKrAQoYUXVlcnlBZ2VudFN0YXR1c1Jlc3BvbnNlEkoKBnN0YXR1cxgBIAEoDjI6LmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5QWdlbnRTdGF0dXNSZXNwb25zZS5BZ2VudFN0YXR1cyJDCgtBZ2VudFN0YXR1cxILCgdVTktOT1dOEAASCgoGQUNUSVZFEAESDAoISU5BQ1RJVkUQAhINCglOT1RfRk9VTkQQAyooCgxTeXN0ZW1TdGF0dXMSDAoISU5BQ1RJVkUQABIKCgZBQ1RJVkUQASomCgpEZXZpY2VLaW5kEgsKB0NVUlJFTlQQABILCgdUUlVTVEVEEAEqKgoPQ29ubmVjdGlvblN0YXRlEgsKB09GRkxJTkUQABIKCgZPTkxJTkUQATLvAwoNU3lzdGVtU2VydmljZRI4CglHZXRDb25maWcSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy5keG9zLmNvbmZpZy5Db25maWcSawoOR2V0RGlhZ25vc3RpY3MSKy5keG9zLmNsaWVudC5zZXJ2aWNlcy5HZXREaWFnbm9zdGljc1JlcXVlc3QaLC5keG9zLmNsaWVudC5zZXJ2aWNlcy5HZXREaWFnbm9zdGljc1Jlc3BvbnNlElEKDFVwZGF0ZVN0YXR1cxIpLmR4b3MuY2xpZW50LnNlcnZpY2VzLlVwZGF0ZVN0YXR1c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSZAoLUXVlcnlTdGF0dXMSKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeVN0YXR1c1JlcXVlc3QaKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeVN0YXR1c1Jlc3BvbnNlMAESNwoFUmVzZXQSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRQoLR2V0UGxhdGZvcm0SFi5nb29nbGUucHJvdG9idWYuRW1wdHkaHi5keG9zLmNsaWVudC5zZXJ2aWNlcy5QbGF0Zm9ybTK1BgoPSWRlbnRpdHlTZXJ2aWNlEl0KDkNyZWF0ZUlkZW50aXR5EisuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlSWRlbnRpdHlSZXF1ZXN0Gh4uZHhvcy5jbGllbnQuc2VydmljZXMuSWRlbnRpdHkSagoYUmVxdWVzdFJlY292ZXJ5Q2hhbGxlbmdlEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GjYuZHhvcy5jbGllbnQuc2VydmljZXMuUmVxdWVzdFJlY292ZXJ5Q2hhbGxlbmdlUmVzcG9uc2USXwoPUmVjb3ZlcklkZW50aXR5EiwuZHhvcy5jbGllbnQuc2VydmljZXMuUmVjb3ZlcklkZW50aXR5UmVxdWVzdBoeLmR4b3MuY2xpZW50LnNlcnZpY2VzLklkZW50aXR5EokBChhDcmVhdGVSZWNvdmVyeUNyZWRlbnRpYWwSNS5keG9zLmNsaWVudC5zZXJ2aWNlcy5DcmVhdGVSZWNvdmVyeUNyZWRlbnRpYWxSZXF1ZXN0GjYuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlUmVjb3ZlcnlDcmVkZW50aWFsUmVzcG9uc2USVgoNUXVlcnlJZGVudGl0eRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRorLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5SWRlbnRpdHlSZXNwb25zZTABElcKDVVwZGF0ZVByb2ZpbGUSJi5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJvZmlsZURvY3VtZW50Gh4uZHhvcy5jbGllbnQuc2VydmljZXMuSWRlbnRpdHkSZgoQU2lnblByZXNlbnRhdGlvbhItLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNpZ25QcmVzZW50YXRpb25SZXF1ZXN0GiMuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLlByZXNlbnRhdGlvbhJRChRDcmVhdGVBdXRoQ3JlZGVudGlhbBIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRohLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsMsIBCg5EZXZpY2VzU2VydmljZRJaCgxVcGRhdGVEZXZpY2USLC5keG9zLmhhbG8uY3JlZGVudGlhbHMuRGV2aWNlUHJvZmlsZURvY3VtZW50GhwuZHhvcy5jbGllbnQuc2VydmljZXMuRGV2aWNlElQKDFF1ZXJ5RGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoqLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5RGV2aWNlc1Jlc3BvbnNlMAEyqQEKD0NvbnRhY3RzU2VydmljZRJICgtHZXRDb250YWN0cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRohLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbnRhY3RCb29rEkwKDVF1ZXJ5Q29udGFjdHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaIS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Db250YWN0Qm9vazABMr8JCg1TcGFjZXNTZXJ2aWNlEkIKC0NyZWF0ZVNwYWNlEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhsuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2USTwoLVXBkYXRlU3BhY2USKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5VcGRhdGVTcGFjZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUgoLUXVlcnlTcGFjZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeVNwYWNlc1Jlc3BvbnNlMAESWQoQVXBkYXRlTWVtYmVyUm9sZRItLmR4b3MuY2xpZW50LnNlcnZpY2VzLlVwZGF0ZU1lbWJlclJvbGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElEKDEFkbWl0Q29udGFjdBIpLmR4b3MuY2xpZW50LnNlcnZpY2VzLkFkbWl0Q29udGFjdFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSZgoOSm9pbkJ5U3BhY2VLZXkSKy5keG9zLmNsaWVudC5zZXJ2aWNlcy5Kb2luQnlTcGFjZUtleVJlcXVlc3QaJy5keG9zLmNsaWVudC5zZXJ2aWNlcy5Kb2luU3BhY2VSZXNwb25zZRJPCgtQb3N0TWVzc2FnZRIoLmR4b3MuY2xpZW50LnNlcnZpY2VzLlBvc3RNZXNzYWdlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJvChFTdWJzY3JpYmVNZXNzYWdlcxIuLmR4b3MuY2xpZW50LnNlcnZpY2VzLlN1YnNjcmliZU1lc3NhZ2VzUmVxdWVzdBooLmR4b3MubWVzaC50ZWxlcG9ydC5nb3NzaXAuR29zc2lwTWVzc2FnZTABElkKEFdyaXRlQ3JlZGVudGlhbHMSLS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Xcml0ZUNyZWRlbnRpYWxzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJmChBRdWVyeUNyZWRlbnRpYWxzEi0uZHhvcy5jbGllbnQuc2VydmljZXMuUXVlcnlDcmVkZW50aWFsc1JlcXVlc3QaIS5keG9zLmhhbG8uY3JlZGVudGlhbHMuQ3JlZGVudGlhbDABEmIKC0NyZWF0ZUVwb2NoEiguZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlRXBvY2hSZXF1ZXN0GikuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlRXBvY2hSZXNwb25zZRJiCgtFeHBvcnRTcGFjZRIoLmR4b3MuY2xpZW50LnNlcnZpY2VzLkV4cG9ydFNwYWNlUmVxdWVzdBopLmR4b3MuY2xpZW50LnNlcnZpY2VzLkV4cG9ydFNwYWNlUmVzcG9uc2USYgoLSW1wb3J0U3BhY2USKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbXBvcnRTcGFjZVJlcXVlc3QaKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbXBvcnRTcGFjZVJlc3BvbnNlMuMDChJJbnZpdGF0aW9uc1NlcnZpY2USWAoQQ3JlYXRlSW52aXRhdGlvbhIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLkludml0YXRpb24aIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uMAESZQoQQWNjZXB0SW52aXRhdGlvbhItLmR4b3MuY2xpZW50LnNlcnZpY2VzLkFjY2VwdEludml0YXRpb25SZXF1ZXN0GiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbjABElMKDEF1dGhlbnRpY2F0ZRIrLmR4b3MuY2xpZW50LnNlcnZpY2VzLkF1dGhlbnRpY2F0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJZChBDYW5jZWxJbnZpdGF0aW9uEi0uZHhvcy5jbGllbnQuc2VydmljZXMuQ2FuY2VsSW52aXRhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSXAoQUXVlcnlJbnZpdGF0aW9ucxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRouLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5SW52aXRhdGlvbnNSZXNwb25zZTABMosFCg5OZXR3b3JrU2VydmljZRJRCgxVcGRhdGVDb25maWcSKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5VcGRhdGVDb25maWdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkwKC1F1ZXJ5U3RhdHVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GiMuZHhvcy5jbGllbnQuc2VydmljZXMuTmV0d29ya1N0YXR1czABEkIKCUpvaW5Td2FybRIdLmR4b3MuZWRnZS5zaWduYWwuSm9pblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoKTGVhdmVTd2FybRIeLmR4b3MuZWRnZS5zaWduYWwuTGVhdmVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElAKClF1ZXJ5U3dhcm0SHi5keG9zLmVkZ2Uuc2lnbmFsLlF1ZXJ5UmVxdWVzdBoiLmR4b3MuZWRnZS5tZXNzZW5nZXIuU3dhcm1SZXNwb25zZRJtChNTdWJzY3JpYmVTd2FybVN0YXRlEjAuZHhvcy5jbGllbnQuc2VydmljZXMuU3Vic2NyaWJlU3dhcm1TdGF0ZVJlcXVlc3QaIi5keG9zLmVkZ2UubWVzc2VuZ2VyLlN3YXJtUmVzcG9uc2UwARJACgtTZW5kTWVzc2FnZRIZLmR4b3MuZWRnZS5zaWduYWwuTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJLChFTdWJzY3JpYmVNZXNzYWdlcxIZLmR4b3MuZWRnZS5tZXNzZW5nZXIuUGVlchoZLmR4b3MuZWRnZS5zaWduYWwuTWVzc2FnZTABMosCChBFZGdlQWdlbnRTZXJ2aWNlEloKD1F1ZXJ5RWRnZVN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRotLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5RWRnZVN0YXR1c1Jlc3BvbnNlMAESPQoLQ3JlYXRlQWdlbnQSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSXAoQUXVlcnlBZ2VudFN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRouLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5QWdlbnRTdGF0dXNSZXNwb25zZTABYgZwcm90bzM", [file_google_protobuf_any, file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp, file_dxos_client_invitation, file_dxos_config, file_dxos_devtools_swarm, file_dxos_echo_metadata, file_dxos_echo_timeframe, file_dxos_edge_messenger, file_dxos_edge_signal, file_dxos_error, file_dxos_halo_credentials, file_dxos_keys, file_dxos_mesh_signal, file_dxos_mesh_presence, file_dxos_mesh_teleport_gossip, file_dxos_value]);
|
|
48
|
+
fileDesc("ChpkeG9zL2NsaWVudC9zZXJ2aWNlcy5wcm90bxIUZHhvcy5jbGllbnQuc2VydmljZXMiSQoTVXBkYXRlU3RhdHVzUmVxdWVzdBIyCgZzdGF0dXMYASABKA4yIi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TeXN0ZW1TdGF0dXMiOAoSUXVlcnlTdGF0dXNSZXF1ZXN0EhUKCGludGVydmFsGAEgASgFSACIAQFCCwoJX2ludGVydmFsIkkKE1F1ZXJ5U3RhdHVzUmVzcG9uc2USMgoGc3RhdHVzGAEgASgOMiIuZHhvcy5jbGllbnQuc2VydmljZXMuU3lzdGVtU3RhdHVzIp8BChVHZXREaWFnbm9zdGljc1JlcXVlc3QSSQoEa2V5cxgBIAEoDjI2LmR4b3MuY2xpZW50LnNlcnZpY2VzLkdldERpYWdub3N0aWNzUmVxdWVzdC5LRVlfT1BUSU9OSACIAQEiMgoKS0VZX09QVElPThIICgROT05FEAASDAoIVFJVTkNBVEUQARIMCghIVU1BTklaRRACQgcKBV9rZXlzInUKFkdldERpYWdub3N0aWNzUmVzcG9uc2USLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgtkaWFnbm9zdGljcxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi+gIKCFBsYXRmb3JtEjoKBHR5cGUYASABKA4yLC5keG9zLmNsaWVudC5zZXJ2aWNlcy5QbGF0Zm9ybS5QTEFURk9STV9UWVBFEhcKCnVzZXJfYWdlbnQYAiABKAlIAIgBARIVCghwbGF0Zm9ybRgDIAEoCUgBiAEBEhEKBGFyY2gYBCABKAlIAogBARIUCgdydW50aW1lGAUgASgJSAOIAQESEwoGdXB0aW1lGAYgASgNSASIAQESLAoGbWVtb3J5GAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBIk8KDVBMQVRGT1JNX1RZUEUSCwoHQlJPV1NFUhAAEhEKDVNIQVJFRF9XT1JLRVIQARIICgROT0RFEAISFAoQREVESUNBVEVEX1dPUktFUhADQg0KC191c2VyX2FnZW50QgsKCV9wbGF0Zm9ybUIHCgVfYXJjaEIKCghfcnVudGltZUIJCgdfdXB0aW1lQgkKB19tZW1vcnkiyQEKCElkZW50aXR5EgsKA2RpZBgEIAEoCRIqCgxpZGVudGl0eV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EiwKCXNwYWNlX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXlIAIgBARI8Cgdwcm9maWxlGAMgASgLMiYuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLlByb2ZpbGVEb2N1bWVudEgBiAEBQgwKCl9zcGFjZV9rZXlCCgoIX3Byb2ZpbGUijwEKIFJlcXVlc3RSZWNvdmVyeUNoYWxsZW5nZVJlc3BvbnNlEigKCmRldmljZV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5Ei4KEGNvbnRyb2xfZmVlZF9rZXkYAiABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EhEKCWNoYWxsZW5nZRgDIAEoCSK6AwoWUmVjb3ZlcklkZW50aXR5UmVxdWVzdBIXCg1yZWNvdmVyeV9jb2RlGAEgASgJSAASUgoIZXh0ZXJuYWwYAiABKAsyPi5keG9zLmNsaWVudC5zZXJ2aWNlcy5SZWNvdmVySWRlbnRpdHlSZXF1ZXN0LkV4dGVybmFsU2lnbmF0dXJlSAASDwoFdG9rZW4YAyABKAlIABqWAgoRRXh0ZXJuYWxTaWduYXR1cmUSKAoKbG9va3VwX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSKAoKZGV2aWNlX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSLgoQY29udHJvbF9mZWVkX2tleRgDIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSEQoJc2lnbmF0dXJlGAQgASgMEh0KEGNsaWVudF9kYXRhX2pzb24YBSABKAxIAIgBARIfChJhdXRoZW50aWNhdG9yX2RhdGEYBiABKAxIAYgBAUITChFfY2xpZW50X2RhdGFfanNvbkIVChNfYXV0aGVudGljYXRvcl9kYXRhQgkKB3JlcXVlc3QigQEKFlJlY292ZXJ5Q3JlZGVudGlhbERhdGESKgoMcmVjb3Zlcnlfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgpsb29rdXBfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIRCglhbGdvcml0aG0YAyABKAkiawofQ3JlYXRlUmVjb3ZlcnlDcmVkZW50aWFsUmVxdWVzdBI/CgRkYXRhGAEgASgLMiwuZHhvcy5jbGllbnQuc2VydmljZXMuUmVjb3ZlcnlDcmVkZW50aWFsRGF0YUgAiAEBQgcKBV9kYXRhIlAKIENyZWF0ZVJlY292ZXJ5Q3JlZGVudGlhbFJlc3BvbnNlEhoKDXJlY292ZXJ5X2NvZGUYASABKAlIAIgBAUIQCg5fcmVjb3ZlcnlfY29kZSJbChVRdWVyeUlkZW50aXR5UmVzcG9uc2USNQoIaWRlbnRpdHkYASABKAsyHi5keG9zLmNsaWVudC5zZXJ2aWNlcy5JZGVudGl0eUgAiAEBQgsKCV9pZGVudGl0eSJyChdTaWduUHJlc2VudGF0aW9uUmVxdWVzdBI5CgxwcmVzZW50YXRpb24YASABKAsyIy5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJlc2VudGF0aW9uEhIKBW5vbmNlGAIgASgMSACIAQFCCAoGX25vbmNlIsUBChVDcmVhdGVJZGVudGl0eVJlcXVlc3QSPAoHcHJvZmlsZRgBIAEoCzImLmR4b3MuaGFsby5jcmVkZW50aWFscy5Qcm9maWxlRG9jdW1lbnRIAIgBARJJCg5kZXZpY2VfcHJvZmlsZRgDIAEoCzIsLmR4b3MuaGFsby5jcmVkZW50aWFscy5EZXZpY2VQcm9maWxlRG9jdW1lbnRIAYgBAUIKCghfcHJvZmlsZUIRCg9fZGV2aWNlX3Byb2ZpbGVKBAgCEAMipwIKBkRldmljZRIoCgpkZXZpY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIuCgRraW5kGAIgASgOMiAuZHhvcy5jbGllbnQuc2VydmljZXMuRGV2aWNlS2luZBJCCgdwcm9maWxlGAMgASgLMiwuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkRldmljZVByb2ZpbGVEb2N1bWVudEgAiAEBEjwKCHByZXNlbmNlGAQgASgOMiouZHhvcy5jbGllbnQuc2VydmljZXMuRGV2aWNlLlByZXNlbmNlU3RhdGUiNQoNUHJlc2VuY2VTdGF0ZRILCgdPRkZMSU5FEAASCgoGT05MSU5FEAESCwoHUkVNT1ZFRBACQgoKCF9wcm9maWxlIkUKFFF1ZXJ5RGV2aWNlc1Jlc3BvbnNlEi0KB2RldmljZXMYASADKAsyHC5keG9zLmNsaWVudC5zZXJ2aWNlcy5EZXZpY2UiqgEKB0NvbnRhY3QSKQoLaWRlbnRpdHlLZXkYAiABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EjwKB3Byb2ZpbGUYASABKAsyJi5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJvZmlsZURvY3VtZW50SACIAQESKgoMY29tbW9uU3BhY2VzGAMgAygLMhQuZHhvcy5rZXlzLlB1YmxpY0tleUIKCghfcHJvZmlsZSI+CgtDb250YWN0Qm9vaxIvCghjb250YWN0cxgBIAMoCzIdLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbnRhY3QilgIKC1NwYWNlTWVtYmVyEjAKCGlkZW50aXR5GAEgASgLMh4uZHhvcy5jbGllbnQuc2VydmljZXMuSWRlbnRpdHkSQQoIcHJlc2VuY2UYAiABKA4yLy5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZU1lbWJlci5QcmVzZW5jZVN0YXRlEjEKCnBlZXJTdGF0ZXMYAyADKAsyHS5keG9zLm1lc2gucHJlc2VuY2UuUGVlclN0YXRlEjUKBHJvbGUYBCABKA4yJy5keG9zLmhhbG8uY3JlZGVudGlhbHMuU3BhY2VNZW1iZXIuUm9sZSIoCg1QcmVzZW5jZVN0YXRlEgsKB09GRkxJTkUQABIKCgZPTkxJTkUQASLmEgoFU3BhY2USCgoCaWQYBSABKAkSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIvCgVzdGF0ZRgCIAEoDjIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlU3RhdGUSQAoIcGlwZWxpbmUYAyABKAsyKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZS5QaXBlbGluZVN0YXRlSACIAQESJQoFZXJyb3IYBCABKAsyES5keG9zLmVycm9yLkVycm9ySAGIAQESSQoQZWRnZV9yZXBsaWNhdGlvbhgGIAEoDjIqLmR4b3MuZWNoby5tZXRhZGF0YS5FZGdlUmVwbGljYXRpb25TZXR0aW5nSAKIAQESMgoHbWVtYmVycxgKIAMoCzIhLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlTWVtYmVyEioKB2NyZWF0b3IYCyABKAsyFC5keG9zLmtleXMuUHVibGljS2V5SAOIAQESMgoFY2FjaGUYFCABKAsyHi5keG9zLmVjaG8ubWV0YWRhdGEuU3BhY2VDYWNoZUgEiAEBEjQKB21ldHJpY3MYFSABKAsyIy5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZS5NZXRyaWNzGtcDCgdNZXRyaWNzEi0KBG9wZW4YASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESPAoTcGlwZWxpbmVfaW5pdF9iZWdpbhgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI/ChZjb250cm9sX3BpcGVsaW5lX3JlYWR5GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjsKEmRhdGFfcGlwZWxpbmVfb3BlbhgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI8ChNkYXRhX3BpcGVsaW5lX3JlYWR5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEi4KBXJlYWR5GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQgcKBV9vcGVuQhYKFF9waXBlbGluZV9pbml0X2JlZ2luQhkKF19jb250cm9sX3BpcGVsaW5lX3JlYWR5QhUKE19kYXRhX3BpcGVsaW5lX29wZW5CFgoUX2RhdGFfcGlwZWxpbmVfcmVhZHlCCAoGX3JlYWR5GtwKCg1QaXBlbGluZVN0YXRlEjMKEGNvbnRyb2xfZmVlZF9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5SACIAQESMAoNZGF0YV9mZWVkX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXlIAYgBARIrCg1jb250cm9sX2ZlZWRzGBIgAygLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgpkYXRhX2ZlZWRzGBMgAygLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRI9Cg1jdXJyZW50X2Vwb2NoGBQgASgLMiEuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkNyZWRlbnRpYWxIAogBARI9Cg1hcHBsaWVkX2Vwb2NoGBUgASgLMiEuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkNyZWRlbnRpYWxIA4gBARJMChljdXJyZW50X2NvbnRyb2xfdGltZWZyYW1lGAogASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIBIgBARJLChh0YXJnZXRfY29udHJvbF90aW1lZnJhbWUYCyABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgFiAEBEkoKF3RvdGFsX2NvbnRyb2xfdGltZWZyYW1lGA4gASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIBogBARJKChdrbm93bl9jb250cm9sX3RpbWVmcmFtZRgPIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAeIAQESRwoUc3RhcnRfZGF0YV90aW1lZnJhbWUYZCABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgIiAEBEkkKFmN1cnJlbnRfZGF0YV90aW1lZnJhbWUYDCABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgJiAEBEkgKFXRhcmdldF9kYXRhX3RpbWVmcmFtZRgNIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAqIAQESRwoUdG90YWxfZGF0YV90aW1lZnJhbWUYECABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgLiAEBEkcKFGtub3duX2RhdGFfdGltZWZyYW1lGBEgASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIDIgBARIbCg5zcGFjZV9yb290X3VybBgWIAEoCUgNiAEBQhMKEV9jb250cm9sX2ZlZWRfa2V5QhAKDl9kYXRhX2ZlZWRfa2V5QhAKDl9jdXJyZW50X2Vwb2NoQhAKDl9hcHBsaWVkX2Vwb2NoQhwKGl9jdXJyZW50X2NvbnRyb2xfdGltZWZyYW1lQhsKGV90YXJnZXRfY29udHJvbF90aW1lZnJhbWVCGgoYX3RvdGFsX2NvbnRyb2xfdGltZWZyYW1lQhoKGF9rbm93bl9jb250cm9sX3RpbWVmcmFtZUIXChVfc3RhcnRfZGF0YV90aW1lZnJhbWVCGQoXX2N1cnJlbnRfZGF0YV90aW1lZnJhbWVCGAoWX3RhcmdldF9kYXRhX3RpbWVmcmFtZUIXChVfdG90YWxfZGF0YV90aW1lZnJhbWVCFwoVX2tub3duX2RhdGFfdGltZWZyYW1lQhEKD19zcGFjZV9yb290X3VybEILCglfcGlwZWxpbmVCCAoGX2Vycm9yQhMKEV9lZGdlX3JlcGxpY2F0aW9uQgoKCF9jcmVhdG9yQggKBl9jYWNoZSLdAQoSVXBkYXRlU3BhY2VSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSNAoFc3RhdGUYAiABKA4yIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZVN0YXRlSACIAQESSQoQZWRnZV9yZXBsaWNhdGlvbhgDIAEoDjIqLmR4b3MuZWNoby5tZXRhZGF0YS5FZGdlUmVwbGljYXRpb25TZXR0aW5nSAGIAQFCCAoGX3N0YXRlQhMKEV9lZGdlX3JlcGxpY2F0aW9uIkIKE1F1ZXJ5U3BhY2VzUmVzcG9uc2USKwoGc3BhY2VzGAEgAygLMhsuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2UidQoSUG9zdE1lc3NhZ2VSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSDwoHY2hhbm5lbBgCIAEoCRIlCgdtZXNzYWdlGAMgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueSJUChhTdWJzY3JpYmVNZXNzYWdlc1JlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIPCgdjaGFubmVsGAIgASgJInoKF1dyaXRlQ3JlZGVudGlhbHNSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSNgoLY3JlZGVudGlhbHMYAiADKAsyIS5keG9zLmhhbG8uY3JlZGVudGlhbHMuQ3JlZGVudGlhbCJkChdRdWVyeUNyZWRlbnRpYWxzUmVxdWVzdBInCglzcGFjZV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EhQKB25vX3RhaWwYAiABKAhIAIgBAUIKCghfbm9fdGFpbCL1AgoSQ3JlYXRlRXBvY2hSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSSgoJbWlncmF0aW9uGAIgASgOMjIuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlRXBvY2hSZXF1ZXN0Lk1pZ3JhdGlvbkgAiAEBEh8KEmF1dG9tZXJnZV9yb290X3VybBgDIAEoCUgBiAEBIqMBCglNaWdyYXRpb24SCAoETk9ORRAAEhIKDklOSVRfQVVUT01FUkdFEAESIAocUFJVTkVfQVVUT01FUkdFX1JPT1RfSElTVE9SWRACEhsKF0ZSQUdNRU5UX0FVVE9NRVJHRV9ST09UEAMSGgoWUkVQTEFDRV9BVVRPTUVSR0VfUk9PVBAEEh0KGU1JR1JBVEVfUkVGRVJFTkNFU19UT19EWE4QBUIMCgpfbWlncmF0aW9uQhUKE19hdXRvbWVyZ2Vfcm9vdF91cmwiyAEKE0NyZWF0ZUVwb2NoUmVzcG9uc2USQAoQZXBvY2hfY3JlZGVudGlhbBgBIAEoCzIhLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsSACIAQESRAoRY29udHJvbF90aW1lZnJhbWUYAiABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgBiAEBQhMKEV9lcG9jaF9jcmVkZW50aWFsQhQKEl9jb250cm9sX3RpbWVmcmFtZSKnAQoXVXBkYXRlTWVtYmVyUm9sZVJlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgptZW1iZXJfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRI5CghuZXdfcm9sZRgDIAEoDjInLmR4b3MuaGFsby5jcmVkZW50aWFscy5TcGFjZU1lbWJlci5Sb2xlIqUBChNBZG1pdENvbnRhY3RSZXF1ZXN0Ei4KB2NvbnRhY3QYASABKAsyHS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Db250YWN0EjUKBHJvbGUYAiABKA4yJy5keG9zLmhhbG8uY3JlZGVudGlhbHMuU3BhY2VNZW1iZXIuUm9sZRInCglzcGFjZV9rZXkYAyABKAsyFC5keG9zLmtleXMuUHVibGljS2V5IkkKEENvbnRhY3RBZG1pc3Npb24SNQoKY3JlZGVudGlhbBgBIAEoCzIhLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsIj8KEUpvaW5TcGFjZVJlc3BvbnNlEioKBXNwYWNlGAEgASgLMhsuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2UiQAoVSm9pbkJ5U3BhY2VLZXlSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkiMgoMU3BhY2VBcmNoaXZlEhAKCGZpbGVuYW1lGAEgASgJEhAKCGNvbnRlbnRzGAIgASgMIiYKEkV4cG9ydFNwYWNlUmVxdWVzdBIQCghzcGFjZV9pZBgBIAEoCSJKChNFeHBvcnRTcGFjZVJlc3BvbnNlEjMKB2FyY2hpdmUYASABKAsyIi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZUFyY2hpdmUiSQoSSW1wb3J0U3BhY2VSZXF1ZXN0EjMKB2FyY2hpdmUYASABKAsyIi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZUFyY2hpdmUiKwoTSW1wb3J0U3BhY2VSZXNwb25zZRIUCgxuZXdfc3BhY2VfaWQYASABKAkirQEKF0FjY2VwdEludml0YXRpb25SZXF1ZXN0EjQKCmludml0YXRpb24YASABKAsyIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uEkkKDmRldmljZV9wcm9maWxlGAIgASgLMiwuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkRldmljZVByb2ZpbGVEb2N1bWVudEgAiAEBQhEKD19kZXZpY2VfcHJvZmlsZSJBChVBdXRoZW50aWNhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCRIRCglhdXRoX2NvZGUYAiABKAkiMAoXQ2FuY2VsSW52aXRhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCSKFAQoQSW52aXRhdGlvbk1ldGhvZBIzCgdjcmVhdGVkGAEgASgLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbkgAEjQKCGFjY2VwdGVkGAIgASgLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbkgAQgYKBGtpbmQi4gIKGFF1ZXJ5SW52aXRhdGlvbnNSZXNwb25zZRJFCgZhY3Rpb24YASABKA4yNS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUludml0YXRpb25zUmVzcG9uc2UuQWN0aW9uEkEKBHR5cGUYAiABKA4yMy5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUludml0YXRpb25zUmVzcG9uc2UuVHlwZRI1CgtpbnZpdGF0aW9ucxgDIAMoCzIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLkludml0YXRpb24SFQoIZXhpc3RpbmcYBCABKAhIAIgBASI+CgZBY3Rpb24SCQoFQURERUQQABILCgdSRU1PVkVEEAESCQoFU0FWRUQQAhIRCg1MT0FEX0NPTVBMRVRFEAMiIQoEVHlwZRILCgdDUkVBVEVEEAASDAoIQUNDRVBURUQQAUILCglfZXhpc3RpbmciWgohTG9hZFBlcnNpc3RlbnRJbnZpdGF0aW9uc1Jlc3BvbnNlEjUKC2ludml0YXRpb25zGAEgAygLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbiKFAgoNTmV0d29ya1N0YXR1cxI0CgVzd2FybRgBIAEoDjIlLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbm5lY3Rpb25TdGF0ZRI9CglzaWduYWxpbmcYAiADKAsyKi5keG9zLmNsaWVudC5zZXJ2aWNlcy5OZXR3b3JrU3RhdHVzLlNpZ25hbBI3Cg9jb25uZWN0aW9uX2luZm8YAyADKAsyHi5keG9zLmRldnRvb2xzLnN3YXJtLlN3YXJtSW5mbxpGCgZTaWduYWwSDgoGc2VydmVyGAEgASgJEiwKBXN0YXRlGAIgASgOMh0uZHhvcy5tZXNoLnNpZ25hbC5TaWduYWxTdGF0ZSJLChNVcGRhdGVDb25maWdSZXF1ZXN0EjQKBXN3YXJtGAEgASgOMiUuZHhvcy5jbGllbnQuc2VydmljZXMuQ29ubmVjdGlvblN0YXRlIkEKGlN1YnNjcmliZVN3YXJtU3RhdGVSZXF1ZXN0EiMKBXRvcGljGAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleSKBAgoKRWRnZVN0YXR1cxI/CgVzdGF0ZRgBIAEoDjIwLmR4b3MuY2xpZW50LnNlcnZpY2VzLkVkZ2VTdGF0dXMuQ29ubmVjdGlvblN0YXRlEgsKA3J0dBgCIAEoBRIOCgZ1cHRpbWUYAyABKAUSFQoNcmF0ZV9ieXRlc191cBgEIAEoBRIXCg9yYXRlX2J5dGVzX2Rvd24YBSABKAUSFQoNbWVzc2FnZXNfc2VudBgGIAEoBRIZChFtZXNzYWdlc19yZWNlaXZlZBgHIAEoBSIzCg9Db25uZWN0aW9uU3RhdGUSEQoNTk9UX0NPTk5FQ1RFRBAAEg0KCUNPTk5FQ1RFRBABIksKF1F1ZXJ5RWRnZVN0YXR1c1Jlc3BvbnNlEjAKBnN0YXR1cxgBIAEoCzIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLkVkZ2VTdGF0dXMiqwEKGFF1ZXJ5QWdlbnRTdGF0dXNSZXNwb25zZRJKCgZzdGF0dXMYASABKA4yOi5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUFnZW50U3RhdHVzUmVzcG9uc2UuQWdlbnRTdGF0dXMiQwoLQWdlbnRTdGF0dXMSCwoHVU5LTk9XThAAEgoKBkFDVElWRRABEgwKCElOQUNUSVZFEAISDQoJTk9UX0ZPVU5EEAMqKAoMU3lzdGVtU3RhdHVzEgwKCElOQUNUSVZFEAASCgoGQUNUSVZFEAEqJgoKRGV2aWNlS2luZBILCgdDVVJSRU5UEAASCwoHVFJVU1RFRBABKioKD0Nvbm5lY3Rpb25TdGF0ZRILCgdPRkZMSU5FEAASCgoGT05MSU5FEAEy7wMKDVN5c3RlbVNlcnZpY2USOAoJR2V0Q29uZmlnEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMuZHhvcy5jb25maWcuQ29uZmlnEmsKDkdldERpYWdub3N0aWNzEisuZHhvcy5jbGllbnQuc2VydmljZXMuR2V0RGlhZ25vc3RpY3NSZXF1ZXN0GiwuZHhvcy5jbGllbnQuc2VydmljZXMuR2V0RGlhZ25vc3RpY3NSZXNwb25zZRJRCgxVcGRhdGVTdGF0dXMSKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5VcGRhdGVTdGF0dXNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EmQKC1F1ZXJ5U3RhdHVzEiguZHhvcy5jbGllbnQuc2VydmljZXMuUXVlcnlTdGF0dXNSZXF1ZXN0GikuZHhvcy5jbGllbnQuc2VydmljZXMuUXVlcnlTdGF0dXNSZXNwb25zZTABEjcKBVJlc2V0EhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkUKC0dldFBsYXRmb3JtEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gh4uZHhvcy5jbGllbnQuc2VydmljZXMuUGxhdGZvcm0ytQYKD0lkZW50aXR5U2VydmljZRJdCg5DcmVhdGVJZGVudGl0eRIrLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNyZWF0ZUlkZW50aXR5UmVxdWVzdBoeLmR4b3MuY2xpZW50LnNlcnZpY2VzLklkZW50aXR5EmoKGFJlcXVlc3RSZWNvdmVyeUNoYWxsZW5nZRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRo2LmR4b3MuY2xpZW50LnNlcnZpY2VzLlJlcXVlc3RSZWNvdmVyeUNoYWxsZW5nZVJlc3BvbnNlEl8KD1JlY292ZXJJZGVudGl0eRIsLmR4b3MuY2xpZW50LnNlcnZpY2VzLlJlY292ZXJJZGVudGl0eVJlcXVlc3QaHi5keG9zLmNsaWVudC5zZXJ2aWNlcy5JZGVudGl0eRKJAQoYQ3JlYXRlUmVjb3ZlcnlDcmVkZW50aWFsEjUuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlUmVjb3ZlcnlDcmVkZW50aWFsUmVxdWVzdBo2LmR4b3MuY2xpZW50LnNlcnZpY2VzLkNyZWF0ZVJlY292ZXJ5Q3JlZGVudGlhbFJlc3BvbnNlElYKDVF1ZXJ5SWRlbnRpdHkSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaKy5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUlkZW50aXR5UmVzcG9uc2UwARJXCg1VcGRhdGVQcm9maWxlEiYuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLlByb2ZpbGVEb2N1bWVudBoeLmR4b3MuY2xpZW50LnNlcnZpY2VzLklkZW50aXR5EmYKEFNpZ25QcmVzZW50YXRpb24SLS5keG9zLmNsaWVudC5zZXJ2aWNlcy5TaWduUHJlc2VudGF0aW9uUmVxdWVzdBojLmR4b3MuaGFsby5jcmVkZW50aWFscy5QcmVzZW50YXRpb24SUQoUQ3JlYXRlQXV0aENyZWRlbnRpYWwSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaIS5keG9zLmhhbG8uY3JlZGVudGlhbHMuQ3JlZGVudGlhbDLCAQoORGV2aWNlc1NlcnZpY2USWgoMVXBkYXRlRGV2aWNlEiwuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkRldmljZVByb2ZpbGVEb2N1bWVudBocLmR4b3MuY2xpZW50LnNlcnZpY2VzLkRldmljZRJUCgxRdWVyeURldmljZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaKi5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeURldmljZXNSZXNwb25zZTABMqkBCg9Db250YWN0c1NlcnZpY2USSAoLR2V0Q29udGFjdHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaIS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Db250YWN0Qm9vaxJMCg1RdWVyeUNvbnRhY3RzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GiEuZHhvcy5jbGllbnQuc2VydmljZXMuQ29udGFjdEJvb2swATK/CQoNU3BhY2VzU2VydmljZRJCCgtDcmVhdGVTcGFjZRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRobLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlEk8KC1VwZGF0ZVNwYWNlEiguZHhvcy5jbGllbnQuc2VydmljZXMuVXBkYXRlU3BhY2VSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElIKC1F1ZXJ5U3BhY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GikuZHhvcy5jbGllbnQuc2VydmljZXMuUXVlcnlTcGFjZXNSZXNwb25zZTABElkKEFVwZGF0ZU1lbWJlclJvbGUSLS5keG9zLmNsaWVudC5zZXJ2aWNlcy5VcGRhdGVNZW1iZXJSb2xlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJRCgxBZG1pdENvbnRhY3QSKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5BZG1pdENvbnRhY3RSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EmYKDkpvaW5CeVNwYWNlS2V5EisuZHhvcy5jbGllbnQuc2VydmljZXMuSm9pbkJ5U3BhY2VLZXlSZXF1ZXN0GicuZHhvcy5jbGllbnQuc2VydmljZXMuSm9pblNwYWNlUmVzcG9uc2USTwoLUG9zdE1lc3NhZ2USKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5Qb3N0TWVzc2FnZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSbwoRU3Vic2NyaWJlTWVzc2FnZXMSLi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TdWJzY3JpYmVNZXNzYWdlc1JlcXVlc3QaKC5keG9zLm1lc2gudGVsZXBvcnQuZ29zc2lwLkdvc3NpcE1lc3NhZ2UwARJZChBXcml0ZUNyZWRlbnRpYWxzEi0uZHhvcy5jbGllbnQuc2VydmljZXMuV3JpdGVDcmVkZW50aWFsc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSZgoQUXVlcnlDcmVkZW50aWFscxItLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5Q3JlZGVudGlhbHNSZXF1ZXN0GiEuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkNyZWRlbnRpYWwwARJiCgtDcmVhdGVFcG9jaBIoLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNyZWF0ZUVwb2NoUmVxdWVzdBopLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNyZWF0ZUVwb2NoUmVzcG9uc2USYgoLRXhwb3J0U3BhY2USKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5FeHBvcnRTcGFjZVJlcXVlc3QaKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5FeHBvcnRTcGFjZVJlc3BvbnNlEmIKC0ltcG9ydFNwYWNlEiguZHhvcy5jbGllbnQuc2VydmljZXMuSW1wb3J0U3BhY2VSZXF1ZXN0GikuZHhvcy5jbGllbnQuc2VydmljZXMuSW1wb3J0U3BhY2VSZXNwb25zZTLjAwoSSW52aXRhdGlvbnNTZXJ2aWNlElgKEENyZWF0ZUludml0YXRpb24SIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uGiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbjABEmUKEEFjY2VwdEludml0YXRpb24SLS5keG9zLmNsaWVudC5zZXJ2aWNlcy5BY2NlcHRJbnZpdGF0aW9uUmVxdWVzdBogLmR4b3MuY2xpZW50LnNlcnZpY2VzLkludml0YXRpb24wARJTCgxBdXRoZW50aWNhdGUSKy5keG9zLmNsaWVudC5zZXJ2aWNlcy5BdXRoZW50aWNhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSWQoQQ2FuY2VsSW52aXRhdGlvbhItLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNhbmNlbEludml0YXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElwKEFF1ZXJ5SW52aXRhdGlvbnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaLi5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUludml0YXRpb25zUmVzcG9uc2UwATKLBQoOTmV0d29ya1NlcnZpY2USUQoMVXBkYXRlQ29uZmlnEikuZHhvcy5jbGllbnQuc2VydmljZXMuVXBkYXRlQ29uZmlnUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCgtRdWVyeVN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRojLmR4b3MuY2xpZW50LnNlcnZpY2VzLk5ldHdvcmtTdGF0dXMwARJCCglKb2luU3dhcm0SHS5keG9zLmVkZ2Uuc2lnbmFsLkpvaW5SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKCkxlYXZlU3dhcm0SHi5keG9zLmVkZ2Uuc2lnbmFsLkxlYXZlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJQCgpRdWVyeVN3YXJtEh4uZHhvcy5lZGdlLnNpZ25hbC5RdWVyeVJlcXVlc3QaIi5keG9zLmVkZ2UubWVzc2VuZ2VyLlN3YXJtUmVzcG9uc2USbQoTU3Vic2NyaWJlU3dhcm1TdGF0ZRIwLmR4b3MuY2xpZW50LnNlcnZpY2VzLlN1YnNjcmliZVN3YXJtU3RhdGVSZXF1ZXN0GiIuZHhvcy5lZGdlLm1lc3Nlbmdlci5Td2FybVJlc3BvbnNlMAESQAoLU2VuZE1lc3NhZ2USGS5keG9zLmVkZ2Uuc2lnbmFsLk1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSwoRU3Vic2NyaWJlTWVzc2FnZXMSGS5keG9zLmVkZ2UubWVzc2VuZ2VyLlBlZXIaGS5keG9zLmVkZ2Uuc2lnbmFsLk1lc3NhZ2UwATKLAgoQRWRnZUFnZW50U2VydmljZRJaCg9RdWVyeUVkZ2VTdGF0dXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaLS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUVkZ2VTdGF0dXNSZXNwb25zZTABEj0KC0NyZWF0ZUFnZW50EhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElwKEFF1ZXJ5QWdlbnRTdGF0dXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaLi5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUFnZW50U3RhdHVzUmVzcG9uc2UwAWIGcHJvdG8z", [file_google_protobuf_any, file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp, file_dxos_client_invitation, file_dxos_config, file_dxos_devtools_swarm, file_dxos_echo_metadata, file_dxos_echo_timeframe, file_dxos_edge_messenger, file_dxos_edge_signal, file_dxos_error, file_dxos_halo_credentials, file_dxos_keys, file_dxos_mesh_signal, file_dxos_mesh_presence, file_dxos_mesh_teleport_gossip, file_dxos_value]);
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
51
|
* @generated from message dxos.client.services.UpdateStatusRequest
|
|
@@ -241,6 +241,11 @@ export enum Platform_PLATFORM_TYPE {
|
|
|
241
241
|
* @generated from enum value: NODE = 2;
|
|
242
242
|
*/
|
|
243
243
|
NODE = 2,
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* @generated from enum value: DEDICATED_WORKER = 3;
|
|
247
|
+
*/
|
|
248
|
+
DEDICATED_WORKER = 3,
|
|
244
249
|
}
|
|
245
250
|
|
|
246
251
|
/**
|