@cobotar/protocol 1.3.1 → 1.3.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # CobotAR-Protocol
2
2
  A collection of protobuf messages for the CobotAR-project
3
3
 
4
- Current version: 1.3.1
4
+ Current version: 1.3.3
5
5
 
6
6
  ## Documentation
7
7
  Find it here: [documentation/README.md](documentation/README.md)
@@ -8,9 +8,11 @@ import type { ActionType } from "./action_pb.ts";
8
8
  import { file_ar_v1_action } from "./action_pb.ts";
9
9
  import type { DefinitionStatus } from "./definition_status_pb.ts";
10
10
  import { file_ar_v1_definition_status } from "./definition_status_pb.ts";
11
- import type { ExchangeType, HandlerRequirement } from "./events_pb.ts";
12
- import { file_ar_v1_events } from "./events_pb.ts";
11
+ import type { ExecutionContract } from "./execution_contract_pb.ts";
12
+ import { file_ar_v1_execution_contract } from "./execution_contract_pb.ts";
13
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";
14
16
  import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
15
17
  import type { Message } from "@bufbuild/protobuf";
16
18
 
@@ -18,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf";
18
20
  * Describes the file ar/v1/action_definition.proto.
19
21
  */
20
22
  export const file_ar_v1_action_definition: GenFile = /*@__PURE__*/
21
- fileDesc("Ch1hci92MS9hY3Rpb25fZGVmaW5pdGlvbi5wcm90bxIFYXIudjEihQQKEEFjdGlvbkRlZmluaXRpb24SGAoCaWQYASABKAlCDLpICcgBAXIE6PMEARIZCgNrZXkYAiABKAlCDLpICcgBAXIE4PMEARIXCgRuYW1lGAMgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRIsCgR0eXBlGAYgASgOMhEuYXIudjEuQWN0aW9uVHlwZUILukgIyAEBggECEAESLgoFZ3JvdXAYByABKA4yEi5hci52MS5BY3Rpb25Hcm91cEILukgIyAEBggECEAESGQoIcmV2aXNpb24YCCABKARCB7pIBDICKAESNAoGc3RhdHVzGAkgASgOMhcuYXIudjEuRGVmaW5pdGlvblN0YXR1c0ILukgIyAEBggECEAESFQoNcmVxdWlyZV9hZ2VudBgKIAEoCBIvChJjb25zdW1lcnNfcmVxdWlyZWQYCyADKAsyEy5hci52MS5FeGNoYW5nZVR5cGUSLwoSY29uc3VtZXJzX29wdGlvbmFsGAwgAygLMhMuYXIudjEuRXhjaGFuZ2VUeXBlEjQKEXJlcXVpcmVkX2hhbmRsZXJzGA0gAygLMhkuYXIudjEuSGFuZGxlclJlcXVpcmVtZW50EiIKBWVtaXRzGA4gAygLMhMuYXIudjEuRXhjaGFuZ2VUeXBlIrQDChFBY3Rpb25EZWZpbml0aW9ucxKeAwoFaXRlbXMYASADKAsyFy5hci52MS5BY3Rpb25EZWZpbml0aW9uQvUCukjxAroBeQojYWN0aW9uX2RlZmluaXRpb25zLml0ZW1zLnVuaXF1ZV9pZHMSJGFjdGlvbiBkZWZpbml0aW9uIGlkcyBtdXN0IGJlIHVuaXF1ZRosdGhpcy5tYXAoZGVmaW5pdGlvbiwgZGVmaW5pdGlvbi5pZCkudW5pcXVlKCm6AfEBCi1hY3Rpb25fZGVmaW5pdGlvbnMuaXRlbXMudW5pcXVlX2tleV9yZXZpc2lvbnMSN2FjdGlvbiBkZWZpbml0aW9uIGtleSBhbmQgcmV2aXNpb24gcGFpcnMgbXVzdCBiZSB1bmlxdWUahgF0aGlzLmFsbChkZWZpbml0aW9uLCB0aGlzLmZpbHRlcihjYW5kaWRhdGUsIGNhbmRpZGF0ZS5rZXkgPT0gZGVmaW5pdGlvbi5rZXkgJiYgY2FuZGlkYXRlLnJldmlzaW9uID09IGRlZmluaXRpb24ucmV2aXNpb24pLnNpemUoKSA9PSAxKSp0CgtBY3Rpb25Hcm91cBIcChhBQ1RJT05fR1JPVVBfVU5TUEVDSUZJRUQQABIYChRBQ1RJT05fR1JPVVBfR0VORVJBTBABEhYKEkFDVElPTl9HUk9VUF9ST0JPVBACEhUKEUFDVElPTl9HUk9VUF9UQVNLEANCkQEKCWNvbS5hci52MUIVQWN0aW9uRGVmaW5pdGlvblByb3RvUAFaL2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hci92MTthcnYxogIDQVhYqgIOTWVzc2FnZXMuQVIuVjHKAgVBclxWMeICEUFyXFYxXEdQQk1ldGFkYXRh6gIGQXI6OlYxYgZwcm90bzM", [file_ar_v1_action, file_ar_v1_definition_status, file_ar_v1_events, file_buf_validate_validate, file_validation_v1_predefined_string_rules]);
23
+ fileDesc("Ch1hci92MS9hY3Rpb25fZGVmaW5pdGlvbi5wcm90bxIFYXIudjEiqgQKEEFjdGlvbkRlZmluaXRpb24SGAoCaWQYASABKAlCDLpICcgBAXIE6PMEARIZCgNrZXkYAiABKAlCDLpICcgBAXIE4PMEARIXCgRuYW1lGAMgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRIsCgR0eXBlGAYgASgOMhEuYXIudjEuQWN0aW9uVHlwZUILukgIyAEBggECEAESLgoFZ3JvdXAYByABKA4yEi5hci52MS5BY3Rpb25Hcm91cEILukgIyAEBggECEAESGQoIcmV2aXNpb24YCCABKARCB7pIBDICKAESNAoGc3RhdHVzGAkgASgOMhcuYXIudjEuRGVmaW5pdGlvblN0YXR1c0ILukgIyAEBggECEAEStAEKCnByb3BlcnRpZXMYCiADKAsyGy5jb21tb24udjEuUHJvcGVydHlUZW1wbGF0ZUKCAbpIf7oBfAooYWN0aW9uX2RlZmluaXRpb24ucHJvcGVydGllcy51bmlxdWVfa2V5cxIlcHJvcGVydHkgdGVtcGxhdGUga2V5cyBtdXN0IGJlIHVuaXF1ZRopdGhpcy5tYXAocHJvcGVydHksIHByb3BlcnR5LmtleSkudW5pcXVlKCkSMwoJZXhlY3V0aW9uGA0gASgLMhguYXIudjEuRXhlY3V0aW9uQ29udHJhY3RCBrpIA8gBAUoECAsQDEoECAwQDSK0AwoRQWN0aW9uRGVmaW5pdGlvbnMSngMKBWl0ZW1zGAEgAygLMhcuYXIudjEuQWN0aW9uRGVmaW5pdGlvbkL1ArpI8QK6AXkKI2FjdGlvbl9kZWZpbml0aW9ucy5pdGVtcy51bmlxdWVfaWRzEiRhY3Rpb24gZGVmaW5pdGlvbiBpZHMgbXVzdCBiZSB1bmlxdWUaLHRoaXMubWFwKGRlZmluaXRpb24sIGRlZmluaXRpb24uaWQpLnVuaXF1ZSgpugHxAQotYWN0aW9uX2RlZmluaXRpb25zLml0ZW1zLnVuaXF1ZV9rZXlfcmV2aXNpb25zEjdhY3Rpb24gZGVmaW5pdGlvbiBrZXkgYW5kIHJldmlzaW9uIHBhaXJzIG11c3QgYmUgdW5pcXVlGoYBdGhpcy5hbGwoZGVmaW5pdGlvbiwgdGhpcy5maWx0ZXIoY2FuZGlkYXRlLCBjYW5kaWRhdGUua2V5ID09IGRlZmluaXRpb24ua2V5ICYmIGNhbmRpZGF0ZS5yZXZpc2lvbiA9PSBkZWZpbml0aW9uLnJldmlzaW9uKS5zaXplKCkgPT0gMSkqdAoLQWN0aW9uR3JvdXASHAoYQUNUSU9OX0dST1VQX1VOU1BFQ0lGSUVEEAASGAoUQUNUSU9OX0dST1VQX0dFTkVSQUwQARIWChJBQ1RJT05fR1JPVVBfUk9CT1QQAhIVChFBQ1RJT05fR1JPVVBfVEFTSxADQpEBCgljb20uYXIudjFCFUFjdGlvbkRlZmluaXRpb25Qcm90b1ABWi9naXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvYXIvdjE7YXJ2MaICA0FYWKoCDk1lc3NhZ2VzLkFSLlYxygIFQXJcVjHiAhFBclxWMVxHUEJNZXRhZGF0YeoCBkFyOjpWMWIGcHJvdG8z", [file_ar_v1_action, file_ar_v1_definition_status, file_ar_v1_execution_contract, file_buf_validate_validate, file_common_v1_property, file_validation_v1_predefined_string_rules]);
22
24
 
23
25
  /**
24
26
  * @generated from message ar.v1.ActionDefinition
@@ -76,37 +78,14 @@ export type ActionDefinition = Message<"ar.v1.ActionDefinition"> & {
76
78
  status: DefinitionStatus;
77
79
 
78
80
  /**
79
- * @generated from field: bool require_agent = 10;
81
+ * @generated from field: repeated common.v1.PropertyTemplate properties = 10;
80
82
  */
81
- requireAgent: boolean;
83
+ properties: PropertyTemplate[];
82
84
 
83
85
  /**
84
- * Inputs the action expects to receive
85
- *
86
- * @generated from field: repeated ar.v1.ExchangeType consumers_required = 11;
87
- */
88
- consumersRequired: ExchangeType[];
89
-
90
- /**
91
- * Inputs that will enhance the action, but are not needed to function
92
- *
93
- * @generated from field: repeated ar.v1.ExchangeType consumers_optional = 12;
94
- */
95
- consumersOptional: ExchangeType[];
96
-
97
- /**
98
- * Events that MUST have at least one handler somewhere else in the system.
99
- *
100
- * @generated from field: repeated ar.v1.HandlerRequirement required_handlers = 13;
101
- */
102
- requiredHandlers: HandlerRequirement[];
103
-
104
- /**
105
- * Outputs the action publishes
106
- *
107
- * @generated from field: repeated ar.v1.ExchangeType emits = 14;
86
+ * @generated from field: ar.v1.ExecutionContract execution = 13;
108
87
  */
109
- emits: ExchangeType[];
88
+ execution?: ExecutionContract;
110
89
  };
111
90
 
112
91
  /**
@@ -0,0 +1,69 @@
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
2
+ // @generated from file ar/v1/execution_contract.proto (package ar.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import type { ExchangeType, HandlerRequirement } from "./events_pb.ts";
8
+ import { file_ar_v1_events } from "./events_pb.ts";
9
+ import type { Message } from "@bufbuild/protobuf";
10
+
11
+ /**
12
+ * Describes the file ar/v1/execution_contract.proto.
13
+ */
14
+ export const file_ar_v1_execution_contract: GenFile = /*@__PURE__*/
15
+ fileDesc("Ch5hci92MS9leGVjdXRpb25fY29udHJhY3QucHJvdG8SBWFyLnYxIv0BChFFeGVjdXRpb25Db250cmFjdBIVCg1yZXF1aXJlX2FnZW50GAEgASgIEhUKDXJlcXVpcmVfZnJhbWUYAiABKAgSLwoSY29uc3VtZXJzX3JlcXVpcmVkGAMgAygLMhMuYXIudjEuRXhjaGFuZ2VUeXBlEi8KEmNvbnN1bWVyc19vcHRpb25hbBgEIAMoCzITLmFyLnYxLkV4Y2hhbmdlVHlwZRI0ChFyZXF1aXJlZF9oYW5kbGVycxgFIAMoCzIZLmFyLnYxLkhhbmRsZXJSZXF1aXJlbWVudBIiCgVlbWl0cxgGIAMoCzITLmFyLnYxLkV4Y2hhbmdlVHlwZUKSAQoJY29tLmFyLnYxQhZFeGVjdXRpb25Db250cmFjdFByb3RvUAFaL2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hci92MTthcnYxogIDQVhYqgIOTWVzc2FnZXMuQVIuVjHKAgVBclxWMeICEUFyXFYxXEdQQk1ldGFkYXRh6gIGQXI6OlYxYgZwcm90bzM", [file_ar_v1_events]);
16
+
17
+ /**
18
+ * ExecutionContract declares the runtime dependencies and exchanges required
19
+ * to execute or render a built-in definition.
20
+ *
21
+ * @generated from message ar.v1.ExecutionContract
22
+ */
23
+ export type ExecutionContract = Message<"ar.v1.ExecutionContract"> & {
24
+ /**
25
+ * @generated from field: bool require_agent = 1;
26
+ */
27
+ requireAgent: boolean;
28
+
29
+ /**
30
+ * @generated from field: bool require_frame = 2;
31
+ */
32
+ requireFrame: boolean;
33
+
34
+ /**
35
+ * Inputs the action expects to receive
36
+ *
37
+ * @generated from field: repeated ar.v1.ExchangeType consumers_required = 3;
38
+ */
39
+ consumersRequired: ExchangeType[];
40
+
41
+ /**
42
+ * Inputs that will enhance the action, but are not needed to function
43
+ *
44
+ * @generated from field: repeated ar.v1.ExchangeType consumers_optional = 4;
45
+ */
46
+ consumersOptional: ExchangeType[];
47
+
48
+ /**
49
+ * Events that MUST have at least one handler somewhere else in the system.
50
+ *
51
+ * @generated from field: repeated ar.v1.HandlerRequirement required_handlers = 5;
52
+ */
53
+ requiredHandlers: HandlerRequirement[];
54
+
55
+ /**
56
+ * Outputs the action publishes
57
+ *
58
+ * @generated from field: repeated ar.v1.ExchangeType emits = 6;
59
+ */
60
+ emits: ExchangeType[];
61
+ };
62
+
63
+ /**
64
+ * Describes the message ar.v1.ExecutionContract.
65
+ * Use `create(ExecutionContractSchema)` to create a new message.
66
+ */
67
+ export const ExecutionContractSchema: GenMessage<ExecutionContract> = /*@__PURE__*/
68
+ messageDesc(file_ar_v1_execution_contract, 0);
69
+
@@ -6,8 +6,8 @@ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"
6
6
  import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
7
  import type { DefinitionStatus } from "./definition_status_pb.ts";
8
8
  import { file_ar_v1_definition_status } from "./definition_status_pb.ts";
9
- import type { ExchangeType, HandlerRequirement } from "./events_pb.ts";
10
- import { file_ar_v1_events } from "./events_pb.ts";
9
+ import type { ExecutionContract } from "./execution_contract_pb.ts";
10
+ import { file_ar_v1_execution_contract } from "./execution_contract_pb.ts";
11
11
  import type { FeedbackType } from "./feedback_pb.ts";
12
12
  import { file_ar_v1_feedback } from "./feedback_pb.ts";
13
13
  import type { FeedbackCapability } from "./feedback_capability_pb.ts";
@@ -15,6 +15,8 @@ import { file_ar_v1_feedback_capability } from "./feedback_capability_pb.ts";
15
15
  import type { FeedbackFeature } from "./feedback_features_pb.ts";
16
16
  import { file_ar_v1_feedback_features } from "./feedback_features_pb.ts";
17
17
  import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
18
+ import type { PropertyTemplate } from "../../common/v1/property_pb.ts";
19
+ import { file_common_v1_property } from "../../common/v1/property_pb.ts";
18
20
  import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
19
21
  import type { Message } from "@bufbuild/protobuf";
20
22
 
@@ -22,7 +24,7 @@ import type { Message } from "@bufbuild/protobuf";
22
24
  * Describes the file ar/v1/feedback_definition.proto.
23
25
  */
24
26
  export const file_ar_v1_feedback_definition: GenFile = /*@__PURE__*/
25
- fileDesc("Ch9hci92MS9mZWVkYmFja19kZWZpbml0aW9uLnByb3RvEgVhci52MSKOBwoSRmVlZGJhY2tEZWZpbml0aW9uEhgKAmlkGAEgASgJQgy6SAnIAQFyBPDzBAESGQoDa2V5GAIgASgJQgy6SAnIAQFyBODzBAESFwoEbmFtZRgDIAEoCUIJukgGcgSA8QQBEgwKBGljb24YBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSLgoEdHlwZRgGIAEoDjITLmFyLnYxLkZlZWRiYWNrVHlwZUILukgIyAEBggECEAESMAoFZ3JvdXAYByABKA4yFC5hci52MS5GZWVkYmFja0dyb3VwQgu6SAjIAQGCAQIQARIZCghyZXZpc2lvbhgIIAEoBEIHukgEMgIoARI0CgZzdGF0dXMYCSABKA4yFy5hci52MS5EZWZpbml0aW9uU3RhdHVzQgu6SAjIAQGCAQIQARIVCg1yZXF1aXJlX2FnZW50GAogASgIEhUKDXJlcXVpcmVfZnJhbWUYCyABKAgSLwoSY29uc3VtZXJzX3JlcXVpcmVkGAwgAygLMhMuYXIudjEuRXhjaGFuZ2VUeXBlEi8KEmNvbnN1bWVyc19vcHRpb25hbBgNIAMoCzITLmFyLnYxLkV4Y2hhbmdlVHlwZRI0ChFyZXF1aXJlZF9oYW5kbGVycxgOIAMoCzIZLmFyLnYxLkhhbmRsZXJSZXF1aXJlbWVudBIiCgVlbWl0cxgPIAMoCzITLmFyLnYxLkV4Y2hhbmdlVHlwZRKgAQoIZmVhdHVyZXMYECADKAsyFi5hci52MS5GZWVkYmFja0ZlYXR1cmVCdrpIc7oBcAooZmVlZGJhY2tfZGVmaW5pdGlvbi5mZWF0dXJlcy51bmlxdWVfa2V5cxIbZmVhdHVyZSBrZXlzIG11c3QgYmUgdW5pcXVlGid0aGlzLm1hcChmZWF0dXJlLCBmZWF0dXJlLmtleSkudW5pcXVlKCkSxgEKDGNhcGFiaWxpdGllcxgRIAMoCzIZLmFyLnYxLkZlZWRiYWNrQ2FwYWJpbGl0eUKUAbpIkAG6AYwBCjFmZWVkYmFja19kZWZpbml0aW9uLmNhcGFiaWxpdGllcy51bmlxdWVfc2VtYW50aWNzEiNjYXBhYmlsaXR5IHNlbWFudGljcyBtdXN0IGJlIHVuaXF1ZRoydGhpcy5tYXAoY2FwYWJpbGl0eSwgY2FwYWJpbGl0eS5zZW1hbnRpYykudW5pcXVlKCkiwAMKE0ZlZWRiYWNrRGVmaW5pdGlvbnMSqAMKBWl0ZW1zGAEgAygLMhkuYXIudjEuRmVlZGJhY2tEZWZpbml0aW9uQv0Cukj5AroBfQolZmVlZGJhY2tfZGVmaW5pdGlvbnMuaXRlbXMudW5pcXVlX2lkcxImZmVlZGJhY2sgZGVmaW5pdGlvbiBpZHMgbXVzdCBiZSB1bmlxdWUaLHRoaXMubWFwKGRlZmluaXRpb24sIGRlZmluaXRpb24uaWQpLnVuaXF1ZSgpugH1AQovZmVlZGJhY2tfZGVmaW5pdGlvbnMuaXRlbXMudW5pcXVlX2tleV9yZXZpc2lvbnMSOWZlZWRiYWNrIGRlZmluaXRpb24ga2V5IGFuZCByZXZpc2lvbiBwYWlycyBtdXN0IGJlIHVuaXF1ZRqGAXRoaXMuYWxsKGRlZmluaXRpb24sIHRoaXMuZmlsdGVyKGNhbmRpZGF0ZSwgY2FuZGlkYXRlLmtleSA9PSBkZWZpbml0aW9uLmtleSAmJiBjYW5kaWRhdGUucmV2aXNpb24gPT0gZGVmaW5pdGlvbi5yZXZpc2lvbikuc2l6ZSgpID09IDEpKvsBCg1GZWVkYmFja0dyb3VwEh4KGkZFRURCQUNLX0dST1VQX1VOU1BFQ0lGSUVEEAASGgoWRkVFREJBQ0tfR1JPVVBfR0VORVJBTBABEhoKFkZFRURCQUNLX0dST1VQX1NQQVRJQUwQAhIbChdGRUVEQkFDS19HUk9VUF9SRVNPVVJDRRADEhoKFkZFRURCQUNLX0dST1VQX1BST0NFU1MQBBIdChlGRUVEQkFDS19HUk9VUF9WQUxJREFUSU9OEAUSGAoURkVFREJBQ0tfR1JPVVBfUk9CT1QQBhIgChxGRUVEQkFDS19HUk9VUF9DT0xMQUJPUkFUSU9OEAdCkwEKCWNvbS5hci52MUIXRmVlZGJhY2tEZWZpbml0aW9uUHJvdG9QAVovZ2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2FyL3YxO2FydjGiAgNBWFiqAg5NZXNzYWdlcy5BUi5WMcoCBUFyXFYx4gIRQXJcVjFcR1BCTWV0YWRhdGHqAgZBcjo6VjFiBnByb3RvMw", [file_ar_v1_definition_status, file_ar_v1_events, file_ar_v1_feedback, file_ar_v1_feedback_capability, file_ar_v1_feedback_features, file_buf_validate_validate, file_validation_v1_predefined_string_rules]);
27
+ fileDesc("Ch9hci92MS9mZWVkYmFja19kZWZpbml0aW9uLnByb3RvEgVhci52MSKTBwoSRmVlZGJhY2tEZWZpbml0aW9uEhgKAmlkGAEgASgJQgy6SAnIAQFyBPDzBAESGQoDa2V5GAIgASgJQgy6SAnIAQFyBODzBAESFwoEbmFtZRgDIAEoCUIJukgGcgSA8QQBEgwKBGljb24YBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSLgoEdHlwZRgGIAEoDjITLmFyLnYxLkZlZWRiYWNrVHlwZUILukgIyAEBggECEAESMAoFZ3JvdXAYByABKA4yFC5hci52MS5GZWVkYmFja0dyb3VwQgu6SAjIAQGCAQIQARIZCghyZXZpc2lvbhgIIAEoBEIHukgEMgIoARI0CgZzdGF0dXMYCSABKA4yFy5hci52MS5EZWZpbml0aW9uU3RhdHVzQgu6SAjIAQGCAQIQARK3AQoKcHJvcGVydGllcxgKIAMoCzIbLmNvbW1vbi52MS5Qcm9wZXJ0eVRlbXBsYXRlQoUBukiBAboBfgoqZmVlZGJhY2tfZGVmaW5pdGlvbi5wcm9wZXJ0aWVzLnVuaXF1ZV9rZXlzEiVwcm9wZXJ0eSB0ZW1wbGF0ZSBrZXlzIG11c3QgYmUgdW5pcXVlGil0aGlzLm1hcChwcm9wZXJ0eSwgcHJvcGVydHkua2V5KS51bmlxdWUoKRKgAQoIZmVhdHVyZXMYCyADKAsyFi5hci52MS5GZWVkYmFja0ZlYXR1cmVCdrpIc7oBcAooZmVlZGJhY2tfZGVmaW5pdGlvbi5mZWF0dXJlcy51bmlxdWVfa2V5cxIbZmVhdHVyZSBrZXlzIG11c3QgYmUgdW5pcXVlGid0aGlzLm1hcChmZWF0dXJlLCBmZWF0dXJlLmtleSkudW5pcXVlKCkSxgEKDGNhcGFiaWxpdGllcxgMIAMoCzIZLmFyLnYxLkZlZWRiYWNrQ2FwYWJpbGl0eUKUAbpIkAG6AYwBCjFmZWVkYmFja19kZWZpbml0aW9uLmNhcGFiaWxpdGllcy51bmlxdWVfc2VtYW50aWNzEiNjYXBhYmlsaXR5IHNlbWFudGljcyBtdXN0IGJlIHVuaXF1ZRoydGhpcy5tYXAoY2FwYWJpbGl0eSwgY2FwYWJpbGl0eS5zZW1hbnRpYykudW5pcXVlKCkSMwoJZXhlY3V0aW9uGA0gASgLMhguYXIudjEuRXhlY3V0aW9uQ29udHJhY3RCBrpIA8gBASLAAwoTRmVlZGJhY2tEZWZpbml0aW9ucxKoAwoFaXRlbXMYASADKAsyGS5hci52MS5GZWVkYmFja0RlZmluaXRpb25C/QK6SPkCugF9CiVmZWVkYmFja19kZWZpbml0aW9ucy5pdGVtcy51bmlxdWVfaWRzEiZmZWVkYmFjayBkZWZpbml0aW9uIGlkcyBtdXN0IGJlIHVuaXF1ZRosdGhpcy5tYXAoZGVmaW5pdGlvbiwgZGVmaW5pdGlvbi5pZCkudW5pcXVlKCm6AfUBCi9mZWVkYmFja19kZWZpbml0aW9ucy5pdGVtcy51bmlxdWVfa2V5X3JldmlzaW9ucxI5ZmVlZGJhY2sgZGVmaW5pdGlvbiBrZXkgYW5kIHJldmlzaW9uIHBhaXJzIG11c3QgYmUgdW5pcXVlGoYBdGhpcy5hbGwoZGVmaW5pdGlvbiwgdGhpcy5maWx0ZXIoY2FuZGlkYXRlLCBjYW5kaWRhdGUua2V5ID09IGRlZmluaXRpb24ua2V5ICYmIGNhbmRpZGF0ZS5yZXZpc2lvbiA9PSBkZWZpbml0aW9uLnJldmlzaW9uKS5zaXplKCkgPT0gMSkq+wEKDUZlZWRiYWNrR3JvdXASHgoaRkVFREJBQ0tfR1JPVVBfVU5TUEVDSUZJRUQQABIaChZGRUVEQkFDS19HUk9VUF9HRU5FUkFMEAESGgoWRkVFREJBQ0tfR1JPVVBfU1BBVElBTBACEhsKF0ZFRURCQUNLX0dST1VQX1JFU09VUkNFEAMSGgoWRkVFREJBQ0tfR1JPVVBfUFJPQ0VTUxAEEh0KGUZFRURCQUNLX0dST1VQX1ZBTElEQVRJT04QBRIYChRGRUVEQkFDS19HUk9VUF9ST0JPVBAGEiAKHEZFRURCQUNLX0dST1VQX0NPTExBQk9SQVRJT04QB0KTAQoJY29tLmFyLnYxQhdGZWVkYmFja0RlZmluaXRpb25Qcm90b1ABWi9naXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvYXIvdjE7YXJ2MaICA0FYWKoCDk1lc3NhZ2VzLkFSLlYxygIFQXJcVjHiAhFBclxWMVxHUEJNZXRhZGF0YeoCBkFyOjpWMWIGcHJvdG8z", [file_ar_v1_definition_status, file_ar_v1_execution_contract, file_ar_v1_feedback, file_ar_v1_feedback_capability, file_ar_v1_feedback_features, file_buf_validate_validate, file_common_v1_property, file_validation_v1_predefined_string_rules]);
26
28
 
27
29
  /**
28
30
  * @generated from message ar.v1.FeedbackDefinition
@@ -80,56 +82,28 @@ export type FeedbackDefinition = Message<"ar.v1.FeedbackDefinition"> & {
80
82
  status: DefinitionStatus;
81
83
 
82
84
  /**
83
- * @generated from field: bool require_agent = 10;
85
+ * @generated from field: repeated common.v1.PropertyTemplate properties = 10;
84
86
  */
85
- requireAgent: boolean;
86
-
87
- /**
88
- * @generated from field: bool require_frame = 11;
89
- */
90
- requireFrame: boolean;
91
-
92
- /**
93
- * Inputs the feedback expects to receive
94
- *
95
- * @generated from field: repeated ar.v1.ExchangeType consumers_required = 12;
96
- */
97
- consumersRequired: ExchangeType[];
98
-
99
- /**
100
- * Inputs that will enhance the feedback, but are not needed to function
101
- *
102
- * @generated from field: repeated ar.v1.ExchangeType consumers_optional = 13;
103
- */
104
- consumersOptional: ExchangeType[];
105
-
106
- /**
107
- * Events that MUST have at least one handler somewhere else in the system.
108
- *
109
- * @generated from field: repeated ar.v1.HandlerRequirement required_handlers = 14;
110
- */
111
- requiredHandlers: HandlerRequirement[];
112
-
113
- /**
114
- * Outputs the feedback publishes
115
- *
116
- * @generated from field: repeated ar.v1.ExchangeType emits = 15;
117
- */
118
- emits: ExchangeType[];
87
+ properties: PropertyTemplate[];
119
88
 
120
89
  /**
121
90
  * Implementation/configuration features
122
91
  *
123
- * @generated from field: repeated ar.v1.FeedbackFeature features = 16;
92
+ * @generated from field: repeated ar.v1.FeedbackFeature features = 11;
124
93
  */
125
94
  features: FeedbackFeature[];
126
95
 
127
96
  /**
128
97
  * Assistance semantics
129
98
  *
130
- * @generated from field: repeated ar.v1.FeedbackCapability capabilities = 17;
99
+ * @generated from field: repeated ar.v1.FeedbackCapability capabilities = 12;
131
100
  */
132
101
  capabilities: FeedbackCapability[];
102
+
103
+ /**
104
+ * @generated from field: ar.v1.ExecutionContract execution = 13;
105
+ */
106
+ execution?: ExecutionContract;
133
107
  };
134
108
 
135
109
  /**
@@ -16,7 +16,7 @@ import type { Message } from "@bufbuild/protobuf";
16
16
  * Describes the file ar/v1/feedback.proto.
17
17
  */
18
18
  export const file_ar_v1_feedback: GenFile = /*@__PURE__*/
19
- fileDesc("ChRhci92MS9mZWVkYmFjay5wcm90bxIFYXIudjEi6AEKD0ZlZWRiYWNrTWVzc2FnZRIVCgJpZBgBIAEoCUIJukgGcgTA8wQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiwKFmZlZWRiYWNrX2RlZmluaXRpb25faWQYBSABKAlCDLpICcgBAXIE8PMEARIcCgljb25maWdfaWQYBiABKAlCCbpIBnIEkPEEARI2Cgpwcm92ZW5hbmNlGAcgASgLMhouYXIudjEuQVJDb250ZW50UHJvdmVuYW5jZUIGukgDyAEBIj0KEEZlZWRiYWNrTWVzc2FnZXMSKQoJZmVlZGJhY2tzGAEgAygLMhYuYXIudjEuRmVlZGJhY2tNZXNzYWdlIosCChJGZWVkYmFja0FkZE1lc3NhZ2USHwoJY29uZmlnX2lkGAEgASgJQgy6SAnIAQFyBJDxBAESFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSLAoWZmVlZGJhY2tfZGVmaW5pdGlvbl9pZBgFIAEoCUIMukgJyAEBcgTw8wQBEiQKEXJvYm90X3Byb3BlcnR5X2lkGAYgASgJQgm6SAZyBJjxBAESIwoGYW5jaG9yGAcgASgLMhMuZ2VvbWV0cnkudjEuQW5jaG9yEh8KF2xpbmtfZGVmYXVsdF9wcm9wZXJ0aWVzGAggASgIIqsBChVGZWVkYmFja1VwZGF0ZU1lc3NhZ2USFQoCaWQYASABKAlCCbpIBnIEwPMEARIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRI/Cg1wYXJ0aWNpcGF0aW9uGAUgASgOMhwuYXIudjEuQWRhcHRpdmVQYXJ0aWNpcGF0aW9uQgq6SAeCAQQYARgCIjQKGFJlcXVlc3RGZWVkYmFja093bmVyc2hpcBIYCgJpZBgBIAEoCUIMukgJyAEBcgTA8wQBKq4JCgxGZWVkYmFja1R5cGUSHQoZRkVFREJBQ0tfVFlQRV9VTlNQRUNJRklFRBAAEh4KGkZFRURCQUNLX1RZUEVfVEFSR0VUX0dIT1NUEAoSIgoeRkVFREJBQ0tfVFlQRV9UQVJHRVRfSElHSExJR0hUEAsSHQoZRkVFREJBQ0tfVFlQRV9TTkFQX0dVSURFUxAMEisKJ0ZFRURCQUNLX1RZUEVfQ09OVEFDVF9TVVJGQUNFX0hJR0hMSUdIVBANEiAKHEZFRURCQUNLX1RZUEVfVE9MRVJBTkNFX1pPTkUQDhIfChtGRUVEQkFDS19UWVBFX0VYUExPREVEX1ZJRVcQDxIgChxGRUVEQkFDS19UWVBFX1BBUlRfSElHSExJR0hUEB4SIAocRkVFREJBQ0tfVFlQRV9UT09MX0hJR0hMSUdIVBAfEiYKIkZFRURCQUNLX1RZUEVfQ09OU1VNQUJMRV9JTkRJQ0FUT1IQIBIdChlGRUVEQkFDS19UWVBFX0lOU1RSVUNUSU9OEDISGwoXRkVFREJBQ0tfVFlQRV9DSEVDS0xJU1QQMxIgChxGRUVEQkFDS19UWVBFX1BST0dSRVNTX1BBTkVMEDQSIgoeRkVFREJBQ0tfVFlQRV9ERVBFTkRFTkNZX0dSQVBIEDUSHwobRkVFREJBQ0tfVFlQRV9USU1FX0VTVElNQVRFEDYSFwoTRkVFREJBQ0tfVFlQRV9SVUxFUhBGEiAKHEZFRURCQUNLX1RZUEVfUE9TRV9WQUxJREFUT1IQRxIlCiFGRUVEQkFDS19UWVBFX1ZJU0lPTl9DT05GSVJNQVRJT04QSBIlCiFGRUVEQkFDS19UWVBFX1RPUlFVRV9DT05GSVJNQVRJT04QSRIcChhGRUVEQkFDS19UWVBFX1JPQk9UX1BBVEgQWhIhCh1GRUVEQkFDS19UWVBFX1JPQk9UX1dBWVBPSU5UUxBbEiIKHkZFRURCQUNLX1RZUEVfUk9CT1RfU0lMSE9VRVRURRBcEiMKH0ZFRURCQUNLX1RZUEVfUk9CT1RfSU5URU5UX0NPTkUQXRIoCiRGRUVEQkFDS19UWVBFX1JPQk9UX09DQ1VQQU5DWV9WT0xVTUUQXhIeChpGRUVEQkFDS19UWVBFX1JPQk9UX1NUQVRVUxBfEh0KGUZFRURCQUNLX1RZUEVfUk9CT1RfTElHSFQQYBIfChtGRUVEQkFDS19UWVBFX0hBTkRPVkVSX1pPTkUQeBIpCiVGRUVEQkFDS19UWVBFX1NZTkNIUk9OSVpBVElPTl9CQVJSSUVSEHkSJwojRkVFREJBQ0tfVFlQRV9TSEFSRURfVEFTS19JTkRJQ0FUT1IQehIhCh1GRUVEQkFDS19UWVBFX1JPQk9UX0FUVEVOVElPThB7EhoKFUZFRURCQUNLX1RZUEVfTUVTU0FHRRDIARIXChJGRUVEQkFDS19UWVBFX0lDT04QyQESHAoXRkVFREJBQ0tfVFlQRV9ISUdITElHSFQQygESFwoSRkVFREJBQ0tfVFlQRV9aT05FEMsBEh0KGEZFRURCQUNLX1RZUEVfUExBWV9TT1VORBDMAUKJAQoJY29tLmFyLnYxQg1GZWVkYmFja1Byb3RvUAFaL2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hci92MTthcnYxogIDQVhYqgIOTWVzc2FnZXMuQVIuVjHKAgVBclxWMeICEUFyXFYxXEdQQk1ldGFkYXRh6gIGQXI6OlYxYgZwcm90bzM", [file_ar_v1_provenance, file_buf_validate_validate, file_geometry_v1_anchor, file_validation_v1_predefined_string_rules]);
19
+ fileDesc("ChRhci92MS9mZWVkYmFjay5wcm90bxIFYXIudjEi6wEKD0ZlZWRiYWNrTWVzc2FnZRIVCgJpZBgBIAEoCUIJukgGcgTA8wQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiwKFmZlZWRiYWNrX2RlZmluaXRpb25faWQYBSABKAlCDLpICcgBAXIE8PMEARIfCgljb25maWdfaWQYBiABKAlCDLpICcgBAXIEkPEEARI2Cgpwcm92ZW5hbmNlGAcgASgLMhouYXIudjEuQVJDb250ZW50UHJvdmVuYW5jZUIGukgDyAEBIj0KEEZlZWRiYWNrTWVzc2FnZXMSKQoJZmVlZGJhY2tzGAEgAygLMhYuYXIudjEuRmVlZGJhY2tNZXNzYWdlIosCChJGZWVkYmFja0FkZE1lc3NhZ2USHwoJY29uZmlnX2lkGAEgASgJQgy6SAnIAQFyBJDxBAESFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSLAoWZmVlZGJhY2tfZGVmaW5pdGlvbl9pZBgFIAEoCUIMukgJyAEBcgTw8wQBEiQKEXJvYm90X3Byb3BlcnR5X2lkGAYgASgJQgm6SAZyBJjxBAESIwoGYW5jaG9yGAcgASgLMhMuZ2VvbWV0cnkudjEuQW5jaG9yEh8KF2xpbmtfZGVmYXVsdF9wcm9wZXJ0aWVzGAggASgIIqsBChVGZWVkYmFja1VwZGF0ZU1lc3NhZ2USFQoCaWQYASABKAlCCbpIBnIEwPMEARIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRI/Cg1wYXJ0aWNpcGF0aW9uGAUgASgOMhwuYXIudjEuQWRhcHRpdmVQYXJ0aWNpcGF0aW9uQgq6SAeCAQQYARgCIjQKGFJlcXVlc3RGZWVkYmFja093bmVyc2hpcBIYCgJpZBgBIAEoCUIMukgJyAEBcgTA8wQBKq4JCgxGZWVkYmFja1R5cGUSHQoZRkVFREJBQ0tfVFlQRV9VTlNQRUNJRklFRBAAEh4KGkZFRURCQUNLX1RZUEVfVEFSR0VUX0dIT1NUEAoSIgoeRkVFREJBQ0tfVFlQRV9UQVJHRVRfSElHSExJR0hUEAsSHQoZRkVFREJBQ0tfVFlQRV9TTkFQX0dVSURFUxAMEisKJ0ZFRURCQUNLX1RZUEVfQ09OVEFDVF9TVVJGQUNFX0hJR0hMSUdIVBANEiAKHEZFRURCQUNLX1RZUEVfVE9MRVJBTkNFX1pPTkUQDhIfChtGRUVEQkFDS19UWVBFX0VYUExPREVEX1ZJRVcQDxIgChxGRUVEQkFDS19UWVBFX1BBUlRfSElHSExJR0hUEB4SIAocRkVFREJBQ0tfVFlQRV9UT09MX0hJR0hMSUdIVBAfEiYKIkZFRURCQUNLX1RZUEVfQ09OU1VNQUJMRV9JTkRJQ0FUT1IQIBIdChlGRUVEQkFDS19UWVBFX0lOU1RSVUNUSU9OEDISGwoXRkVFREJBQ0tfVFlQRV9DSEVDS0xJU1QQMxIgChxGRUVEQkFDS19UWVBFX1BST0dSRVNTX1BBTkVMEDQSIgoeRkVFREJBQ0tfVFlQRV9ERVBFTkRFTkNZX0dSQVBIEDUSHwobRkVFREJBQ0tfVFlQRV9USU1FX0VTVElNQVRFEDYSFwoTRkVFREJBQ0tfVFlQRV9SVUxFUhBGEiAKHEZFRURCQUNLX1RZUEVfUE9TRV9WQUxJREFUT1IQRxIlCiFGRUVEQkFDS19UWVBFX1ZJU0lPTl9DT05GSVJNQVRJT04QSBIlCiFGRUVEQkFDS19UWVBFX1RPUlFVRV9DT05GSVJNQVRJT04QSRIcChhGRUVEQkFDS19UWVBFX1JPQk9UX1BBVEgQWhIhCh1GRUVEQkFDS19UWVBFX1JPQk9UX1dBWVBPSU5UUxBbEiIKHkZFRURCQUNLX1RZUEVfUk9CT1RfU0lMSE9VRVRURRBcEiMKH0ZFRURCQUNLX1RZUEVfUk9CT1RfSU5URU5UX0NPTkUQXRIoCiRGRUVEQkFDS19UWVBFX1JPQk9UX09DQ1VQQU5DWV9WT0xVTUUQXhIeChpGRUVEQkFDS19UWVBFX1JPQk9UX1NUQVRVUxBfEh0KGUZFRURCQUNLX1RZUEVfUk9CT1RfTElHSFQQYBIfChtGRUVEQkFDS19UWVBFX0hBTkRPVkVSX1pPTkUQeBIpCiVGRUVEQkFDS19UWVBFX1NZTkNIUk9OSVpBVElPTl9CQVJSSUVSEHkSJwojRkVFREJBQ0tfVFlQRV9TSEFSRURfVEFTS19JTkRJQ0FUT1IQehIhCh1GRUVEQkFDS19UWVBFX1JPQk9UX0FUVEVOVElPThB7EhoKFUZFRURCQUNLX1RZUEVfTUVTU0FHRRDIARIXChJGRUVEQkFDS19UWVBFX0lDT04QyQESHAoXRkVFREJBQ0tfVFlQRV9ISUdITElHSFQQygESFwoSRkVFREJBQ0tfVFlQRV9aT05FEMsBEh0KGEZFRURCQUNLX1RZUEVfUExBWV9TT1VORBDMAUKJAQoJY29tLmFyLnYxQg1GZWVkYmFja1Byb3RvUAFaL2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hci92MTthcnYxogIDQVhYqgIOTWVzc2FnZXMuQVIuVjHKAgVBclxWMeICEUFyXFYxXEdQQk1ldGFkYXRh6gIGQXI6OlYxYgZwcm90bzM", [file_ar_v1_provenance, file_buf_validate_validate, file_geometry_v1_anchor, file_validation_v1_predefined_string_rules]);
20
20
 
21
21
  /**
22
22
  * @generated from message ar.v1.FeedbackMessage
@@ -6,11 +6,13 @@ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"
6
6
  import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
7
  import type { DefinitionStatus } from "./definition_status_pb.ts";
8
8
  import { file_ar_v1_definition_status } from "./definition_status_pb.ts";
9
- import type { ExchangeType, HandlerRequirement } from "./events_pb.ts";
10
- import { file_ar_v1_events } from "./events_pb.ts";
9
+ import type { ExecutionContract } from "./execution_contract_pb.ts";
10
+ import { file_ar_v1_execution_contract } from "./execution_contract_pb.ts";
11
11
  import type { FunctionType } from "./function_pb.ts";
12
12
  import { file_ar_v1_function } from "./function_pb.ts";
13
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";
14
16
  import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
15
17
  import type { Message } from "@bufbuild/protobuf";
16
18
 
@@ -18,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf";
18
20
  * Describes the file ar/v1/function_definition.proto.
19
21
  */
20
22
  export const file_ar_v1_function_definition: GenFile = /*@__PURE__*/
21
- fileDesc("Ch9hci92MS9mdW5jdGlvbl9kZWZpbml0aW9uLnByb3RvEgVhci52MSL0AwoSRnVuY3Rpb25EZWZpbml0aW9uEhgKAmlkGAEgASgJQgy6SAnIAQFyBPjzBAESGQoDa2V5GAIgASgJQgy6SAnIAQFyBODzBAESFwoEbmFtZRgDIAEoCUIJukgGcgSA8QQBEgwKBGljb24YBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSLgoEdHlwZRgGIAEoDjITLmFyLnYxLkZ1bmN0aW9uVHlwZUILukgIyAEBggECEAESMAoFZ3JvdXAYByABKA4yFC5hci52MS5GdW5jdGlvbkdyb3VwQgu6SAjIAQGCAQIQARIZCghyZXZpc2lvbhgIIAEoBEIHukgEMgIoARI0CgZzdGF0dXMYCSABKA4yFy5hci52MS5EZWZpbml0aW9uU3RhdHVzQgu6SAjIAQGCAQIQARIvChJjb25zdW1lcnNfcmVxdWlyZWQYCiADKAsyEy5hci52MS5FeGNoYW5nZVR5cGUSLwoSY29uc3VtZXJzX29wdGlvbmFsGAsgAygLMhMuYXIudjEuRXhjaGFuZ2VUeXBlEjQKEXJlcXVpcmVkX2hhbmRsZXJzGAwgAygLMhkuYXIudjEuSGFuZGxlclJlcXVpcmVtZW50EiIKBWVtaXRzGA0gAygLMhMuYXIudjEuRXhjaGFuZ2VUeXBlIsADChNGdW5jdGlvbkRlZmluaXRpb25zEqgDCgVpdGVtcxgBIAMoCzIZLmFyLnYxLkZ1bmN0aW9uRGVmaW5pdGlvbkL9ArpI+QK6AX0KJWZ1bmN0aW9uX2RlZmluaXRpb25zLml0ZW1zLnVuaXF1ZV9pZHMSJmZ1bmN0aW9uIGRlZmluaXRpb24gaWRzIG11c3QgYmUgdW5pcXVlGix0aGlzLm1hcChkZWZpbml0aW9uLCBkZWZpbml0aW9uLmlkKS51bmlxdWUoKboB9QEKL2Z1bmN0aW9uX2RlZmluaXRpb25zLml0ZW1zLnVuaXF1ZV9rZXlfcmV2aXNpb25zEjlmdW5jdGlvbiBkZWZpbml0aW9uIGtleSBhbmQgcmV2aXNpb24gcGFpcnMgbXVzdCBiZSB1bmlxdWUahgF0aGlzLmFsbChkZWZpbml0aW9uLCB0aGlzLmZpbHRlcihjYW5kaWRhdGUsIGNhbmRpZGF0ZS5rZXkgPT0gZGVmaW5pdGlvbi5rZXkgJiYgY2FuZGlkYXRlLnJldmlzaW9uID09IGRlZmluaXRpb24ucmV2aXNpb24pLnNpemUoKSA9PSAxKSqnAgoNRnVuY3Rpb25Hcm91cBIeChpGVU5DVElPTl9HUk9VUF9VTlNQRUNJRklFRBAAEhoKFkZVTkNUSU9OX0dST1VQX0dFTkVSQUwQARIYChRGVU5DVElPTl9HUk9VUF9ST0JPVBACEhcKE0ZVTkNUSU9OX0dST1VQX1RBU0sQAxIeChpGVU5DVElPTl9HUk9VUF9FTlZJUk9OTUVOVBAEEhsKF0ZVTkNUSU9OX0dST1VQX09QRVJBVE9SEAUSGgoWRlVOQ1RJT05fR1JPVVBfU1BBVElBTBAGEhgKFEZVTkNUSU9OX0dST1VQX0xPR0lDEAcSFwoTRlVOQ1RJT05fR1JPVVBfREFUQRAIEhsKF0ZVTkNUSU9OX0dST1VQX1RFTVBPUkFMEAlCkwEKCWNvbS5hci52MUIXRnVuY3Rpb25EZWZpbml0aW9uUHJvdG9QAVovZ2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL2FyL3YxO2FydjGiAgNBWFiqAg5NZXNzYWdlcy5BUi5WMcoCBUFyXFYx4gIRQXJcVjFcR1BCTWV0YWRhdGHqAgZBcjo6VjFiBnByb3RvMw", [file_ar_v1_definition_status, file_ar_v1_events, file_ar_v1_function, file_buf_validate_validate, file_validation_v1_predefined_string_rules]);
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]);
22
24
 
23
25
  /**
24
26
  * @generated from message ar.v1.FunctionDefinition
@@ -76,32 +78,14 @@ export type FunctionDefinition = Message<"ar.v1.FunctionDefinition"> & {
76
78
  status: DefinitionStatus;
77
79
 
78
80
  /**
79
- * Inputs the function expects to receive
80
- *
81
- * @generated from field: repeated ar.v1.ExchangeType consumers_required = 10;
82
- */
83
- consumersRequired: ExchangeType[];
84
-
85
- /**
86
- * Inputs that will enhance the function, but are not needed to function
87
- *
88
- * @generated from field: repeated ar.v1.ExchangeType consumers_optional = 11;
81
+ * @generated from field: repeated common.v1.PropertyTemplate properties = 10;
89
82
  */
90
- consumersOptional: ExchangeType[];
83
+ properties: PropertyTemplate[];
91
84
 
92
85
  /**
93
- * Events that MUST have at least one handler somewhere else in the system.
94
- *
95
- * @generated from field: repeated ar.v1.HandlerRequirement required_handlers = 12;
96
- */
97
- requiredHandlers: HandlerRequirement[];
98
-
99
- /**
100
- * Outputs the function publishes
101
- *
102
- * @generated from field: repeated ar.v1.ExchangeType emits = 13;
86
+ * @generated from field: ar.v1.ExecutionContract execution = 13;
103
87
  */
104
- emits: ExchangeType[];
88
+ execution?: ExecutionContract;
105
89
  };
106
90
 
107
91
  /**
@@ -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
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cobotar/protocol",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "description": "A collection of protobuf messages for the CobotAR-project",
5
5
  "homepage": "https://github.com/cobotar/protocol#readme",
6
6
  "files": [