@cobotar/protocol 1.3.0 → 1.3.2

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.
@@ -0,0 +1,196 @@
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
2
+ // @generated from file ar/v1/function_definition.proto (package ar.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import type { DefinitionStatus } from "./definition_status_pb.ts";
8
+ import { file_ar_v1_definition_status } from "./definition_status_pb.ts";
9
+ import type { ExecutionContract } from "./execution_contract_pb.ts";
10
+ import { file_ar_v1_execution_contract } from "./execution_contract_pb.ts";
11
+ import type { FunctionType } from "./function_pb.ts";
12
+ import { file_ar_v1_function } from "./function_pb.ts";
13
+ import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
14
+ import type { PropertyTemplate } from "../../common/v1/property_pb.ts";
15
+ import { file_common_v1_property } from "../../common/v1/property_pb.ts";
16
+ import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
17
+ import type { Message } from "@bufbuild/protobuf";
18
+
19
+ /**
20
+ * Describes the file ar/v1/function_definition.proto.
21
+ */
22
+ export const file_ar_v1_function_definition: GenFile = /*@__PURE__*/
23
+ fileDesc("Ch9hci92MS9mdW5jdGlvbl9kZWZpbml0aW9uLnByb3RvEgVhci52MSKzBAoSRnVuY3Rpb25EZWZpbml0aW9uEhgKAmlkGAEgASgJQgy6SAnIAQFyBPjzBAESGQoDa2V5GAIgASgJQgy6SAnIAQFyBODzBAESFwoEbmFtZRgDIAEoCUIJukgGcgSA8QQBEgwKBGljb24YBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSLgoEdHlwZRgGIAEoDjITLmFyLnYxLkZ1bmN0aW9uVHlwZUILukgIyAEBggECEAESMAoFZ3JvdXAYByABKA4yFC5hci52MS5GdW5jdGlvbkdyb3VwQgu6SAjIAQGCAQIQARIZCghyZXZpc2lvbhgIIAEoBEIHukgEMgIoARI0CgZzdGF0dXMYCSABKA4yFy5hci52MS5EZWZpbml0aW9uU3RhdHVzQgu6SAjIAQGCAQIQARK3AQoKcHJvcGVydGllcxgKIAMoCzIbLmNvbW1vbi52MS5Qcm9wZXJ0eVRlbXBsYXRlQoUBukiBAboBfgoqZnVuY3Rpb25fZGVmaW5pdGlvbi5wcm9wZXJ0aWVzLnVuaXF1ZV9rZXlzEiVwcm9wZXJ0eSB0ZW1wbGF0ZSBrZXlzIG11c3QgYmUgdW5pcXVlGil0aGlzLm1hcChwcm9wZXJ0eSwgcHJvcGVydHkua2V5KS51bmlxdWUoKRIzCglleGVjdXRpb24YDSABKAsyGC5hci52MS5FeGVjdXRpb25Db250cmFjdEIGukgDyAEBSgQICxAMSgQIDBANIsADChNGdW5jdGlvbkRlZmluaXRpb25zEqgDCgVpdGVtcxgBIAMoCzIZLmFyLnYxLkZ1bmN0aW9uRGVmaW5pdGlvbkL9ArpI+QK6AX0KJWZ1bmN0aW9uX2RlZmluaXRpb25zLml0ZW1zLnVuaXF1ZV9pZHMSJmZ1bmN0aW9uIGRlZmluaXRpb24gaWRzIG11c3QgYmUgdW5pcXVlGix0aGlzLm1hcChkZWZpbml0aW9uLCBkZWZpbml0aW9uLmlkKS51bmlxdWUoKboB9QEKL2Z1bmN0aW9uX2RlZmluaXRpb25zLml0ZW1zLnVuaXF1ZV9rZXlfcmV2aXNpb25zEjlmdW5jdGlvbiBkZWZpbml0aW9uIGtleSBhbmQgcmV2aXNpb24gcGFpcnMgbXVzdCBiZSB1bmlxdWUahgF0aGlzLmFsbChkZWZpbml0aW9uLCB0aGlzLmZpbHRlcihjYW5kaWRhdGUsIGNhbmRpZGF0ZS5rZXkgPT0gZGVmaW5pdGlvbi5rZXkgJiYgY2FuZGlkYXRlLnJldmlzaW9uID09IGRlZmluaXRpb24ucmV2aXNpb24pLnNpemUoKSA9PSAxKSqnAgoNRnVuY3Rpb25Hcm91cBIeChpGVU5DVElPTl9HUk9VUF9VTlNQRUNJRklFRBAAEhoKFkZVTkNUSU9OX0dST1VQX0dFTkVSQUwQARIYChRGVU5DVElPTl9HUk9VUF9ST0JPVBACEhcKE0ZVTkNUSU9OX0dST1VQX1RBU0sQAxIeChpGVU5DVElPTl9HUk9VUF9FTlZJUk9OTUVOVBAEEhsKF0ZVTkNUSU9OX0dST1VQX09QRVJBVE9SEAUSGgoWRlVOQ1RJT05fR1JPVVBfU1BBVElBTBAGEhgKFEZVTkNUSU9OX0dST1VQX0xPR0lDEAcSFwoTRlVOQ1RJT05fR1JPVVBfREFUQRAIEhsKF0ZVTkNUSU9OX0dST1VQX1RFTVBPUkFMEAlCkwEKCWNvbS5hci52MUIXRnVuY3Rpb25EZWZpbml0aW9uUHJvdG9QAVovZ2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2FyL3YxO2FydjGiAgNBWFiqAg5NZXNzYWdlcy5BUi5WMcoCBUFyXFYx4gIRQXJcVjFcR1BCTWV0YWRhdGHqAgZBcjo6VjFiBnByb3RvMw", [file_ar_v1_definition_status, file_ar_v1_execution_contract, file_ar_v1_function, file_buf_validate_validate, file_common_v1_property, file_validation_v1_predefined_string_rules]);
24
+
25
+ /**
26
+ * @generated from message ar.v1.FunctionDefinition
27
+ */
28
+ export type FunctionDefinition = Message<"ar.v1.FunctionDefinition"> & {
29
+ /**
30
+ * Stable identity of this immutable built-in definition revision.
31
+ *
32
+ * @generated from field: string id = 1;
33
+ */
34
+ id: string;
35
+
36
+ /**
37
+ * Stable logical identity shared by every revision of this definition.
38
+ *
39
+ * @generated from field: string key = 2;
40
+ */
41
+ key: string;
42
+
43
+ /**
44
+ * @generated from field: string name = 3;
45
+ */
46
+ name: string;
47
+
48
+ /**
49
+ * @generated from field: string icon = 4;
50
+ */
51
+ icon: string;
52
+
53
+ /**
54
+ * @generated from field: string description = 5;
55
+ */
56
+ description: string;
57
+
58
+ /**
59
+ * @generated from field: ar.v1.FunctionType type = 6;
60
+ */
61
+ type: FunctionType;
62
+
63
+ /**
64
+ * @generated from field: ar.v1.FunctionGroup group = 7;
65
+ */
66
+ group: FunctionGroup;
67
+
68
+ /**
69
+ * Monotonic revision of the externally visible definition contract.
70
+ *
71
+ * @generated from field: uint64 revision = 8;
72
+ */
73
+ revision: bigint;
74
+
75
+ /**
76
+ * @generated from field: ar.v1.DefinitionStatus status = 9;
77
+ */
78
+ status: DefinitionStatus;
79
+
80
+ /**
81
+ * @generated from field: repeated common.v1.PropertyTemplate properties = 10;
82
+ */
83
+ properties: PropertyTemplate[];
84
+
85
+ /**
86
+ * @generated from field: ar.v1.ExecutionContract execution = 13;
87
+ */
88
+ execution?: ExecutionContract;
89
+ };
90
+
91
+ /**
92
+ * Describes the message ar.v1.FunctionDefinition.
93
+ * Use `create(FunctionDefinitionSchema)` to create a new message.
94
+ */
95
+ export const FunctionDefinitionSchema: GenMessage<FunctionDefinition> = /*@__PURE__*/
96
+ messageDesc(file_ar_v1_function_definition, 0);
97
+
98
+ /**
99
+ * The catalog service additionally enforces that revisions sharing a key also
100
+ * share a type, and that at most one revision per key/type is ACTIVE.
101
+ *
102
+ * @generated from message ar.v1.FunctionDefinitions
103
+ */
104
+ export type FunctionDefinitions = Message<"ar.v1.FunctionDefinitions"> & {
105
+ /**
106
+ * @generated from field: repeated ar.v1.FunctionDefinition items = 1;
107
+ */
108
+ items: FunctionDefinition[];
109
+ };
110
+
111
+ /**
112
+ * Describes the message ar.v1.FunctionDefinitions.
113
+ * Use `create(FunctionDefinitionsSchema)` to create a new message.
114
+ */
115
+ export const FunctionDefinitionsSchema: GenMessage<FunctionDefinitions> = /*@__PURE__*/
116
+ messageDesc(file_ar_v1_function_definition, 1);
117
+
118
+ /**
119
+ * @generated from enum ar.v1.FunctionGroup
120
+ */
121
+ export enum FunctionGroup {
122
+ /**
123
+ * @generated from enum value: FUNCTION_GROUP_UNSPECIFIED = 0;
124
+ */
125
+ UNSPECIFIED = 0,
126
+
127
+ /**
128
+ * Functions that do not yet fit a more specific domain.
129
+ *
130
+ * @generated from enum value: FUNCTION_GROUP_GENERAL = 1;
131
+ */
132
+ GENERAL = 1,
133
+
134
+ /**
135
+ * Functions that read or evaluate robot-specific information.
136
+ *
137
+ * @generated from enum value: FUNCTION_GROUP_ROBOT = 2;
138
+ */
139
+ ROBOT = 2,
140
+
141
+ /**
142
+ * Functions that resolve or evaluate task and process information.
143
+ *
144
+ * @generated from enum value: FUNCTION_GROUP_TASK = 3;
145
+ */
146
+ TASK = 3,
147
+
148
+ /**
149
+ * Functions that evaluate the surrounding work environment.
150
+ *
151
+ * @generated from enum value: FUNCTION_GROUP_ENVIRONMENT = 4;
152
+ */
153
+ ENVIRONMENT = 4,
154
+
155
+ /**
156
+ * Functions that resolve or evaluate operator-specific information.
157
+ *
158
+ * @generated from enum value: FUNCTION_GROUP_OPERATOR = 5;
159
+ */
160
+ OPERATOR = 5,
161
+
162
+ /**
163
+ * Functions that evaluate positions, movement, distance, or geometry.
164
+ *
165
+ * @generated from enum value: FUNCTION_GROUP_SPATIAL = 6;
166
+ */
167
+ SPATIAL = 6,
168
+
169
+ /**
170
+ * Boolean operations and predicates.
171
+ *
172
+ * @generated from enum value: FUNCTION_GROUP_LOGIC = 7;
173
+ */
174
+ LOGIC = 7,
175
+
176
+ /**
177
+ * Formatting, conversion, parsing, and other value transformations.
178
+ *
179
+ * @generated from enum value: FUNCTION_GROUP_DATA = 8;
180
+ */
181
+ DATA = 8,
182
+
183
+ /**
184
+ * Functions related to durations, timing, and schedules.
185
+ *
186
+ * @generated from enum value: FUNCTION_GROUP_TEMPORAL = 9;
187
+ */
188
+ TEMPORAL = 9,
189
+ }
190
+
191
+ /**
192
+ * Describes the enum ar.v1.FunctionGroup.
193
+ */
194
+ export const FunctionGroupSchema: GenEnum<FunctionGroup> = /*@__PURE__*/
195
+ enumDesc(file_ar_v1_function_definition, 0);
196
+
@@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf";
14
14
  * Describes the file ar/v1/function.proto.
15
15
  */
16
16
  export const file_ar_v1_function: GenFile = /*@__PURE__*/
17
- fileDesc("ChRhci92MS9mdW5jdGlvbi5wcm90bxIFYXIudjEi8AEKD0Z1bmN0aW9uTWVzc2FnZRIYCgJpZBgBIAEoCUIMukgJyAEBcgTQ8wQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEi4KBHR5cGUYBSABKA4yEy5hci52MS5GdW5jdGlvblR5cGVCC7pICMgBAYIBAhABEh8KCWNvbmZpZ19pZBgGIAEoCUIMukgJyAEBcgSQ8QQBEjYKCnByb3ZlbmFuY2UYByABKAsyGi5hci52MS5BUkNvbnRlbnRQcm92ZW5hbmNlQga6SAPIAQEiOQoQRnVuY3Rpb25NZXNzYWdlcxIlCgVpdGVtcxgBIAMoCzIWLmFyLnYxLkZ1bmN0aW9uTWVzc2FnZSKhAQoSRnVuY3Rpb25BZGRNZXNzYWdlEh8KCWNvbmZpZ19pZBgBIAEoCUIMukgJyAEBcgSQ8QQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEi4KBHR5cGUYBSABKA4yEy5hci52MS5GdW5jdGlvblR5cGVCC7pICMgBAYIBAhABImoKFUZ1bmN0aW9uVXBkYXRlTWVzc2FnZRIVCgJpZBgBIAEoCUIJukgGcgTQ8wQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJKr4GCgxGdW5jdGlvblR5cGUSHQoZRlVOQ1RJT05fVFlQRV9VTlNQRUNJRklFRBAAEhsKF0ZVTkNUSU9OX1RZUEVfUFJPWElNSVRZEAoSHAoYRlVOQ1RJT05fVFlQRV9TVEFUSU9OQVJZEAsSFwoTRlVOQ1RJT05fVFlQRV9USU1FUhAVEhcKE0ZVTkNUSU9OX1RZUEVfREVMQVkQFhIZChVGVU5DVElPTl9UWVBFX1RJTUVPVVQQFxIaChZGVU5DVElPTl9UWVBFX0RFQk9VTkNFEBgSHgoaRlVOQ1RJT05fVFlQRV9FTEFQU0VEX1RJTUUQGRIaChZGVU5DVElPTl9UWVBFX1NDSEVEVUxFEBoSHwobRlVOQ1RJT05fVFlQRV9QQVJUX0ZPUl9UQVNLECgSIQodRlVOQ1RJT05fVFlQRV9JU19QQVJUX09GX1RZUEUQMhInCiNGVU5DVElPTl9UWVBFX0NMT1NFU1RfV09SS0FCTEVfVEFTSxAzEiEKHUZVTkNUSU9OX1RZUEVfU1RSSU5HX0ZPUk1BVF8xEDwSIQodRlVOQ1RJT05fVFlQRV9TVFJJTkdfRk9STUFUXzIQPRIeChpGVU5DVElPTl9UWVBFX1NUUklOR19FTVBUWRA+EhwKGEZVTkNUSU9OX1RZUEVfSU5UX0ZPUk1BVBBGEh0KGUZVTkNUSU9OX1RZUEVfSU5UX0NPTVBBUkUQRxIeChpGVU5DVElPTl9UWVBFX0ZMT0FUX0ZPUk1BVBBQEh8KG0ZVTkNUSU9OX1RZUEVfRkxPQVRfQ09NUEFSRRBREh8KG0ZVTkNUSU9OX1RZUEVfRE9VQkxFX0ZPUk1BVBBaEiAKHEZVTkNUSU9OX1RZUEVfRE9VQkxFX0NPTVBBUkUQWxIVChFGVU5DVElPTl9UWVBFX0FORBBkEhQKEEZVTkNUSU9OX1RZUEVfT1IQZRIVChFGVU5DVElPTl9UWVBFX05PVBBmEioKJkZVTkNUSU9OX1RZUEVfUk9CT1RfQ09ORklHVVJBQkxFX0lOUFVUEHgSKwonRlVOQ1RJT05fVFlQRV9ST0JPVF9DT05GSUdVUkFCTEVfT1VUUFVUEHlCiQEKCWNvbS5hci52MUINRnVuY3Rpb25Qcm90b1ABWi9naXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvYXIvdjE7YXJ2MaICA0FYWKoCDk1lc3NhZ2VzLkFSLlYxygIFQXJcVjHiAhFBclxWMVxHUEJNZXRhZGF0YeoCBkFyOjpWMWIGcHJvdG8z", [file_ar_v1_provenance, file_buf_validate_validate, file_validation_v1_predefined_string_rules]);
17
+ fileDesc("ChRhci92MS9mdW5jdGlvbi5wcm90bxIFYXIudjEi7gEKD0Z1bmN0aW9uTWVzc2FnZRIYCgJpZBgBIAEoCUIMukgJyAEBcgTQ8wQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiwKFmZ1bmN0aW9uX2RlZmluaXRpb25faWQYBSABKAlCDLpICcgBAXIE+PMEARIfCgljb25maWdfaWQYBiABKAlCDLpICcgBAXIEkPEEARI2Cgpwcm92ZW5hbmNlGAcgASgLMhouYXIudjEuQVJDb250ZW50UHJvdmVuYW5jZUIGukgDyAEBIjkKEEZ1bmN0aW9uTWVzc2FnZXMSJQoFaXRlbXMYASADKAsyFi5hci52MS5GdW5jdGlvbk1lc3NhZ2UinwEKEkZ1bmN0aW9uQWRkTWVzc2FnZRIfCgljb25maWdfaWQYASABKAlCDLpICcgBAXIEkPEEARIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIsChZmdW5jdGlvbl9kZWZpbml0aW9uX2lkGAUgASgJQgy6SAnIAQFyBPjzBAEiagoVRnVuY3Rpb25VcGRhdGVNZXNzYWdlEhUKAmlkGAEgASgJQgm6SAZyBNDzBAESFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkqvgYKDEZ1bmN0aW9uVHlwZRIdChlGVU5DVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASGwoXRlVOQ1RJT05fVFlQRV9QUk9YSU1JVFkQChIcChhGVU5DVElPTl9UWVBFX1NUQVRJT05BUlkQCxIXChNGVU5DVElPTl9UWVBFX1RJTUVSEBUSFwoTRlVOQ1RJT05fVFlQRV9ERUxBWRAWEhkKFUZVTkNUSU9OX1RZUEVfVElNRU9VVBAXEhoKFkZVTkNUSU9OX1RZUEVfREVCT1VOQ0UQGBIeChpGVU5DVElPTl9UWVBFX0VMQVBTRURfVElNRRAZEhoKFkZVTkNUSU9OX1RZUEVfU0NIRURVTEUQGhIfChtGVU5DVElPTl9UWVBFX1BBUlRfRk9SX1RBU0sQKBIhCh1GVU5DVElPTl9UWVBFX0lTX1BBUlRfT0ZfVFlQRRAyEicKI0ZVTkNUSU9OX1RZUEVfQ0xPU0VTVF9XT1JLQUJMRV9UQVNLEDMSIQodRlVOQ1RJT05fVFlQRV9TVFJJTkdfRk9STUFUXzEQPBIhCh1GVU5DVElPTl9UWVBFX1NUUklOR19GT1JNQVRfMhA9Eh4KGkZVTkNUSU9OX1RZUEVfU1RSSU5HX0VNUFRZED4SHAoYRlVOQ1RJT05fVFlQRV9JTlRfRk9STUFUEEYSHQoZRlVOQ1RJT05fVFlQRV9JTlRfQ09NUEFSRRBHEh4KGkZVTkNUSU9OX1RZUEVfRkxPQVRfRk9STUFUEFASHwobRlVOQ1RJT05fVFlQRV9GTE9BVF9DT01QQVJFEFESHwobRlVOQ1RJT05fVFlQRV9ET1VCTEVfRk9STUFUEFoSIAocRlVOQ1RJT05fVFlQRV9ET1VCTEVfQ09NUEFSRRBbEhUKEUZVTkNUSU9OX1RZUEVfQU5EEGQSFAoQRlVOQ1RJT05fVFlQRV9PUhBlEhUKEUZVTkNUSU9OX1RZUEVfTk9UEGYSKgomRlVOQ1RJT05fVFlQRV9ST0JPVF9DT05GSUdVUkFCTEVfSU5QVVQQeBIrCidGVU5DVElPTl9UWVBFX1JPQk9UX0NPTkZJR1VSQUJMRV9PVVRQVVQQeUKJAQoJY29tLmFyLnYxQg1GdW5jdGlvblByb3RvUAFaL2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hci92MTthcnYxogIDQVhYqgIOTWVzc2FnZXMuQVIuVjHKAgVBclxWMeICEUFyXFYxXEdQQk1ldGFkYXRh6gIGQXI6OlYxYgZwcm90bzM", [file_ar_v1_provenance, file_buf_validate_validate, file_validation_v1_predefined_string_rules]);
18
18
 
19
19
  /**
20
20
  * @generated from message ar.v1.FunctionMessage
@@ -41,9 +41,9 @@ export type FunctionMessage = Message<"ar.v1.FunctionMessage"> & {
41
41
  description: string;
42
42
 
43
43
  /**
44
- * @generated from field: ar.v1.FunctionType type = 5;
44
+ * @generated from field: string function_definition_id = 5;
45
45
  */
46
- type: FunctionType;
46
+ functionDefinitionId: string;
47
47
 
48
48
  /**
49
49
  * @generated from field: string config_id = 6;
@@ -105,9 +105,9 @@ export type FunctionAddMessage = Message<"ar.v1.FunctionAddMessage"> & {
105
105
  description: string;
106
106
 
107
107
  /**
108
- * @generated from field: ar.v1.FunctionType type = 5;
108
+ * @generated from field: string function_definition_id = 5;
109
109
  */
110
- type: FunctionType;
110
+ functionDefinitionId: string;
111
111
  };
112
112
 
113
113
  /**
@@ -4,10 +4,6 @@
4
4
 
5
5
  import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
6
  import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
- import type { ActionType } from "./action_pb.ts";
8
- import { file_ar_v1_action } from "./action_pb.ts";
9
- import type { FeedbackType } from "./feedback_pb.ts";
10
- import { file_ar_v1_feedback } from "./feedback_pb.ts";
11
7
  import type { AssistanceSemantic } from "./semantic_source_pb.ts";
12
8
  import { file_ar_v1_semantic_source } from "./semantic_source_pb.ts";
13
9
  import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
@@ -20,7 +16,7 @@ import type { Message } from "@bufbuild/protobuf";
20
16
  * Describes the file ar/v1/presentation_strategy.proto.
21
17
  */
22
18
  export const file_ar_v1_presentation_strategy: GenFile = /*@__PURE__*/
23
- fileDesc("CiFhci92MS9wcmVzZW50YXRpb25fc3RyYXRlZ3kucHJvdG8SBWFyLnYxIm4KF1Byb3BlcnR5VmFsdWVBc3NpZ25tZW50EiIKDHByb3BlcnR5X2tleRgBIAEoCUIMukgJyAEBcgTg8wQBEi8KBXZhbHVlGAIgASgLMhguY29tbW9uLnYxLlByb3BlcnR5VmFsdWVCBrpIA8gBASKSAwoQUHJlc2VudGF0aW9uUm9sZRIZCgNrZXkYASABKAlCDLpICcgBAXIE4PMEARIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESEwoLZGVzY3JpcHRpb24YAyABKAkSSAoScmVxdWlyZWRfc2VtYW50aWNzGAQgAygOMhkuYXIudjEuQXNzaXN0YW5jZVNlbWFudGljQhG6SA6SAQsYASIHggEEEAEgABJDChVkZWZhdWx0X2ZlZWRiYWNrX3R5cGUYBSABKA4yEy5hci52MS5GZWVkYmFja1R5cGVCCrpIB4IBBBABIABIAIgBARI/ChNkZWZhdWx0X2FjdGlvbl90eXBlGAYgASgOMhEuYXIudjEuQWN0aW9uVHlwZUIKukgHggEEEAEgAEgBiAEBOjO6SDAiLgoVZGVmYXVsdF9mZWVkYmFja190eXBlChNkZWZhdWx0X2FjdGlvbl90eXBlEAFCGAoWX2RlZmF1bHRfZmVlZGJhY2tfdHlwZUIWChRfZGVmYXVsdF9hY3Rpb25fdHlwZSKEAgoWUHJlc2VudGF0aW9uUm9sZVByZXNldBIeCghyb2xlX2tleRgBIAEoCUIMukgJyAEBcgTg8wQBEskBCgpwcm9wZXJ0aWVzGAIgAygLMh4uYXIudjEuUHJvcGVydHlWYWx1ZUFzc2lnbm1lbnRClAG6SJABugGMAQo4cHJlc2VudGF0aW9uX3JvbGVfcHJlc2V0LnByb3BlcnRpZXMudW5pcXVlX3Byb3BlcnR5X2tleXMSHHByb3BlcnR5IGtleXMgbXVzdCBiZSB1bmlxdWUaMnRoaXMubWFwKHByb3BlcnR5LCBwcm9wZXJ0eS5wcm9wZXJ0eV9rZXkpLnVuaXF1ZSgpItsCChpQcmVzZW50YXRpb25GaWRlbGl0eUFuY2hvchI6CghmaWRlbGl0eRgBIAEoDjIbLmFyLnYxLlByZXNlbnRhdGlvbkZpZGVsaXR5Qgu6SAjIAQGCAQIQARIwCg90YXJnZXRfY292ZXJhZ2UYAiABKAFCF7pIFBISGQAAAAAAAPA/KQAAAAAAAAAAEs4BCg1wcmVzZW50YXRpb25zGAMgAygLMh0uYXIudjEuUHJlc2VudGF0aW9uUm9sZVByZXNldEKXAbpIkwG6AY8BCjtwcmVzZW50YXRpb25fZmlkZWxpdHlfYW5jaG9yLnByZXNlbnRhdGlvbnMudW5pcXVlX3JvbGVfa2V5cxIYcm9sZSBrZXlzIG11c3QgYmUgdW5pcXVlGjZ0aGlzLm1hcChwcmVzZW50YXRpb24sIHByZXNlbnRhdGlvbi5yb2xlX2tleSkudW5pcXVlKCkioQIKGkFzc2lzdGFuY2VQcmVzZW50YXRpb25SdWxlEjgKCHNlbWFudGljGAEgASgOMhkuYXIudjEuQXNzaXN0YW5jZVNlbWFudGljQgu6SAjIAQGCAQIQARLIAQoHYW5jaG9ycxgCIAMoCzIhLmFyLnYxLlByZXNlbnRhdGlvbkZpZGVsaXR5QW5jaG9yQpMBukiPAboBhAEKNmFzc2lzdGFuY2VfcHJlc2VudGF0aW9uX3J1bGUuYW5jaG9ycy51bmlxdWVfZmlkZWxpdGllcxIeYW5jaG9yIGZpZGVsaXR5IG11c3QgYmUgdW5pcXVlGip0aGlzLm1hcChhbmNob3IsIGFuY2hvci5maWRlbGl0eSkudW5pcXVlKCmSAQQIAxADIo0IChRQcmVzZW50YXRpb25TdHJhdGVneRIYCgJpZBgBIAEoCUIMukgJyAEBcgTY8wQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhkKA2tleRgFIAEoCUIMukgJyAEBcgTg8wQBEpQBCgVyb2xlcxgGIAMoCzIXLmFyLnYxLlByZXNlbnRhdGlvblJvbGVCbLpIaboBZgoncHJlc2VudGF0aW9uX3N0cmF0ZWd5LnJvbGVzLnVuaXF1ZV9rZXlzEhhyb2xlIGtleXMgbXVzdCBiZSB1bmlxdWUaIXRoaXMubWFwKHJvbGUsIHJvbGUua2V5KS51bmlxdWUoKRKtAQoFcnVsZXMYByADKAsyIS5hci52MS5Bc3Npc3RhbmNlUHJlc2VudGF0aW9uUnVsZUJ7ukh4ugF1CixwcmVzZW50YXRpb25fc3RyYXRlZ3kucnVsZXMudW5pcXVlX3NlbWFudGljcxIdcnVsZSBzZW1hbnRpY3MgbXVzdCBiZSB1bmlxdWUaJnRoaXMubWFwKHJ1bGUsIHJ1bGUuc2VtYW50aWMpLnVuaXF1ZSgpOrwEuki4BBr2AQotcHJlc2VudGF0aW9uX3N0cmF0ZWd5LnByZXNldHMucmVmZXJlbmNlX3JvbGVzEj9ldmVyeSBwcmVzZW50YXRpb24gcHJlc2V0IG11c3QgcmVmZXJlbmNlIGEgcm9sZSBpbiB0aGUgc3RyYXRlZ3kagwF0aGlzLnJ1bGVzLmFsbChydWxlLCBydWxlLmFuY2hvcnMuYWxsKGFuY2hvciwgYW5jaG9yLnByZXNlbnRhdGlvbnMuYWxsKHByZXNldCwgcHJlc2V0LnJvbGVfa2V5IGluIHRoaXMucm9sZXMubWFwKHJvbGUsIHJvbGUua2V5KSkpKRq8Ago6cHJlc2VudGF0aW9uX3N0cmF0ZWd5LnByZXNldHMucm9sZXNfc3VwcG9ydF9ydWxlX3NlbWFudGljcxJBZXZlcnkgcmVmZXJlbmNlZCByb2xlIG11c3QgZGVjbGFyZSB0aGUgcnVsZSdzIGFzc2lzdGFuY2Ugc2VtYW50aWMaugF0aGlzLnJ1bGVzLmFsbChydWxlLCBydWxlLmFuY2hvcnMuYWxsKGFuY2hvciwgYW5jaG9yLnByZXNlbnRhdGlvbnMuYWxsKHByZXNldCwgdGhpcy5yb2xlcy5maWx0ZXIocm9sZSwgcm9sZS5rZXkgPT0gcHJlc2V0LnJvbGVfa2V5KS5hbGwocm9sZSwgcnVsZS5zZW1hbnRpYyBpbiByb2xlLnJlcXVpcmVkX3NlbWFudGljcykpKSkiVQoXUHJlc2VudGF0aW9uU3RyYXRlZ3lBZGQSFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkiRAoWUHJlc2VudGF0aW9uU3RyYXRlZ2llcxIqCgVpdGVtcxgBIAMoCzIbLmFyLnYxLlByZXNlbnRhdGlvblN0cmF0ZWd5Kp4BChRQcmVzZW50YXRpb25GaWRlbGl0eRIlCiFQUkVTRU5UQVRJT05fRklERUxJVFlfVU5TUEVDSUZJRUQQABIdChlQUkVTRU5UQVRJT05fRklERUxJVFlfTE9XEAESIAocUFJFU0VOVEFUSU9OX0ZJREVMSVRZX01FRElVTRACEh4KGlBSRVNFTlRBVElPTl9GSURFTElUWV9ISUdIEANClQEKCWNvbS5hci52MUIZUHJlc2VudGF0aW9uU3RyYXRlZ3lQcm90b1ABWi9naXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvYXIvdjE7YXJ2MaICA0FYWKoCDk1lc3NhZ2VzLkFSLlYxygIFQXJcVjHiAhFBclxWMVxHUEJNZXRhZGF0YeoCBkFyOjpWMWIGcHJvdG8z", [file_ar_v1_action, file_ar_v1_feedback, file_ar_v1_semantic_source, file_buf_validate_validate, file_common_v1_property, file_validation_v1_predefined_string_rules]);
19
+ fileDesc("CiFhci92MS9wcmVzZW50YXRpb25fc3RyYXRlZ3kucHJvdG8SBWFyLnYxIm4KF1Byb3BlcnR5VmFsdWVBc3NpZ25tZW50EiIKDHByb3BlcnR5X2tleRgBIAEoCUIMukgJyAEBcgTg8wQBEi8KBXZhbHVlGAIgASgLMhguY29tbW9uLnYxLlByb3BlcnR5VmFsdWVCBrpIA8gBASKiAwoQUHJlc2VudGF0aW9uUm9sZRIZCgNrZXkYASABKAlCDLpICcgBAXIE4PMEARIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESEwoLZGVzY3JpcHRpb24YAyABKAkSSAoScmVxdWlyZWRfc2VtYW50aWNzGAQgAygOMhkuYXIudjEuQXNzaXN0YW5jZVNlbWFudGljQhG6SA6SAQsYASIHggEEEAEgABI4Ch5kZWZhdWx0X2ZlZWRiYWNrX2RlZmluaXRpb25faWQYBSABKAlCC7pICHIG8PMEARABSACIAQESNgocZGVmYXVsdF9hY3Rpb25fZGVmaW5pdGlvbl9pZBgGIAEoCUILukgIcgbo8wQBEAFIAYgBATpFukhCIkAKHmRlZmF1bHRfZmVlZGJhY2tfZGVmaW5pdGlvbl9pZAocZGVmYXVsdF9hY3Rpb25fZGVmaW5pdGlvbl9pZBABQiEKH19kZWZhdWx0X2ZlZWRiYWNrX2RlZmluaXRpb25faWRCHwodX2RlZmF1bHRfYWN0aW9uX2RlZmluaXRpb25faWQihAIKFlByZXNlbnRhdGlvblJvbGVQcmVzZXQSHgoIcm9sZV9rZXkYASABKAlCDLpICcgBAXIE4PMEARLJAQoKcHJvcGVydGllcxgCIAMoCzIeLmFyLnYxLlByb3BlcnR5VmFsdWVBc3NpZ25tZW50QpQBukiQAboBjAEKOHByZXNlbnRhdGlvbl9yb2xlX3ByZXNldC5wcm9wZXJ0aWVzLnVuaXF1ZV9wcm9wZXJ0eV9rZXlzEhxwcm9wZXJ0eSBrZXlzIG11c3QgYmUgdW5pcXVlGjJ0aGlzLm1hcChwcm9wZXJ0eSwgcHJvcGVydHkucHJvcGVydHlfa2V5KS51bmlxdWUoKSLbAgoaUHJlc2VudGF0aW9uRmlkZWxpdHlBbmNob3ISOgoIZmlkZWxpdHkYASABKA4yGy5hci52MS5QcmVzZW50YXRpb25GaWRlbGl0eUILukgIyAEBggECEAESMAoPdGFyZ2V0X2NvdmVyYWdlGAIgASgBQhe6SBQSEhkAAAAAAADwPykAAAAAAAAAABLOAQoNcHJlc2VudGF0aW9ucxgDIAMoCzIdLmFyLnYxLlByZXNlbnRhdGlvblJvbGVQcmVzZXRClwG6SJMBugGPAQo7cHJlc2VudGF0aW9uX2ZpZGVsaXR5X2FuY2hvci5wcmVzZW50YXRpb25zLnVuaXF1ZV9yb2xlX2tleXMSGHJvbGUga2V5cyBtdXN0IGJlIHVuaXF1ZRo2dGhpcy5tYXAocHJlc2VudGF0aW9uLCBwcmVzZW50YXRpb24ucm9sZV9rZXkpLnVuaXF1ZSgpIqECChpBc3Npc3RhbmNlUHJlc2VudGF0aW9uUnVsZRI4CghzZW1hbnRpYxgBIAEoDjIZLmFyLnYxLkFzc2lzdGFuY2VTZW1hbnRpY0ILukgIyAEBggECEAESyAEKB2FuY2hvcnMYAiADKAsyIS5hci52MS5QcmVzZW50YXRpb25GaWRlbGl0eUFuY2hvckKTAbpIjwG6AYQBCjZhc3Npc3RhbmNlX3ByZXNlbnRhdGlvbl9ydWxlLmFuY2hvcnMudW5pcXVlX2ZpZGVsaXRpZXMSHmFuY2hvciBmaWRlbGl0eSBtdXN0IGJlIHVuaXF1ZRoqdGhpcy5tYXAoYW5jaG9yLCBhbmNob3IuZmlkZWxpdHkpLnVuaXF1ZSgpkgEECAMQAyKNCAoUUHJlc2VudGF0aW9uU3RyYXRlZ3kSGAoCaWQYASABKAlCDLpICcgBAXIE2PMEARIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIZCgNrZXkYBSABKAlCDLpICcgBAXIE4PMEARKUAQoFcm9sZXMYBiADKAsyFy5hci52MS5QcmVzZW50YXRpb25Sb2xlQmy6SGm6AWYKJ3ByZXNlbnRhdGlvbl9zdHJhdGVneS5yb2xlcy51bmlxdWVfa2V5cxIYcm9sZSBrZXlzIG11c3QgYmUgdW5pcXVlGiF0aGlzLm1hcChyb2xlLCByb2xlLmtleSkudW5pcXVlKCkSrQEKBXJ1bGVzGAcgAygLMiEuYXIudjEuQXNzaXN0YW5jZVByZXNlbnRhdGlvblJ1bGVCe7pIeLoBdQoscHJlc2VudGF0aW9uX3N0cmF0ZWd5LnJ1bGVzLnVuaXF1ZV9zZW1hbnRpY3MSHXJ1bGUgc2VtYW50aWNzIG11c3QgYmUgdW5pcXVlGiZ0aGlzLm1hcChydWxlLCBydWxlLnNlbWFudGljKS51bmlxdWUoKTq8BLpIuAQa9gEKLXByZXNlbnRhdGlvbl9zdHJhdGVneS5wcmVzZXRzLnJlZmVyZW5jZV9yb2xlcxI/ZXZlcnkgcHJlc2VudGF0aW9uIHByZXNldCBtdXN0IHJlZmVyZW5jZSBhIHJvbGUgaW4gdGhlIHN0cmF0ZWd5GoMBdGhpcy5ydWxlcy5hbGwocnVsZSwgcnVsZS5hbmNob3JzLmFsbChhbmNob3IsIGFuY2hvci5wcmVzZW50YXRpb25zLmFsbChwcmVzZXQsIHByZXNldC5yb2xlX2tleSBpbiB0aGlzLnJvbGVzLm1hcChyb2xlLCByb2xlLmtleSkpKSkavAIKOnByZXNlbnRhdGlvbl9zdHJhdGVneS5wcmVzZXRzLnJvbGVzX3N1cHBvcnRfcnVsZV9zZW1hbnRpY3MSQWV2ZXJ5IHJlZmVyZW5jZWQgcm9sZSBtdXN0IGRlY2xhcmUgdGhlIHJ1bGUncyBhc3Npc3RhbmNlIHNlbWFudGljGroBdGhpcy5ydWxlcy5hbGwocnVsZSwgcnVsZS5hbmNob3JzLmFsbChhbmNob3IsIGFuY2hvci5wcmVzZW50YXRpb25zLmFsbChwcmVzZXQsIHRoaXMucm9sZXMuZmlsdGVyKHJvbGUsIHJvbGUua2V5ID09IHByZXNldC5yb2xlX2tleSkuYWxsKHJvbGUsIHJ1bGUuc2VtYW50aWMgaW4gcm9sZS5yZXF1aXJlZF9zZW1hbnRpY3MpKSkpIlUKF1ByZXNlbnRhdGlvblN0cmF0ZWd5QWRkEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJIkQKFlByZXNlbnRhdGlvblN0cmF0ZWdpZXMSKgoFaXRlbXMYASADKAsyGy5hci52MS5QcmVzZW50YXRpb25TdHJhdGVneSqeAQoUUHJlc2VudGF0aW9uRmlkZWxpdHkSJQohUFJFU0VOVEFUSU9OX0ZJREVMSVRZX1VOU1BFQ0lGSUVEEAASHQoZUFJFU0VOVEFUSU9OX0ZJREVMSVRZX0xPVxABEiAKHFBSRVNFTlRBVElPTl9GSURFTElUWV9NRURJVU0QAhIeChpQUkVTRU5UQVRJT05fRklERUxJVFlfSElHSBADQpUBCgljb20uYXIudjFCGVByZXNlbnRhdGlvblN0cmF0ZWd5UHJvdG9QAVovZ2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2FyL3YxO2FydjGiAgNBWFiqAg5NZXNzYWdlcy5BUi5WMcoCBUFyXFYx4gIRQXJcVjFcR1BCTWV0YWRhdGHqAgZBcjo6VjFiBnByb3RvMw", [file_ar_v1_semantic_source, file_buf_validate_validate, file_common_v1_property, file_validation_v1_predefined_string_rules]);
24
20
 
25
21
  /**
26
22
  * Assigns a desired value to a property identified by its stable,
@@ -84,8 +80,8 @@ export type PresentationRole = Message<"ar.v1.PresentationRole"> & {
84
80
  /**
85
81
  * Assistance semantics that an implementation of this role must support.
86
82
  *
87
- * For Feedback, these are checked against FeedbackInfoMessage.capabilities.
88
- * Action compatibility may initially also depend on ActionType until
83
+ * For Feedback, these are checked against FeedbackDefinition.capabilities.
84
+ * Action compatibility may initially also depend on ActionDefinition.type until
89
85
  * semantic Action capabilities are introduced.
90
86
  *
91
87
  * @generated from field: repeated ar.v1.AssistanceSemantic required_semantics = 4;
@@ -96,14 +92,14 @@ export type PresentationRole = Message<"ar.v1.PresentationRole"> & {
96
92
  * Default implementation created by reconciliation when the role has no
97
93
  * compatible explicit binding.
98
94
  *
99
- * @generated from field: optional ar.v1.FeedbackType default_feedback_type = 5;
95
+ * @generated from field: optional string default_feedback_definition_id = 5;
100
96
  */
101
- defaultFeedbackType?: FeedbackType;
97
+ defaultFeedbackDefinitionId?: string;
102
98
 
103
99
  /**
104
- * @generated from field: optional ar.v1.ActionType default_action_type = 6;
100
+ * @generated from field: optional string default_action_definition_id = 6;
105
101
  */
106
- defaultActionType?: ActionType;
102
+ defaultActionDefinitionId?: string;
107
103
  };
108
104
 
109
105
  /**
@@ -20,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf";
20
20
  * Describes the file common/v1/property.proto.
21
21
  */
22
22
  export const file_common_v1_property: GenFile = /*@__PURE__*/
23
- fileDesc("Chhjb21tb24vdjEvcHJvcGVydHkucHJvdG8SCWNvbW1vbi52MSKXCQoSUHJvcGVydHlEZWZpbml0aW9uEhUKAmlkGAEgASgJQgm6SAZyBJjxBAESNwoDa2V5GBEgASgJQiq6SCdyJRABGEAyH15bYS16XVthLXowLTldKig/Ol9bYS16MC05XSspKiQSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEjIKBHR5cGUYBSABKA4yFy5jb21tb24udjEuUHJvcGVydHlUeXBlQgu6SAjIAQGCAQIQARIRCglwYXJlbnRfaWQYBiABKAkSHAoUYXV0aG9yaW5nX2NvbnRleHRfaWQYByABKAkSMQoFc2NvcGUYCCABKA4yGC5jb21tb24udjEuUHJvcGVydHlTY29wZUIIukgFggECEAESTAobbWluaW11bV9yZXF1aXJlZF9wZXJtaXNzaW9uGAkgASgOMh0uY29tbW9uLnYxLlByb3BlcnR5UGVybWlzc2lvbkIIukgFggECEAESQQoPYWxsb3dlZF9vcmlnaW5zGAogAygOMhkuY29tbW9uLnYxLlByb3BlcnR5T3JpZ2luQg26SAqSAQciBYIBAhABEjEKBWdyb3VwGAsgASgOMhguY29tbW9uLnYxLlByb3BlcnR5R3JvdXBCCLpIBYIBAhABEhAKCG9yZGVyaW5nGAwgASgFEhIKCmhpZGVfZ3JvdXAYDSABKAgSEAoIYWR2YW5jZWQYDiABKAgSHAoUYWxsb3dfdG9fYmVfbWlycm9yZWQYDyABKAgSQAoNc2VtYW50aWNfcm9sZRgQIAEoDjIfLmNvbW1vbi52MS5Qcm9wZXJ0eVNlbWFudGljUm9sZUIIukgFggECEAESLgoNbnVtYmVyX2V4dHJhcxgpIAEoCzIXLmNvbW1vbi52MS5OdW1iZXJFeHRyYXMSKgoLZW51bV9leHRyYXMYKiABKAsyFS5jb21tb24udjEuRW51bUV4dHJhcxIwCg52ZWN0b3IzX2V4dHJhcxgrIAEoCzIYLmNvbW1vbi52MS5WZWN0b3IzRXh0cmFzEiwKDGNvbG9yX2V4dHJhcxgsIAEoCzIWLmNvbW1vbi52MS5Db2xvckV4dHJhcxIqCgtwb3NlX2V4dHJhcxgtIAEoCzIVLmNvbW1vbi52MS5Qb3NlRXh0cmFzEi4KDWFuY2hvcl9leHRyYXMYLiABKAsyFy5jb21tb24udjEuQW5jaG9yRXh0cmFzOvMBukjvARqUAQoZZW51bV9yZXF1aXJlc19lbnVtX2V4dHJhcxI3ZW51bV9leHRyYXMgbXVzdCBiZSBzZXQgd2hlbiB0eXBlIGlzIEVOVU0gb3IgRU5VTV9NVUxUSRo+ISh0aGlzLnR5cGUgPT0gMTEgfHwgdGhpcy50eXBlID09IDEyKSB8fCBoYXModGhpcy5lbnVtX2V4dHJhcykiVgoNbnVtYmVyX2V4dHJhcwoLZW51bV9leHRyYXMKDnZlY3RvcjNfZXh0cmFzCgxjb2xvcl9leHRyYXMKC3Bvc2VfZXh0cmFzCg1hbmNob3JfZXh0cmFzIskDChBQcm9wZXJ0eUluc3RhbmNlEhUKAmlkGAEgASgJQgm6SAZyBJjzBAESKQoWcHJvcGVydHlfZGVmaW5pdGlvbl9pZBgCIAEoCUIJukgGcgSY8QQBEicKBXNjb3BlGAMgASgOMhguY29tbW9uLnYxLlByb3BlcnR5U2NvcGUSEAoIc2NvcGVfaWQYBCABKAkSMwoGb3JpZ2luGAUgASgOMhkuY29tbW9uLnYxLlByb3BlcnR5T3JpZ2luQgi6SAWCAQIQARIwCh1taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZBgGIAEoCUIJukgGcgSY8QQBEi8KBXZhbHVlGAcgASgLMhguY29tbW9uLnYxLlByb3BlcnR5VmFsdWVCBrpIA8gBATqfAbpImwEamAEKIm1pcnJvcl9yZXF1aXJlc19taXJyb3JfcHJvcGVydHlfaWQSNG1pcnJvcl9wcm9wZXJ0eV9pZCBtdXN0IGJlIHNldCB3aGVuIG9yaWdpbiBpcyBNSVJST1IaPHRoaXMub3JpZ2luICE9IDIgfHwgdGhpcy5taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZCAhPSAnJyK9DQoNUHJvcGVydHlWYWx1ZRIyCgR0eXBlGAEgASgOMhcuY29tbW9uLnYxLlByb3BlcnR5VHlwZUILukgIyAEBggECEAESFwoKYm9vbF92YWx1ZRgVIAEoCEgAiAEBEhYKCWludF92YWx1ZRgWIAEoEkgBiAEBEhgKC2Zsb2F0X3ZhbHVlGBcgASgCSAKIAQESGQoMZG91YmxlX3ZhbHVlGBggASgBSAOIAQESGQoMc3RyaW5nX3ZhbHVlGBkgASgJSASIAQESKwoNdmVjdG9yM192YWx1ZRgaIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMSLgoKcG9zZV92YWx1ZRgbIAEoCzIaLmdlb21ldHJ5LnYxLkxvY2FsaXplZFBvc2USKQoMYW5jaG9yX3ZhbHVlGBwgASgLMhMuZ2VvbWV0cnkudjEuQW5jaG9yEiUKC2NvbG9yX3ZhbHVlGB0gASgLMhAuY29tbW9uLnYxLkNvbG9yEhsKDnJvYm90X2lkX3ZhbHVlGB4gASgJSAWIAQESIAoKZW51bV92YWx1ZRgfIAEoCUIHukgEcgIQAUgGiAEBEigKEGVudW1fbXVsdGlfdmFsdWUYICADKAlCDrpIC5IBCAgBIgRyAhABEhcKCmljb25fdmFsdWUYISABKAlIB4gBARIbCg5hc3NldF9pZF92YWx1ZRgiIAEoCUgIiAEBEhwKD3dvcmtlcl9pZF92YWx1ZRgjIAEoCUgJiAEBOuMHukjfBxqGBgogcHJvcGVydHlfdHlwZV9tYXRjaGVzX3ZhbHVlX2tpbmQSJ3R5cGUgbXVzdCBtYXRjaCB0aGUga2luZCBvZiB2YWx1ZSBmaWVsZBq4BSgodGhpcy50eXBlID09IDEgJiYgaGFzKHRoaXMuYm9vbF92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMiAmJiBoYXModGhpcy5pbnRfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDMgJiYgaGFzKHRoaXMuZmxvYXRfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDQgJiYgaGFzKHRoaXMuZG91YmxlX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSA1ICYmIGhhcyh0aGlzLnN0cmluZ192YWx1ZSkpIHx8KHRoaXMudHlwZSA9PSA2ICYmIGhhcyh0aGlzLnZlY3RvcjNfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDcgJiYgaGFzKHRoaXMucG9zZV92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gOCAmJiBoYXModGhpcy5hbmNob3JfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDkgJiYgaGFzKHRoaXMuY29sb3JfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDEwICYmIGhhcyh0aGlzLnJvYm90X2lkX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSAxMSAmJiBoYXModGhpcy5lbnVtX3ZhbHVlKSkgfHwodGhpcy50eXBlID09IDEyICYmIHNpemUodGhpcy5lbnVtX211bHRpX3ZhbHVlKSA+IDApIHx8ICh0aGlzLnR5cGUgPT0gMTMgJiYgaGFzKHRoaXMuaWNvbl92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMTQgJiYgaGFzKHRoaXMuYXNzZXRfaWRfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDE1ICYmIGhhcyh0aGlzLndvcmtlcl9pZF92YWx1ZSkpKSLTAQoKYm9vbF92YWx1ZQoJaW50X3ZhbHVlCgtmbG9hdF92YWx1ZQoMZG91YmxlX3ZhbHVlCgxzdHJpbmdfdmFsdWUKDXZlY3RvcjNfdmFsdWUKCnBvc2VfdmFsdWUKDGFuY2hvcl92YWx1ZQoLY29sb3JfdmFsdWUKDnJvYm90X2lkX3ZhbHVlCgplbnVtX3ZhbHVlChBlbnVtX211bHRpX3ZhbHVlCgppY29uX3ZhbHVlCg5hc3NldF9pZF92YWx1ZQoPd29ya2VyX2lkX3ZhbHVlEAFCDQoLX2Jvb2xfdmFsdWVCDAoKX2ludF92YWx1ZUIOCgxfZmxvYXRfdmFsdWVCDwoNX2RvdWJsZV92YWx1ZUIPCg1fc3RyaW5nX3ZhbHVlQhEKD19yb2JvdF9pZF92YWx1ZUINCgtfZW51bV92YWx1ZUINCgtfaWNvbl92YWx1ZUIRCg9fYXNzZXRfaWRfdmFsdWVCEgoQX3dvcmtlcl9pZF92YWx1ZSLnAwoWUHJvcGVydHlJbnN0YW5jZVVwZGF0ZRInChRwcm9wZXJ0eV9pbnN0YW5jZV9pZBgBIAEoCUIJukgGcgSY8wQBEjMKBm9yaWdpbhgCIAEoDjIZLmNvbW1vbi52MS5Qcm9wZXJ0eU9yaWdpbkIIukgFggECEAESMAodbWlycm9yX3Byb3BlcnR5X2RlZmluaXRpb25faWQYAyABKAlCCbpIBnIEmPEEARIvCgV2YWx1ZRgEIAEoCzIYLmNvbW1vbi52MS5Qcm9wZXJ0eVZhbHVlQga6SAPIAQE6iwK6SIcCGmoKG2ZpeGVkX29yaWdpbl9yZXF1aXJlc192YWx1ZRImdmFsdWUgbXVzdCBiZSBzZXQgd2hlbiBvcmlnaW4gaXMgRklYRUQaI3RoaXMub3JpZ2luICE9IDEgfHwgaGFzKHRoaXMudmFsdWUpGpgBCiJtaXJyb3JfcmVxdWlyZXNfbWlycm9yX3Byb3BlcnR5X2lkEjRtaXJyb3JfcHJvcGVydHlfaWQgbXVzdCBiZSBzZXQgd2hlbiBvcmlnaW4gaXMgTUlSUk9SGjx0aGlzLm9yaWdpbiAhPSAyIHx8IHRoaXMubWlycm9yX3Byb3BlcnR5X2RlZmluaXRpb25faWQgIT0gJyciQwoTUHJvcGVydHlEZWZpbml0aW9ucxIsCgVpdGVtcxgBIAMoCzIdLmNvbW1vbi52MS5Qcm9wZXJ0eURlZmluaXRpb24iPwoRUHJvcGVydHlJbnN0YW5jZXMSKgoFaXRlbXMYASADKAsyGy5jb21tb24udjEuUHJvcGVydHlJbnN0YW5jZSLGAwoMTnVtYmVyRXh0cmFzEhAKA21pbhgBIAEoAUgAiAEBEhAKA21heBgCIAEoAUgBiAEBEiEKBHN0ZXAYAyABKAFCDrpICxIJIQAAAAAAAAAASAKIAQESFQoEdW5pdBgEIAEoCUIHukgEcgIYAxIaCglwcmVjaXNpb24YBSABKA1CB7pIBCoCKAA6ogK6SJ4CGpsCChhudW1iZXJfZXh0cmFzX2NvbnNpc3RlbnQSVElmIGFueSBvZiBtaW4vbWF4L3N0ZXAgaXMgc2V0LCBhbGwgbXVzdCBiZSBzZXQ7IGFuZCBtaW4gPCBtYXg7IGFuZCBzdGVwIDw9IChtYXgtbWluKRqoASghaGFzKHRoaXMubWluKSAmJiAhaGFzKHRoaXMubWF4KSAmJiAhaGFzKHRoaXMuc3RlcCkpIHx8IChoYXModGhpcy5taW4pICYmIGhhcyh0aGlzLm1heCkgJiYgaGFzKHRoaXMuc3RlcCkgJiYgdGhpcy5taW4gPCB0aGlzLm1heCAmJiB0aGlzLnN0ZXAgPD0gKHRoaXMubWF4IC0gdGhpcy5taW4pKUIGCgRfbWluQgYKBF9tYXhCBwoFX3N0ZXAiawoKRW51bU9wdGlvbhIWCgV2YWx1ZRgBIAEoCUIHukgEcgIQARIWCgVsYWJlbBgCIAEoCUIHukgEcgIQARIMCgRpY29uGAMgASgJEg0KBWdyb3VwGAQgASgJEhAKCGRpc2FibGVkGAUgASgIIqUBCgpFbnVtRXh0cmFzEhMKC3BsYWNlaG9sZGVyGAEgASgJEg4KBmZpbHRlchgCIAEoCBIPCgdncm91cGVkGAMgASgIEhIKCnNob3dfaWNvbnMYBCABKAgSGwoTbWF4X3NlbGVjdGVkX2xhYmVscxgFIAEoDRIwCgdvcHRpb25zGAYgAygLMhUuY29tbW9uLnYxLkVudW1PcHRpb25CCLpIBZIBAggBIvkDCg1WZWN0b3IzRXh0cmFzEhAKA21pbhgBIAEoAUgAiAEBEhAKA21heBgCIAEoAUgBiAEBEiEKBHN0ZXAYAyABKAFCDrpICxIJIQAAAAAAAAAASAKIAQESGAoHbGFiZWxfeBgEIAEoCUIHukgEcgIYBRIYCgdsYWJlbF95GAUgASgJQge6SARyAhgFEhgKB2xhYmVsX3oYBiABKAlCB7pIBHICGAUSFQoEdW5pdBgHIAEoCUIHukgEcgIYAzqiArpIngIamwIKGG51bWJlcl9leHRyYXNfY29uc2lzdGVudBJUSWYgYW55IG9mIG1pbi9tYXgvc3RlcCBpcyBzZXQsIGFsbCBtdXN0IGJlIHNldDsgYW5kIG1pbiA8IG1heDsgYW5kIHN0ZXAgPD0gKG1heC1taW4pGqgBKCFoYXModGhpcy5taW4pICYmICFoYXModGhpcy5tYXgpICYmICFoYXModGhpcy5zdGVwKSkgfHwgKGhhcyh0aGlzLm1pbikgJiYgaGFzKHRoaXMubWF4KSAmJiBoYXModGhpcy5zdGVwKSAmJiB0aGlzLm1pbiA8IHRoaXMubWF4ICYmIHRoaXMuc3RlcCA8PSAodGhpcy5tYXggLSB0aGlzLm1pbikpQgYKBF9taW5CBgoEX21heEIHCgVfc3RlcCJOCgtDb2xvckV4dHJhcxIcCgRzdGVwGAEgASgBQg66SAsSCSkAAAAAAAAAABIhCgdkZWZhdWx0GAIgASgLMhAuY29tbW9uLnYxLkNvbG9yIiQKDEFuY2hvckV4dHJhcxIUCgxvbmx5X21hcmtlcnMYASABKAgiPAoKUG9zZUV4dHJhcxIXCg9hbmNob3JfZWRpdGFibGUYASABKAgSFQoNcG9zZV9lZGl0YWJsZRgCIAEoCCLHCgoVQ3JlYXRlUHJvcGVydHlNZXNzYWdlEhEKCXBhcmVudF9pZBgBIAEoCRIcChRhdXRob3JpbmdfY29udGV4dF9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEgwKBGljb24YBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSMgoEdHlwZRgGIAEoDjIXLmNvbW1vbi52MS5Qcm9wZXJ0eVR5cGVCC7pICMgBAYIBAhABEjQKBXNjb3BlGAcgASgOMhguY29tbW9uLnYxLlByb3BlcnR5U2NvcGVCC7pICMgBAYIBAhABEkIKG21pbmltdW1fcmVxdWlyZWRfcGVybWlzc2lvbhgIIAEoDjIdLmNvbW1vbi52MS5Qcm9wZXJ0eVBlcm1pc3Npb24SMgoPYWxsb3dlZF9vcmlnaW5zGAkgAygOMhkuY29tbW9uLnYxLlByb3BlcnR5T3JpZ2luEicKBWdyb3VwGAogASgOMhguY29tbW9uLnYxLlByb3BlcnR5R3JvdXASEAoIb3JkZXJpbmcYCyABKAUSEgoKaGlkZV9ncm91cBgMIAEoCBIQCghhZHZhbmNlZBgNIAEoCBIcChRhbGxvd190b19iZV9taXJyb3JlZBgOIAEoCBJACg1zZW1hbnRpY19yb2xlGBAgASgOMh8uY29tbW9uLnYxLlByb3BlcnR5U2VtYW50aWNSb2xlQgi6SAWCAQIQARI3CgNrZXkYESABKAlCKrpIJ3IlEAEYQDIfXlthLXpdW2EtejAtOV0qKD86X1thLXowLTldKykqJBI2CgZvcmlnaW4YFCABKA4yGS5jb21tb24udjEuUHJvcGVydHlPcmlnaW5CC7pICMgBAYIBAhABEhAKCHNjb3BlX2lkGBUgASgJEjAKHW1pcnJvcl9wcm9wZXJ0eV9kZWZpbml0aW9uX2lkGBYgASgJQgm6SAZyBJjxBAESNwoNaW5pdGlhbF92YWx1ZRgXIAEoCzIYLmNvbW1vbi52MS5Qcm9wZXJ0eVZhbHVlQga6SAPIAQESMAoNbnVtYmVyX2V4dHJhcxgpIAEoCzIXLmNvbW1vbi52MS5OdW1iZXJFeHRyYXNIABIsCgtlbnVtX2V4dHJhcxgqIAEoCzIVLmNvbW1vbi52MS5FbnVtRXh0cmFzSAASMgoOdmVjdG9yM19leHRyYXMYKyABKAsyGC5jb21tb24udjEuVmVjdG9yM0V4dHJhc0gAEi4KDGNvbG9yX2V4dHJhcxgsIAEoCzIWLmNvbW1vbi52MS5Db2xvckV4dHJhc0gAEiwKC3Bvc2VfZXh0cmFzGC0gASgLMhUuY29tbW9uLnYxLlBvc2VFeHRyYXNIABIwCg1hbmNob3JfZXh0cmFzGC4gASgLMhcuY29tbW9uLnYxLkFuY2hvckV4dHJhc0gAOowCukiIAhpsCiBkZWZpbml0aW9uX2FuZF92YWx1ZV90eXBlc19tYXRjaBIidHlwZSBtdXN0IG1hdGNoIGluaXRpYWxfdmFsdWUudHlwZRokdGhpcy50eXBlID09IHRoaXMuaW5pdGlhbF92YWx1ZS50eXBlGpcBChptaXJyb3JfcmVxdWlyZXNfZGVmaW5pdGlvbhI7bWlycm9yX3Byb3BlcnR5X2RlZmluaXRpb25faWQgaXMgcmVxdWlyZWQgZm9yIE1JUlJPUiBvcmlnaW4aPHRoaXMub3JpZ2luICE9IDIgfHwgdGhpcy5taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZCAhPSAnJ0IICgZleHRyYXMqqQMKDFByb3BlcnR5VHlwZRIdChlQUk9QRVJUWV9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSUFJPUEVSVFlfVFlQRV9CT09MEAESFQoRUFJPUEVSVFlfVFlQRV9JTlQQAhIXChNQUk9QRVJUWV9UWVBFX0ZMT0FUEAMSGAoUUFJPUEVSVFlfVFlQRV9ET1VCTEUQBBIYChRQUk9QRVJUWV9UWVBFX1NUUklORxAFEhkKFVBST1BFUlRZX1RZUEVfVkVDVE9SMxAGEhYKElBST1BFUlRZX1RZUEVfUE9TRRAHEhgKFFBST1BFUlRZX1RZUEVfQU5DSE9SEAgSFwoTUFJPUEVSVFlfVFlQRV9DT0xPUhAJEhcKE1BST1BFUlRZX1RZUEVfUk9CT1QQChIWChJQUk9QRVJUWV9UWVBFX0VOVU0QCxIcChhQUk9QRVJUWV9UWVBFX0VOVU1fTVVMVEkQDBIWChJQUk9QRVJUWV9UWVBFX0lDT04QDRIXChNQUk9QRVJUWV9UWVBFX0FTU0VUEA4SGAoUUFJPUEVSVFlfVFlQRV9XT1JLRVIQDypoCg5Qcm9wZXJ0eU9yaWdpbhIfChtQUk9QRVJUWV9PUklHSU5fVU5TUEVDSUZJRUQQABIZChVQUk9QRVJUWV9PUklHSU5fRklYRUQQARIaChZQUk9QRVJUWV9PUklHSU5fTUlSUk9SEAIq3AIKDVByb3BlcnR5R3JvdXASHgoaUFJPUEVSVFlfR1JPVVBfVU5TUEVDSUZJRUQQABIZChVQUk9QRVJUWV9HUk9VUF9PVVRQVVQQARIfChtQUk9QRVJUWV9HUk9VUF9OT05fRURJVEFCTEUQAhIaChZQUk9QRVJUWV9HUk9VUF9TVFlMSU5HEAMSGwoXUFJPUEVSVFlfR1JPVVBfTE9DQVRJT04QBBIXChNQUk9QRVJUWV9HUk9VUF9JQ09OEAUSIAocUFJPUEVSVFlfR1JPVVBfQ09ORklHVVJBVElPThAGEhkKFVBST1BFUlRZX0dST1VQX0hJRERFThAHEh0KGVBST1BFUlRZX0dST1VQX0lOUFVUX1NMT1QQCBIcChhQUk9QRVJUWV9HUk9VUF9BTklNQVRJT04QCRIjCh9QUk9QRVJUWV9HUk9VUF9UQVJHRVRfSU5ESUNBVE9SEAoqtgEKElByb3BlcnR5UGVybWlzc2lvbhIjCh9QUk9QRVJUWV9QRVJNSVNTSU9OX1VOU1BFQ0lGSUVEEAASHQoZUFJPUEVSVFlfUEVSTUlTU0lPTl9CQVNJQxAKEiAKHFBST1BFUlRZX1BFUk1JU1NJT05fQ09TTUVUSUMQFBIcChhQUk9QRVJUWV9QRVJNSVNTSU9OX0ZVTEwQHhIcChhQUk9QRVJUWV9QRVJNSVNTSU9OX05PTkUQKCrpDwoUUHJvcGVydHlTZW1hbnRpY1JvbGUSJgoiUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9VTlNQRUNJRklFRBAAEjEKLVBST1BFUlRZX1NFTUFOVElDX1JPTEVfUEFORUxfQkFDS0dST1VORF9DT0xPUhABEisKJ1BST1BFUlRZX1NFTUFOVElDX1JPTEVfUEFORUxfVEVYVF9DT0xPUhACEi0KKVBST1BFUlRZX1NFTUFOVElDX1JPTEVfUEFORUxfQk9SREVSX0NPTE9SEAMSKAokUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9QQU5FTF9PUEFDSVRZEAQSLgoqUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9QQU5FTF9DT1JORVJfUkFESVVTEAUSLQopUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9QUklNQVJZX1RFWFRfQ09MT1IQFBIvCitQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1NFQ09OREFSWV9URVhUX0NPTE9SEBUSJAogUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9URVhUX1NJWkUQFhIqCiZQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1RJVExFX1RFWFRfU0laRRAXEicKI1BST1BFUlRZX1NFTUFOVElDX1JPTEVfQUNDRU5UX0NPTE9SECgSKAokUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9TVUNDRVNTX0NPTE9SECkSKAokUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9XQVJOSU5HX0NPTE9SECoSJgoiUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9FUlJPUl9DT0xPUhArEikKJVBST1BFUlRZX1NFTUFOVElDX1JPTEVfRElTQUJMRURfQ09MT1IQLBItCilQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX0NVUlJFTlRfVEFTS19DT0xPUhA8Ei4KKlBST1BFUlRZX1NFTUFOVElDX1JPTEVfVVBDT01JTkdfVEFTS19DT0xPUhA9Ei8KK1BST1BFUlRZX1NFTUFOVElDX1JPTEVfQ09NUExFVEVEX1RBU0tfQ09MT1IQPhItCilQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX0JMT0NLRURfVEFTS19DT0xPUhA/Ei4KKlBST1BFUlRZX1NFTUFOVElDX1JPTEVfT1BUSU9OQUxfVEFTS19DT0xPUhBAEikKJVBST1BFUlRZX1NFTUFOVElDX1JPTEVfT1BFUkFUT1JfQ09MT1IQUBImCiJQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1JPQk9UX0NPTE9SEFESLAooUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9TSEFSRURfVEFTS19DT0xPUhBSEisKJ1BST1BFUlRZX1NFTUFOVElDX1JPTEVfU1VQRVJWSVNPUl9DT0xPUhBTEiUKIVBST1BFUlRZX1NFTUFOVElDX1JPTEVfUEFSVF9DT0xPUhBkEiUKIVBST1BFUlRZX1NFTUFOVElDX1JPTEVfVE9PTF9DT0xPUhBlEiYKIlBST1BFUlRZX1NFTUFOVElDX1JPTEVfQVNTRVRfQ09MT1IQZhIqCiZQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX0NPTlRBSU5FUl9DT0xPUhBnEi0KKVBST1BFUlRZX1NFTUFOVElDX1JPTEVfVEFSR0VUX0dIT1NUX0NPTE9SEHgSMQotUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9UQVJHRVRfSElHSExJR0hUX0NPTE9SEHkSJQohUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9QQVRIX0NPTE9SEHoSJQohUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9aT05FX0NPTE9SEHsSJwojUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9BTkNIT1JfQ09MT1IQfBIsCidQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1JPQk9UX1BBVEhfQ09MT1IQjAESMgotUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9ST0JPVF9TSUxIT1VFVFRFX0NPTE9SEI0BEi4KKVBST1BFUlRZX1NFTUFOVElDX1JPTEVfUk9CT1RfSU5URU5UX0NPTE9SEI4BEjEKLFBST1BFUlRZX1NFTUFOVElDX1JPTEVfUk9CT1RfT0NDVVBBTkNZX0NPTE9SEI8BEikKJFBST1BFUlRZX1NFTUFOVElDX1JPTEVfU1VDQ0VTU19TT1VORBCgARIpCiRQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1dBUk5JTkdfU09VTkQQoQESJwoiUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9FUlJPUl9TT1VORBCiARItCihQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX05PVElGSUNBVElPTl9JQ09OEKMBEioKJVBST1BFUlRZX1NFTUFOVElDX1JPTEVfUFVMU0VfRFVSQVRJT04QtAESKQokUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9GQURFX0RVUkFUSU9OELUBEisKJlBST1BFUlRZX1NFTUFOVElDX1JPTEVfQU5JTUFUSU9OX1NQRUVEELYBEi8KKlBST1BFUlRZX1NFTUFOVElDX1JPTEVfSElHSExJR0hUX1RISUNLTkVTUxC3ASpmCg1Qcm9wZXJ0eVNjb3BlEh4KGlBST1BFUlRZX1NDT1BFX1VOU1BFQ0lGSUVEEAASGQoVUFJPUEVSVFlfU0NPUEVfRU5USVRZEAESGgoWUFJPUEVSVFlfU0NPUEVfUlVOVElNRRACQqUBCg1jb20uY29tbW9uLnYxQg1Qcm9wZXJ0eVByb3RvUAFaN2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9jb21tb24vdjE7Y29tbW9udjGiAgNDWFiqAhJNZXNzYWdlcy5Db21tb24uVjHKAglDb21tb25cVjHiAhVDb21tb25cVjFcR1BCTWV0YWRhdGHqAgpDb21tb246OlYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_color, file_geometry_v1_anchor, file_geometry_v1_pose, file_geometry_v1_vector3, file_validation_v1_predefined_string_rules]);
23
+ fileDesc("Chhjb21tb24vdjEvcHJvcGVydHkucHJvdG8SCWNvbW1vbi52MSL2CAoSUHJvcGVydHlEZWZpbml0aW9uEhUKAmlkGAEgASgJQgm6SAZyBJjxBAESFgoDa2V5GBEgASgJQgm6SAZyBODzBAESDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEjIKBHR5cGUYBSABKA4yFy5jb21tb24udjEuUHJvcGVydHlUeXBlQgu6SAjIAQGCAQIQARIRCglwYXJlbnRfaWQYBiABKAkSHAoUYXV0aG9yaW5nX2NvbnRleHRfaWQYByABKAkSMQoFc2NvcGUYCCABKA4yGC5jb21tb24udjEuUHJvcGVydHlTY29wZUIIukgFggECEAESTAobbWluaW11bV9yZXF1aXJlZF9wZXJtaXNzaW9uGAkgASgOMh0uY29tbW9uLnYxLlByb3BlcnR5UGVybWlzc2lvbkIIukgFggECEAESQQoPYWxsb3dlZF9vcmlnaW5zGAogAygOMhkuY29tbW9uLnYxLlByb3BlcnR5T3JpZ2luQg26SAqSAQciBYIBAhABEjEKBWdyb3VwGAsgASgOMhguY29tbW9uLnYxLlByb3BlcnR5R3JvdXBCCLpIBYIBAhABEhAKCG9yZGVyaW5nGAwgASgFEhIKCmhpZGVfZ3JvdXAYDSABKAgSEAoIYWR2YW5jZWQYDiABKAgSHAoUYWxsb3dfdG9fYmVfbWlycm9yZWQYDyABKAgSQAoNc2VtYW50aWNfcm9sZRgQIAEoDjIfLmNvbW1vbi52MS5Qcm9wZXJ0eVNlbWFudGljUm9sZUIIukgFggECEAESLgoNbnVtYmVyX2V4dHJhcxgpIAEoCzIXLmNvbW1vbi52MS5OdW1iZXJFeHRyYXMSKgoLZW51bV9leHRyYXMYKiABKAsyFS5jb21tb24udjEuRW51bUV4dHJhcxIwCg52ZWN0b3IzX2V4dHJhcxgrIAEoCzIYLmNvbW1vbi52MS5WZWN0b3IzRXh0cmFzEiwKDGNvbG9yX2V4dHJhcxgsIAEoCzIWLmNvbW1vbi52MS5Db2xvckV4dHJhcxIqCgtwb3NlX2V4dHJhcxgtIAEoCzIVLmNvbW1vbi52MS5Qb3NlRXh0cmFzEi4KDWFuY2hvcl9leHRyYXMYLiABKAsyFy5jb21tb24udjEuQW5jaG9yRXh0cmFzOvMBukjvARqUAQoZZW51bV9yZXF1aXJlc19lbnVtX2V4dHJhcxI3ZW51bV9leHRyYXMgbXVzdCBiZSBzZXQgd2hlbiB0eXBlIGlzIEVOVU0gb3IgRU5VTV9NVUxUSRo+ISh0aGlzLnR5cGUgPT0gMTEgfHwgdGhpcy50eXBlID09IDEyKSB8fCBoYXModGhpcy5lbnVtX2V4dHJhcykiVgoNbnVtYmVyX2V4dHJhcwoLZW51bV9leHRyYXMKDnZlY3RvcjNfZXh0cmFzCgxjb2xvcl9leHRyYXMKC3Bvc2VfZXh0cmFzCg1hbmNob3JfZXh0cmFzIskDChBQcm9wZXJ0eUluc3RhbmNlEhUKAmlkGAEgASgJQgm6SAZyBJjzBAESKQoWcHJvcGVydHlfZGVmaW5pdGlvbl9pZBgCIAEoCUIJukgGcgSY8QQBEicKBXNjb3BlGAMgASgOMhguY29tbW9uLnYxLlByb3BlcnR5U2NvcGUSEAoIc2NvcGVfaWQYBCABKAkSMwoGb3JpZ2luGAUgASgOMhkuY29tbW9uLnYxLlByb3BlcnR5T3JpZ2luQgi6SAWCAQIQARIwCh1taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZBgGIAEoCUIJukgGcgSY8QQBEi8KBXZhbHVlGAcgASgLMhguY29tbW9uLnYxLlByb3BlcnR5VmFsdWVCBrpIA8gBATqfAbpImwEamAEKIm1pcnJvcl9yZXF1aXJlc19taXJyb3JfcHJvcGVydHlfaWQSNG1pcnJvcl9wcm9wZXJ0eV9pZCBtdXN0IGJlIHNldCB3aGVuIG9yaWdpbiBpcyBNSVJST1IaPHRoaXMub3JpZ2luICE9IDIgfHwgdGhpcy5taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZCAhPSAnJyK9DQoNUHJvcGVydHlWYWx1ZRIyCgR0eXBlGAEgASgOMhcuY29tbW9uLnYxLlByb3BlcnR5VHlwZUILukgIyAEBggECEAESFwoKYm9vbF92YWx1ZRgVIAEoCEgAiAEBEhYKCWludF92YWx1ZRgWIAEoEkgBiAEBEhgKC2Zsb2F0X3ZhbHVlGBcgASgCSAKIAQESGQoMZG91YmxlX3ZhbHVlGBggASgBSAOIAQESGQoMc3RyaW5nX3ZhbHVlGBkgASgJSASIAQESKwoNdmVjdG9yM192YWx1ZRgaIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMSLgoKcG9zZV92YWx1ZRgbIAEoCzIaLmdlb21ldHJ5LnYxLkxvY2FsaXplZFBvc2USKQoMYW5jaG9yX3ZhbHVlGBwgASgLMhMuZ2VvbWV0cnkudjEuQW5jaG9yEiUKC2NvbG9yX3ZhbHVlGB0gASgLMhAuY29tbW9uLnYxLkNvbG9yEhsKDnJvYm90X2lkX3ZhbHVlGB4gASgJSAWIAQESIAoKZW51bV92YWx1ZRgfIAEoCUIHukgEcgIQAUgGiAEBEigKEGVudW1fbXVsdGlfdmFsdWUYICADKAlCDrpIC5IBCAgBIgRyAhABEhcKCmljb25fdmFsdWUYISABKAlIB4gBARIbCg5hc3NldF9pZF92YWx1ZRgiIAEoCUgIiAEBEhwKD3dvcmtlcl9pZF92YWx1ZRgjIAEoCUgJiAEBOuMHukjfBxqGBgogcHJvcGVydHlfdHlwZV9tYXRjaGVzX3ZhbHVlX2tpbmQSJ3R5cGUgbXVzdCBtYXRjaCB0aGUga2luZCBvZiB2YWx1ZSBmaWVsZBq4BSgodGhpcy50eXBlID09IDEgJiYgaGFzKHRoaXMuYm9vbF92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMiAmJiBoYXModGhpcy5pbnRfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDMgJiYgaGFzKHRoaXMuZmxvYXRfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDQgJiYgaGFzKHRoaXMuZG91YmxlX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSA1ICYmIGhhcyh0aGlzLnN0cmluZ192YWx1ZSkpIHx8KHRoaXMudHlwZSA9PSA2ICYmIGhhcyh0aGlzLnZlY3RvcjNfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDcgJiYgaGFzKHRoaXMucG9zZV92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gOCAmJiBoYXModGhpcy5hbmNob3JfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDkgJiYgaGFzKHRoaXMuY29sb3JfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDEwICYmIGhhcyh0aGlzLnJvYm90X2lkX3ZhbHVlKSkgfHwgKHRoaXMudHlwZSA9PSAxMSAmJiBoYXModGhpcy5lbnVtX3ZhbHVlKSkgfHwodGhpcy50eXBlID09IDEyICYmIHNpemUodGhpcy5lbnVtX211bHRpX3ZhbHVlKSA+IDApIHx8ICh0aGlzLnR5cGUgPT0gMTMgJiYgaGFzKHRoaXMuaWNvbl92YWx1ZSkpIHx8ICh0aGlzLnR5cGUgPT0gMTQgJiYgaGFzKHRoaXMuYXNzZXRfaWRfdmFsdWUpKSB8fCAodGhpcy50eXBlID09IDE1ICYmIGhhcyh0aGlzLndvcmtlcl9pZF92YWx1ZSkpKSLTAQoKYm9vbF92YWx1ZQoJaW50X3ZhbHVlCgtmbG9hdF92YWx1ZQoMZG91YmxlX3ZhbHVlCgxzdHJpbmdfdmFsdWUKDXZlY3RvcjNfdmFsdWUKCnBvc2VfdmFsdWUKDGFuY2hvcl92YWx1ZQoLY29sb3JfdmFsdWUKDnJvYm90X2lkX3ZhbHVlCgplbnVtX3ZhbHVlChBlbnVtX211bHRpX3ZhbHVlCgppY29uX3ZhbHVlCg5hc3NldF9pZF92YWx1ZQoPd29ya2VyX2lkX3ZhbHVlEAFCDQoLX2Jvb2xfdmFsdWVCDAoKX2ludF92YWx1ZUIOCgxfZmxvYXRfdmFsdWVCDwoNX2RvdWJsZV92YWx1ZUIPCg1fc3RyaW5nX3ZhbHVlQhEKD19yb2JvdF9pZF92YWx1ZUINCgtfZW51bV92YWx1ZUINCgtfaWNvbl92YWx1ZUIRCg9fYXNzZXRfaWRfdmFsdWVCEgoQX3dvcmtlcl9pZF92YWx1ZSLnAwoWUHJvcGVydHlJbnN0YW5jZVVwZGF0ZRInChRwcm9wZXJ0eV9pbnN0YW5jZV9pZBgBIAEoCUIJukgGcgSY8wQBEjMKBm9yaWdpbhgCIAEoDjIZLmNvbW1vbi52MS5Qcm9wZXJ0eU9yaWdpbkIIukgFggECEAESMAodbWlycm9yX3Byb3BlcnR5X2RlZmluaXRpb25faWQYAyABKAlCCbpIBnIEmPEEARIvCgV2YWx1ZRgEIAEoCzIYLmNvbW1vbi52MS5Qcm9wZXJ0eVZhbHVlQga6SAPIAQE6iwK6SIcCGmoKG2ZpeGVkX29yaWdpbl9yZXF1aXJlc192YWx1ZRImdmFsdWUgbXVzdCBiZSBzZXQgd2hlbiBvcmlnaW4gaXMgRklYRUQaI3RoaXMub3JpZ2luICE9IDEgfHwgaGFzKHRoaXMudmFsdWUpGpgBCiJtaXJyb3JfcmVxdWlyZXNfbWlycm9yX3Byb3BlcnR5X2lkEjRtaXJyb3JfcHJvcGVydHlfaWQgbXVzdCBiZSBzZXQgd2hlbiBvcmlnaW4gaXMgTUlSUk9SGjx0aGlzLm9yaWdpbiAhPSAyIHx8IHRoaXMubWlycm9yX3Byb3BlcnR5X2RlZmluaXRpb25faWQgIT0gJyciQwoTUHJvcGVydHlEZWZpbml0aW9ucxIsCgVpdGVtcxgBIAMoCzIdLmNvbW1vbi52MS5Qcm9wZXJ0eURlZmluaXRpb24iPwoRUHJvcGVydHlJbnN0YW5jZXMSKgoFaXRlbXMYASADKAsyGy5jb21tb24udjEuUHJvcGVydHlJbnN0YW5jZSKlAwoMTnVtYmVyRXh0cmFzEhAKA21pbhgBIAEoAUgAiAEBEhAKA21heBgCIAEoAUgBiAEBEiEKBHN0ZXAYAyABKAFCDrpICxIJIQAAAAAAAAAASAKIAQESFQoEdW5pdBgEIAEoCUIHukgEcgIYAxIaCglwcmVjaXNpb24YBSABKA1CB7pIBCoCKAA6gQK6SP0BGvoBChhudW1iZXJfZXh0cmFzX2NvbnNpc3RlbnQSQ21pbiBtdXN0IGJlIGxlc3MgdGhhbiBtYXgsIGFuZCBzdGVwIG11c3Qgbm90IGV4Y2VlZCBhIGJvdW5kZWQgcmFuZ2UamAEoIWhhcyh0aGlzLm1pbikgfHwgIWhhcyh0aGlzLm1heCkgfHwgdGhpcy5taW4gPCB0aGlzLm1heCkgJiYgKCFoYXModGhpcy5zdGVwKSB8fCAhaGFzKHRoaXMubWluKSB8fCAhaGFzKHRoaXMubWF4KSB8fCB0aGlzLnN0ZXAgPD0gKHRoaXMubWF4IC0gdGhpcy5taW4pKUIGCgRfbWluQgYKBF9tYXhCBwoFX3N0ZXAiawoKRW51bU9wdGlvbhIWCgV2YWx1ZRgBIAEoCUIHukgEcgIQARIWCgVsYWJlbBgCIAEoCUIHukgEcgIQARIMCgRpY29uGAMgASgJEg0KBWdyb3VwGAQgASgJEhAKCGRpc2FibGVkGAUgASgIIqUBCgpFbnVtRXh0cmFzEhMKC3BsYWNlaG9sZGVyGAEgASgJEg4KBmZpbHRlchgCIAEoCBIPCgdncm91cGVkGAMgASgIEhIKCnNob3dfaWNvbnMYBCABKAgSGwoTbWF4X3NlbGVjdGVkX2xhYmVscxgFIAEoDRIwCgdvcHRpb25zGAYgAygLMhUuY29tbW9uLnYxLkVudW1PcHRpb25CCLpIBZIBAggBItgDCg1WZWN0b3IzRXh0cmFzEhAKA21pbhgBIAEoAUgAiAEBEhAKA21heBgCIAEoAUgBiAEBEiEKBHN0ZXAYAyABKAFCDrpICxIJIQAAAAAAAAAASAKIAQESGAoHbGFiZWxfeBgEIAEoCUIHukgEcgIYBRIYCgdsYWJlbF95GAUgASgJQge6SARyAhgFEhgKB2xhYmVsX3oYBiABKAlCB7pIBHICGAUSFQoEdW5pdBgHIAEoCUIHukgEcgIYAzqBArpI/QEa+gEKGG51bWJlcl9leHRyYXNfY29uc2lzdGVudBJDbWluIG11c3QgYmUgbGVzcyB0aGFuIG1heCwgYW5kIHN0ZXAgbXVzdCBub3QgZXhjZWVkIGEgYm91bmRlZCByYW5nZRqYASghaGFzKHRoaXMubWluKSB8fCAhaGFzKHRoaXMubWF4KSB8fCB0aGlzLm1pbiA8IHRoaXMubWF4KSAmJiAoIWhhcyh0aGlzLnN0ZXApIHx8ICFoYXModGhpcy5taW4pIHx8ICFoYXModGhpcy5tYXgpIHx8IHRoaXMuc3RlcCA8PSAodGhpcy5tYXggLSB0aGlzLm1pbikpQgYKBF9taW5CBgoEX21heEIHCgVfc3RlcCJOCgtDb2xvckV4dHJhcxIcCgRzdGVwGAEgASgBQg66SAsSCSkAAAAAAAAAABIhCgdkZWZhdWx0GAIgASgLMhAuY29tbW9uLnYxLkNvbG9yIiQKDEFuY2hvckV4dHJhcxIUCgxvbmx5X21hcmtlcnMYASABKAgiPAoKUG9zZUV4dHJhcxIXCg9hbmNob3JfZWRpdGFibGUYASABKAgSFQoNcG9zZV9lZGl0YWJsZRgCIAEoCCKmCgoVQ3JlYXRlUHJvcGVydHlNZXNzYWdlEhEKCXBhcmVudF9pZBgBIAEoCRIcChRhdXRob3JpbmdfY29udGV4dF9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEgwKBGljb24YBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSMgoEdHlwZRgGIAEoDjIXLmNvbW1vbi52MS5Qcm9wZXJ0eVR5cGVCC7pICMgBAYIBAhABEjQKBXNjb3BlGAcgASgOMhguY29tbW9uLnYxLlByb3BlcnR5U2NvcGVCC7pICMgBAYIBAhABEkIKG21pbmltdW1fcmVxdWlyZWRfcGVybWlzc2lvbhgIIAEoDjIdLmNvbW1vbi52MS5Qcm9wZXJ0eVBlcm1pc3Npb24SMgoPYWxsb3dlZF9vcmlnaW5zGAkgAygOMhkuY29tbW9uLnYxLlByb3BlcnR5T3JpZ2luEicKBWdyb3VwGAogASgOMhguY29tbW9uLnYxLlByb3BlcnR5R3JvdXASEAoIb3JkZXJpbmcYCyABKAUSEgoKaGlkZV9ncm91cBgMIAEoCBIQCghhZHZhbmNlZBgNIAEoCBIcChRhbGxvd190b19iZV9taXJyb3JlZBgOIAEoCBJACg1zZW1hbnRpY19yb2xlGBAgASgOMh8uY29tbW9uLnYxLlByb3BlcnR5U2VtYW50aWNSb2xlQgi6SAWCAQIQARIWCgNrZXkYESABKAlCCbpIBnIE4PMEARI2CgZvcmlnaW4YFCABKA4yGS5jb21tb24udjEuUHJvcGVydHlPcmlnaW5CC7pICMgBAYIBAhABEhAKCHNjb3BlX2lkGBUgASgJEjAKHW1pcnJvcl9wcm9wZXJ0eV9kZWZpbml0aW9uX2lkGBYgASgJQgm6SAZyBJjxBAESNwoNaW5pdGlhbF92YWx1ZRgXIAEoCzIYLmNvbW1vbi52MS5Qcm9wZXJ0eVZhbHVlQga6SAPIAQESMAoNbnVtYmVyX2V4dHJhcxgpIAEoCzIXLmNvbW1vbi52MS5OdW1iZXJFeHRyYXNIABIsCgtlbnVtX2V4dHJhcxgqIAEoCzIVLmNvbW1vbi52MS5FbnVtRXh0cmFzSAASMgoOdmVjdG9yM19leHRyYXMYKyABKAsyGC5jb21tb24udjEuVmVjdG9yM0V4dHJhc0gAEi4KDGNvbG9yX2V4dHJhcxgsIAEoCzIWLmNvbW1vbi52MS5Db2xvckV4dHJhc0gAEiwKC3Bvc2VfZXh0cmFzGC0gASgLMhUuY29tbW9uLnYxLlBvc2VFeHRyYXNIABIwCg1hbmNob3JfZXh0cmFzGC4gASgLMhcuY29tbW9uLnYxLkFuY2hvckV4dHJhc0gAOowCukiIAhpsCiBkZWZpbml0aW9uX2FuZF92YWx1ZV90eXBlc19tYXRjaBIidHlwZSBtdXN0IG1hdGNoIGluaXRpYWxfdmFsdWUudHlwZRokdGhpcy50eXBlID09IHRoaXMuaW5pdGlhbF92YWx1ZS50eXBlGpcBChptaXJyb3JfcmVxdWlyZXNfZGVmaW5pdGlvbhI7bWlycm9yX3Byb3BlcnR5X2RlZmluaXRpb25faWQgaXMgcmVxdWlyZWQgZm9yIE1JUlJPUiBvcmlnaW4aPHRoaXMub3JpZ2luICE9IDIgfHwgdGhpcy5taXJyb3JfcHJvcGVydHlfZGVmaW5pdGlvbl9pZCAhPSAnJ0IICgZleHRyYXMihQoKEFByb3BlcnR5VGVtcGxhdGUSFgoDa2V5GAEgASgJQgm6SAZyBODzBAESDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEjIKBHR5cGUYBSABKA4yFy5jb21tb24udjEuUHJvcGVydHlUeXBlQgu6SAjIAQGCAQIQARIxCgVzY29wZRgGIAEoDjIYLmNvbW1vbi52MS5Qcm9wZXJ0eVNjb3BlQgi6SAWCAQIQARJMChttaW5pbXVtX3JlcXVpcmVkX3Blcm1pc3Npb24YByABKA4yHS5jb21tb24udjEuUHJvcGVydHlQZXJtaXNzaW9uQgi6SAWCAQIQARJBCg9hbGxvd2VkX29yaWdpbnMYCCADKA4yGS5jb21tb24udjEuUHJvcGVydHlPcmlnaW5CDbpICpIBByIFggECEAESMQoFZ3JvdXAYCSABKA4yGC5jb21tb24udjEuUHJvcGVydHlHcm91cEIIukgFggECEAESEAoIb3JkZXJpbmcYCiABKAUSEgoKaGlkZV9ncm91cBgLIAEoCBIQCghhZHZhbmNlZBgMIAEoCBIcChRhbGxvd190b19iZV9taXJyb3JlZBgNIAEoCBJACg1zZW1hbnRpY19yb2xlGA4gASgOMh8uY29tbW9uLnYxLlByb3BlcnR5U2VtYW50aWNSb2xlQgi6SAWCAQIQARIvCg1kZWZhdWx0X3ZhbHVlGA8gASgLMhguY29tbW9uLnYxLlByb3BlcnR5VmFsdWUSIQoZcHJlc2VudGF0aW9uX2NvbmZpZ3VyYWJsZRgQIAEoCBIuCg1udW1iZXJfZXh0cmFzGCkgASgLMhcuY29tbW9uLnYxLk51bWJlckV4dHJhcxIqCgtlbnVtX2V4dHJhcxgqIAEoCzIVLmNvbW1vbi52MS5FbnVtRXh0cmFzEjAKDnZlY3RvcjNfZXh0cmFzGCsgASgLMhguY29tbW9uLnYxLlZlY3RvcjNFeHRyYXMSLAoMY29sb3JfZXh0cmFzGCwgASgLMhYuY29tbW9uLnYxLkNvbG9yRXh0cmFzEioKC3Bvc2VfZXh0cmFzGC0gASgLMhUuY29tbW9uLnYxLlBvc2VFeHRyYXMSLgoNYW5jaG9yX2V4dHJhcxguIAEoCzIXLmNvbW1vbi52MS5BbmNob3JFeHRyYXM6+AK6SPQCGpQBChllbnVtX3JlcXVpcmVzX2VudW1fZXh0cmFzEjdlbnVtX2V4dHJhcyBtdXN0IGJlIHNldCB3aGVuIHR5cGUgaXMgRU5VTSBvciBFTlVNX01VTFRJGj4hKHRoaXMudHlwZSA9PSAxMSB8fCB0aGlzLnR5cGUgPT0gMTIpIHx8IGhhcyh0aGlzLmVudW1fZXh0cmFzKRqCAQoaZGVmYXVsdF92YWx1ZV90eXBlX21hdGNoZXMSInR5cGUgbXVzdCBtYXRjaCBkZWZhdWx0X3ZhbHVlLnR5cGUaQCFoYXModGhpcy5kZWZhdWx0X3ZhbHVlKSB8fCB0aGlzLnR5cGUgPT0gdGhpcy5kZWZhdWx0X3ZhbHVlLnR5cGUiVgoNbnVtYmVyX2V4dHJhcwoLZW51bV9leHRyYXMKDnZlY3RvcjNfZXh0cmFzCgxjb2xvcl9leHRyYXMKC3Bvc2VfZXh0cmFzCg1hbmNob3JfZXh0cmFzKqkDCgxQcm9wZXJ0eVR5cGUSHQoZUFJPUEVSVFlfVFlQRV9VTlNQRUNJRklFRBAAEhYKElBST1BFUlRZX1RZUEVfQk9PTBABEhUKEVBST1BFUlRZX1RZUEVfSU5UEAISFwoTUFJPUEVSVFlfVFlQRV9GTE9BVBADEhgKFFBST1BFUlRZX1RZUEVfRE9VQkxFEAQSGAoUUFJPUEVSVFlfVFlQRV9TVFJJTkcQBRIZChVQUk9QRVJUWV9UWVBFX1ZFQ1RPUjMQBhIWChJQUk9QRVJUWV9UWVBFX1BPU0UQBxIYChRQUk9QRVJUWV9UWVBFX0FOQ0hPUhAIEhcKE1BST1BFUlRZX1RZUEVfQ09MT1IQCRIXChNQUk9QRVJUWV9UWVBFX1JPQk9UEAoSFgoSUFJPUEVSVFlfVFlQRV9FTlVNEAsSHAoYUFJPUEVSVFlfVFlQRV9FTlVNX01VTFRJEAwSFgoSUFJPUEVSVFlfVFlQRV9JQ09OEA0SFwoTUFJPUEVSVFlfVFlQRV9BU1NFVBAOEhgKFFBST1BFUlRZX1RZUEVfV09SS0VSEA8qaAoOUHJvcGVydHlPcmlnaW4SHwobUFJPUEVSVFlfT1JJR0lOX1VOU1BFQ0lGSUVEEAASGQoVUFJPUEVSVFlfT1JJR0lOX0ZJWEVEEAESGgoWUFJPUEVSVFlfT1JJR0lOX01JUlJPUhACKtwCCg1Qcm9wZXJ0eUdyb3VwEh4KGlBST1BFUlRZX0dST1VQX1VOU1BFQ0lGSUVEEAASGQoVUFJPUEVSVFlfR1JPVVBfT1VUUFVUEAESHwobUFJPUEVSVFlfR1JPVVBfTk9OX0VESVRBQkxFEAISGgoWUFJPUEVSVFlfR1JPVVBfU1RZTElORxADEhsKF1BST1BFUlRZX0dST1VQX0xPQ0FUSU9OEAQSFwoTUFJPUEVSVFlfR1JPVVBfSUNPThAFEiAKHFBST1BFUlRZX0dST1VQX0NPTkZJR1VSQVRJT04QBhIZChVQUk9QRVJUWV9HUk9VUF9ISURERU4QBxIdChlQUk9QRVJUWV9HUk9VUF9JTlBVVF9TTE9UEAgSHAoYUFJPUEVSVFlfR1JPVVBfQU5JTUFUSU9OEAkSIwofUFJPUEVSVFlfR1JPVVBfVEFSR0VUX0lORElDQVRPUhAKKrYBChJQcm9wZXJ0eVBlcm1pc3Npb24SIwofUFJPUEVSVFlfUEVSTUlTU0lPTl9VTlNQRUNJRklFRBAAEh0KGVBST1BFUlRZX1BFUk1JU1NJT05fQkFTSUMQChIgChxQUk9QRVJUWV9QRVJNSVNTSU9OX0NPU01FVElDEBQSHAoYUFJPUEVSVFlfUEVSTUlTU0lPTl9GVUxMEB4SHAoYUFJPUEVSVFlfUEVSTUlTU0lPTl9OT05FECgq6Q8KFFByb3BlcnR5U2VtYW50aWNSb2xlEiYKIlBST1BFUlRZX1NFTUFOVElDX1JPTEVfVU5TUEVDSUZJRUQQABIxCi1QUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1BBTkVMX0JBQ0tHUk9VTkRfQ09MT1IQARIrCidQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1BBTkVMX1RFWFRfQ09MT1IQAhItCilQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1BBTkVMX0JPUkRFUl9DT0xPUhADEigKJFBST1BFUlRZX1NFTUFOVElDX1JPTEVfUEFORUxfT1BBQ0lUWRAEEi4KKlBST1BFUlRZX1NFTUFOVElDX1JPTEVfUEFORUxfQ09STkVSX1JBRElVUxAFEi0KKVBST1BFUlRZX1NFTUFOVElDX1JPTEVfUFJJTUFSWV9URVhUX0NPTE9SEBQSLworUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9TRUNPTkRBUllfVEVYVF9DT0xPUhAVEiQKIFBST1BFUlRZX1NFTUFOVElDX1JPTEVfVEVYVF9TSVpFEBYSKgomUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9USVRMRV9URVhUX1NJWkUQFxInCiNQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX0FDQ0VOVF9DT0xPUhAoEigKJFBST1BFUlRZX1NFTUFOVElDX1JPTEVfU1VDQ0VTU19DT0xPUhApEigKJFBST1BFUlRZX1NFTUFOVElDX1JPTEVfV0FSTklOR19DT0xPUhAqEiYKIlBST1BFUlRZX1NFTUFOVElDX1JPTEVfRVJST1JfQ09MT1IQKxIpCiVQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX0RJU0FCTEVEX0NPTE9SECwSLQopUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9DVVJSRU5UX1RBU0tfQ09MT1IQPBIuCipQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1VQQ09NSU5HX1RBU0tfQ09MT1IQPRIvCitQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX0NPTVBMRVRFRF9UQVNLX0NPTE9SED4SLQopUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9CTE9DS0VEX1RBU0tfQ09MT1IQPxIuCipQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX09QVElPTkFMX1RBU0tfQ09MT1IQQBIpCiVQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX09QRVJBVE9SX0NPTE9SEFASJgoiUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9ST0JPVF9DT0xPUhBREiwKKFBST1BFUlRZX1NFTUFOVElDX1JPTEVfU0hBUkVEX1RBU0tfQ09MT1IQUhIrCidQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1NVUEVSVklTT1JfQ09MT1IQUxIlCiFQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1BBUlRfQ09MT1IQZBIlCiFQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1RPT0xfQ09MT1IQZRImCiJQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX0FTU0VUX0NPTE9SEGYSKgomUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9DT05UQUlORVJfQ09MT1IQZxItCilQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1RBUkdFVF9HSE9TVF9DT0xPUhB4EjEKLVBST1BFUlRZX1NFTUFOVElDX1JPTEVfVEFSR0VUX0hJR0hMSUdIVF9DT0xPUhB5EiUKIVBST1BFUlRZX1NFTUFOVElDX1JPTEVfUEFUSF9DT0xPUhB6EiUKIVBST1BFUlRZX1NFTUFOVElDX1JPTEVfWk9ORV9DT0xPUhB7EicKI1BST1BFUlRZX1NFTUFOVElDX1JPTEVfQU5DSE9SX0NPTE9SEHwSLAonUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9ST0JPVF9QQVRIX0NPTE9SEIwBEjIKLVBST1BFUlRZX1NFTUFOVElDX1JPTEVfUk9CT1RfU0lMSE9VRVRURV9DT0xPUhCNARIuCilQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1JPQk9UX0lOVEVOVF9DT0xPUhCOARIxCixQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1JPQk9UX09DQ1VQQU5DWV9DT0xPUhCPARIpCiRQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1NVQ0NFU1NfU09VTkQQoAESKQokUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9XQVJOSU5HX1NPVU5EEKEBEicKIlBST1BFUlRZX1NFTUFOVElDX1JPTEVfRVJST1JfU09VTkQQogESLQooUFJPUEVSVFlfU0VNQU5USUNfUk9MRV9OT1RJRklDQVRJT05fSUNPThCjARIqCiVQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX1BVTFNFX0RVUkFUSU9OELQBEikKJFBST1BFUlRZX1NFTUFOVElDX1JPTEVfRkFERV9EVVJBVElPThC1ARIrCiZQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX0FOSU1BVElPTl9TUEVFRBC2ARIvCipQUk9QRVJUWV9TRU1BTlRJQ19ST0xFX0hJR0hMSUdIVF9USElDS05FU1MQtwEqZgoNUHJvcGVydHlTY29wZRIeChpQUk9QRVJUWV9TQ09QRV9VTlNQRUNJRklFRBAAEhkKFVBST1BFUlRZX1NDT1BFX0VOVElUWRABEhoKFlBST1BFUlRZX1NDT1BFX1JVTlRJTUUQAkKlAQoNY29tLmNvbW1vbi52MUINUHJvcGVydHlQcm90b1ABWjdnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvY29tbW9uL3YxO2NvbW1vbnYxogIDQ1hYqgISTWVzc2FnZXMuQ29tbW9uLlYxygIJQ29tbW9uXFYx4gIVQ29tbW9uXFYxXEdQQk1ldGFkYXRh6gIKQ29tbW9uOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_common_v1_color, file_geometry_v1_anchor, file_geometry_v1_pose, file_geometry_v1_vector3, file_validation_v1_predefined_string_rules]);
24
24
 
25
25
  /**
26
26
  * PropertyDefinition
@@ -820,6 +820,137 @@ export type CreatePropertyMessage = Message<"common.v1.CreatePropertyMessage"> &
820
820
  export const CreatePropertyMessageSchema: GenMessage<CreatePropertyMessage> = /*@__PURE__*/
821
821
  messageDesc(file_common_v1_property, 13);
822
822
 
823
+ /**
824
+ * PropertyTemplate describes a property contract independently of a concrete
825
+ * owning entity and authoring/runtime context. Definition catalogs expose these
826
+ * templates so clients can build typed editors before an instance exists.
827
+ *
828
+ * @generated from message common.v1.PropertyTemplate
829
+ */
830
+ export type PropertyTemplate = Message<"common.v1.PropertyTemplate"> & {
831
+ /**
832
+ * @generated from field: string key = 1;
833
+ */
834
+ key: string;
835
+
836
+ /**
837
+ * @generated from field: string name = 2;
838
+ */
839
+ name: string;
840
+
841
+ /**
842
+ * @generated from field: string icon = 3;
843
+ */
844
+ icon: string;
845
+
846
+ /**
847
+ * @generated from field: string description = 4;
848
+ */
849
+ description: string;
850
+
851
+ /**
852
+ * @generated from field: common.v1.PropertyType type = 5;
853
+ */
854
+ type: PropertyType;
855
+
856
+ /**
857
+ * @generated from field: common.v1.PropertyScope scope = 6;
858
+ */
859
+ scope: PropertyScope;
860
+
861
+ /**
862
+ * @generated from field: common.v1.PropertyPermission minimum_required_permission = 7;
863
+ */
864
+ minimumRequiredPermission: PropertyPermission;
865
+
866
+ /**
867
+ * @generated from field: repeated common.v1.PropertyOrigin allowed_origins = 8;
868
+ */
869
+ allowedOrigins: PropertyOrigin[];
870
+
871
+ /**
872
+ * @generated from field: common.v1.PropertyGroup group = 9;
873
+ */
874
+ group: PropertyGroup;
875
+
876
+ /**
877
+ * @generated from field: int32 ordering = 10;
878
+ */
879
+ ordering: number;
880
+
881
+ /**
882
+ * @generated from field: bool hide_group = 11;
883
+ */
884
+ hideGroup: boolean;
885
+
886
+ /**
887
+ * @generated from field: bool advanced = 12;
888
+ */
889
+ advanced: boolean;
890
+
891
+ /**
892
+ * @generated from field: bool allow_to_be_mirrored = 13;
893
+ */
894
+ allowToBeMirrored: boolean;
895
+
896
+ /**
897
+ * @generated from field: common.v1.PropertySemanticRole semantic_role = 14;
898
+ */
899
+ semanticRole: PropertySemanticRole;
900
+
901
+ /**
902
+ * Default values are omitted when they can only be resolved in a concrete
903
+ * authoring/runtime context.
904
+ *
905
+ * @generated from field: common.v1.PropertyValue default_value = 15;
906
+ */
907
+ defaultValue?: PropertyValue;
908
+
909
+ /**
910
+ * True when PresentationStrategy presets may override this property.
911
+ *
912
+ * @generated from field: bool presentation_configurable = 16;
913
+ */
914
+ presentationConfigurable: boolean;
915
+
916
+ /**
917
+ * @generated from field: common.v1.NumberExtras number_extras = 41;
918
+ */
919
+ numberExtras?: NumberExtras;
920
+
921
+ /**
922
+ * @generated from field: common.v1.EnumExtras enum_extras = 42;
923
+ */
924
+ enumExtras?: EnumExtras;
925
+
926
+ /**
927
+ * @generated from field: common.v1.Vector3Extras vector3_extras = 43;
928
+ */
929
+ vector3Extras?: Vector3Extras;
930
+
931
+ /**
932
+ * @generated from field: common.v1.ColorExtras color_extras = 44;
933
+ */
934
+ colorExtras?: ColorExtras;
935
+
936
+ /**
937
+ * @generated from field: common.v1.PoseExtras pose_extras = 45;
938
+ */
939
+ poseExtras?: PoseExtras;
940
+
941
+ /**
942
+ * @generated from field: common.v1.AnchorExtras anchor_extras = 46;
943
+ */
944
+ anchorExtras?: AnchorExtras;
945
+ };
946
+
947
+ /**
948
+ * Describes the message common.v1.PropertyTemplate.
949
+ * Use `create(PropertyTemplateSchema)` to create a new message.
950
+ */
951
+ export const PropertyTemplateSchema: GenMessage<PropertyTemplate> = /*@__PURE__*/
952
+ messageDesc(file_common_v1_property, 14);
953
+
823
954
  /**
824
955
  * Used to specify the type of a property
825
956
  *
@@ -11,7 +11,7 @@ import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
11
11
  * Describes the file validation/v1/predefined_string_rules.proto.
12
12
  */
13
13
  export const file_validation_v1_predefined_string_rules: GenFile = /*@__PURE__*/
14
- fileDesc("Cit2YWxpZGF0aW9uL3YxL3ByZWRlZmluZWRfc3RyaW5nX3J1bGVzLnByb3RvEg12YWxpZGF0aW9uLnYxOrEBCg5uYW1lX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiQTiABKAhCbsJIawppChVzdHJpbmcubmFtZV9jb21wb25lbnQSKk5hbWUgbXVzdCBoYXZlIGJldHdlZW4gMSBhbmQgNjQgY2hhcmFjdGVycxokdGhpcy5zaXplKCkgPiAwICYmIHRoaXMuc2l6ZSgpIDw9IDY0Ug1uYW1lQ29tcG9uZW50OroBChJtb2RlbF9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYkU4gASgIQnDCSG0KawoZc3RyaW5nLm1vZGVsX2lkX2NvbXBvbmVudBIjdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgbW9kZWwgaWQaKSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnbW9kZWwtJykpUhBtb2RlbElkQ29tcG9uZW50OswBChZhcl9jb25maWdfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJJOIAEoCEJ7wkh4CnYKHXN0cmluZy5hcl9jb25maWdfaWRfY29tcG9uZW50EiZ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBBUkNvbmZpZyBpZBotKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhcl9jb25maWctJykpUhNhckNvbmZpZ0lkQ29tcG9uZW50OoICCiBwcm9wZXJ0eV9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiTTiABKAhCnAHCSJgBCpUBCidzdHJpbmcucHJvcGVydHlfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSMXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHByb3BlcnR5IGRlZmluaXRpb24gaWQaNyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJvcGVydHlfZGVmaW5pdGlvbi0nKSlSHXByb3BlcnR5RGVmaW5pdGlvbklkQ29tcG9uZW50OvgBCh5wcm9wZXJ0eV9pbnN0YW5jZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYs04gASgIQpYBwkiSAQqPAQolc3RyaW5nLnByb3BlcnR5X2luc3RhbmNlX2lkX2NvbXBvbmVudBIvdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcHJvcGVydHkgaW5zdGFuY2UgaWQaNSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJvcGVydHlfaW5zdGFuY2UtJykpUhtwcm9wZXJ0eUluc3RhbmNlSWRDb21wb25lbnQ68wEKHXJvYm90X2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJROIAEoCEKTAcJIjwEKjAEKJHN0cmluZy5yb2JvdF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIudGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcm9ib3QgZGVmaW5pdGlvbiBpZBo0KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdyb2JvdF9kZWZpbml0aW9uLScpKVIacm9ib3REZWZpbml0aW9uSWRDb21wb25lbnQ66QEKG3JvYm90X2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiVTiABKAhCjQHCSIkBCoYBCiJzdHJpbmcucm9ib3RfaW5zdGFuY2VfaWRfY29tcG9uZW50Eix0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSByb2JvdCBpbnN0YW5jZSBpZBoyKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdyb2JvdF9pbnN0YW5jZS0nKSlSGHJvYm90SW5zdGFuY2VJZENvbXBvbmVudDrzAQodYXNzZXRfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYlk4gASgIQpMBwkiPAQqMAQokc3RyaW5nLmFzc2V0X2RlZmluaXRpb25faWRfY29tcG9uZW50Ei50aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBhc3NldCBkZWZpbml0aW9uIGlkGjQodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2Fzc2V0X2RlZmluaXRpb24tJykpUhphc3NldERlZmluaXRpb25JZENvbXBvbmVudDrpAQobYXNzZXRfaW5zdGFuY2VfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJdOIAEoCEKNAcJIiQEKhgEKInN0cmluZy5hc3NldF9pbnN0YW5jZV9pZF9jb21wb25lbnQSLHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGFzc2V0IGluc3RhbmNlIGlkGjIodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2Fzc2V0X2luc3RhbmNlLScpKVIYYXNzZXRJbnN0YW5jZUlkQ29tcG9uZW50OtkBChhlbnZpcm9ubWVudF9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYmE4gASgIQoIBwkh/Cn0KH3N0cmluZy5lbnZpcm9ubWVudF9pZF9jb21wb25lbnQSKXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGVudmlyb25tZW50IGlkGi8odGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2Vudmlyb25tZW50LScpKVIWZW52aXJvbm1lbnRJZENvbXBvbmVudDruAQoccGFydF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiZTiABKAhCkAHCSIwBCokBCiNzdHJpbmcucGFydF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBItdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcGFydCBkZWZpbml0aW9uIGlkGjModGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3BhcnRfZGVmaW5pdGlvbi0nKSlSGXBhcnREZWZpbml0aW9uSWRDb21wb25lbnQ65AEKGnBhcnRfaW5zdGFuY2VfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJpOIAEoCEKKAcJIhgEKgwEKIXN0cmluZy5wYXJ0X2luc3RhbmNlX2lkX2NvbXBvbmVudBIrdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcGFydCBpbnN0YW5jZSBpZBoxKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdwYXJ0X2luc3RhbmNlLScpKVIXcGFydEluc3RhbmNlSWRDb21wb25lbnQ67gEKHHRvb2xfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYm04gASgIQpABwkiMAQqJAQojc3RyaW5nLnRvb2xfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSLXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHRvb2wgZGVmaW5pdGlvbiBpZBozKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCd0b29sX2RlZmluaXRpb24tJykpUhl0b29sRGVmaW5pdGlvbklkQ29tcG9uZW50Os8BChp0b29sX2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxicTiABKAhCdsJIcwpxChhzdHJpbmcudG9vbF9pZF9jb21wb25lbnQSInRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHRvb2wgaWQaMSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgndG9vbF9pbnN0YW5jZS0nKSlSF3Rvb2xJbnN0YW5jZUlkQ29tcG9uZW50Or8BChNtYXJrZXJfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJ1OIAEoCEJzwkhwCm4KGnN0cmluZy5tYXJrZXJfaWRfY29tcG9uZW50EiR0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBtYXJrZXIgaWQaKih0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnbWFya2VyLScpKVIRbWFya2VySWRDb21wb25lbnQ6xAEKFGZpeHR1cmVfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJ5OIAEoCEJ2wkhzCnEKG3N0cmluZy5maXh0dXJlX2lkX2NvbXBvbmVudBIldGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgZml4dHVyZSBpZBorKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdmaXh0dXJlLScpKVISZml4dHVyZUlkQ29tcG9uZW50OsQBChRzdGF0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxifTiABKAhCdsJIcwpxChtzdHJpbmcuc3RhdGlvbl9pZF9jb21wb25lbnQSJXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHN0YXRpb24gaWQaKyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnc3RhdGlvbi0nKSlSEnN0YXRpb25JZENvbXBvbmVudDq6AQoSc2tpbGxfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKBOIAEoCEJwwkhtCmsKGXN0cmluZy5za2lsbF9pZF9jb21wb25lbnQSI3RoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHNraWxsIGlkGikodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3NraWxsLScpKVIQc2tpbGxJZENvbXBvbmVudDrYAQoYcHJvY2Vzc19ydW5faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKFOIAEoCEKCAcJIfwp9Ch9zdHJpbmcucHJvY2Vzc19ydW5faWRfY29tcG9uZW50Eil0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9jZXNzIHJ1biBpZBovKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdwcm9jZXNzX3J1bi0nKSlSFXByb2Nlc3NSdW5JZENvbXBvbmVudDrfAQoZc2VxdWVuY2VfcnVuX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiiTiABKAhChwHCSIMBCoABCiBzdHJpbmcuc2VxdWVuY2VfcnVuX2lkX2NvbXBvbmVudBIqdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgc2VxdWVuY2UgcnVuIGlkGjAodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3NlcXVlbmNlX3J1bi0nKSlSFnNlcXVlbmNlUnVuSWRDb21wb25lbnQ6yAEKFXRhc2tfcnVuX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxijTiABKAhCecJIdgp0ChxzdHJpbmcudGFza19ydW5faWRfY29tcG9uZW50EiZ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSB0YXNrIHJ1biBpZBosKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCd0YXNrX3J1bi0nKSlSEnRhc2tSdW5JZENvbXBvbmVudDrpAQobcHJvY2Vzc19yZWNpcGVfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKROIAEoCEKNAcJIiQEKhgEKInN0cmluZy5wcm9jZXNzX3JlY2lwZV9pZF9jb21wb25lbnQSLHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHByb2Nlc3MgcmVjaXBlIGlkGjIodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3Byb2Nlc3NfcmVjaXBlLScpKVIYcHJvY2Vzc1JlY2lwZUlkQ29tcG9uZW50OoICCiBzZXF1ZW5jZV9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxilTiABKAhCnAHCSJgBCpUBCidzdHJpbmcuc2VxdWVuY2VfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSMXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHNlcXVlbmNlIGRlZmluaXRpb24gaWQaNyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnc2VxdWVuY2VfZGVmaW5pdGlvbi0nKSlSHXNlcXVlbmNlRGVmaW5pdGlvbklkQ29tcG9uZW50Ou4BChx0YXNrX2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKZOIAEoCEKQAcJIjAEKiQEKI3N0cmluZy50YXNrX2RlZmluaXRpb25faWRfY29tcG9uZW50Ei10aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSB0YXNrIGRlZmluaXRpb24gaWQaMyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgndGFza19kZWZpbml0aW9uLScpKVIZdGFza0RlZmluaXRpb25JZENvbXBvbmVudDq1AQoRY2VsbF9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYp04gASgIQm3CSGoKaAoYc3RyaW5nLmNlbGxfaWRfY29tcG9uZW50EiJ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBjZWxsIGlkGigodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2NlbGwtJykpUg9jZWxsSWRDb21wb25lbnQ6tQEKEWxpbmVfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKhOIAEoCEJtwkhqCmgKGHN0cmluZy5saW5lX2lkX2NvbXBvbmVudBIidGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgbGluZSBpZBooKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdsaW5lLScpKVIPbGluZUlkQ29tcG9uZW50OocCCiFjb250YWluZXJfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYqU4gASgIQp8BwkibAQqYAQooc3RyaW5nLmNvbnRhaW5lcl9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIydGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgY29udGFpbmVyIGRlZmluaXRpb24gaWQaOCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnY29udGFpbmVyX2RlZmluaXRpb24tJykpUh5jb250YWluZXJEZWZpbml0aW9uSWRDb21wb25lbnQ6+gEKH2NvbnRhaW5lcl9pbnN0YW5jZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuo0GIAEoCEKVAcJIkQEKjgEKInN0cmluZy5yb2JvdF9pbnN0YW5jZV9pZF9jb21wb25lbnQSMHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGNvbnRhaW5lciBpbnN0YW5jZSBpZBo2KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdjb250YWluZXJfaW5zdGFuY2UtJykpUhxjb250YWluZXJJbnN0YW5jZUlkQ29tcG9uZW50OsABChN3b3JrZXJfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLuNBiABKAhCc8JIcApuChpzdHJpbmcud29ya2VyX2lkX2NvbXBvbmVudBIkdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgd29ya2VyIGlkGioodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3dvcmtlci0nKSlSEXdvcmtlcklkQ29tcG9uZW50OsUBChRwcm9kdWN0X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi8jQYgASgIQnbCSHMKcQobc3RyaW5nLnByb2R1Y3RfaWRfY29tcG9uZW50EiV0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9kdWN0IGlkGisodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3Byb2R1Y3QtJykpUhJwcm9kdWN0SWRDb21wb25lbnQ6+AEKHmFyX2NvbmZpZ19iaW5kaW5nX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi9jQYgASgIQpYBwkiSAQqPAQolc3RyaW5nLmFyX2NvbmZpZ19iaW5kaW5nX2lkX2NvbXBvbmVudBIvdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgQVIgY29uZmlnIGJpbmRpbmcgaWQaNSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnYXJfY29uZmlnX2JpbmRpbmctJykpUhphckNvbmZpZ0JpbmRpbmdJZENvbXBvbmVudDr9AQofYXJfY29uZmlnX2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi+jQYgASgIQpkBwkiVAQqSAQomc3RyaW5nLmFyX2NvbmZpZ19pbnN0YW5jZV9pZF9jb21wb25lbnQSMHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIEFSIGNvbmZpZyBpbnN0YW5jZSBpZBo2KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhcl9jb25maWdfaW5zdGFuY2UtJykpUhthckNvbmZpZ0luc3RhbmNlSWRDb21wb25lbnQ65AEKGmFyX2lucHV0X3Nsb3RfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGL+NBiABKAhCigHCSIYBCoMBCiFzdHJpbmcuYXJfaW5wdXRfc2xvdF9pZF9jb21wb25lbnQSK3RoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIEFSIGlucHV0IHNsb3QgaWQaMSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnYXJfaW5wdXRfc2xvdC0nKSlSFmFySW5wdXRTbG90SWRDb21wb25lbnQ62QEKGG1vZGVsX2Fzc2V0X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxjAjQYgASgIQoIBwkh/Cn0KH3N0cmluZy5tb2RlbF9hc3NldF9pZF9jb21wb25lbnQSKXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIG1vZGVsIGFzc2V0IGlkGi8odGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ21vZGVsX2Fzc2V0LScpKVIVbW9kZWxBc3NldElkQ29tcG9uZW50OuUBChpzaWRlY2FyX2Fzc2V0X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxjBjQYgASgIQooBwkiGAQqDAQohc3RyaW5nLnNpZGVjYXJfYXNzZXRfaWRfY29tcG9uZW50Eit0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBzaWRlY2FyIGFzc2V0IGlkGjEodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3NpZGVjYXJfYXNzZXQtJykpUhdzaWRlY2FyQXNzZXRJZENvbXBvbmVudDrZAQoYaW1hZ2VfYXNzZXRfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMKNBiABKAhCggHCSH8KfQofc3RyaW5nLmltYWdlX2Fzc2V0X2lkX2NvbXBvbmVudBIpdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgaW1hZ2UgYXNzZXQgaWQaLyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnaW1hZ2VfYXNzZXQtJykpUhVpbWFnZUFzc2V0SWRDb21wb25lbnQ6wAEKE2RldmljZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYxI0GIAEoCEJzwkhwCm4KGnN0cmluZy5kZXZpY2VfaWRfY29tcG9uZW50EiR0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBkZXZpY2UgaWQaKih0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnZGV2aWNlLScpKVIRZGV2aWNlSWRDb21wb25lbnQ6tgEKEXpvbmVfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMWNBiABKAhCbcJIagpoChhzdHJpbmcuem9uZV9pZF9jb21wb25lbnQSInRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHpvbmUgaWQaKCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnem9uZS0nKSlSD3pvbmVJZENvbXBvbmVudDr+AQofYWN0b3JfYXZhaWxhYmlsaXR5X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxjGjQYgASgIQpkBwkiVAQqSAQomc3RyaW5nLmFjdG9yX2F2YWlsYWJpbGl0eV9pZF9jb21wb25lbnQSMHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGFjdG9yLWF2YWlsYWJpbGl0eSBpZBo2KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhY3Rvcl9hdmFpbGFiaWxpdHktJykpUhxhY3RvckF2YWlsYWJpbGl0eUlkQ29tcG9uZW50OvQBCh1hY3Rvcl9hc3NpZ25tZW50X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxjHjQYgASgIQpMBwkiPAQqMAQokc3RyaW5nLmFjdG9yX2Fzc2lnbm1lbnRfaWRfY29tcG9uZW50Ei50aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBhY3Rvci1hc3NpZ25tZW50IGlkGjQodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2FjdG9yX2Fzc2lnbm1lbnQtJykpUhphY3RvckFzc2lnbm1lbnRJZENvbXBvbmVudDrJAQoVZmVlZGJhY2tfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLhOIAEoCEJ5wkh2CnQKHHN0cmluZy5mZWVkYmFja19pZF9jb21wb25lbnQSJnRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGZlZWRiYWNrIGlkGiwodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2ZlZWRiYWNrLScpKVITZmVlZGJhY2tJZENvbXBvbmVudDq/AQoTYWN0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi5TiABKAhCc8JIcApuChpzdHJpbmcuYWN0aW9uX2lkX2NvbXBvbmVudBIkdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgYWN0aW9uIGlkGioodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2FjdGlvbi0nKSlSEWFjdGlvbklkQ29tcG9uZW50OskBChVmdW5jdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuk4gASgIQnnCSHYKdAocc3RyaW5nLmZ1bmN0aW9uX2lkX2NvbXBvbmVudBImdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgZnVuY3Rpb24gaWQaLCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnZnVuY3Rpb24tJykpUhNmdW5jdGlvbklkQ29tcG9uZW50OoMCCiJwcmVzZW50YXRpb25fc3RyYXRlZ3lfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLtOIAEoCEKZAcJIlQEKkgEKKXN0cmluZy5wcmVzZW50YXRpb25fc3RyYXRlZ3lfaWRfY29tcG9uZW50EjN0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcmVzZW50YXRpb24tc3RyYXRlZ3kgaWQaMCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJlc2VudGF0aW9uLScpKVIfcHJlc2VudGF0aW9uU3RyYXRlZ3lJZENvbXBvbmVudDqfAgoNa2V5X2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi8TiABKAhC3QHCSNkBCtYBChRzdHJpbmcua2V5X2NvbXBvbmVudBJyS2V5IG11c3QgYmUgMSB0byA2NCBjaGFyYWN0ZXJzIGFuZCBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cywgYW5kIHVuZGVyc2NvcmVzLCBzdGFydGluZyB3aXRoIGEgbGV0dGVyGkp0aGlzLnNpemUoKSA+PSAxICYmIHRoaXMuc2l6ZSgpIDw9IDY0ICYmIHRoaXMubWF0Y2hlcygnXlthLXpdW2EtejAtOV9dKiQnKVIMa2V5Q29tcG9uZW50QrUBChFjb20udmFsaWRhdGlvbi52MUIaUHJlZGVmaW5lZFN0cmluZ1J1bGVzUHJvdG9QAVo/Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3ZhbGlkYXRpb24vdjE7dmFsaWRhdGlvbnYxogIDVlhYygINVmFsaWRhdGlvblxWMeICGVZhbGlkYXRpb25cVjFcR1BCTWV0YWRhdGHqAg5WYWxpZGF0aW9uOjpWMQ", [file_buf_validate_validate]);
14
+ fileDesc("Cit2YWxpZGF0aW9uL3YxL3ByZWRlZmluZWRfc3RyaW5nX3J1bGVzLnByb3RvEg12YWxpZGF0aW9uLnYxOrEBCg5uYW1lX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiQTiABKAhCbsJIawppChVzdHJpbmcubmFtZV9jb21wb25lbnQSKk5hbWUgbXVzdCBoYXZlIGJldHdlZW4gMSBhbmQgNjQgY2hhcmFjdGVycxokdGhpcy5zaXplKCkgPiAwICYmIHRoaXMuc2l6ZSgpIDw9IDY0Ug1uYW1lQ29tcG9uZW50OroBChJtb2RlbF9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYkU4gASgIQnDCSG0KawoZc3RyaW5nLm1vZGVsX2lkX2NvbXBvbmVudBIjdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgbW9kZWwgaWQaKSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnbW9kZWwtJykpUhBtb2RlbElkQ29tcG9uZW50OswBChZhcl9jb25maWdfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJJOIAEoCEJ7wkh4CnYKHXN0cmluZy5hcl9jb25maWdfaWRfY29tcG9uZW50EiZ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBBUkNvbmZpZyBpZBotKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhcl9jb25maWctJykpUhNhckNvbmZpZ0lkQ29tcG9uZW50OoICCiBwcm9wZXJ0eV9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiTTiABKAhCnAHCSJgBCpUBCidzdHJpbmcucHJvcGVydHlfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSMXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHByb3BlcnR5IGRlZmluaXRpb24gaWQaNyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJvcGVydHlfZGVmaW5pdGlvbi0nKSlSHXByb3BlcnR5RGVmaW5pdGlvbklkQ29tcG9uZW50OvgBCh5wcm9wZXJ0eV9pbnN0YW5jZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYs04gASgIQpYBwkiSAQqPAQolc3RyaW5nLnByb3BlcnR5X2luc3RhbmNlX2lkX2NvbXBvbmVudBIvdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcHJvcGVydHkgaW5zdGFuY2UgaWQaNSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJvcGVydHlfaW5zdGFuY2UtJykpUhtwcm9wZXJ0eUluc3RhbmNlSWRDb21wb25lbnQ68wEKHXJvYm90X2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJROIAEoCEKTAcJIjwEKjAEKJHN0cmluZy5yb2JvdF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIudGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcm9ib3QgZGVmaW5pdGlvbiBpZBo0KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdyb2JvdF9kZWZpbml0aW9uLScpKVIacm9ib3REZWZpbml0aW9uSWRDb21wb25lbnQ66QEKG3JvYm90X2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiVTiABKAhCjQHCSIkBCoYBCiJzdHJpbmcucm9ib3RfaW5zdGFuY2VfaWRfY29tcG9uZW50Eix0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSByb2JvdCBpbnN0YW5jZSBpZBoyKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdyb2JvdF9pbnN0YW5jZS0nKSlSGHJvYm90SW5zdGFuY2VJZENvbXBvbmVudDrzAQodYXNzZXRfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYlk4gASgIQpMBwkiPAQqMAQokc3RyaW5nLmFzc2V0X2RlZmluaXRpb25faWRfY29tcG9uZW50Ei50aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBhc3NldCBkZWZpbml0aW9uIGlkGjQodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2Fzc2V0X2RlZmluaXRpb24tJykpUhphc3NldERlZmluaXRpb25JZENvbXBvbmVudDrpAQobYXNzZXRfaW5zdGFuY2VfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJdOIAEoCEKNAcJIiQEKhgEKInN0cmluZy5hc3NldF9pbnN0YW5jZV9pZF9jb21wb25lbnQSLHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGFzc2V0IGluc3RhbmNlIGlkGjIodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2Fzc2V0X2luc3RhbmNlLScpKVIYYXNzZXRJbnN0YW5jZUlkQ29tcG9uZW50OtkBChhlbnZpcm9ubWVudF9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYmE4gASgIQoIBwkh/Cn0KH3N0cmluZy5lbnZpcm9ubWVudF9pZF9jb21wb25lbnQSKXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGVudmlyb25tZW50IGlkGi8odGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2Vudmlyb25tZW50LScpKVIWZW52aXJvbm1lbnRJZENvbXBvbmVudDruAQoccGFydF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiZTiABKAhCkAHCSIwBCokBCiNzdHJpbmcucGFydF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBItdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcGFydCBkZWZpbml0aW9uIGlkGjModGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3BhcnRfZGVmaW5pdGlvbi0nKSlSGXBhcnREZWZpbml0aW9uSWRDb21wb25lbnQ65AEKGnBhcnRfaW5zdGFuY2VfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJpOIAEoCEKKAcJIhgEKgwEKIXN0cmluZy5wYXJ0X2luc3RhbmNlX2lkX2NvbXBvbmVudBIrdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcGFydCBpbnN0YW5jZSBpZBoxKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdwYXJ0X2luc3RhbmNlLScpKVIXcGFydEluc3RhbmNlSWRDb21wb25lbnQ67gEKHHRvb2xfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYm04gASgIQpABwkiMAQqJAQojc3RyaW5nLnRvb2xfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSLXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHRvb2wgZGVmaW5pdGlvbiBpZBozKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCd0b29sX2RlZmluaXRpb24tJykpUhl0b29sRGVmaW5pdGlvbklkQ29tcG9uZW50Os8BChp0b29sX2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxicTiABKAhCdsJIcwpxChhzdHJpbmcudG9vbF9pZF9jb21wb25lbnQSInRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHRvb2wgaWQaMSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgndG9vbF9pbnN0YW5jZS0nKSlSF3Rvb2xJbnN0YW5jZUlkQ29tcG9uZW50Or8BChNtYXJrZXJfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJ1OIAEoCEJzwkhwCm4KGnN0cmluZy5tYXJrZXJfaWRfY29tcG9uZW50EiR0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBtYXJrZXIgaWQaKih0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnbWFya2VyLScpKVIRbWFya2VySWRDb21wb25lbnQ6xAEKFGZpeHR1cmVfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJ5OIAEoCEJ2wkhzCnEKG3N0cmluZy5maXh0dXJlX2lkX2NvbXBvbmVudBIldGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgZml4dHVyZSBpZBorKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdmaXh0dXJlLScpKVISZml4dHVyZUlkQ29tcG9uZW50OsQBChRzdGF0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxifTiABKAhCdsJIcwpxChtzdHJpbmcuc3RhdGlvbl9pZF9jb21wb25lbnQSJXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHN0YXRpb24gaWQaKyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnc3RhdGlvbi0nKSlSEnN0YXRpb25JZENvbXBvbmVudDq6AQoSc2tpbGxfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKBOIAEoCEJwwkhtCmsKGXN0cmluZy5za2lsbF9pZF9jb21wb25lbnQSI3RoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHNraWxsIGlkGikodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3NraWxsLScpKVIQc2tpbGxJZENvbXBvbmVudDrYAQoYcHJvY2Vzc19ydW5faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKFOIAEoCEKCAcJIfwp9Ch9zdHJpbmcucHJvY2Vzc19ydW5faWRfY29tcG9uZW50Eil0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9jZXNzIHJ1biBpZBovKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdwcm9jZXNzX3J1bi0nKSlSFXByb2Nlc3NSdW5JZENvbXBvbmVudDrfAQoZc2VxdWVuY2VfcnVuX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiiTiABKAhChwHCSIMBCoABCiBzdHJpbmcuc2VxdWVuY2VfcnVuX2lkX2NvbXBvbmVudBIqdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgc2VxdWVuY2UgcnVuIGlkGjAodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3NlcXVlbmNlX3J1bi0nKSlSFnNlcXVlbmNlUnVuSWRDb21wb25lbnQ6yAEKFXRhc2tfcnVuX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxijTiABKAhCecJIdgp0ChxzdHJpbmcudGFza19ydW5faWRfY29tcG9uZW50EiZ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSB0YXNrIHJ1biBpZBosKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCd0YXNrX3J1bi0nKSlSEnRhc2tSdW5JZENvbXBvbmVudDrpAQobcHJvY2Vzc19yZWNpcGVfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKROIAEoCEKNAcJIiQEKhgEKInN0cmluZy5wcm9jZXNzX3JlY2lwZV9pZF9jb21wb25lbnQSLHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHByb2Nlc3MgcmVjaXBlIGlkGjIodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3Byb2Nlc3NfcmVjaXBlLScpKVIYcHJvY2Vzc1JlY2lwZUlkQ29tcG9uZW50OoICCiBzZXF1ZW5jZV9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxilTiABKAhCnAHCSJgBCpUBCidzdHJpbmcuc2VxdWVuY2VfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSMXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHNlcXVlbmNlIGRlZmluaXRpb24gaWQaNyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnc2VxdWVuY2VfZGVmaW5pdGlvbi0nKSlSHXNlcXVlbmNlRGVmaW5pdGlvbklkQ29tcG9uZW50Ou4BChx0YXNrX2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKZOIAEoCEKQAcJIjAEKiQEKI3N0cmluZy50YXNrX2RlZmluaXRpb25faWRfY29tcG9uZW50Ei10aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSB0YXNrIGRlZmluaXRpb24gaWQaMyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgndGFza19kZWZpbml0aW9uLScpKVIZdGFza0RlZmluaXRpb25JZENvbXBvbmVudDq1AQoRY2VsbF9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYp04gASgIQm3CSGoKaAoYc3RyaW5nLmNlbGxfaWRfY29tcG9uZW50EiJ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBjZWxsIGlkGigodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2NlbGwtJykpUg9jZWxsSWRDb21wb25lbnQ6tQEKEWxpbmVfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKhOIAEoCEJtwkhqCmgKGHN0cmluZy5saW5lX2lkX2NvbXBvbmVudBIidGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgbGluZSBpZBooKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdsaW5lLScpKVIPbGluZUlkQ29tcG9uZW50OocCCiFjb250YWluZXJfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYqU4gASgIQp8BwkibAQqYAQooc3RyaW5nLmNvbnRhaW5lcl9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIydGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgY29udGFpbmVyIGRlZmluaXRpb24gaWQaOCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnY29udGFpbmVyX2RlZmluaXRpb24tJykpUh5jb250YWluZXJEZWZpbml0aW9uSWRDb21wb25lbnQ6+gEKH2NvbnRhaW5lcl9pbnN0YW5jZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuo0GIAEoCEKVAcJIkQEKjgEKInN0cmluZy5yb2JvdF9pbnN0YW5jZV9pZF9jb21wb25lbnQSMHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGNvbnRhaW5lciBpbnN0YW5jZSBpZBo2KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdjb250YWluZXJfaW5zdGFuY2UtJykpUhxjb250YWluZXJJbnN0YW5jZUlkQ29tcG9uZW50OsABChN3b3JrZXJfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLuNBiABKAhCc8JIcApuChpzdHJpbmcud29ya2VyX2lkX2NvbXBvbmVudBIkdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgd29ya2VyIGlkGioodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3dvcmtlci0nKSlSEXdvcmtlcklkQ29tcG9uZW50OsUBChRwcm9kdWN0X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi8jQYgASgIQnbCSHMKcQobc3RyaW5nLnByb2R1Y3RfaWRfY29tcG9uZW50EiV0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9kdWN0IGlkGisodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3Byb2R1Y3QtJykpUhJwcm9kdWN0SWRDb21wb25lbnQ6+AEKHmFyX2NvbmZpZ19iaW5kaW5nX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi9jQYgASgIQpYBwkiSAQqPAQolc3RyaW5nLmFyX2NvbmZpZ19iaW5kaW5nX2lkX2NvbXBvbmVudBIvdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgQVIgY29uZmlnIGJpbmRpbmcgaWQaNSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnYXJfY29uZmlnX2JpbmRpbmctJykpUhphckNvbmZpZ0JpbmRpbmdJZENvbXBvbmVudDr9AQofYXJfY29uZmlnX2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi+jQYgASgIQpkBwkiVAQqSAQomc3RyaW5nLmFyX2NvbmZpZ19pbnN0YW5jZV9pZF9jb21wb25lbnQSMHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIEFSIGNvbmZpZyBpbnN0YW5jZSBpZBo2KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhcl9jb25maWdfaW5zdGFuY2UtJykpUhthckNvbmZpZ0luc3RhbmNlSWRDb21wb25lbnQ65AEKGmFyX2lucHV0X3Nsb3RfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGL+NBiABKAhCigHCSIYBCoMBCiFzdHJpbmcuYXJfaW5wdXRfc2xvdF9pZF9jb21wb25lbnQSK3RoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIEFSIGlucHV0IHNsb3QgaWQaMSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnYXJfaW5wdXRfc2xvdC0nKSlSFmFySW5wdXRTbG90SWRDb21wb25lbnQ62QEKGG1vZGVsX2Fzc2V0X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxjAjQYgASgIQoIBwkh/Cn0KH3N0cmluZy5tb2RlbF9hc3NldF9pZF9jb21wb25lbnQSKXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIG1vZGVsIGFzc2V0IGlkGi8odGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ21vZGVsX2Fzc2V0LScpKVIVbW9kZWxBc3NldElkQ29tcG9uZW50OuUBChpzaWRlY2FyX2Fzc2V0X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxjBjQYgASgIQooBwkiGAQqDAQohc3RyaW5nLnNpZGVjYXJfYXNzZXRfaWRfY29tcG9uZW50Eit0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBzaWRlY2FyIGFzc2V0IGlkGjEodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3NpZGVjYXJfYXNzZXQtJykpUhdzaWRlY2FyQXNzZXRJZENvbXBvbmVudDrZAQoYaW1hZ2VfYXNzZXRfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMKNBiABKAhCggHCSH8KfQofc3RyaW5nLmltYWdlX2Fzc2V0X2lkX2NvbXBvbmVudBIpdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgaW1hZ2UgYXNzZXQgaWQaLyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnaW1hZ2VfYXNzZXQtJykpUhVpbWFnZUFzc2V0SWRDb21wb25lbnQ6wAEKE2RldmljZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYxI0GIAEoCEJzwkhwCm4KGnN0cmluZy5kZXZpY2VfaWRfY29tcG9uZW50EiR0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBkZXZpY2UgaWQaKih0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnZGV2aWNlLScpKVIRZGV2aWNlSWRDb21wb25lbnQ6tgEKEXpvbmVfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMWNBiABKAhCbcJIagpoChhzdHJpbmcuem9uZV9pZF9jb21wb25lbnQSInRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHpvbmUgaWQaKCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnem9uZS0nKSlSD3pvbmVJZENvbXBvbmVudDr+AQofYWN0b3JfYXZhaWxhYmlsaXR5X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxjGjQYgASgIQpkBwkiVAQqSAQomc3RyaW5nLmFjdG9yX2F2YWlsYWJpbGl0eV9pZF9jb21wb25lbnQSMHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGFjdG9yLWF2YWlsYWJpbGl0eSBpZBo2KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhY3Rvcl9hdmFpbGFiaWxpdHktJykpUhxhY3RvckF2YWlsYWJpbGl0eUlkQ29tcG9uZW50OvQBCh1hY3Rvcl9hc3NpZ25tZW50X2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxjHjQYgASgIQpMBwkiPAQqMAQokc3RyaW5nLmFjdG9yX2Fzc2lnbm1lbnRfaWRfY29tcG9uZW50Ei50aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBhY3Rvci1hc3NpZ25tZW50IGlkGjQodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2FjdG9yX2Fzc2lnbm1lbnQtJykpUhphY3RvckFzc2lnbm1lbnRJZENvbXBvbmVudDrJAQoVZmVlZGJhY2tfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLhOIAEoCEJ5wkh2CnQKHHN0cmluZy5mZWVkYmFja19pZF9jb21wb25lbnQSJnRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGZlZWRiYWNrIGlkGiwodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2ZlZWRiYWNrLScpKVITZmVlZGJhY2tJZENvbXBvbmVudDq/AQoTYWN0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi5TiABKAhCc8JIcApuChpzdHJpbmcuYWN0aW9uX2lkX2NvbXBvbmVudBIkdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgYWN0aW9uIGlkGioodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2FjdGlvbi0nKSlSEWFjdGlvbklkQ29tcG9uZW50OskBChVmdW5jdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuk4gASgIQnnCSHYKdAocc3RyaW5nLmZ1bmN0aW9uX2lkX2NvbXBvbmVudBImdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgZnVuY3Rpb24gaWQaLCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnZnVuY3Rpb24tJykpUhNmdW5jdGlvbklkQ29tcG9uZW50OowCCiJwcmVzZW50YXRpb25fc3RyYXRlZ3lfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLtOIAEoCEKiAcJIngEKmwEKKXN0cmluZy5wcmVzZW50YXRpb25fc3RyYXRlZ3lfaWRfY29tcG9uZW50EjN0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcmVzZW50YXRpb24tc3RyYXRlZ3kgaWQaOSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJlc2VudGF0aW9uX3N0cmF0ZWd5LScpKVIfcHJlc2VudGF0aW9uU3RyYXRlZ3lJZENvbXBvbmVudDqfAgoNa2V5X2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi8TiABKAhC3QHCSNkBCtYBChRzdHJpbmcua2V5X2NvbXBvbmVudBJyS2V5IG11c3QgYmUgMSB0byA2NCBjaGFyYWN0ZXJzIGFuZCBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cywgYW5kIHVuZGVyc2NvcmVzLCBzdGFydGluZyB3aXRoIGEgbGV0dGVyGkp0aGlzLnNpemUoKSA+PSAxICYmIHRoaXMuc2l6ZSgpIDw9IDY0ICYmIHRoaXMubWF0Y2hlcygnXlthLXpdW2EtejAtOV9dKiQnKVIMa2V5Q29tcG9uZW50OvkBCh5hY3Rpb25fZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYvU4gASgIQpcBwkiTAQqQAQolc3RyaW5nLmFjdGlvbl9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIwdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGFuIGFjdGlvbiBkZWZpbml0aW9uIGlkGjUodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2FjdGlvbl9kZWZpbml0aW9uLScpKVIbYWN0aW9uRGVmaW5pdGlvbklkQ29tcG9uZW50OoICCiBmZWVkYmFja19kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi+TiABKAhCnAHCSJgBCpUBCidzdHJpbmcuZmVlZGJhY2tfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSMXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGZlZWRiYWNrIGRlZmluaXRpb24gaWQaNyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnZmVlZGJhY2tfZGVmaW5pdGlvbi0nKSlSHWZlZWRiYWNrRGVmaW5pdGlvbklkQ29tcG9uZW50OoICCiBmdW5jdGlvbl9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi/TiABKAhCnAHCSJgBCpUBCidzdHJpbmcuZnVuY3Rpb25fZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSMXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGZ1bmN0aW9uIGRlZmluaXRpb24gaWQaNyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnZnVuY3Rpb25fZGVmaW5pdGlvbi0nKSlSHWZ1bmN0aW9uRGVmaW5pdGlvbklkQ29tcG9uZW50QrUBChFjb20udmFsaWRhdGlvbi52MUIaUHJlZGVmaW5lZFN0cmluZ1J1bGVzUHJvdG9QAVo/Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3ZhbGlkYXRpb24vdjE7dmFsaWRhdGlvbnYxogIDVlhYygINVmFsaWRhdGlvblxWMeICGVZhbGlkYXRpb25cVjFcR1BCTWV0YWRhdGHqAg5WYWxpZGF0aW9uOjpWMQ", [file_buf_validate_validate]);
15
15
 
16
16
  /**
17
17
  * @generated from extension: optional bool name_component = 10000;
@@ -283,3 +283,21 @@ export const presentation_strategy_id_component: GenExtension<StringRules, boole
283
283
  export const key_component: GenExtension<StringRules, boolean> = /*@__PURE__*/
284
284
  extDesc(file_validation_v1_predefined_string_rules, 44);
285
285
 
286
+ /**
287
+ * @generated from extension: optional bool action_definition_id_component = 10045;
288
+ */
289
+ export const action_definition_id_component: GenExtension<StringRules, boolean> = /*@__PURE__*/
290
+ extDesc(file_validation_v1_predefined_string_rules, 45);
291
+
292
+ /**
293
+ * @generated from extension: optional bool feedback_definition_id_component = 10046;
294
+ */
295
+ export const feedback_definition_id_component: GenExtension<StringRules, boolean> = /*@__PURE__*/
296
+ extDesc(file_validation_v1_predefined_string_rules, 46);
297
+
298
+ /**
299
+ * @generated from extension: optional bool function_definition_id_component = 10047;
300
+ */
301
+ export const function_definition_id_component: GenExtension<StringRules, boolean> = /*@__PURE__*/
302
+ extDesc(file_validation_v1_predefined_string_rules, 47);
303
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cobotar/protocol",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "A collection of protobuf messages for the CobotAR-project",
5
5
  "homepage": "https://github.com/cobotar/protocol#readme",
6
6
  "files": [