From dd4a863e091167d1a68e8f374244e9b85b59671b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 14:17:16 -0400 Subject: [PATCH] Automated Protos Update (#54) Co-authored-by: viambot Co-authored-by: Naveed Jooma --- .../api/expr/v1alpha1/ConstantOrBuilder.java | 8 +- .../com/google/api/expr/v1alpha1/Expr.java | 386 +++++++++++++++--- core/sdk/src/main/gen/viam/app/v1/App.java | 331 ++++++++++++++- core/sdk/src/main/resources/protofds/viam.api | Bin 513077 -> 513428 bytes 4 files changed, 665 insertions(+), 60 deletions(-) diff --git a/core/sdk/src/main/gen/com/google/api/expr/v1alpha1/ConstantOrBuilder.java b/core/sdk/src/main/gen/com/google/api/expr/v1alpha1/ConstantOrBuilder.java index ab40f5664..4bc633d0a 100644 --- a/core/sdk/src/main/gen/com/google/api/expr/v1alpha1/ConstantOrBuilder.java +++ b/core/sdk/src/main/gen/com/google/api/expr/v1alpha1/ConstantOrBuilder.java @@ -169,7 +169,7 @@ public interface ConstantOrBuilder extends * * .google.protobuf.Duration duration_value = 8 [json_name = "durationValue", deprecated = true]; * @deprecated google.api.expr.v1alpha1.Constant.duration_value is deprecated. - * See google/api/expr/v1alpha1/syntax.proto;l=287 + * See google/api/expr/v1alpha1/syntax.proto;l=325 * @return Whether the durationValue field is set. */ @java.lang.Deprecated boolean hasDurationValue(); @@ -182,7 +182,7 @@ public interface ConstantOrBuilder extends * * .google.protobuf.Duration duration_value = 8 [json_name = "durationValue", deprecated = true]; * @deprecated google.api.expr.v1alpha1.Constant.duration_value is deprecated. - * See google/api/expr/v1alpha1/syntax.proto;l=287 + * See google/api/expr/v1alpha1/syntax.proto;l=325 * @return The durationValue. */ @java.lang.Deprecated com.google.protobuf.Duration getDurationValue(); @@ -196,7 +196,7 @@ public interface ConstantOrBuilder extends * * .google.protobuf.Timestamp timestamp_value = 9 [json_name = "timestampValue", deprecated = true]; * @deprecated google.api.expr.v1alpha1.Constant.timestamp_value is deprecated. - * See google/api/expr/v1alpha1/syntax.proto;l=292 + * See google/api/expr/v1alpha1/syntax.proto;l=330 * @return Whether the timestampValue field is set. */ @java.lang.Deprecated boolean hasTimestampValue(); @@ -209,7 +209,7 @@ public interface ConstantOrBuilder extends * * .google.protobuf.Timestamp timestamp_value = 9 [json_name = "timestampValue", deprecated = true]; * @deprecated google.api.expr.v1alpha1.Constant.timestamp_value is deprecated. - * See google/api/expr/v1alpha1/syntax.proto;l=292 + * See google/api/expr/v1alpha1/syntax.proto;l=330 * @return The timestampValue. */ @java.lang.Deprecated com.google.protobuf.Timestamp getTimestampValue(); diff --git a/core/sdk/src/main/gen/com/google/api/expr/v1alpha1/Expr.java b/core/sdk/src/main/gen/com/google/api/expr/v1alpha1/Expr.java index bdbf11b79..ccfac672e 100644 --- a/core/sdk/src/main/gen/com/google/api/expr/v1alpha1/Expr.java +++ b/core/sdk/src/main/gen/com/google/api/expr/v1alpha1/Expr.java @@ -4501,7 +4501,9 @@ public interface ComprehensionOrBuilder extends /** *
-     * The name of the iteration variable.
+     * The name of the first iteration variable.
+     * When the iter_range is a list, this variable is the list element.
+     * When the iter_range is a map, this variable is the map entry key.
      * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -4510,7 +4512,9 @@ public interface ComprehensionOrBuilder extends java.lang.String getIterVar(); /** *
-     * The name of the iteration variable.
+     * The name of the first iteration variable.
+     * When the iter_range is a list, this variable is the list element.
+     * When the iter_range is a map, this variable is the map entry key.
      * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -4521,7 +4525,33 @@ public interface ComprehensionOrBuilder extends /** *
-     * The range over which var iterates.
+     * The name of the second iteration variable, empty if not set.
+     * When the iter_range is a list, this variable is the integer index.
+     * When the iter_range is a map, this variable is the map entry value.
+     * This field is only set for comprehension v2 macros.
+     * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @return The iterVar2. + */ + java.lang.String getIterVar2(); + /** + *
+     * The name of the second iteration variable, empty if not set.
+     * When the iter_range is a list, this variable is the integer index.
+     * When the iter_range is a map, this variable is the map entry value.
+     * This field is only set for comprehension v2 macros.
+     * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @return The bytes for iterVar2. + */ + com.google.protobuf.ByteString + getIterVar2Bytes(); + + /** + *
+     * The range over which the comprehension iterates.
      * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -4530,7 +4560,7 @@ public interface ComprehensionOrBuilder extends boolean hasIterRange(); /** *
-     * The range over which var iterates.
+     * The range over which the comprehension iterates.
      * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -4579,7 +4609,7 @@ public interface ComprehensionOrBuilder extends /** *
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Returns false when the result has been computed and may be used as
      * a hint to short-circuit the remainder of the comprehension.
@@ -4591,7 +4621,7 @@ public interface ComprehensionOrBuilder extends
     boolean hasLoopCondition();
     /**
      * 
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Returns false when the result has been computed and may be used as
      * a hint to short-circuit the remainder of the comprehension.
@@ -4604,7 +4634,7 @@ public interface ComprehensionOrBuilder extends
 
     /**
      * 
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Computes the next value of accu_var.
      * 
@@ -4615,7 +4645,7 @@ public interface ComprehensionOrBuilder extends boolean hasLoopStep(); /** *
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Computes the next value of accu_var.
      * 
@@ -4676,6 +4706,36 @@ public interface ComprehensionOrBuilder extends * messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the * macro tests whether the property is set to its default. For map and struct * types, the macro tests whether the property `x` is defined on `m`. + * + * Comprehensions for the standard environment macros evaluation can be best + * visualized as the following pseudocode: + * + * ``` + * let `accu_var` = `accu_init` + * for (let `iter_var` in `iter_range`) { + * if (!`loop_condition`) { + * break + * } + * `accu_var` = `loop_step` + * } + * return `result` + * ``` + * + * Comprehensions for the optional V2 macros which support map-to-map + * translation differ slightly from the standard environment macros in that + * they expose both the key or index in addition to the value for each list + * or map entry: + * + * ``` + * let `accu_var` = `accu_init` + * for (let `iter_var`, `iter_var2` in `iter_range`) { + * if (!`loop_condition`) { + * break + * } + * `accu_var` = `loop_step` + * } + * return `result` + * ``` *
* * Protobuf type {@code google.api.expr.v1alpha1.Expr.Comprehension} @@ -4687,6 +4747,7 @@ public static final class Comprehension extends ComprehensionOrBuilder { private Comprehension() { iterVar_ = ""; + iterVar2_ = ""; accuVar_ = ""; } private int bitField0_; @@ -4694,7 +4755,9 @@ private Comprehension() { private java.lang.String iterVar_; /** *
-     * The name of the iteration variable.
+     * The name of the first iteration variable.
+     * When the iter_range is a list, this variable is the list element.
+     * When the iter_range is a map, this variable is the map entry key.
      * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -4706,7 +4769,9 @@ public java.lang.String getIterVar() { } /** *
-     * The name of the iteration variable.
+     * The name of the first iteration variable.
+     * When the iter_range is a list, this variable is the list element.
+     * When the iter_range is a map, this variable is the map entry key.
      * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -4719,7 +4784,9 @@ public java.lang.String getIterVar() { } /** *
-     * The name of the iteration variable.
+     * The name of the first iteration variable.
+     * When the iter_range is a list, this variable is the list element.
+     * When the iter_range is a map, this variable is the map entry key.
      * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -4733,7 +4800,9 @@ private void setIterVar( } /** *
-     * The name of the iteration variable.
+     * The name of the first iteration variable.
+     * When the iter_range is a list, this variable is the list element.
+     * When the iter_range is a map, this variable is the map entry key.
      * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -4744,7 +4813,9 @@ private void clearIterVar() { } /** *
-     * The name of the iteration variable.
+     * The name of the first iteration variable.
+     * When the iter_range is a list, this variable is the list element.
+     * When the iter_range is a map, this variable is the map entry key.
      * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -4757,11 +4828,93 @@ private void setIterVarBytes( } + public static final int ITER_VAR2_FIELD_NUMBER = 8; + private java.lang.String iterVar2_; + /** + *
+     * The name of the second iteration variable, empty if not set.
+     * When the iter_range is a list, this variable is the integer index.
+     * When the iter_range is a map, this variable is the map entry value.
+     * This field is only set for comprehension v2 macros.
+     * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @return The iterVar2. + */ + @java.lang.Override + public java.lang.String getIterVar2() { + return iterVar2_; + } + /** + *
+     * The name of the second iteration variable, empty if not set.
+     * When the iter_range is a list, this variable is the integer index.
+     * When the iter_range is a map, this variable is the map entry value.
+     * This field is only set for comprehension v2 macros.
+     * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @return The bytes for iterVar2. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIterVar2Bytes() { + return com.google.protobuf.ByteString.copyFromUtf8(iterVar2_); + } + /** + *
+     * The name of the second iteration variable, empty if not set.
+     * When the iter_range is a list, this variable is the integer index.
+     * When the iter_range is a map, this variable is the map entry value.
+     * This field is only set for comprehension v2 macros.
+     * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @param value The iterVar2 to set. + */ + private void setIterVar2( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + iterVar2_ = value; + } + /** + *
+     * The name of the second iteration variable, empty if not set.
+     * When the iter_range is a list, this variable is the integer index.
+     * When the iter_range is a map, this variable is the map entry value.
+     * This field is only set for comprehension v2 macros.
+     * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + */ + private void clearIterVar2() { + + iterVar2_ = getDefaultInstance().getIterVar2(); + } + /** + *
+     * The name of the second iteration variable, empty if not set.
+     * When the iter_range is a list, this variable is the integer index.
+     * When the iter_range is a map, this variable is the map entry value.
+     * This field is only set for comprehension v2 macros.
+     * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @param value The bytes for iterVar2 to set. + */ + private void setIterVar2Bytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + iterVar2_ = value.toStringUtf8(); + + } + public static final int ITER_RANGE_FIELD_NUMBER = 2; private com.google.api.expr.v1alpha1.Expr iterRange_; /** *
-     * The range over which var iterates.
+     * The range over which the comprehension iterates.
      * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -4772,7 +4925,7 @@ public boolean hasIterRange() { } /** *
-     * The range over which var iterates.
+     * The range over which the comprehension iterates.
      * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -4783,7 +4936,7 @@ public com.google.api.expr.v1alpha1.Expr getIterRange() { } /** *
-     * The range over which var iterates.
+     * The range over which the comprehension iterates.
      * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -4795,7 +4948,7 @@ private void setIterRange(com.google.api.expr.v1alpha1.Expr value) { } /** *
-     * The range over which var iterates.
+     * The range over which the comprehension iterates.
      * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -4814,7 +4967,7 @@ private void mergeIterRange(com.google.api.expr.v1alpha1.Expr value) { } /** *
-     * The range over which var iterates.
+     * The range over which the comprehension iterates.
      * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -4960,7 +5113,7 @@ private void mergeAccuInit(com.google.api.expr.v1alpha1.Expr value) { private com.google.api.expr.v1alpha1.Expr loopCondition_; /** *
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Returns false when the result has been computed and may be used as
      * a hint to short-circuit the remainder of the comprehension.
@@ -4974,7 +5127,7 @@ public boolean hasLoopCondition() {
     }
     /**
      * 
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Returns false when the result has been computed and may be used as
      * a hint to short-circuit the remainder of the comprehension.
@@ -4988,7 +5141,7 @@ public com.google.api.expr.v1alpha1.Expr getLoopCondition() {
     }
     /**
      * 
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Returns false when the result has been computed and may be used as
      * a hint to short-circuit the remainder of the comprehension.
@@ -5003,7 +5156,7 @@ private void setLoopCondition(com.google.api.expr.v1alpha1.Expr value) {
       }
     /**
      * 
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Returns false when the result has been computed and may be used as
      * a hint to short-circuit the remainder of the comprehension.
@@ -5025,7 +5178,7 @@ private void mergeLoopCondition(com.google.api.expr.v1alpha1.Expr value) {
     }
     /**
      * 
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Returns false when the result has been computed and may be used as
      * a hint to short-circuit the remainder of the comprehension.
@@ -5041,7 +5194,7 @@ private void mergeLoopCondition(com.google.api.expr.v1alpha1.Expr value) {
     private com.google.api.expr.v1alpha1.Expr loopStep_;
     /**
      * 
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Computes the next value of accu_var.
      * 
@@ -5054,7 +5207,7 @@ public boolean hasLoopStep() { } /** *
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Computes the next value of accu_var.
      * 
@@ -5067,7 +5220,7 @@ public com.google.api.expr.v1alpha1.Expr getLoopStep() { } /** *
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Computes the next value of accu_var.
      * 
@@ -5081,7 +5234,7 @@ private void setLoopStep(com.google.api.expr.v1alpha1.Expr value) { } /** *
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Computes the next value of accu_var.
      * 
@@ -5102,7 +5255,7 @@ private void mergeLoopStep(com.google.api.expr.v1alpha1.Expr value) { } /** *
-     * An expression which can contain iter_var and accu_var.
+     * An expression which can contain iter_var, iter_var2, and accu_var.
      *
      * Computes the next value of accu_var.
      * 
@@ -5300,6 +5453,36 @@ public static Builder newBuilder(com.google.api.expr.v1alpha1.Expr.Comprehension * messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the * macro tests whether the property is set to its default. For map and struct * types, the macro tests whether the property `x` is defined on `m`. + * + * Comprehensions for the standard environment macros evaluation can be best + * visualized as the following pseudocode: + * + * ``` + * let `accu_var` = `accu_init` + * for (let `iter_var` in `iter_range`) { + * if (!`loop_condition`) { + * break + * } + * `accu_var` = `loop_step` + * } + * return `result` + * ``` + * + * Comprehensions for the optional V2 macros which support map-to-map + * translation differ slightly from the standard environment macros in that + * they expose both the key or index in addition to the value for each list + * or map entry: + * + * ``` + * let `accu_var` = `accu_init` + * for (let `iter_var`, `iter_var2` in `iter_range`) { + * if (!`loop_condition`) { + * break + * } + * `accu_var` = `loop_step` + * } + * return `result` + * ``` *
* * Protobuf type {@code google.api.expr.v1alpha1.Expr.Comprehension} @@ -5317,7 +5500,9 @@ private Builder() { /** *
-       * The name of the iteration variable.
+       * The name of the first iteration variable.
+       * When the iter_range is a list, this variable is the list element.
+       * When the iter_range is a map, this variable is the map entry key.
        * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -5329,7 +5514,9 @@ public java.lang.String getIterVar() { } /** *
-       * The name of the iteration variable.
+       * The name of the first iteration variable.
+       * When the iter_range is a list, this variable is the list element.
+       * When the iter_range is a map, this variable is the map entry key.
        * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -5342,7 +5529,9 @@ public java.lang.String getIterVar() { } /** *
-       * The name of the iteration variable.
+       * The name of the first iteration variable.
+       * When the iter_range is a list, this variable is the list element.
+       * When the iter_range is a map, this variable is the map entry key.
        * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -5357,7 +5546,9 @@ public Builder setIterVar( } /** *
-       * The name of the iteration variable.
+       * The name of the first iteration variable.
+       * When the iter_range is a list, this variable is the list element.
+       * When the iter_range is a map, this variable is the map entry key.
        * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -5370,7 +5561,9 @@ public Builder clearIterVar() { } /** *
-       * The name of the iteration variable.
+       * The name of the first iteration variable.
+       * When the iter_range is a list, this variable is the list element.
+       * When the iter_range is a map, this variable is the map entry key.
        * 
* * string iter_var = 1 [json_name = "iterVar"]; @@ -5386,7 +5579,91 @@ public Builder setIterVarBytes( /** *
-       * The range over which var iterates.
+       * The name of the second iteration variable, empty if not set.
+       * When the iter_range is a list, this variable is the integer index.
+       * When the iter_range is a map, this variable is the map entry value.
+       * This field is only set for comprehension v2 macros.
+       * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @return The iterVar2. + */ + @java.lang.Override + public java.lang.String getIterVar2() { + return instance.getIterVar2(); + } + /** + *
+       * The name of the second iteration variable, empty if not set.
+       * When the iter_range is a list, this variable is the integer index.
+       * When the iter_range is a map, this variable is the map entry value.
+       * This field is only set for comprehension v2 macros.
+       * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @return The bytes for iterVar2. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIterVar2Bytes() { + return instance.getIterVar2Bytes(); + } + /** + *
+       * The name of the second iteration variable, empty if not set.
+       * When the iter_range is a list, this variable is the integer index.
+       * When the iter_range is a map, this variable is the map entry value.
+       * This field is only set for comprehension v2 macros.
+       * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @param value The iterVar2 to set. + * @return This builder for chaining. + */ + public Builder setIterVar2( + java.lang.String value) { + copyOnWrite(); + instance.setIterVar2(value); + return this; + } + /** + *
+       * The name of the second iteration variable, empty if not set.
+       * When the iter_range is a list, this variable is the integer index.
+       * When the iter_range is a map, this variable is the map entry value.
+       * This field is only set for comprehension v2 macros.
+       * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @return This builder for chaining. + */ + public Builder clearIterVar2() { + copyOnWrite(); + instance.clearIterVar2(); + return this; + } + /** + *
+       * The name of the second iteration variable, empty if not set.
+       * When the iter_range is a list, this variable is the integer index.
+       * When the iter_range is a map, this variable is the map entry value.
+       * This field is only set for comprehension v2 macros.
+       * 
+ * + * string iter_var2 = 8 [json_name = "iterVar2"]; + * @param value The bytes for iterVar2 to set. + * @return This builder for chaining. + */ + public Builder setIterVar2Bytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setIterVar2Bytes(value); + return this; + } + + /** + *
+       * The range over which the comprehension iterates.
        * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -5397,7 +5674,7 @@ public boolean hasIterRange() { } /** *
-       * The range over which var iterates.
+       * The range over which the comprehension iterates.
        * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -5408,7 +5685,7 @@ public com.google.api.expr.v1alpha1.Expr getIterRange() { } /** *
-       * The range over which var iterates.
+       * The range over which the comprehension iterates.
        * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -5420,7 +5697,7 @@ public Builder setIterRange(com.google.api.expr.v1alpha1.Expr value) { } /** *
-       * The range over which var iterates.
+       * The range over which the comprehension iterates.
        * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -5433,7 +5710,7 @@ public Builder setIterRange( } /** *
-       * The range over which var iterates.
+       * The range over which the comprehension iterates.
        * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -5445,7 +5722,7 @@ public Builder mergeIterRange(com.google.api.expr.v1alpha1.Expr value) { } /** *
-       * The range over which var iterates.
+       * The range over which the comprehension iterates.
        * 
* * .google.api.expr.v1alpha1.Expr iter_range = 2 [json_name = "iterRange"]; @@ -5597,7 +5874,7 @@ public Builder mergeAccuInit(com.google.api.expr.v1alpha1.Expr value) { /** *
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Returns false when the result has been computed and may be used as
        * a hint to short-circuit the remainder of the comprehension.
@@ -5611,7 +5888,7 @@ public boolean hasLoopCondition() {
       }
       /**
        * 
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Returns false when the result has been computed and may be used as
        * a hint to short-circuit the remainder of the comprehension.
@@ -5625,7 +5902,7 @@ public com.google.api.expr.v1alpha1.Expr getLoopCondition() {
       }
       /**
        * 
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Returns false when the result has been computed and may be used as
        * a hint to short-circuit the remainder of the comprehension.
@@ -5640,7 +5917,7 @@ public Builder setLoopCondition(com.google.api.expr.v1alpha1.Expr value) {
         }
       /**
        * 
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Returns false when the result has been computed and may be used as
        * a hint to short-circuit the remainder of the comprehension.
@@ -5656,7 +5933,7 @@ public Builder setLoopCondition(
       }
       /**
        * 
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Returns false when the result has been computed and may be used as
        * a hint to short-circuit the remainder of the comprehension.
@@ -5671,7 +5948,7 @@ public Builder mergeLoopCondition(com.google.api.expr.v1alpha1.Expr value) {
       }
       /**
        * 
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Returns false when the result has been computed and may be used as
        * a hint to short-circuit the remainder of the comprehension.
@@ -5686,7 +5963,7 @@ public Builder mergeLoopCondition(com.google.api.expr.v1alpha1.Expr value) {
 
       /**
        * 
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Computes the next value of accu_var.
        * 
@@ -5699,7 +5976,7 @@ public boolean hasLoopStep() { } /** *
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Computes the next value of accu_var.
        * 
@@ -5712,7 +5989,7 @@ public com.google.api.expr.v1alpha1.Expr getLoopStep() { } /** *
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Computes the next value of accu_var.
        * 
@@ -5726,7 +6003,7 @@ public Builder setLoopStep(com.google.api.expr.v1alpha1.Expr value) { } /** *
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Computes the next value of accu_var.
        * 
@@ -5741,7 +6018,7 @@ public Builder setLoopStep( } /** *
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Computes the next value of accu_var.
        * 
@@ -5755,7 +6032,7 @@ public Builder mergeLoopStep(com.google.api.expr.v1alpha1.Expr value) { } /** *
-       * An expression which can contain iter_var and accu_var.
+       * An expression which can contain iter_var, iter_var2, and accu_var.
        *
        * Computes the next value of accu_var.
        * 
@@ -5874,11 +6151,12 @@ protected final java.lang.Object dynamicMethod( "loopCondition_", "loopStep_", "result_", + "iterVar2_", }; java.lang.String info = - "\u0000\u0007\u0000\u0001\u0001\u0007\u0007\u0000\u0000\u0000\u0001\u0208\u0002\u1009" + - "\u0000\u0003\u0208\u0004\u1009\u0001\u0005\u1009\u0002\u0006\u1009\u0003\u0007\u1009" + - "\u0004"; + "\u0000\b\u0000\u0001\u0001\b\b\u0000\u0000\u0000\u0001\u0208\u0002\u1009\u0000\u0003" + + "\u0208\u0004\u1009\u0001\u0005\u1009\u0002\u0006\u1009\u0003\u0007\u1009\u0004\b" + + "\u0208"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through diff --git a/core/sdk/src/main/gen/viam/app/v1/App.java b/core/sdk/src/main/gen/viam/app/v1/App.java index 4c0641d65..78cd6d1cd 100644 --- a/core/sdk/src/main/gen/viam/app/v1/App.java +++ b/core/sdk/src/main/gen/viam/app/v1/App.java @@ -34047,6 +34047,34 @@ public interface GetRobotPartHistoryRequestOrBuilder extends */ com.google.protobuf.ByteString getIdBytes(); + + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return Whether the pageToken field is set. + */ + boolean hasPageToken(); + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return The pageToken. + */ + java.lang.String getPageToken(); + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return The bytes for pageToken. + */ + com.google.protobuf.ByteString + getPageTokenBytes(); + + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + * @return Whether the pageLimit field is set. + */ + boolean hasPageLimit(); + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + * @return The pageLimit. + */ + long getPageLimit(); } /** * Protobuf type {@code viam.app.v1.GetRobotPartHistoryRequest} @@ -34058,7 +34086,9 @@ public static final class GetRobotPartHistoryRequest extends GetRobotPartHistoryRequestOrBuilder { private GetRobotPartHistoryRequest() { id_ = ""; + pageToken_ = ""; } + private int bitField0_; public static final int ID_FIELD_NUMBER = 1; private java.lang.String id_; /** @@ -34106,6 +34136,95 @@ private void setIdBytes( } + public static final int PAGE_TOKEN_FIELD_NUMBER = 2; + private java.lang.String pageToken_; + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return Whether the pageToken field is set. + */ + @java.lang.Override + public boolean hasPageToken() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return The pageToken. + */ + @java.lang.Override + public java.lang.String getPageToken() { + return pageToken_; + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return The bytes for pageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPageTokenBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(pageToken_); + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @param value The pageToken to set. + */ + private void setPageToken( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + bitField0_ |= 0x00000001; + pageToken_ = value; + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + */ + private void clearPageToken() { + bitField0_ = (bitField0_ & ~0x00000001); + pageToken_ = getDefaultInstance().getPageToken(); + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @param value The bytes for pageToken to set. + */ + private void setPageTokenBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + pageToken_ = value.toStringUtf8(); + bitField0_ |= 0x00000001; + } + + public static final int PAGE_LIMIT_FIELD_NUMBER = 3; + private long pageLimit_; + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + * @return Whether the pageLimit field is set. + */ + @java.lang.Override + public boolean hasPageLimit() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + * @return The pageLimit. + */ + @java.lang.Override + public long getPageLimit() { + return pageLimit_; + } + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + * @param value The pageLimit to set. + */ + private void setPageLimit(long value) { + bitField0_ |= 0x00000002; + pageLimit_ = value; + } + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + */ + private void clearPageLimit() { + bitField0_ = (bitField0_ & ~0x00000002); + pageLimit_ = 0L; + } + public static viam.app.v1.App.GetRobotPartHistoryRequest parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -34252,6 +34371,99 @@ public Builder setIdBytes( return this; } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return Whether the pageToken field is set. + */ + @java.lang.Override + public boolean hasPageToken() { + return instance.hasPageToken(); + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return The pageToken. + */ + @java.lang.Override + public java.lang.String getPageToken() { + return instance.getPageToken(); + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return The bytes for pageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPageTokenBytes() { + return instance.getPageTokenBytes(); + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @param value The pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageToken( + java.lang.String value) { + copyOnWrite(); + instance.setPageToken(value); + return this; + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @return This builder for chaining. + */ + public Builder clearPageToken() { + copyOnWrite(); + instance.clearPageToken(); + return this; + } + /** + * optional string page_token = 2 [json_name = "pageToken"]; + * @param value The bytes for pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageTokenBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setPageTokenBytes(value); + return this; + } + + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + * @return Whether the pageLimit field is set. + */ + @java.lang.Override + public boolean hasPageLimit() { + return instance.hasPageLimit(); + } + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + * @return The pageLimit. + */ + @java.lang.Override + public long getPageLimit() { + return instance.getPageLimit(); + } + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + * @param value The pageLimit to set. + * @return This builder for chaining. + */ + public Builder setPageLimit(long value) { + copyOnWrite(); + instance.setPageLimit(value); + return this; + } + /** + * optional int64 page_limit = 3 [json_name = "pageLimit"]; + * @return This builder for chaining. + */ + public Builder clearPageLimit() { + copyOnWrite(); + instance.clearPageLimit(); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.GetRobotPartHistoryRequest) } @java.lang.Override @@ -34268,10 +34480,14 @@ protected final java.lang.Object dynamicMethod( } case BUILD_MESSAGE_INFO: { java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", "id_", + "pageToken_", + "pageLimit_", }; java.lang.String info = - "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208"; + "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\u1208" + + "\u0000\u0003\u1002\u0001"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through @@ -34343,6 +34559,18 @@ public interface GetRobotPartHistoryResponseOrBuilder extends * repeated .viam.app.v1.RobotPartHistoryEntry history = 1 [json_name = "history"]; */ int getHistoryCount(); + + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @return The nextPageToken. + */ + java.lang.String getNextPageToken(); + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @return The bytes for nextPageToken. + */ + com.google.protobuf.ByteString + getNextPageTokenBytes(); } /** * Protobuf type {@code viam.app.v1.GetRobotPartHistoryResponse} @@ -34354,6 +34582,7 @@ public static final class GetRobotPartHistoryResponse extends GetRobotPartHistoryResponseOrBuilder { private GetRobotPartHistoryResponse() { history_ = emptyProtobufList(); + nextPageToken_ = ""; } public static final int HISTORY_FIELD_NUMBER = 1; private com.google.protobuf.Internal.ProtobufList history_; @@ -34449,6 +34678,53 @@ private void removeHistory(int index) { history_.remove(index); } + public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2; + private java.lang.String nextPageToken_; + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @return The nextPageToken. + */ + @java.lang.Override + public java.lang.String getNextPageToken() { + return nextPageToken_; + } + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @return The bytes for nextPageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNextPageTokenBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(nextPageToken_); + } + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @param value The nextPageToken to set. + */ + private void setNextPageToken( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + nextPageToken_ = value; + } + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + */ + private void clearNextPageToken() { + + nextPageToken_ = getDefaultInstance().getNextPageToken(); + } + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @param value The bytes for nextPageToken to set. + */ + private void setNextPageTokenBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + nextPageToken_ = value.toStringUtf8(); + + } + public static viam.app.v1.App.GetRobotPartHistoryResponse parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -34648,6 +34924,55 @@ public Builder removeHistory(int index) { return this; } + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @return The nextPageToken. + */ + @java.lang.Override + public java.lang.String getNextPageToken() { + return instance.getNextPageToken(); + } + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @return The bytes for nextPageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNextPageTokenBytes() { + return instance.getNextPageTokenBytes(); + } + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @param value The nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageToken( + java.lang.String value) { + copyOnWrite(); + instance.setNextPageToken(value); + return this; + } + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @return This builder for chaining. + */ + public Builder clearNextPageToken() { + copyOnWrite(); + instance.clearNextPageToken(); + return this; + } + /** + * string next_page_token = 2 [json_name = "nextPageToken"]; + * @param value The bytes for nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageTokenBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setNextPageTokenBytes(value); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.GetRobotPartHistoryResponse) } @java.lang.Override @@ -34666,9 +34991,11 @@ protected final java.lang.Object dynamicMethod( java.lang.Object[] objects = new java.lang.Object[] { "history_", viam.app.v1.App.RobotPartHistoryEntry.class, + "nextPageToken_", }; java.lang.String info = - "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b"; + "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0001\u0000\u0001\u001b\u0002\u0208" + + ""; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through diff --git a/core/sdk/src/main/resources/protofds/viam.api b/core/sdk/src/main/resources/protofds/viam.api index 525b5cc688d41b520660dc8fcbedff8b1d2409dd..939d6fee79d22911f4ce14fdcc93e65e72369494 100644 GIT binary patch delta 17826 zcmY+Ld$?6q)&JL7d#$tK~V|3LV`R*Xo5aym=}aV#Z(meeZKQ@IKMx59=>ag@f~B1IoFtD z&b7}&bB~;O-;sldHVlm)to*oByz0qiS9hvR?U_tysCFq|{Y|Ay+3l1{yK={?@zLdl zXIH)!-_lSvol?21+zs3xb~j)W>s&Z(IxX*4Zus5VwB$vLP_N%Nl8%Qv0}#{Z^r+rJ87IwY-+rE{p54J3PgEcTDVmQgmzwf$f4dA;rul2jiOLv`YdlVrZ8H+6!yup)^|N zX)i?cp+I|~XqTq3OCJbYprZw%yELQ^2`+pg~2vUDE{ ztNx-`l>!)S#r#<6S3Oc}9}BDgBB96AxUVO!usngTs364j@$`t#1*ui;bF5tq->jLH z^)!0I=l7eat_-XGn@Ys0G(O%Mf+#XTS7d;AS(P^S3{p&2rAPM*5HG9J&o@=8RI+c? zlBd$Bhpl7ZLhmW(B2F%@nP<{^^n!PPF|udUyq!(R#d7~_8lP(!K_mp|5&}f`*)R`4 z{5`9APyq+#g6+nLcZz=2#dwK`-QDdek_ZAab! z`RcTGrYCR6E&1xS!`D1HGr1;>ukh+BLO@r9F1AHzP1@OQHNXn>cTIY^(Sd`;SGkS8aWzozk(p1eZfz!13R`mbr>rvBo%VwKrXT;LVB|C)Bc!gE&~cm1#F zQI~siruexuKF8}PkONJCkUy7ZuJT?SCy+mPAS(&v&!x3*c=E)NKbLm+y61*$Z5m(d z$x^ZcB+|N_u@v&PVU=DSr;x8rS*0%W6!Nuc-%C7s>d4oo{RVn+*w&?S7^uM)Fl5ER zy)G@fcrpX`y0mMz>X#{bj3cWh>&uz1S5EoD`ZUhGQijd?G!L_uVY6Nv-znCHa5k{X zcR8+{RZWgApMAa3?)V(1JPZUm1RK&kIL#s0kaj(?I>-_fwPa)Y%YRj_IBw&C1Q(cW zOta2DgaVU|=@H$k=U9_!E!i~rjmmlTO=*0HSE*vLDLpidyNbo8w8zmTB~Av`%syt)6#$l9q94}ME9joI)Sjhq|&Lm7)ZTl^e?3yFS3(?*iFVu zX{QVAWDHcT+MLGMc>MBj(_^pp-2UC#oc6uSbI0sg zThjPUudkO2=!()n`*Lkb8xIar$hV~J-9CsE@-2EzRTTv7i@PN~^_SClkhfMH z1$GFKz+X-e=~@riYIk=p^1xUx*UM>-A9`~Ca=o1P{DEeJ-?#!9&NkmV384$L(nD@s62kEY0d0NqksFcU5e(8H1Dc>CYNe#JL^9A zf_T{(ya4gCGi`JW28iuW7K{xEh?kviYU1SEHM2X7-t%6*jplCE3VHdqyu2G45D;kq zx(ovAD8CzaJ}|WJx(*~xzEd-M(&#^)_B&|q3GL>0MEgP5hd=}ibQuDo`$32u2znufh;e6&pv zh=_o$1m2mwSyK$jyRy8F|*pI|Vw`$Lj0tC^ckG}6;vhU(46ubaz6dyDa> zArQd=U9doOZ!!Kf1cdb#;}1iZX(U69KMa9V>K{1RDoI0)?+X!QJJk5o&}GWeFyr$J zVl+UPUm&K#jL$C+(_x1ED!rEp4L81MgIMT5n~1ukj9|EFbnO-ps^O-c>%@W9xU*Z% zm+4g;Vf40~KXWFL(3 zxG-}-Xvb;h)b#$amP|0wQMT#*A$k*BsBto=W+s~GPVa9JqKPKA1v?oef0Keg5dMH} zvVrJMGIhUF!1$XKR>~mF=VasWFhJxP=rRC=YO?Wn7(lD+?=XNcO*Z}xW02NOY5W}q z2qs`)s_R`VjlaY|3{`3T9R?7p()c@!%WJ0DMAQ9PFGsW4-EFa(%XwEQsXUlqp0-R}L*N%Z0HZZq`h6IfAOjEd43<&K^)9Em~RIjX=*(RFr zX|F_cw&Ct(W&`immExUK?%P$lyZ@XJB@a=WV+yx<0HK?sCHk@`WY91PM34H2u156{!`VUE zy;>115AQSxTA-r^qPskl5Fo6}-76g@*VN48CR*iLuR-&1lh<8Yy+*Vv0xbwyprZw% zyduy7pBypkl@@{JVR zl_5tzshKBD^t2z%PtbhQ_^Ys=XfRKOh(Ig`pgT$d(S6F~?%-JmL;I8qDNe4fnP*M3 z#?xMl>a$_VT`StvAx9vB1-f8?=&lYq0>ZjFRPX=cFl(Z2wtD{$de6B~=r*mZ$sEEuB(}i zCfelPU8n21jbXdEPX7KL{DJTXbpC+w{5|*s;_vUl-_L8w3nn_oj_>E_z2M4noLtYT z(L`Ikzv~hGLv`XLR`T_7x4Hc6gUXk_u{pTmAv&9b8z62r%Z;||U)0PiCVJJg{Q}Kb zOnywYKWx7c+t%`r|EV<9w;F$$%0qOv8h@Dzgl%hJyP;>U$#vo9EkVFH7xLVd>+ZpT83={x2KcX+u`yZVmM(t$7q%9I@yjO`9nxE>CO z?GEF6xEqCbhOH2UEikxM`?oXfgh;Kj-3b*jb^hN6Om(LO45sS${#`#{tA_92ZWom; z%Dck84stNq>dI)B@%uVbOn13`U8a-M&BrGC#QXa-vX4U#@@x6q8~lOr2Xy{`=@!hU>+d({ z?Q>NzPJUZ6`%QFn=FUIAMO5D({QXw`250UnA_3tK===du9-OsvR~|t84bI%n1j-19 z95B^s4j4?eG>058)zTayQ>CWc}ka*`s~;>wod9Ys+IksdTFIz%?U? z;ToCwW*KPJYwo23!Zk8GN^NYM{Jv(!WYJh3;qTELllcz!_loe=%y+mT-UOg?0wh7V zW{vJR_IuY?-I{e)i<>5h@p5ZsJKQ+=L(PoKqT9WfKj39t=08sTL0-mZ{+b?y7ohV3 z#LM{1e+vX+IzBtfHQhj*jL*2Hw|&)3HFHN6mEOxusNRwJBkWD`GBNW9LJ%1Ox@-f{ zotXLJ0fcs9=8MNo%J!tp_t79sfx%SCos<=axV{Q8wv#enJ#JFbnw5x zhZF*_ZO)E5IVj_$Is3{fb~Vr(OwXb@-i!8?=^17J2Q0d}yv!)4@2d>zKO+pEhv>}6 zd{Y2~ZAQlKdA2n{I4djP>64sxwpK;mp6X_W(13(CD{FKYoItDJ!7V8uWV5vBziP=y z!!r7VcyMZvw&gi>Ovkahn%j5P}{`;gSqycn?(lG5so|8Qh?h%rBSiubg?te1&vy)!3)R zG+!|VjMaPv6)FY-}sD_}DI|cR!>2O(i+E4svTuLOiX^8jrBd!Wgg2x*pSl@w77Y z-zAVEUKJ)m5Oc7b1Ys-plOT-wsxS#)CgF*eNf5^Vi7*Mm*gp{_K^Xfd+$7ks0H4hG zu&g{FRs#k$Eg17Bv#d=Ew)$<|m(*Jt_}cVz7Jttjpn$w~PiKumyU^JGKTNb1YXuA? z%d4|!x6krWjdXREA5y(XFW*p`=Cx(#G?~-1Hq5-9qPA9bO%V$d(OOOXe>p3}&zHN> z7BaGE1ZPQG&73*ku?kwW=>>2e}F+jMa;(U|(}qtcI7e^3^WMX(uC9v-(o2NY$;r zl<~s>AE~<4mojGeTxZP(%q``@JUPES#o@EcQE$gjx8Abx3f+y{0C$IcGkbCdaR4SEeEjjur^7*rk$aB z;-xKCJ2PKBg|XV1_32w3=&agtU@CvrCb_h}tCdwdtai1sYKPS>S*aQfqZ+)IMSFZT z7^WBYy^KqEhFiDAPo2WS%_#z{W z{b!-bfGKE$^YXeZ`Fvf75e?4$t|E-};M^A*VXOz|6dU~_a3sQ8a_(@{S&fvVTXNnx zC2|yl9hOI9{9s2(I4ozdO5`Xz*5SF|wFQ}_;q}}{tq152&wcS0#_#al@7iF*BXZ6) zng~I{2D_I-*vfs_!kCXx*xo&Z9+`6<@aF2`N9Oed?!`Yc_mvBK4SQrxQijJIfZ?69=mo6u|7zF>#jA>1L7H-`~FNAzR`KjH95lY zjm{72Y-eFK!m(i%Mr-6_H47XK`6g<{<Fjdp)rG zst+bbFv4y77udJ{=8E{bZ^gl+Pi!pXhQCO0V#wo(0#@STB+@7D#;jD z$)r4*=~hWcFv^p1D)2chlQDLgl;xQA$$9lM_nniTlAbc8M;NOzuerWjnDmr6eYMgJ zMto<^hk4DGAn69XYzs4ccjk?*vLs!2u=j*)ZV+d1}InSpfA-IK4@6eRI z(aje2@;@c-=oY6id{dNKPX}zy`PSv>^raKrLZ?ovx!!8HT3yX~&9$iTX>~Q{{x?=& z?5F0wqZM?xg-_o*r{;X`^!~KCrsmyThbw*Prsn>KPhi|nNKY1oPj;RI*n;LhhRTk+)vN>Na)1|I&e#PYCWd6qEqWJJ@3Yc!e9X3^qen+XSvy> z_n1-c?vQ-FKBE;)2F;9CH0niWu2=$9Tq~ z%mH=sp~?02xuG8FAxd*YJrssY7lq6SVh?tkkFb>&E)l|*FH#~D_IQL# z@~D^HKE_LRNzO(8VTf)g?Bt<5T3+7JG3nIlp`6b&rxNk)HsWP@+_lSb-3OMp_e(mI zZy%I2mXCK#I-kgM=UHmdEz5l$FO279Iosv{M}zp0oNe>J%0)esPGyfy$q55^&|kn&?WKVkkgfSjxd%)%(I z$hpnedKQLxMb34;&I(|}E6WRyO8V3VFkacpSe{nqz7dxk#Pr?j!o$_>sGe*3={8^XeYfbCJ){B;0tPfkSFjnhxf6f6D-iC5(m*lLb4Xu1> z#2Z3drG?c7rS*L03%IcyczANb@f%xN+4EcI60ox8H|0n7Ibh1fro4Q3f92G&?GZ_K z#->m+B%@|*%KZ(KFcECZ{SA{aE;lJ|&qZ=x%*+1V7 zg^A3<<~(}E&%#8dXtP$U7TiQT3oqLRSGMb#WZ!x@@JfX0%ONkq@V>0PsA^7vcWWNK z?s+GPcWcf^(u?4oWO-l96QBi>fN z(KR_`z_wOa^0F;2T+fY_CU{$Je_>fkCKJ*dd9>4qG+D}T72%aN&+lQ$)Eh=jRQY)+v^9zpW$X zX+4r`!2ZB15vu#c+zP|HUvsM!+zju{MKsLwHjDS>f~$uf@HSiCq2=v8lA|veTKMVK zQ?!N_MO!<1VJL?dHT`a;l1zniL=oNXDW{5ZM8RKnDAcKza#T@X-!1vY$wIuxqXM-s z+M^1;HwZ&Lsvz24&KmKUa(+)u+pXIXe0L@nZ{r zNI^?;JGStL6k)8!7F3*hx>n->czpSzqm%p27+?5iM^7nS{_ZA8gcK-l>(NH$oVWI}0wY&U74Hbu}09FZ zb?Mby_^T)E^<(|!f+N-G&YnxJX^P?aa(w%wYq_#_a!C1VucXZhJau&lBi(vUD}2u* z49T?O@UC_b0dwnhR}ptEn;Md@D4kW($%7Vq-GALx_+3PD?C&Z%9%k=8!Q6k%D#!Ou zZn|JrD=S@i%_{uer?jw|Rq#gxdL5?mI^0u43;gRaO-uEjf`a@*#x>2p4s(j~u6>n( z<)S`GW7C{KEE&3U3V#P64DpKdcmCxaMo6sL+Ff_ZMaV z{gp3jG}$+Gbi2RRi1e=99}+BmYv7xu>7;5=5k2TrHC=%(D)P2`h)a{{HdTwuVSSTt zG%XI4dWzQK!tWx&P%bXmMRXesM*Qb;U*F`U0e>$1R}DSY&xO4osU&w1 z$kHNu#0PShl$REK)zD?{T{e)1%fbDU^MCko$d#Tl)`ts!XCaK$!-YST3*+M9!XC;i z$qZaPT0|?niy3n9XhCDxtlBff`gpuN_PAtP{qf*KPnnO$gAZZM9xrO{trNz_<9h3~ z^k(8?Wf48$eaw`Pm4&~{n`vFFD(G9aE(D1m>|O?8)K?Wn-EDGu0QsuIHyX1bf2xR{ z@#M2a{*>NdovUV9@}~=bzan}=L>$p=A(Z-u{j5yt*+MMrnfCXBPc751}cCAk-8n~LZk z-r2o!wyE%cZgnrp{3NZ2`?>Fi!Z_oBb0&VZ<*M z{EFU-l^C!~jKo&%_i$m%Ut|y0j}j`$9D?0kM6dW@=SX|Awi_+CIXL6PO5s1w2|^Bb zsU$tL~L7&=rteP zpA_5HkjOvT*j^3ff{=qw{w{2&B!9yoHz(cfM0 z>p(3AVaRtE{`wJ&_+46+AXaSP7IV3KH?#{<$NXJav#opf!2=hpF#7vKB7`B|7ZR}$^1;>U=BhieEfo3SsxPh!E%}ftKNwS> zf(!)g1|rNrhE(~>?t`nWe?7o{NR_|s4hA?IQsq};df67?Y-lwa?wu`?v!TJ+BI|5e z)mJw`1_E{i5k`Gj)fXUPxQA7JaeIJYP??d{XpAR+K;$Ed!|~zVjEk{-FJ$` zHn!VBY=V%39l0>-w}se*;l3>ldM4eLCnD|=JIxj#@$9UE(PrG7_s8ygnudj%(4|HXTO>D{{WhE{7V1; delta 17554 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 L&fm;_KlT3rv+~jA