diff --git a/Makefile b/Makefile index 18c6ce4b..503be9ae 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ GO ?= go ARGS ?= --strict_message JAVA_COMPILE_OPTIONS = --enable-preview --release $(JAVA_VERSION) JAVA_OPTIONS = --enable-preview -PROTOVALIDATE_VERSION ?= v0.3.1 +PROTOVALIDATE_VERSION ?= v0.4.0 JAVA_MAIN_CLASS = build.buf.protovalidate JAVA_SOURCES = $(wildcard src/main/java/**/**/**/*.java, src/main/java/**/**/*.java) JAVA_CLASSES = $(patsubst src/main/java/%.java, target/classes/%.class, $(JAVA_SOURCES)) @@ -59,9 +59,9 @@ help: ## Describe useful make targets @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "%-15s %s\n", $$1, $$2}' .PHONY: generate -generate: generate-license ## Regenerate code and license headers - buf generate --template buf.gen.yaml buf.build/bufbuild/protovalidate - buf generate --template conformance/buf.gen.yaml -o conformance/ buf.build/bufbuild/protovalidate-testing +generate: $(BIN)/buf generate-license ## Regenerate code and license headers + $(BIN)/buf generate --template buf.gen.yaml buf.build/bufbuild/protovalidate:$(PROTOVALIDATE_VERSION) + $(BIN)/buf generate --template conformance/buf.gen.yaml -o conformance/ buf.build/bufbuild/protovalidate-testing:$(PROTOVALIDATE_VERSION) .PHONY: lint lint: ## Lint code @@ -87,6 +87,10 @@ test: ## Run all tests. $(BIN): @mkdir -p $(BIN) +$(BIN)/buf: $(BIN) Makefile + GOBIN=$(abspath $(@D)) $(GO) install \ + github.com/bufbuild/buf/cmd/buf@latest + $(BIN)/license-header: $(BIN) Makefile GOBIN=$(abspath $(@D)) $(GO) install \ github.com/bufbuild/buf/private/pkg/licenseheader/cmd/license-header@latest diff --git a/src/main/java/build/buf/protovalidate/internal/celext/CustomDeclarations.java b/src/main/java/build/buf/protovalidate/internal/celext/CustomDeclarations.java index f3a3db52..0c957ae6 100644 --- a/src/main/java/build/buf/protovalidate/internal/celext/CustomDeclarations.java +++ b/src/main/java/build/buf/protovalidate/internal/celext/CustomDeclarations.java @@ -95,6 +95,22 @@ static List create() { Decls.newInstanceOverload( "contains_bytes", Arrays.asList(Decls.Bytes, Decls.Bytes), Decls.Bool))); + // Add 'isNan' function declaration + decls.add( + Decls.newFunction( + "isNan", + Decls.newInstanceOverload( + "is_nan", Collections.singletonList(Decls.Double), Decls.Bool))); + + // Add 'isInf' function declaration + decls.add( + Decls.newFunction( + "isInf", + Decls.newInstanceOverload( + "is_inf_unary", Collections.singletonList(Decls.Double), Decls.Bool), + Decls.newInstanceOverload( + "is_inf_binary", Arrays.asList(Decls.Double, Decls.Int), Decls.Bool))); + // Add 'unique' function declaration List uniqueOverloads = new ArrayList<>(); for (com.google.api.expr.v1alpha1.Type type : diff --git a/src/main/java/build/buf/protovalidate/internal/celext/CustomOverload.java b/src/main/java/build/buf/protovalidate/internal/celext/CustomOverload.java index 0f1303bc..5bea380c 100644 --- a/src/main/java/build/buf/protovalidate/internal/celext/CustomOverload.java +++ b/src/main/java/build/buf/protovalidate/internal/celext/CustomOverload.java @@ -61,7 +61,9 @@ static Overload[] create() { unaryIsEmail(), isIp(), isUri(), - isUriRef() + isUriRef(), + isNan(), + isInf(), }; } @@ -305,6 +307,33 @@ private static Overload isUriRef() { }); } + /** + * Creates a custom unary function overload for the "isNan" operation. + * + * @return The {@link Overload} instance for the "isNan" operation. + */ + private static Overload isNan() { + return Overload.unary( + "isNan", value -> value.convertToNative(Double.TYPE).isNaN() ? BoolT.True : BoolT.False); + } + + /** + * Creates a custom unary function overload for the "isInf" operation. + * + * @return The {@link Overload} instance for the "isInf" operation. + */ + private static Overload isInf() { + return Overload.overload( + "isInf", + null, + value -> value.convertToNative(Double.TYPE).isInfinite() ? BoolT.True : BoolT.False, + (lhs, rhs) -> { + Double value = lhs.convertToNative(Double.TYPE); + return value.isInfinite(rhs.intValue()) ? BoolT.True : BoolT.False; + }, + null); + } + /** * Retrieves the appropriate unary operation for a primitive value based on its type. This method * returns the unary operation that should be applied to the given primitive value. diff --git a/src/main/java/build/buf/validate/ValidateProto.java b/src/main/java/build/buf/validate/ValidateProto.java index 93a0bb38..96bae378 100644 --- a/src/main/java/build/buf/validate/ValidateProto.java +++ b/src/main/java/build/buf/validate/ValidateProto.java @@ -235,7 +235,7 @@ public static void registerAllExtensions( "H\000R\003any\0229\n\010duration\030\025 \001(\0132\033.buf.validate" + ".DurationRulesH\000R\010duration\022<\n\ttimestamp\030" + "\026 \001(\0132\034.buf.validate.TimestampRulesH\000R\tt" + - "imestampB\006\n\004type\"\365\025\n\nFloatRules\022u\n\005const" + + "imestampB\006\n\004type\"\313\025\n\nFloatRules\022u\n\005const" + "\030\001 \001(\002BZ\302HW\nU\n\013float.const\032Fthis != rule" + "s.const ? \'value must equal %s\'.format([" + "rules.const]) : \'\'H\002R\005const\210\001\001\022\216\001\n\002lt\030\002 " + @@ -300,1102 +300,1100 @@ public static void registerAllExtensions( "at([dyn(rules)[\'in\']]) : \'\'R\002in\022}\n\006not_i" + "n\030\007 \003(\002Bf\302Hc\na\n\014float.not_in\032Qthis in ru" + "les.not_in ? \'value must not be in list " + - "%s\'.format([rules.not_in]) : \'\'R\005notIn\022\220" + - "\001\n\006finite\030\010 \001(\010Bx\302Hu\ns\n\014float.finite\032cth" + - "is == 1.0/0.0 || this == -1.0/0.0 || str" + - "ing(this) in [\'NaN\', \'nan\'] ? \'value mus" + - "t be finite\' : \'\'R\006finiteB\013\n\tless_thanB\016" + - "\n\014greater_thanB\010\n\006_const\"\206\026\n\013DoubleRules" + - "\022v\n\005const\030\001 \001(\001B[\302HX\nV\n\014double.const\032Fth" + - "is != rules.const ? \'value must equal %s" + - "\'.format([rules.const]) : \'\'H\002R\005const\210\001\001" + - "\022\217\001\n\002lt\030\002 \001(\001B}\302Hz\nx\n\tdouble.lt\032k!has(ru" + - "les.gte) && !has(rules.gt) && this >= ru" + - "les.lt? \'value must be less than %s\'.for" + - "mat([rules.lt]) : \'\'H\000R\002lt\022\242\001\n\003lte\030\003 \001(\001" + - "B\215\001\302H\211\001\n\206\001\n\ndouble.lte\032x!has(rules.gte) " + - "&& !has(rules.gt) && this > rules.lte? \'" + - "value must be less than or equal to %s\'." + - "format([rules.lte]) : \'\'H\000R\003lte\022\240\007\n\002gt\030\004" + - " \001(\001B\215\007\302H\211\007\n{\n\tdouble.gt\032n!has(rules.lt)" + - " && !has(rules.lte) && this <= rules.gt?" + - " \'value must be greater than %s\'.format(" + - "[rules.gt]) : \'\'\n\264\001\n\014double.gt_lt\032\243\001has(" + - "rules.lt) && rules.lt >= rules.gt && (th" + - "is >= rules.lt || this <= rules.gt)? \'va" + - "lue must be greater than %s and less tha" + - "n %s\'.format([rules.gt, rules.lt]) : \'\'\n" + - "\274\001\n\026double.gt_lt_exclusive\032\241\001has(rules.l" + - "t) && rules.lt < rules.gt && (rules.lt <" + - "= this && this <= rules.gt)? \'value must" + - " be greater than %s or less than %s\'.for" + - "mat([rules.gt, rules.lt]) : \'\'\n\304\001\n\rdoubl" + - "e.gt_lte\032\262\001has(rules.lte) && rules.lte >" + - "= rules.gt && (this > rules.lte || this " + - "<= rules.gt)? \'value must be greater tha" + - "n %s and less than or equal to %s\'.forma" + - "t([rules.gt, rules.lte]) : \'\'\n\314\001\n\027double" + - ".gt_lte_exclusive\032\260\001has(rules.lte) && ru" + - "les.lte < rules.gt && (rules.lte < this " + - "&& this <= rules.gt)? \'value must be gre" + - "ater than %s or less than or equal to %s" + - "\'.format([rules.gt, rules.lte]) : \'\'H\001R\002" + - "gt\022\355\007\n\003gte\030\005 \001(\001B\330\007\302H\324\007\n\211\001\n\ndouble.gte\032{" + - "!has(rules.lt) && !has(rules.lte) && thi" + - "s < rules.gte? \'value must be greater th" + - "an or equal to %s\'.format([rules.gte]) :" + - " \'\'\n\303\001\n\rdouble.gte_lt\032\261\001has(rules.lt) &&" + - " rules.lt >= rules.gte && (this >= rules" + - ".lt || this < rules.gte)? \'value must be" + - " greater than or equal to %s and less th" + - "an %s\'.format([rules.gte, rules.lt]) : \'" + - "\'\n\313\001\n\027double.gte_lt_exclusive\032\257\001has(rule" + - "s.lt) && rules.lt < rules.gte && (rules." + - "lt <= this && this < rules.gte)? \'value " + - "must be greater than or equal to %s or l" + - "ess than %s\'.format([rules.gte, rules.lt" + - "]) : \'\'\n\323\001\n\016double.gte_lte\032\300\001has(rules.l" + - "te) && rules.lte >= rules.gte && (this >" + - " rules.lte || this < rules.gte)? \'value " + - "must be greater than or equal to %s and " + - "less than or equal to %s\'.format([rules." + - "gte, rules.lte]) : \'\'\n\333\001\n\030double.gte_lte" + - "_exclusive\032\276\001has(rules.lte) && rules.lte" + - " < rules.gte && (rules.lte < this && thi" + - "s < rules.gte)? \'value must be greater t" + - "han or equal to %s or less than or equal" + - " to %s\'.format([rules.gte, rules.lte]) :" + - " \'\'H\001R\003gte\022z\n\002in\030\006 \003(\001Bj\302Hg\ne\n\tdouble.in" + - "\032X!(this in dyn(rules)[\'in\']) ? \'value m" + - "ust be in list %s\'.format([dyn(rules)[\'i" + - "n\']]) : \'\'R\002in\022~\n\006not_in\030\007 \003(\001Bg\302Hd\nb\n\rd" + - "ouble.not_in\032Qthis in rules.not_in ? \'va" + - "lue must not be in list %s\'.format([rule" + - "s.not_in]) : \'\'R\005notIn\022\221\001\n\006finite\030\010 \001(\010B" + - "y\302Hv\nt\n\rdouble.finite\032cthis == 1.0/0.0 |" + - "| this == -1.0/0.0 || string(this) in [\'" + - "NaN\', \'nan\'] ? \'value must be finite\' : " + - "\'\'R\006finiteB\013\n\tless_thanB\016\n\014greater_thanB" + - "\010\n\006_const\"\342\024\n\nInt32Rules\022u\n\005const\030\001 \001(\005B" + - "Z\302HW\nU\n\013int32.const\032Fthis != rules.const" + - " ? \'value must equal %s\'.format([rules.c" + - "onst]) : \'\'H\002R\005const\210\001\001\022\216\001\n\002lt\030\002 \001(\005B|\302H" + - "y\nw\n\010int32.lt\032k!has(rules.gte) && !has(r" + - "ules.gt) && this >= rules.lt? \'value mus" + - "t be less than %s\'.format([rules.lt]) : " + - "\'\'H\000R\002lt\022\241\001\n\003lte\030\003 \001(\005B\214\001\302H\210\001\n\205\001\n\tint32." + - "lte\032x!has(rules.gte) && !has(rules.gt) &" + - "& this > rules.lte? \'value must be less " + - "than or equal to %s\'.format([rules.lte])" + - " : \'\'H\000R\003lte\022\233\007\n\002gt\030\004 \001(\005B\210\007\302H\204\007\nz\n\010int3" + - "2.gt\032n!has(rules.lt) && !has(rules.lte) " + - "&& this <= rules.gt? \'value must be grea" + - "ter than %s\'.format([rules.gt]) : \'\'\n\263\001\n" + - "\013int32.gt_lt\032\243\001has(rules.lt) && rules.lt" + - " >= rules.gt && (this >= rules.lt || thi" + - "s <= rules.gt)? \'value must be greater t" + - "han %s and less than %s\'.format([rules.g" + - "t, rules.lt]) : \'\'\n\273\001\n\025int32.gt_lt_exclu" + - "sive\032\241\001has(rules.lt) && rules.lt < rules" + - ".gt && (rules.lt <= this && this <= rule" + - "s.gt)? \'value must be greater than %s or" + - " less than %s\'.format([rules.gt, rules.l" + - "t]) : \'\'\n\303\001\n\014int32.gt_lte\032\262\001has(rules.lt" + - "e) && rules.lte >= rules.gt && (this > r" + - "ules.lte || this <= rules.gt)? \'value mu" + - "st be greater than %s and less than or e" + - "qual to %s\'.format([rules.gt, rules.lte]" + - ") : \'\'\n\313\001\n\026int32.gt_lte_exclusive\032\260\001has(" + - "rules.lte) && rules.lte < rules.gt && (r" + - "ules.lte < this && this <= rules.gt)? \'v" + - "alue must be greater than %s or less tha" + - "n or equal to %s\'.format([rules.gt, rule" + - "s.lte]) : \'\'H\001R\002gt\022\350\007\n\003gte\030\005 \001(\005B\323\007\302H\317\007\n" + - "\210\001\n\tint32.gte\032{!has(rules.lt) && !has(ru" + - "les.lte) && this < rules.gte? \'value mus" + - "t be greater than or equal to %s\'.format" + - "([rules.gte]) : \'\'\n\302\001\n\014int32.gte_lt\032\261\001ha" + - "s(rules.lt) && rules.lt >= rules.gte && " + - "(this >= rules.lt || this < rules.gte)? " + - "\'value must be greater than or equal to " + - "%s and less than %s\'.format([rules.gte, " + - "rules.lt]) : \'\'\n\312\001\n\026int32.gte_lt_exclusi" + - "ve\032\257\001has(rules.lt) && rules.lt < rules.g" + - "te && (rules.lt <= this && this < rules." + - "gte)? \'value must be greater than or equ" + - "al to %s or less than %s\'.format([rules." + - "gte, rules.lt]) : \'\'\n\322\001\n\rint32.gte_lte\032\300" + - "\001has(rules.lte) && rules.lte >= rules.gt" + - "e && (this > rules.lte || this < rules.g" + - "te)? \'value must be greater than or equa" + - "l to %s and less than or equal to %s\'.fo" + - "rmat([rules.gte, rules.lte]) : \'\'\n\332\001\n\027in" + - "t32.gte_lte_exclusive\032\276\001has(rules.lte) &" + - "& rules.lte < rules.gte && (rules.lte < " + - "this && this < rules.gte)? \'value must b" + - "e greater than or equal to %s or less th" + - "an or equal to %s\'.format([rules.gte, ru" + - "les.lte]) : \'\'H\001R\003gte\022y\n\002in\030\006 \003(\005Bi\302Hf\nd" + - "\n\010int32.in\032X!(this in dyn(rules)[\'in\']) " + - "? \'value must be in list %s\'.format([dyn" + - "(rules)[\'in\']]) : \'\'R\002in\022}\n\006not_in\030\007 \003(\005" + - "Bf\302Hc\na\n\014int32.not_in\032Qthis in rules.not" + - "_in ? \'value must not be in list %s\'.for" + - "mat([rules.not_in]) : \'\'R\005notInB\013\n\tless_" + - "thanB\016\n\014greater_thanB\010\n\006_const\"\342\024\n\nInt64" + - "Rules\022u\n\005const\030\001 \001(\003BZ\302HW\nU\n\013int64.const" + - "\032Fthis != rules.const ? \'value must equa" + - "l %s\'.format([rules.const]) : \'\'H\002R\005cons" + - "t\210\001\001\022\216\001\n\002lt\030\002 \001(\003B|\302Hy\nw\n\010int64.lt\032k!has" + - "(rules.gte) && !has(rules.gt) && this >=" + - " rules.lt? \'value must be less than %s\'." + - "format([rules.lt]) : \'\'H\000R\002lt\022\241\001\n\003lte\030\003 " + - "\001(\003B\214\001\302H\210\001\n\205\001\n\tint64.lte\032x!has(rules.gte" + - ") && !has(rules.gt) && this > rules.lte?" + - " \'value must be less than or equal to %s" + - "\'.format([rules.lte]) : \'\'H\000R\003lte\022\233\007\n\002gt" + - "\030\004 \001(\003B\210\007\302H\204\007\nz\n\010int64.gt\032n!has(rules.lt" + - ") && !has(rules.lte) && this <= rules.gt" + - "? \'value must be greater than %s\'.format" + - "([rules.gt]) : \'\'\n\263\001\n\013int64.gt_lt\032\243\001has(" + - "rules.lt) && rules.lt >= rules.gt && (th" + - "is >= rules.lt || this <= rules.gt)? \'va" + - "lue must be greater than %s and less tha" + - "n %s\'.format([rules.gt, rules.lt]) : \'\'\n" + - "\273\001\n\025int64.gt_lt_exclusive\032\241\001has(rules.lt" + - ") && rules.lt < rules.gt && (rules.lt <=" + - " this && this <= rules.gt)? \'value must " + - "be greater than %s or less than %s\'.form" + - "at([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int64." + + "%s\'.format([rules.not_in]) : \'\'R\005notIn\022g" + + "\n\006finite\030\010 \001(\010BO\302HL\nJ\n\014float.finite\032:thi" + + "s.isNan() || this.isInf() ? \'value must " + + "be finite\' : \'\'R\006finiteB\013\n\tless_thanB\016\n\014" + + "greater_thanB\010\n\006_const\"\334\025\n\013DoubleRules\022v" + + "\n\005const\030\001 \001(\001B[\302HX\nV\n\014double.const\032Fthis" + + " != rules.const ? \'value must equal %s\'." + + "format([rules.const]) : \'\'H\002R\005const\210\001\001\022\217" + + "\001\n\002lt\030\002 \001(\001B}\302Hz\nx\n\tdouble.lt\032k!has(rule" + + "s.gte) && !has(rules.gt) && this >= rule" + + "s.lt? \'value must be less than %s\'.forma" + + "t([rules.lt]) : \'\'H\000R\002lt\022\242\001\n\003lte\030\003 \001(\001B\215" + + "\001\302H\211\001\n\206\001\n\ndouble.lte\032x!has(rules.gte) &&" + + " !has(rules.gt) && this > rules.lte? \'va" + + "lue must be less than or equal to %s\'.fo" + + "rmat([rules.lte]) : \'\'H\000R\003lte\022\240\007\n\002gt\030\004 \001" + + "(\001B\215\007\302H\211\007\n{\n\tdouble.gt\032n!has(rules.lt) &" + + "& !has(rules.lte) && this <= rules.gt? \'" + + "value must be greater than %s\'.format([r" + + "ules.gt]) : \'\'\n\264\001\n\014double.gt_lt\032\243\001has(ru" + + "les.lt) && rules.lt >= rules.gt && (this" + + " >= rules.lt || this <= rules.gt)? \'valu" + + "e must be greater than %s and less than " + + "%s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001" + + "\n\026double.gt_lt_exclusive\032\241\001has(rules.lt)" + + " && rules.lt < rules.gt && (rules.lt <= " + + "this && this <= rules.gt)? \'value must b" + + "e greater than %s or less than %s\'.forma" + + "t([rules.gt, rules.lt]) : \'\'\n\304\001\n\rdouble." + "gt_lte\032\262\001has(rules.lte) && rules.lte >= " + "rules.gt && (this > rules.lte || this <=" + " rules.gt)? \'value must be greater than " + "%s and less than or equal to %s\'.format(" + - "[rules.gt, rules.lte]) : \'\'\n\313\001\n\026int64.gt" + - "_lte_exclusive\032\260\001has(rules.lte) && rules" + - ".lte < rules.gt && (rules.lte < this && " + - "this <= rules.gt)? \'value must be greate" + - "r than %s or less than or equal to %s\'.f" + - "ormat([rules.gt, rules.lte]) : \'\'H\001R\002gt\022" + - "\350\007\n\003gte\030\005 \001(\003B\323\007\302H\317\007\n\210\001\n\tint64.gte\032{!has" + - "(rules.lt) && !has(rules.lte) && this < " + - "rules.gte? \'value must be greater than o" + - "r equal to %s\'.format([rules.gte]) : \'\'\n" + - "\302\001\n\014int64.gte_lt\032\261\001has(rules.lt) && rule" + - "s.lt >= rules.gte && (this >= rules.lt |" + - "| this < rules.gte)? \'value must be grea" + - "ter than or equal to %s and less than %s" + - "\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n" + - "\026int64.gte_lt_exclusive\032\257\001has(rules.lt) " + - "&& rules.lt < rules.gte && (rules.lt <= " + - "this && this < rules.gte)? \'value must b" + - "e greater than or equal to %s or less th" + - "an %s\'.format([rules.gte, rules.lt]) : \'" + - "\'\n\322\001\n\rint64.gte_lte\032\300\001has(rules.lte) && " + - "rules.lte >= rules.gte && (this > rules." + - "lte || this < rules.gte)? \'value must be" + - " greater than or equal to %s and less th" + - "an or equal to %s\'.format([rules.gte, ru" + - "les.lte]) : \'\'\n\332\001\n\027int64.gte_lte_exclusi" + - "ve\032\276\001has(rules.lte) && rules.lte < rules" + - ".gte && (rules.lte < this && this < rule" + - "s.gte)? \'value must be greater than or e" + - "qual to %s or less than or equal to %s\'." + - "format([rules.gte, rules.lte]) : \'\'H\001R\003g" + - "te\022y\n\002in\030\006 \003(\003Bi\302Hf\nd\n\010int64.in\032X!(this " + - "in dyn(rules)[\'in\']) ? \'value must be in" + - " list %s\'.format([dyn(rules)[\'in\']]) : \'" + - "\'R\002in\022}\n\006not_in\030\007 \003(\003Bf\302Hc\na\n\014int64.not_" + - "in\032Qthis in rules.not_in ? \'value must n" + - "ot be in list %s\'.format([rules.not_in])" + - " : \'\'R\005notInB\013\n\tless_thanB\016\n\014greater_tha" + - "nB\010\n\006_const\"\362\024\n\013UInt32Rules\022v\n\005const\030\001 \001" + - "(\rB[\302HX\nV\n\014uint32.const\032Fthis != rules.c" + - "onst ? \'value must equal %s\'.format([rul" + - "es.const]) : \'\'H\002R\005const\210\001\001\022\217\001\n\002lt\030\002 \001(\r" + - "B}\302Hz\nx\n\tuint32.lt\032k!has(rules.gte) && !" + - "has(rules.gt) && this >= rules.lt? \'valu" + - "e must be less than %s\'.format([rules.lt" + - "]) : \'\'H\000R\002lt\022\242\001\n\003lte\030\003 \001(\rB\215\001\302H\211\001\n\206\001\n\nu" + - "int32.lte\032x!has(rules.gte) && !has(rules" + - ".gt) && this > rules.lte? \'value must be" + - " less than or equal to %s\'.format([rules" + - ".lte]) : \'\'H\000R\003lte\022\240\007\n\002gt\030\004 \001(\rB\215\007\302H\211\007\n{" + - "\n\tuint32.gt\032n!has(rules.lt) && !has(rule" + - "s.lte) && this <= rules.gt? \'value must " + - "be greater than %s\'.format([rules.gt]) :" + - " \'\'\n\264\001\n\014uint32.gt_lt\032\243\001has(rules.lt) && " + - "rules.lt >= rules.gt && (this >= rules.l" + - "t || this <= rules.gt)? \'value must be g" + - "reater than %s and less than %s\'.format(" + - "[rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint32.gt" + - "_lt_exclusive\032\241\001has(rules.lt) && rules.l" + - "t < rules.gt && (rules.lt <= this && thi" + - "s <= rules.gt)? \'value must be greater t" + - "han %s or less than %s\'.format([rules.gt" + - ", rules.lt]) : \'\'\n\304\001\n\ruint32.gt_lte\032\262\001ha" + - "s(rules.lte) && rules.lte >= rules.gt &&" + - " (this > rules.lte || this <= rules.gt)?" + - " \'value must be greater than %s and less" + - " than or equal to %s\'.format([rules.gt, " + - "rules.lte]) : \'\'\n\314\001\n\027uint32.gt_lte_exclu" + - "sive\032\260\001has(rules.lte) && rules.lte < rul" + - "es.gt && (rules.lte < this && this <= ru" + - "les.gt)? \'value must be greater than %s " + - "or less than or equal to %s\'.format([rul" + - "es.gt, rules.lte]) : \'\'H\001R\002gt\022\355\007\n\003gte\030\005 " + - "\001(\rB\330\007\302H\324\007\n\211\001\n\nuint32.gte\032{!has(rules.lt" + - ") && !has(rules.lte) && this < rules.gte" + - "? \'value must be greater than or equal t" + - "o %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint3" + - "2.gte_lt\032\261\001has(rules.lt) && rules.lt >= " + - "rules.gte && (this >= rules.lt || this <" + - " rules.gte)? \'value must be greater than" + - " or equal to %s and less than %s\'.format" + - "([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint32." + - "gte_lt_exclusive\032\257\001has(rules.lt) && rule" + - "s.lt < rules.gte && (rules.lt <= this &&" + - " this < rules.gte)? \'value must be great" + - "er than or equal to %s or less than %s\'." + - "format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016u" + - "int32.gte_lte\032\300\001has(rules.lte) && rules." + - "lte >= rules.gte && (this > rules.lte ||" + - " this < rules.gte)? \'value must be great" + - "er than or equal to %s and less than or " + - "equal to %s\'.format([rules.gte, rules.lt" + - "e]) : \'\'\n\333\001\n\030uint32.gte_lte_exclusive\032\276\001" + - "has(rules.lte) && rules.lte < rules.gte " + - "&& (rules.lte < this && this < rules.gte" + - ")? \'value must be greater than or equal " + - "to %s or less than or equal to %s\'.forma" + - "t([rules.gte, rules.lte]) : \'\'H\001R\003gte\022z\n" + - "\002in\030\006 \003(\rBj\302Hg\ne\n\tuint32.in\032X!(this in d" + - "yn(rules)[\'in\']) ? \'value must be in lis" + - "t %s\'.format([dyn(rules)[\'in\']]) : \'\'R\002i" + - "n\022~\n\006not_in\030\007 \003(\rBg\302Hd\nb\n\ruint32.not_in\032" + - "Qthis in rules.not_in ? \'value must not " + - "be in list %s\'.format([rules.not_in]) : " + - "\'\'R\005notInB\013\n\tless_thanB\016\n\014greater_thanB\010" + - "\n\006_const\"\362\024\n\013UInt64Rules\022v\n\005const\030\001 \001(\004B" + - "[\302HX\nV\n\014uint64.const\032Fthis != rules.cons" + - "t ? \'value must equal %s\'.format([rules." + - "const]) : \'\'H\002R\005const\210\001\001\022\217\001\n\002lt\030\002 \001(\004B}\302" + - "Hz\nx\n\tuint64.lt\032k!has(rules.gte) && !has" + - "(rules.gt) && this >= rules.lt? \'value m" + - "ust be less than %s\'.format([rules.lt]) " + - ": \'\'H\000R\002lt\022\242\001\n\003lte\030\003 \001(\004B\215\001\302H\211\001\n\206\001\n\nuint" + - "64.lte\032x!has(rules.gte) && !has(rules.gt" + - ") && this > rules.lte? \'value must be le" + - "ss than or equal to %s\'.format([rules.lt" + - "e]) : \'\'H\000R\003lte\022\240\007\n\002gt\030\004 \001(\004B\215\007\302H\211\007\n{\n\tu" + - "int64.gt\032n!has(rules.lt) && !has(rules.l" + - "te) && this <= rules.gt? \'value must be " + - "greater than %s\'.format([rules.gt]) : \'\'" + - "\n\264\001\n\014uint64.gt_lt\032\243\001has(rules.lt) && rul" + - "es.lt >= rules.gt && (this >= rules.lt |" + - "| this <= rules.gt)? \'value must be grea", - "ter than %s and less than %s\'.format([ru" + - "les.gt, rules.lt]) : \'\'\n\274\001\n\026uint64.gt_lt" + - "_exclusive\032\241\001has(rules.lt) && rules.lt <" + - " rules.gt && (rules.lt <= this && this <" + - "= rules.gt)? \'value must be greater than" + - " %s or less than %s\'.format([rules.gt, r" + - "ules.lt]) : \'\'\n\304\001\n\ruint64.gt_lte\032\262\001has(r" + - "ules.lte) && rules.lte >= rules.gt && (t" + - "his > rules.lte || this <= rules.gt)? \'v" + - "alue must be greater than %s and less th" + - "an or equal to %s\'.format([rules.gt, rul" + - "es.lte]) : \'\'\n\314\001\n\027uint64.gt_lte_exclusiv" + - "e\032\260\001has(rules.lte) && rules.lte < rules." + - "gt && (rules.lte < this && this <= rules" + - ".gt)? \'value must be greater than %s or " + - "less than or equal to %s\'.format([rules." + - "gt, rules.lte]) : \'\'H\001R\002gt\022\355\007\n\003gte\030\005 \001(\004" + - "B\330\007\302H\324\007\n\211\001\n\nuint64.gte\032{!has(rules.lt) &" + - "& !has(rules.lte) && this < rules.gte? \'" + - "value must be greater than or equal to %" + - "s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint64.g" + - "te_lt\032\261\001has(rules.lt) && rules.lt >= rul" + - "es.gte && (this >= rules.lt || this < ru" + - "les.gte)? \'value must be greater than or" + - " equal to %s and less than %s\'.format([r" + - "ules.gte, rules.lt]) : \'\'\n\313\001\n\027uint64.gte" + - "_lt_exclusive\032\257\001has(rules.lt) && rules.l" + - "t < rules.gte && (rules.lt <= this && th" + - "is < rules.gte)? \'value must be greater " + - "than or equal to %s or less than %s\'.for" + - "mat([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint" + - "64.gte_lte\032\300\001has(rules.lte) && rules.lte" + - " >= rules.gte && (this > rules.lte || th" + - "is < rules.gte)? \'value must be greater " + - "than or equal to %s and less than or equ" + - "al to %s\'.format([rules.gte, rules.lte])" + - " : \'\'\n\333\001\n\030uint64.gte_lte_exclusive\032\276\001has" + - "(rules.lte) && rules.lte < rules.gte && " + - "(rules.lte < this && this < rules.gte)? " + - "\'value must be greater than or equal to " + - "%s or less than or equal to %s\'.format([" + - "rules.gte, rules.lte]) : \'\'H\001R\003gte\022z\n\002in" + - "\030\006 \003(\004Bj\302Hg\ne\n\tuint64.in\032X!(this in dyn(" + - "rules)[\'in\']) ? \'value must be in list %" + - "s\'.format([dyn(rules)[\'in\']]) : \'\'R\002in\022~" + - "\n\006not_in\030\007 \003(\004Bg\302Hd\nb\n\ruint64.not_in\032Qth" + - "is in rules.not_in ? \'value must not be " + - "in list %s\'.format([rules.not_in]) : \'\'R" + - "\005notInB\013\n\tless_thanB\016\n\014greater_thanB\010\n\006_" + - "const\"\362\024\n\013SInt32Rules\022v\n\005const\030\001 \001(\021B[\302H" + - "X\nV\n\014sint32.const\032Fthis != rules.const ?" + - " \'value must equal %s\'.format([rules.con" + - "st]) : \'\'H\002R\005const\210\001\001\022\217\001\n\002lt\030\002 \001(\021B}\302Hz\n" + - "x\n\tsint32.lt\032k!has(rules.gte) && !has(ru" + - "les.gt) && this >= rules.lt? \'value must" + - " be less than %s\'.format([rules.lt]) : \'" + - "\'H\000R\002lt\022\242\001\n\003lte\030\003 \001(\021B\215\001\302H\211\001\n\206\001\n\nsint32." + - "lte\032x!has(rules.gte) && !has(rules.gt) &" + - "& this > rules.lte? \'value must be less " + - "than or equal to %s\'.format([rules.lte])" + - " : \'\'H\000R\003lte\022\240\007\n\002gt\030\004 \001(\021B\215\007\302H\211\007\n{\n\tsint" + - "32.gt\032n!has(rules.lt) && !has(rules.lte)" + - " && this <= rules.gt? \'value must be gre" + - "ater than %s\'.format([rules.gt]) : \'\'\n\264\001" + - "\n\014sint32.gt_lt\032\243\001has(rules.lt) && rules." + - "lt >= rules.gt && (this >= rules.lt || t" + - "his <= rules.gt)? \'value must be greater" + - " than %s and less than %s\'.format([rules" + - ".gt, rules.lt]) : \'\'\n\274\001\n\026sint32.gt_lt_ex" + - "clusive\032\241\001has(rules.lt) && rules.lt < ru" + - "les.gt && (rules.lt <= this && this <= r" + - "ules.gt)? \'value must be greater than %s" + - " or less than %s\'.format([rules.gt, rule" + - "s.lt]) : \'\'\n\304\001\n\rsint32.gt_lte\032\262\001has(rule" + - "s.lte) && rules.lte >= rules.gt && (this" + - " > rules.lte || this <= rules.gt)? \'valu" + - "e must be greater than %s and less than " + - "or equal to %s\'.format([rules.gt, rules." + - "lte]) : \'\'\n\314\001\n\027sint32.gt_lte_exclusive\032\260" + - "\001has(rules.lte) && rules.lte < rules.gt " + - "&& (rules.lte < this && this <= rules.gt" + - ")? \'value must be greater than %s or les" + - "s than or equal to %s\'.format([rules.gt," + - " rules.lte]) : \'\'H\001R\002gt\022\355\007\n\003gte\030\005 \001(\021B\330\007" + - "\302H\324\007\n\211\001\n\nsint32.gte\032{!has(rules.lt) && !" + - "has(rules.lte) && this < rules.gte? \'val" + - "ue must be greater than or equal to %s\'." + - "format([rules.gte]) : \'\'\n\303\001\n\rsint32.gte_" + - "lt\032\261\001has(rules.lt) && rules.lt >= rules." + - "gte && (this >= rules.lt || this < rules" + - ".gte)? \'value must be greater than or eq" + - "ual to %s and less than %s\'.format([rule" + - "s.gte, rules.lt]) : \'\'\n\313\001\n\027sint32.gte_lt" + - "_exclusive\032\257\001has(rules.lt) && rules.lt <" + - " rules.gte && (rules.lt <= this && this " + - "< rules.gte)? \'value must be greater tha" + - "n or equal to %s or less than %s\'.format" + - "([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint32." + - "gte_lte\032\300\001has(rules.lte) && rules.lte >=" + - " rules.gte && (this > rules.lte || this " + + "[rules.gt, rules.lte]) : \'\'\n\314\001\n\027double.g" + + "t_lte_exclusive\032\260\001has(rules.lte) && rule" + + "s.lte < rules.gt && (rules.lte < this &&" + + " this <= rules.gt)? \'value must be great" + + "er than %s or less than or equal to %s\'." + + "format([rules.gt, rules.lte]) : \'\'H\001R\002gt" + + "\022\355\007\n\003gte\030\005 \001(\001B\330\007\302H\324\007\n\211\001\n\ndouble.gte\032{!h" + + "as(rules.lt) && !has(rules.lte) && this " + + "< rules.gte? \'value must be greater than" + + " or equal to %s\'.format([rules.gte]) : \'" + + "\'\n\303\001\n\rdouble.gte_lt\032\261\001has(rules.lt) && r" + + "ules.lt >= rules.gte && (this >= rules.l" + + "t || this < rules.gte)? \'value must be g" + + "reater than or equal to %s and less than" + + " %s\'.format([rules.gte, rules.lt]) : \'\'\n" + + "\313\001\n\027double.gte_lt_exclusive\032\257\001has(rules." + + "lt) && rules.lt < rules.gte && (rules.lt" + + " <= this && this < rules.gte)? \'value mu" + + "st be greater than or equal to %s or les" + + "s than %s\'.format([rules.gte, rules.lt])" + + " : \'\'\n\323\001\n\016double.gte_lte\032\300\001has(rules.lte" + + ") && rules.lte >= rules.gte && (this > r" + + "ules.lte || this < rules.gte)? \'value mu" + + "st be greater than or equal to %s and le" + + "ss than or equal to %s\'.format([rules.gt" + + "e, rules.lte]) : \'\'\n\333\001\n\030double.gte_lte_e" + + "xclusive\032\276\001has(rules.lte) && rules.lte <" + + " rules.gte && (rules.lte < this && this " + "< rules.gte)? \'value must be greater tha" + - "n or equal to %s and less than or equal " + - "to %s\'.format([rules.gte, rules.lte]) : " + - "\'\'\n\333\001\n\030sint32.gte_lte_exclusive\032\276\001has(ru" + - "les.lte) && rules.lte < rules.gte && (ru" + - "les.lte < this && this < rules.gte)? \'va" + - "lue must be greater than or equal to %s " + - "or less than or equal to %s\'.format([rul" + - "es.gte, rules.lte]) : \'\'H\001R\003gte\022z\n\002in\030\006 " + - "\003(\021Bj\302Hg\ne\n\tsint32.in\032X!(this in dyn(rul" + - "es)[\'in\']) ? \'value must be in list %s\'." + - "format([dyn(rules)[\'in\']]) : \'\'R\002in\022~\n\006n" + - "ot_in\030\007 \003(\021Bg\302Hd\nb\n\rsint32.not_in\032Qthis " + - "in rules.not_in ? \'value must not be in " + - "list %s\'.format([rules.not_in]) : \'\'R\005no" + - "tInB\013\n\tless_thanB\016\n\014greater_thanB\010\n\006_con" + - "st\"\362\024\n\013SInt64Rules\022v\n\005const\030\001 \001(\022B[\302HX\nV" + - "\n\014sint64.const\032Fthis != rules.const ? \'v" + - "alue must equal %s\'.format([rules.const]" + - ") : \'\'H\002R\005const\210\001\001\022\217\001\n\002lt\030\002 \001(\022B}\302Hz\nx\n\t" + - "sint64.lt\032k!has(rules.gte) && !has(rules" + + "n or equal to %s or less than or equal t" + + "o %s\'.format([rules.gte, rules.lte]) : \'" + + "\'H\001R\003gte\022z\n\002in\030\006 \003(\001Bj\302Hg\ne\n\tdouble.in\032X" + + "!(this in dyn(rules)[\'in\']) ? \'value mus" + + "t be in list %s\'.format([dyn(rules)[\'in\'" + + "]]) : \'\'R\002in\022~\n\006not_in\030\007 \003(\001Bg\302Hd\nb\n\rdou" + + "ble.not_in\032Qthis in rules.not_in ? \'valu" + + "e must not be in list %s\'.format([rules." + + "not_in]) : \'\'R\005notIn\022h\n\006finite\030\010 \001(\010BP\302H" + + "M\nK\n\rdouble.finite\032:this.isNan() || this" + + ".isInf() ? \'value must be finite\' : \'\'R\006" + + "finiteB\013\n\tless_thanB\016\n\014greater_thanB\010\n\006_" + + "const\"\342\024\n\nInt32Rules\022u\n\005const\030\001 \001(\005BZ\302HW" + + "\nU\n\013int32.const\032Fthis != rules.const ? \'" + + "value must equal %s\'.format([rules.const" + + "]) : \'\'H\002R\005const\210\001\001\022\216\001\n\002lt\030\002 \001(\005B|\302Hy\nw\n" + + "\010int32.lt\032k!has(rules.gte) && !has(rules" + ".gt) && this >= rules.lt? \'value must be" + " less than %s\'.format([rules.lt]) : \'\'H\000" + - "R\002lt\022\242\001\n\003lte\030\003 \001(\022B\215\001\302H\211\001\n\206\001\n\nsint64.lte" + - "\032x!has(rules.gte) && !has(rules.gt) && t" + - "his > rules.lte? \'value must be less tha" + - "n or equal to %s\'.format([rules.lte]) : " + - "\'\'H\000R\003lte\022\240\007\n\002gt\030\004 \001(\022B\215\007\302H\211\007\n{\n\tsint64." + - "gt\032n!has(rules.lt) && !has(rules.lte) &&" + - " this <= rules.gt? \'value must be greate" + - "r than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014s" + - "int64.gt_lt\032\243\001has(rules.lt) && rules.lt " + - ">= rules.gt && (this >= rules.lt || this" + + "R\002lt\022\241\001\n\003lte\030\003 \001(\005B\214\001\302H\210\001\n\205\001\n\tint32.lte\032" + + "x!has(rules.gte) && !has(rules.gt) && th" + + "is > rules.lte? \'value must be less than" + + " or equal to %s\'.format([rules.lte]) : \'" + + "\'H\000R\003lte\022\233\007\n\002gt\030\004 \001(\005B\210\007\302H\204\007\nz\n\010int32.gt" + + "\032n!has(rules.lt) && !has(rules.lte) && t" + + "his <= rules.gt? \'value must be greater " + + "than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int" + + "32.gt_lt\032\243\001has(rules.lt) && rules.lt >= " + + "rules.gt && (this >= rules.lt || this <=" + + " rules.gt)? \'value must be greater than " + + "%s and less than %s\'.format([rules.gt, r" + + "ules.lt]) : \'\'\n\273\001\n\025int32.gt_lt_exclusive" + + "\032\241\001has(rules.lt) && rules.lt < rules.gt " + + "&& (rules.lt <= this && this <= rules.gt" + + ")? \'value must be greater than %s or les" + + "s than %s\'.format([rules.gt, rules.lt]) " + + ": \'\'\n\303\001\n\014int32.gt_lte\032\262\001has(rules.lte) &" + + "& rules.lte >= rules.gt && (this > rules" + + ".lte || this <= rules.gt)? \'value must b" + + "e greater than %s and less than or equal" + + " to %s\'.format([rules.gt, rules.lte]) : " + + "\'\'\n\313\001\n\026int32.gt_lte_exclusive\032\260\001has(rule" + + "s.lte) && rules.lte < rules.gt && (rules" + + ".lte < this && this <= rules.gt)? \'value" + + " must be greater than %s or less than or" + + " equal to %s\'.format([rules.gt, rules.lt" + + "e]) : \'\'H\001R\002gt\022\350\007\n\003gte\030\005 \001(\005B\323\007\302H\317\007\n\210\001\n\t" + + "int32.gte\032{!has(rules.lt) && !has(rules." + + "lte) && this < rules.gte? \'value must be" + + " greater than or equal to %s\'.format([ru" + + "les.gte]) : \'\'\n\302\001\n\014int32.gte_lt\032\261\001has(ru" + + "les.lt) && rules.lt >= rules.gte && (thi" + + "s >= rules.lt || this < rules.gte)? \'val" + + "ue must be greater than or equal to %s a" + + "nd less than %s\'.format([rules.gte, rule" + + "s.lt]) : \'\'\n\312\001\n\026int32.gte_lt_exclusive\032\257" + + "\001has(rules.lt) && rules.lt < rules.gte &" + + "& (rules.lt <= this && this < rules.gte)" + + "? \'value must be greater than or equal t" + + "o %s or less than %s\'.format([rules.gte," + + " rules.lt]) : \'\'\n\322\001\n\rint32.gte_lte\032\300\001has" + + "(rules.lte) && rules.lte >= rules.gte &&" + + " (this > rules.lte || this < rules.gte)?" + + " \'value must be greater than or equal to" + + " %s and less than or equal to %s\'.format" + + "([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int32." + + "gte_lte_exclusive\032\276\001has(rules.lte) && ru" + + "les.lte < rules.gte && (rules.lte < this" + + " && this < rules.gte)? \'value must be gr" + + "eater than or equal to %s or less than o" + + "r equal to %s\'.format([rules.gte, rules." + + "lte]) : \'\'H\001R\003gte\022y\n\002in\030\006 \003(\005Bi\302Hf\nd\n\010in" + + "t32.in\032X!(this in dyn(rules)[\'in\']) ? \'v" + + "alue must be in list %s\'.format([dyn(rul" + + "es)[\'in\']]) : \'\'R\002in\022}\n\006not_in\030\007 \003(\005Bf\302H" + + "c\na\n\014int32.not_in\032Qthis in rules.not_in " + + "? \'value must not be in list %s\'.format(" + + "[rules.not_in]) : \'\'R\005notInB\013\n\tless_than" + + "B\016\n\014greater_thanB\010\n\006_const\"\342\024\n\nInt64Rule" + + "s\022u\n\005const\030\001 \001(\003BZ\302HW\nU\n\013int64.const\032Fth" + + "is != rules.const ? \'value must equal %s" + + "\'.format([rules.const]) : \'\'H\002R\005const\210\001\001" + + "\022\216\001\n\002lt\030\002 \001(\003B|\302Hy\nw\n\010int64.lt\032k!has(rul" + + "es.gte) && !has(rules.gt) && this >= rul" + + "es.lt? \'value must be less than %s\'.form" + + "at([rules.lt]) : \'\'H\000R\002lt\022\241\001\n\003lte\030\003 \001(\003B" + + "\214\001\302H\210\001\n\205\001\n\tint64.lte\032x!has(rules.gte) &&" + + " !has(rules.gt) && this > rules.lte? \'va" + + "lue must be less than or equal to %s\'.fo" + + "rmat([rules.lte]) : \'\'H\000R\003lte\022\233\007\n\002gt\030\004 \001" + + "(\003B\210\007\302H\204\007\nz\n\010int64.gt\032n!has(rules.lt) &&" + + " !has(rules.lte) && this <= rules.gt? \'v" + + "alue must be greater than %s\'.format([ru" + + "les.gt]) : \'\'\n\263\001\n\013int64.gt_lt\032\243\001has(rule" + + "s.lt) && rules.lt >= rules.gt && (this >" + + "= rules.lt || this <= rules.gt)? \'value " + + "must be greater than %s and less than %s" + + "\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025" + + "int64.gt_lt_exclusive\032\241\001has(rules.lt) &&" + + " rules.lt < rules.gt && (rules.lt <= thi" + + "s && this <= rules.gt)? \'value must be g" + + "reater than %s or less than %s\'.format([" + + "rules.gt, rules.lt]) : \'\'\n\303\001\n\014int64.gt_l" + + "te\032\262\001has(rules.lte) && rules.lte >= rule" + + "s.gt && (this > rules.lte || this <= rul" + + "es.gt)? \'value must be greater than %s a" + + "nd less than or equal to %s\'.format([rul" + + "es.gt, rules.lte]) : \'\'\n\313\001\n\026int64.gt_lte" + + "_exclusive\032\260\001has(rules.lte) && rules.lte" + + " < rules.gt && (rules.lte < this && this" + " <= rules.gt)? \'value must be greater th" + - "an %s and less than %s\'.format([rules.gt" + - ", rules.lt]) : \'\'\n\274\001\n\026sint64.gt_lt_exclu" + - "sive\032\241\001has(rules.lt) && rules.lt < rules" + - ".gt && (rules.lt <= this && this <= rule" + - "s.gt)? \'value must be greater than %s or" + - " less than %s\'.format([rules.gt, rules.l" + - "t]) : \'\'\n\304\001\n\rsint64.gt_lte\032\262\001has(rules.l" + - "te) && rules.lte >= rules.gt && (this > " + - "rules.lte || this <= rules.gt)? \'value m" + - "ust be greater than %s and less than or " + - "equal to %s\'.format([rules.gt, rules.lte" + - "]) : \'\'\n\314\001\n\027sint64.gt_lte_exclusive\032\260\001ha" + - "s(rules.lte) && rules.lte < rules.gt && " + - "(rules.lte < this && this <= rules.gt)? " + - "\'value must be greater than %s or less t" + - "han or equal to %s\'.format([rules.gt, ru" + - "les.lte]) : \'\'H\001R\002gt\022\355\007\n\003gte\030\005 \001(\022B\330\007\302H\324" + - "\007\n\211\001\n\nsint64.gte\032{!has(rules.lt) && !has" + - "(rules.lte) && this < rules.gte? \'value " + - "must be greater than or equal to %s\'.for" + - "mat([rules.gte]) : \'\'\n\303\001\n\rsint64.gte_lt\032" + - "\261\001has(rules.lt) && rules.lt >= rules.gte" + - " && (this >= rules.lt || this < rules.gt" + + "an %s or less than or equal to %s\'.forma" + + "t([rules.gt, rules.lte]) : \'\'H\001R\002gt\022\350\007\n\003" + + "gte\030\005 \001(\003B\323\007\302H\317\007\n\210\001\n\tint64.gte\032{!has(rul" + + "es.lt) && !has(rules.lte) && this < rule" + + "s.gte? \'value must be greater than or eq" + + "ual to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014" + + "int64.gte_lt\032\261\001has(rules.lt) && rules.lt" + + " >= rules.gte && (this >= rules.lt || th" + + "is < rules.gte)? \'value must be greater " + + "than or equal to %s and less than %s\'.fo" + + "rmat([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int" + + "64.gte_lt_exclusive\032\257\001has(rules.lt) && r" + + "ules.lt < rules.gte && (rules.lt <= this" + + " && this < rules.gte)? \'value must be gr" + + "eater than or equal to %s or less than %" + + "s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001" + + "\n\rint64.gte_lte\032\300\001has(rules.lte) && rule" + + "s.lte >= rules.gte && (this > rules.lte " + + "|| this < rules.gte)? \'value must be gre" + + "ater than or equal to %s and less than o" + + "r equal to %s\'.format([rules.gte, rules." + + "lte]) : \'\'\n\332\001\n\027int64.gte_lte_exclusive\032\276" + + "\001has(rules.lte) && rules.lte < rules.gte" + + " && (rules.lte < this && this < rules.gt" + "e)? \'value must be greater than or equal" + - " to %s and less than %s\'.format([rules.g" + - "te, rules.lt]) : \'\'\n\313\001\n\027sint64.gte_lt_ex" + - "clusive\032\257\001has(rules.lt) && rules.lt < ru" + - "les.gte && (rules.lt <= this && this < r" + - "ules.gte)? \'value must be greater than o" + - "r equal to %s or less than %s\'.format([r" + - "ules.gte, rules.lt]) : \'\'\n\323\001\n\016sint64.gte" + - "_lte\032\300\001has(rules.lte) && rules.lte >= ru" + - "les.gte && (this > rules.lte || this < r" + - "ules.gte)? \'value must be greater than o" + - "r equal to %s and less than or equal to " + - "%s\'.format([rules.gte, rules.lte]) : \'\'\n" + - "\333\001\n\030sint64.gte_lte_exclusive\032\276\001has(rules" + - ".lte) && rules.lte < rules.gte && (rules" + - ".lte < this && this < rules.gte)? \'value" + - " must be greater than or equal to %s or " + - "less than or equal to %s\'.format([rules." + - "gte, rules.lte]) : \'\'H\001R\003gte\022z\n\002in\030\006 \003(\022" + - "Bj\302Hg\ne\n\tsint64.in\032X!(this in dyn(rules)" + - "[\'in\']) ? \'value must be in list %s\'.for" + - "mat([dyn(rules)[\'in\']]) : \'\'R\002in\022~\n\006not_" + - "in\030\007 \003(\022Bg\302Hd\nb\n\rsint64.not_in\032Qthis in " + - "rules.not_in ? \'value must not be in lis" + - "t %s\'.format([rules.not_in]) : \'\'R\005notIn" + - "B\013\n\tless_thanB\016\n\014greater_thanB\010\n\006_const\"" + - "\202\025\n\014Fixed32Rules\022w\n\005const\030\001 \001(\007B\\\302HY\nW\n\r" + - "fixed32.const\032Fthis != rules.const ? \'va" + - "lue must equal %s\'.format([rules.const])" + - " : \'\'H\002R\005const\210\001\001\022\220\001\n\002lt\030\002 \001(\007B~\302H{\ny\n\nf" + - "ixed32.lt\032k!has(rules.gte) && !has(rules" + - ".gt) && this >= rules.lt? \'value must be" + - " less than %s\'.format([rules.lt]) : \'\'H\000" + - "R\002lt\022\243\001\n\003lte\030\003 \001(\007B\216\001\302H\212\001\n\207\001\n\013fixed32.lt" + - "e\032x!has(rules.gte) && !has(rules.gt) && " + - "this > rules.lte? \'value must be less th" + - "an or equal to %s\'.format([rules.lte]) :" + - " \'\'H\000R\003lte\022\245\007\n\002gt\030\004 \001(\007B\222\007\302H\216\007\n|\n\nfixed3" + - "2.gt\032n!has(rules.lt) && !has(rules.lte) " + - "&& this <= rules.gt? \'value must be grea" + - "ter than %s\'.format([rules.gt]) : \'\'\n\265\001\n" + - "\rfixed32.gt_lt\032\243\001has(rules.lt) && rules." + - "lt >= rules.gt && (this >= rules.lt || t" + - "his <= rules.gt)? \'value must be greater" + - " than %s and less than %s\'.format([rules" + - ".gt, rules.lt]) : \'\'\n\275\001\n\027fixed32.gt_lt_e" + - "xclusive\032\241\001has(rules.lt) && rules.lt < r" + - "ules.gt && (rules.lt <= this && this <= " + - "rules.gt)? \'value must be greater than %" + - "s or less than %s\'.format([rules.gt, rul" + - "es.lt]) : \'\'\n\305\001\n\016fixed32.gt_lte\032\262\001has(ru" + + " to %s or less than or equal to %s\'.form" + + "at([rules.gte, rules.lte]) : \'\'H\001R\003gte\022y" + + "\n\002in\030\006 \003(\003Bi\302Hf\nd\n\010int64.in\032X!(this in d" + + "yn(rules)[\'in\']) ? \'value must be in lis" + + "t %s\'.format([dyn(rules)[\'in\']]) : \'\'R\002i" + + "n\022}\n\006not_in\030\007 \003(\003Bf\302Hc\na\n\014int64.not_in\032Q" + + "this in rules.not_in ? \'value must not b" + + "e in list %s\'.format([rules.not_in]) : \'" + + "\'R\005notInB\013\n\tless_thanB\016\n\014greater_thanB\010\n" + + "\006_const\"\362\024\n\013UInt32Rules\022v\n\005const\030\001 \001(\rB[" + + "\302HX\nV\n\014uint32.const\032Fthis != rules.const" + + " ? \'value must equal %s\'.format([rules.c" + + "onst]) : \'\'H\002R\005const\210\001\001\022\217\001\n\002lt\030\002 \001(\rB}\302H" + + "z\nx\n\tuint32.lt\032k!has(rules.gte) && !has(" + + "rules.gt) && this >= rules.lt? \'value mu" + + "st be less than %s\'.format([rules.lt]) :" + + " \'\'H\000R\002lt\022\242\001\n\003lte\030\003 \001(\rB\215\001\302H\211\001\n\206\001\n\nuint3" + + "2.lte\032x!has(rules.gte) && !has(rules.gt)" + + " && this > rules.lte? \'value must be les" + + "s than or equal to %s\'.format([rules.lte" + + "]) : \'\'H\000R\003lte\022\240\007\n\002gt\030\004 \001(\rB\215\007\302H\211\007\n{\n\tui" + + "nt32.gt\032n!has(rules.lt) && !has(rules.lt" + + "e) && this <= rules.gt? \'value must be g" + + "reater than %s\'.format([rules.gt]) : \'\'\n" + + "\264\001\n\014uint32.gt_lt\032\243\001has(rules.lt) && rule" + + "s.lt >= rules.gt && (this >= rules.lt ||" + + " this <= rules.gt)? \'value must be great" + + "er than %s and less than %s\'.format([rul" + + "es.gt, rules.lt]) : \'\'\n\274\001\n\026uint32.gt_lt_" + + "exclusive\032\241\001has(rules.lt) && rules.lt < " + + "rules.gt && (rules.lt <= this && this <=" + + " rules.gt)? \'value must be greater than " + + "%s or less than %s\'.format([rules.gt, ru" + + "les.lt]) : \'\'\n\304\001\n\ruint32.gt_lte\032\262\001has(ru" + "les.lte) && rules.lte >= rules.gt && (th" + "is > rules.lte || this <= rules.gt)? \'va" + "lue must be greater than %s and less tha" + "n or equal to %s\'.format([rules.gt, rule" + - "s.lte]) : \'\'\n\315\001\n\030fixed32.gt_lte_exclusiv" + - "e\032\260\001has(rules.lte) && rules.lte < rules." + - "gt && (rules.lte < this && this <= rules" + - ".gt)? \'value must be greater than %s or " + - "less than or equal to %s\'.format([rules." + - "gt, rules.lte]) : \'\'H\001R\002gt\022\362\007\n\003gte\030\005 \001(\007" + - "B\335\007\302H\331\007\n\212\001\n\013fixed32.gte\032{!has(rules.lt) " + - "&& !has(rules.lte) && this < rules.gte? " + - "\'value must be greater than or equal to " + - "%s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed32" + - ".gte_lt\032\261\001has(rules.lt) && rules.lt >= r" + - "ules.gte && (this >= rules.lt || this < " + - "rules.gte)? \'value must be greater than " + - "or equal to %s and less than %s\'.format(" + - "[rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed32." + - "gte_lt_exclusive\032\257\001has(rules.lt) && rule" + - "s.lt < rules.gte && (rules.lt <= this &&" + - " this < rules.gte)? \'value must be great" + - "er than or equal to %s or less than %s\'." + - "format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017f" + - "ixed32.gte_lte\032\300\001has(rules.lte) && rules" + - ".lte >= rules.gte && (this > rules.lte |" + - "| this < rules.gte)? \'value must be grea" + - "ter than or equal to %s and less than or" + - " equal to %s\'.format([rules.gte, rules.l" + - "te]) : \'\'\n\334\001\n\031fixed32.gte_lte_exclusive\032" + - "\276\001has(rules.lte) && rules.lte < rules.gt" + - "e && (rules.lte < this && this < rules.g" + - "te)? \'value must be greater than or equa" + - "l to %s or less than or equal to %s\'.for" + - "mat([rules.gte, rules.lte]) : \'\'H\001R\003gte\022" + - "{\n\002in\030\006 \003(\007Bk\302Hh\nf\n\nfixed32.in\032X!(this i" + - "n dyn(rules)[\'in\']) ? \'value must be in " + - "list %s\'.format([dyn(rules)[\'in\']]) : \'\'" + - "R\002in\022\177\n\006not_in\030\007 \003(\007Bh\302He\nc\n\016fixed32.not" + - "_in\032Qthis in rules.not_in ? \'value must " + - "not be in list %s\'.format([rules.not_in]" + - ") : \'\'R\005notInB\013\n\tless_thanB\016\n\014greater_th" + - "anB\010\n\006_const\"\202\025\n\014Fixed64Rules\022w\n\005const\030\001" + - " \001(\006B\\\302HY\nW\n\rfixed64.const\032Fthis != rule" + - "s.const ? \'value must equal %s\'.format([" + - "rules.const]) : \'\'H\002R\005const\210\001\001\022\220\001\n\002lt\030\002 " + - "\001(\006B~\302H{\ny\n\nfixed64.lt\032k!has(rules.gte) " + - "&& !has(rules.gt) && this >= rules.lt? \'" + - "value must be less than %s\'.format([rule" + - "s.lt]) : \'\'H\000R\002lt\022\243\001\n\003lte\030\003 \001(\006B\216\001\302H\212\001\n\207" + - "\001\n\013fixed64.lte\032x!has(rules.gte) && !has(" + - "rules.gt) && this > rules.lte? \'value mu" + - "st be less than or equal to %s\'.format([" + - "rules.lte]) : \'\'H\000R\003lte\022\245\007\n\002gt\030\004 \001(\006B\222\007\302" + - "H\216\007\n|\n\nfixed64.gt\032n!has(rules.lt) && !ha" + - "s(rules.lte) && this <= rules.gt? \'value" + - " must be greater than %s\'.format([rules." + - "gt]) : \'\'\n\265\001\n\rfixed64.gt_lt\032\243\001has(rules." + - "lt) && rules.lt >= rules.gt && (this >= " + - "rules.lt || this <= rules.gt)? \'value mu" + - "st be greater than %s and less than %s\'." + - "format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fi" + - "xed64.gt_lt_exclusive\032\241\001has(rules.lt) &&" + - " rules.lt < rules.gt && (rules.lt <= thi" + - "s && this <= rules.gt)? \'value must be g" + - "reater than %s or less than %s\'.format([" + - "rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed64.gt" + - "_lte\032\262\001has(rules.lte) && rules.lte >= ru" + - "les.gt && (this > rules.lte || this <= r" + - "ules.gt)? \'value must be greater than %s" + - " and less than or equal to %s\'.format([r" + - "ules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed64.gt" + - "_lte_exclusive\032\260\001has(rules.lte) && rules" + - ".lte < rules.gt && (rules.lte < this && " + - "this <= rules.gt)? \'value must be greate" + - "r than %s or less than or equal to %s\'.f" + - "ormat([rules.gt, rules.lte]) : \'\'H\001R\002gt\022" + - "\362\007\n\003gte\030\005 \001(\006B\335\007\302H\331\007\n\212\001\n\013fixed64.gte\032{!h" + - "as(rules.lt) && !has(rules.lte) && this " + - "< rules.gte? \'value must be greater than" + - " or equal to %s\'.format([rules.gte]) : \'" + - "\'\n\304\001\n\016fixed64.gte_lt\032\261\001has(rules.lt) && " + - "rules.lt >= rules.gte && (this >= rules." + - "lt || this < rules.gte)? \'value must be " + - "greater than or equal to %s and less tha" + - "n %s\'.format([rules.gte, rules.lt]) : \'\'" + - "\n\314\001\n\030fixed64.gte_lt_exclusive\032\257\001has(rule" + - "s.lt) && rules.lt < rules.gte && (rules." + - "lt <= this && this < rules.gte)? \'value " + - "must be greater than or equal to %s or l" + - "ess than %s\'.format([rules.gte, rules.lt" + - "]) : \'\'\n\324\001\n\017fixed64.gte_lte\032\300\001has(rules." + - "lte) && rules.lte >= rules.gte && (this " + - "> rules.lte || this < rules.gte)? \'value" + - " must be greater than or equal to %s and" + - " less than or equal to %s\'.format([rules" + - ".gte, rules.lte]) : \'\'\n\334\001\n\031fixed64.gte_l" + - "te_exclusive\032\276\001has(rules.lte) && rules.l" + - "te < rules.gte && (rules.lte < this && t" + - "his < rules.gte)? \'value must be greater" + - " than or equal to %s or less than or equ" + - "al to %s\'.format([rules.gte, rules.lte])" + - " : \'\'H\001R\003gte\022{\n\002in\030\006 \003(\006Bk\302Hh\nf\n\nfixed64" + - ".in\032X!(this in dyn(rules)[\'in\']) ? \'valu" + - "e must be in list %s\'.format([dyn(rules)" + - "[\'in\']]) : \'\'R\002in\022\177\n\006not_in\030\007 \003(\006Bh\302He\nc" + - "\n\016fixed64.not_in\032Qthis in rules.not_in ?" + - " \'value must not be in list %s\'.format([" + - "rules.not_in]) : \'\'R\005notInB\013\n\tless_thanB" + - "\016\n\014greater_thanB\010\n\006_const\"\223\025\n\rSFixed32Ru" + - "les\022x\n\005const\030\001 \001(\017B]\302HZ\nX\n\016sfixed32.cons" + - "t\032Fthis != rules.const ? \'value must equ" + - "al %s\'.format([rules.const]) : \'\'H\002R\005con" + - "st\210\001\001\022\221\001\n\002lt\030\002 \001(\017B\177\302H|\nz\n\013sfixed32.lt\032k" + - "!has(rules.gte) && !has(rules.gt) && thi" + - "s >= rules.lt? \'value must be less than " + - "%s\'.format([rules.lt]) : \'\'H\000R\002lt\022\244\001\n\003lt" + - "e\030\003 \001(\017B\217\001\302H\213\001\n\210\001\n\014sfixed32.lte\032x!has(ru" + - "les.gte) && !has(rules.gt) && this > rul" + - "es.lte? \'value must be less than or equa" + - "l to %s\'.format([rules.lte]) : \'\'H\000R\003lte" + - "\022\252\007\n\002gt\030\004 \001(\017B\227\007\302H\223\007\n}\n\013sfixed32.gt\032n!ha" + - "s(rules.lt) && !has(rules.lte) && this <" + - "= rules.gt? \'value must be greater than " + - "%s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed32" + - ".gt_lt\032\243\001has(rules.lt) && rules.lt >= ru" + - "les.gt && (this >= rules.lt || this <= r" + - "ules.gt)? \'value must be greater than %s" + - " and less than %s\'.format([rules.gt, rul" + - "es.lt]) : \'\'\n\276\001\n\030sfixed32.gt_lt_exclusiv" + - "e\032\241\001has(rules.lt) && rules.lt < rules.gt" + - " && (rules.lt <= this && this <= rules.g" + - "t)? \'value must be greater than %s or le" + - "ss than %s\'.format([rules.gt, rules.lt])" + - " : \'\'\n\306\001\n\017sfixed32.gt_lte\032\262\001has(rules.lt" + - "e) && rules.lte >= rules.gt && (this > r" + - "ules.lte || this <= rules.gt)? \'value mu" + - "st be greater than %s and less than or e" + - "qual to %s\'.format([rules.gt, rules.lte]" + - ") : \'\'\n\316\001\n\031sfixed32.gt_lte_exclusive\032\260\001h" + - "as(rules.lte) && rules.lte < rules.gt &&" + - " (rules.lte < this && this <= rules.gt)?" + - " \'value must be greater than %s or less " + - "than or equal to %s\'.format([rules.gt, r" + - "ules.lte]) : \'\'H\001R\002gt\022\367\007\n\003gte\030\005 \001(\017B\342\007\302H" + - "\336\007\n\213\001\n\014sfixed32.gte\032{!has(rules.lt) && !" + - "has(rules.lte) && this < rules.gte? \'val" + - "ue must be greater than or equal to %s\'." + - "format([rules.gte]) : \'\'\n\305\001\n\017sfixed32.gt" + + "s.lte]) : \'\'\n\314\001\n\027uint32.gt_lte_exclusive" + + "\032\260\001has(rules.lte) && rules.lte < rules.g" + + "t && (rules.lte < this && this <= rules." + + "gt)? \'value must be greater than %s or l" + + "ess than or equal to %s\'.format([rules.g" + + "t, rules.lte]) : \'\'H\001R\002gt\022\355\007\n\003gte\030\005 \001(\rB" + + "\330\007\302H\324\007\n\211\001\n\nuint32.gte\032{!has(rules.lt) &&" + + " !has(rules.lte) && this < rules.gte? \'v" + + "alue must be greater than or equal to %s" + + "\'.format([rules.gte]) : \'\'\n\303\001\n\ruint32.gt" + "e_lt\032\261\001has(rules.lt) && rules.lt >= rule" + "s.gte && (this >= rules.lt || this < rul" + "es.gte)? \'value must be greater than or " + "equal to %s and less than %s\'.format([ru" + - "les.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed32.gt" + - "e_lt_exclusive\032\257\001has(rules.lt) && rules." + - "lt < rules.gte && (rules.lt <= this && t" + - "his < rules.gte)? \'value must be greater" + - " than or equal to %s or less than %s\'.fo" + - "rmat([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfi" + - "xed32.gte_lte\032\300\001has(rules.lte) && rules." + - "lte >= rules.gte && (this > rules.lte ||" + - " this < rules.gte)? \'value must be great" + - "er than or equal to %s and less than or " + - "equal to %s\'.format([rules.gte, rules.lt" + - "e]) : \'\'\n\335\001\n\032sfixed32.gte_lte_exclusive\032" + - "\276\001has(rules.lte) && rules.lte < rules.gt" + - "e && (rules.lte < this && this < rules.g" + - "te)? \'value must be greater than or equa" + - "l to %s or less than or equal to %s\'.for" + - "mat([rules.gte, rules.lte]) : \'\'H\001R\003gte\022" + - "|\n\002in\030\006 \003(\017Bl\302Hi\ng\n\013sfixed32.in\032X!(this " + - "in dyn(rules)[\'in\']) ? \'value must be in" + - " list %s\'.format([dyn(rules)[\'in\']]) : \'" + - "\'R\002in\022\200\001\n\006not_in\030\007 \003(\017Bi\302Hf\nd\n\017sfixed32." + - "not_in\032Qthis in rules.not_in ? \'value mu" + - "st not be in list %s\'.format([rules.not_" + - "in]) : \'\'R\005notInB\013\n\tless_thanB\016\n\014greater" + - "_thanB\010\n\006_const\"\223\025\n\rSFixed64Rules\022x\n\005con" + - "st\030\001 \001(\020B]\302HZ\nX\n\016sfixed64.const\032Fthis !=" + - " rules.const ? \'value must equal %s\'.for" + - "mat([rules.const]) : \'\'H\002R\005const\210\001\001\022\221\001\n\002" + - "lt\030\002 \001(\020B\177\302H|\nz\n\013sfixed64.lt\032k!has(rules" + - ".gte) && !has(rules.gt) && this >= rules" + - ".lt? \'value must be less than %s\'.format" + - "([rules.lt]) : \'\'H\000R\002lt\022\244\001\n\003lte\030\003 \001(\020B\217\001" + - "\302H\213\001\n\210\001\n\014sfixed64.lte\032x!has(rules.gte) &" + - "& !has(rules.gt) && this > rules.lte? \'v" + - "alue must be less than or equal to %s\'.f" + - "ormat([rules.lte]) : \'\'H\000R\003lte\022\252\007\n\002gt\030\004 " + - "\001(\020B\227\007\302H\223\007\n}\n\013sfixed64.gt\032n!has(rules.lt" + - ") && !has(rules.lte) && this <= rules.gt" + - "? \'value must be greater than %s\'.format", - "([rules.gt]) : \'\'\n\266\001\n\016sfixed64.gt_lt\032\243\001h" + - "as(rules.lt) && rules.lt >= rules.gt && " + - "(this >= rules.lt || this <= rules.gt)? " + - "\'value must be greater than %s and less " + - "than %s\'.format([rules.gt, rules.lt]) : " + - "\'\'\n\276\001\n\030sfixed64.gt_lt_exclusive\032\241\001has(ru" + - "les.lt) && rules.lt < rules.gt && (rules" + - ".lt <= this && this <= rules.gt)? \'value" + - " must be greater than %s or less than %s" + - "\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017" + - "sfixed64.gt_lte\032\262\001has(rules.lte) && rule" + - "s.lte >= rules.gt && (this > rules.lte |" + - "| this <= rules.gt)? \'value must be grea" + - "ter than %s and less than or equal to %s" + - "\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n" + - "\031sfixed64.gt_lte_exclusive\032\260\001has(rules.l" + - "te) && rules.lte < rules.gt && (rules.lt" + - "e < this && this <= rules.gt)? \'value mu" + - "st be greater than %s or less than or eq" + - "ual to %s\'.format([rules.gt, rules.lte])" + - " : \'\'H\001R\002gt\022\367\007\n\003gte\030\005 \001(\020B\342\007\302H\336\007\n\213\001\n\014sfi" + - "xed64.gte\032{!has(rules.lt) && !has(rules." + - "lte) && this < rules.gte? \'value must be" + - " greater than or equal to %s\'.format([ru" + - "les.gte]) : \'\'\n\305\001\n\017sfixed64.gte_lt\032\261\001has" + - "(rules.lt) && rules.lt >= rules.gte && (" + - "this >= rules.lt || this < rules.gte)? \'" + + "les.gte, rules.lt]) : \'\'\n\313\001\n\027uint32.gte_" + + "lt_exclusive\032\257\001has(rules.lt) && rules.lt" + + " < rules.gte && (rules.lt <= this && thi" + + "s < rules.gte)? \'value must be greater t" + + "han or equal to %s or less than %s\'.form" + + "at([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint3" + + "2.gte_lte\032\300\001has(rules.lte) && rules.lte " + + ">= rules.gte && (this > rules.lte || thi" + + "s < rules.gte)? \'value must be greater t" + + "han or equal to %s and less than or equa" + + "l to %s\'.format([rules.gte, rules.lte]) " + + ": \'\'\n\333\001\n\030uint32.gte_lte_exclusive\032\276\001has(" + + "rules.lte) && rules.lte < rules.gte && (" + + "rules.lte < this && this < rules.gte)? \'" + "value must be greater than or equal to %" + - "s and less than %s\'.format([rules.gte, r" + - "ules.lt]) : \'\'\n\315\001\n\031sfixed64.gte_lt_exclu" + - "sive\032\257\001has(rules.lt) && rules.lt < rules" + - ".gte && (rules.lt <= this && this < rule" + - "s.gte)? \'value must be greater than or e" + - "qual to %s or less than %s\'.format([rule" + - "s.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed64.gte_" + + "s or less than or equal to %s\'.format([r" + + "ules.gte, rules.lte]) : \'\'H\001R\003gte\022z\n\002in\030" + + "\006 \003(\rBj\302Hg\ne\n\tuint32.in\032X!(this in dyn(r" + + "ules)[\'in\']) ? \'value must be in list %s" + + "\'.format([dyn(rules)[\'in\']]) : \'\'R\002in\022~\n" + + "\006not_in\030\007 \003(\rBg\302Hd\nb\n\ruint32.not_in\032Qthi" + + "s in rules.not_in ? \'value must not be i" + + "n list %s\'.format([rules.not_in]) : \'\'R\005" + + "notInB\013\n\tless_thanB\016\n\014greater_thanB\010\n\006_c" + + "onst\"\362\024\n\013UInt64Rules\022v\n\005const\030\001 \001(\004B[\302HX" + + "\nV\n\014uint64.const\032Fthis != rules.const ? " + + "\'value must equal %s\'.format([rules.cons" + + "t]) : \'\'H\002R\005const\210\001\001\022\217\001\n\002lt\030\002 \001(\004B}\302Hz\nx" + + "\n\tuint64.lt\032k!has(rules.gte) && !has(rul" + + "es.gt) && this >= rules.lt? \'value must " + + "be less than %s\'.format([rules.lt]) : \'\'" + + "H\000R\002lt\022\242\001\n\003lte\030\003 \001(\004B\215\001\302H\211\001\n\206\001\n\nuint64.l" + + "te\032x!has(rules.gte) && !has(rules.gt) &&" + + " this > rules.lte? \'value must be less t" + + "han or equal to %s\'.format([rules.lte]) " + + ": \'\'H\000R\003lte\022\240\007\n\002gt\030\004 \001(\004B\215\007\302H\211\007\n{\n\tuint6" + + "4.gt\032n!has(rules.lt) && !has(rules.lte) " + + "&& this <= rules.gt? \'value must be grea" + + "ter than %s\'.format([rules.gt]) : \'\'\n\264\001\n" + + "\014uint64.gt_lt\032\243\001has(rules.lt) && rules.l" + + "t >= rules.gt && (this >= rules.lt || th" + + "is <= rules.gt)? \'value must be greater " + + "than %s and less than %s\'.format([rules." + + "gt, rules.lt]) : \'\'\n\274\001\n\026uint64.gt_lt_exc", + "lusive\032\241\001has(rules.lt) && rules.lt < rul" + + "es.gt && (rules.lt <= this && this <= ru" + + "les.gt)? \'value must be greater than %s " + + "or less than %s\'.format([rules.gt, rules" + + ".lt]) : \'\'\n\304\001\n\ruint64.gt_lte\032\262\001has(rules" + + ".lte) && rules.lte >= rules.gt && (this " + + "> rules.lte || this <= rules.gt)? \'value" + + " must be greater than %s and less than o" + + "r equal to %s\'.format([rules.gt, rules.l" + + "te]) : \'\'\n\314\001\n\027uint64.gt_lte_exclusive\032\260\001" + + "has(rules.lte) && rules.lte < rules.gt &" + + "& (rules.lte < this && this <= rules.gt)" + + "? \'value must be greater than %s or less" + + " than or equal to %s\'.format([rules.gt, " + + "rules.lte]) : \'\'H\001R\002gt\022\355\007\n\003gte\030\005 \001(\004B\330\007\302" + + "H\324\007\n\211\001\n\nuint64.gte\032{!has(rules.lt) && !h" + + "as(rules.lte) && this < rules.gte? \'valu" + + "e must be greater than or equal to %s\'.f" + + "ormat([rules.gte]) : \'\'\n\303\001\n\ruint64.gte_l" + + "t\032\261\001has(rules.lt) && rules.lt >= rules.g" + + "te && (this >= rules.lt || this < rules." + + "gte)? \'value must be greater than or equ" + + "al to %s and less than %s\'.format([rules" + + ".gte, rules.lt]) : \'\'\n\313\001\n\027uint64.gte_lt_" + + "exclusive\032\257\001has(rules.lt) && rules.lt < " + + "rules.gte && (rules.lt <= this && this <" + + " rules.gte)? \'value must be greater than" + + " or equal to %s or less than %s\'.format(" + + "[rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint64.g" + + "te_lte\032\300\001has(rules.lte) && rules.lte >= " + + "rules.gte && (this > rules.lte || this <" + + " rules.gte)? \'value must be greater than" + + " or equal to %s and less than or equal t" + + "o %s\'.format([rules.gte, rules.lte]) : \'" + + "\'\n\333\001\n\030uint64.gte_lte_exclusive\032\276\001has(rul" + + "es.lte) && rules.lte < rules.gte && (rul" + + "es.lte < this && this < rules.gte)? \'val" + + "ue must be greater than or equal to %s o" + + "r less than or equal to %s\'.format([rule" + + "s.gte, rules.lte]) : \'\'H\001R\003gte\022z\n\002in\030\006 \003" + + "(\004Bj\302Hg\ne\n\tuint64.in\032X!(this in dyn(rule" + + "s)[\'in\']) ? \'value must be in list %s\'.f" + + "ormat([dyn(rules)[\'in\']]) : \'\'R\002in\022~\n\006no" + + "t_in\030\007 \003(\004Bg\302Hd\nb\n\ruint64.not_in\032Qthis i" + + "n rules.not_in ? \'value must not be in l" + + "ist %s\'.format([rules.not_in]) : \'\'R\005not" + + "InB\013\n\tless_thanB\016\n\014greater_thanB\010\n\006_cons" + + "t\"\362\024\n\013SInt32Rules\022v\n\005const\030\001 \001(\021B[\302HX\nV\n" + + "\014sint32.const\032Fthis != rules.const ? \'va" + + "lue must equal %s\'.format([rules.const])" + + " : \'\'H\002R\005const\210\001\001\022\217\001\n\002lt\030\002 \001(\021B}\302Hz\nx\n\ts" + + "int32.lt\032k!has(rules.gte) && !has(rules." + + "gt) && this >= rules.lt? \'value must be " + + "less than %s\'.format([rules.lt]) : \'\'H\000R" + + "\002lt\022\242\001\n\003lte\030\003 \001(\021B\215\001\302H\211\001\n\206\001\n\nsint32.lte\032" + + "x!has(rules.gte) && !has(rules.gt) && th" + + "is > rules.lte? \'value must be less than" + + " or equal to %s\'.format([rules.lte]) : \'" + + "\'H\000R\003lte\022\240\007\n\002gt\030\004 \001(\021B\215\007\302H\211\007\n{\n\tsint32.g" + + "t\032n!has(rules.lt) && !has(rules.lte) && " + + "this <= rules.gt? \'value must be greater" + + " than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014si" + + "nt32.gt_lt\032\243\001has(rules.lt) && rules.lt >" + + "= rules.gt && (this >= rules.lt || this " + + "<= rules.gt)? \'value must be greater tha" + + "n %s and less than %s\'.format([rules.gt," + + " rules.lt]) : \'\'\n\274\001\n\026sint32.gt_lt_exclus" + + "ive\032\241\001has(rules.lt) && rules.lt < rules." + + "gt && (rules.lt <= this && this <= rules" + + ".gt)? \'value must be greater than %s or " + + "less than %s\'.format([rules.gt, rules.lt" + + "]) : \'\'\n\304\001\n\rsint32.gt_lte\032\262\001has(rules.lt" + + "e) && rules.lte >= rules.gt && (this > r" + + "ules.lte || this <= rules.gt)? \'value mu" + + "st be greater than %s and less than or e" + + "qual to %s\'.format([rules.gt, rules.lte]" + + ") : \'\'\n\314\001\n\027sint32.gt_lte_exclusive\032\260\001has" + + "(rules.lte) && rules.lte < rules.gt && (" + + "rules.lte < this && this <= rules.gt)? \'" + + "value must be greater than %s or less th" + + "an or equal to %s\'.format([rules.gt, rul" + + "es.lte]) : \'\'H\001R\002gt\022\355\007\n\003gte\030\005 \001(\021B\330\007\302H\324\007" + + "\n\211\001\n\nsint32.gte\032{!has(rules.lt) && !has(" + + "rules.lte) && this < rules.gte? \'value m" + + "ust be greater than or equal to %s\'.form" + + "at([rules.gte]) : \'\'\n\303\001\n\rsint32.gte_lt\032\261" + + "\001has(rules.lt) && rules.lt >= rules.gte " + + "&& (this >= rules.lt || this < rules.gte" + + ")? \'value must be greater than or equal " + + "to %s and less than %s\'.format([rules.gt" + + "e, rules.lt]) : \'\'\n\313\001\n\027sint32.gte_lt_exc" + + "lusive\032\257\001has(rules.lt) && rules.lt < rul" + + "es.gte && (rules.lt <= this && this < ru" + + "les.gte)? \'value must be greater than or" + + " equal to %s or less than %s\'.format([ru" + + "les.gte, rules.lt]) : \'\'\n\323\001\n\016sint32.gte_" + "lte\032\300\001has(rules.lte) && rules.lte >= rul" + "es.gte && (this > rules.lte || this < ru" + "les.gte)? \'value must be greater than or" + " equal to %s and less than or equal to %" + - "s\'.format([rules.gte, rules.lte]) : \'\'\n\335" + - "\001\n\032sfixed64.gte_lte_exclusive\032\276\001has(rule" + - "s.lte) && rules.lte < rules.gte && (rule" + - "s.lte < this && this < rules.gte)? \'valu" + - "e must be greater than or equal to %s or" + - " less than or equal to %s\'.format([rules" + - ".gte, rules.lte]) : \'\'H\001R\003gte\022|\n\002in\030\006 \003(" + - "\020Bl\302Hi\ng\n\013sfixed64.in\032X!(this in dyn(rul" + - "es)[\'in\']) ? \'value must be in list %s\'." + - "format([dyn(rules)[\'in\']]) : \'\'R\002in\022\200\001\n\006" + - "not_in\030\007 \003(\020Bi\302Hf\nd\n\017sfixed64.not_in\032Qth" + - "is in rules.not_in ? \'value must not be " + - "in list %s\'.format([rules.not_in]) : \'\'R" + - "\005notInB\013\n\tless_thanB\016\n\014greater_thanB\010\n\006_" + - "const\"\213\001\n\tBoolRules\022t\n\005const\030\001 \001(\010BY\302HV\n" + - "T\n\nbool.const\032Fthis != rules.const ? \'va" + - "lue must equal %s\'.format([rules.const])" + - " : \'\'H\000R\005const\210\001\001B\010\n\006_const\"\274\036\n\013StringRu" + - "les\022x\n\005const\030\001 \001(\tB]\302HZ\nX\n\014string.const\032" + - "Hthis != rules.const ? \'value must equal" + - " `%s`\'.format([rules.const]) : \'\'H\001R\005con" + - "st\210\001\001\022\210\001\n\003len\030\023 \001(\004Bq\302Hn\nl\n\nstring.len\032^" + - "uint(this.size()) != rules.len ? \'value " + - "length must be %s characters\'.format([ru" + - "les.len]) : \'\'H\002R\003len\210\001\001\022\246\001\n\007min_len\030\002 \001" + - "(\004B\207\001\302H\203\001\n\200\001\n\016string.min_len\032nuint(this." + - "size()) < rules.min_len ? \'value length " + - "must be at least %s characters\'.format([" + - "rules.min_len]) : \'\'H\003R\006minLen\210\001\001\022\244\001\n\007ma" + - "x_len\030\003 \001(\004B\205\001\302H\201\001\n\177\n\016string.max_len\032mui" + - "nt(this.size()) > rules.max_len ? \'value" + - " length must be at most %s characters\'.f" + - "ormat([rules.max_len]) : \'\'H\004R\006maxLen\210\001\001" + - "\022\252\001\n\tlen_bytes\030\024 \001(\004B\207\001\302H\203\001\n\200\001\n\020string.l" + - "en_bytes\032luint(bytes(this).size()) != ru" + - "les.len_bytes ? \'value length must be %s" + - " bytes\'.format([rules.len_bytes]) : \'\'H\005" + - "R\010lenBytes\210\001\001\022\262\001\n\tmin_bytes\030\004 \001(\004B\217\001\302H\213\001" + - "\n\210\001\n\020string.min_bytes\032tuint(bytes(this)." + - "size()) < rules.min_bytes ? \'value lengt" + - "h must be at least %s bytes\'.format([rul" + - "es.min_bytes]) : \'\'H\006R\010minBytes\210\001\001\022\261\001\n\tm" + - "ax_bytes\030\005 \001(\004B\216\001\302H\212\001\n\207\001\n\020string.max_byt" + - "es\032suint(bytes(this).size()) > rules.max" + - "_bytes ? \'value length must be at most %" + - "s bytes\'.format([rules.max_bytes]) : \'\'H" + - "\007R\010maxBytes\210\001\001\022\233\001\n\007pattern\030\006 \001(\tB|\302Hy\nw\n" + - "\016string.pattern\032e!this.matches(rules.pat" + - "tern) ? \'value does not match regex patt" + - "ern `%s`\'.format([rules.pattern]) : \'\'H\010" + - "R\007pattern\210\001\001\022\221\001\n\006prefix\030\007 \001(\tBt\302Hq\no\n\rst" + - "ring.prefix\032^!this.startsWith(rules.pref" + - "ix) ? \'value does not have prefix `%s`\'." + - "format([rules.prefix]) : \'\'H\tR\006prefix\210\001\001" + - "\022\217\001\n\006suffix\030\010 \001(\tBr\302Ho\nm\n\rstring.suffix\032" + - "\\!this.endsWith(rules.suffix) ? \'value d" + - "oes not have suffix `%s`\'.format([rules." + - "suffix]) : \'\'H\nR\006suffix\210\001\001\022\237\001\n\010contains\030" + - "\t \001(\tB~\302H{\ny\n\017string.contains\032f!this.con" + - "tains(rules.contains) ? \'value does not " + - "contain substring `%s`\'.format([rules.co" + - "ntains]) : \'\'H\013R\010contains\210\001\001\022\252\001\n\014not_con" + - "tains\030\027 \001(\tB\201\001\302H~\n|\n\023string.not_contains" + - "\032ethis.contains(rules.not_contains) ? \'v" + - "alue contains substring `%s`\'.format([ru" + - "les.not_contains]) : \'\'H\014R\013notContains\210\001" + - "\001\022z\n\002in\030\n \003(\tBj\302Hg\ne\n\tstring.in\032X!(this " + - "in dyn(rules)[\'in\']) ? \'value must be in" + - " list %s\'.format([dyn(rules)[\'in\']]) : \'" + - "\'R\002in\022~\n\006not_in\030\013 \003(\tBg\302Hd\nb\n\rstring.not" + - "_in\032Qthis in rules.not_in ? \'value must " + - "not be in list %s\'.format([rules.not_in]" + - ") : \'\'R\005notIn\022`\n\005email\030\014 \001(\010BH\302HE\nC\n\014str" + - "ing.email\022#value must be a valid email a" + - "ddress\032\016this.isEmail()H\000R\005email\022g\n\010hostn" + - "ame\030\r \001(\010BI\302HF\nD\n\017string.hostname\022\036value" + - " must be a valid hostname\032\021this.isHostna" + - "me()H\000R\010hostname\022Q\n\002ip\030\016 \001(\010B?\302H<\n:\n\tstr" + - "ing.ip\022 value must be a valid IP address" + - "\032\013this.isIp()H\000R\002ip\022Z\n\004ipv4\030\017 \001(\010BD\302HA\n?" + - "\n\013string.ipv4\022\"value must be a valid IPv" + - "4 address\032\014this.isIp(4)H\000R\004ipv4\022Z\n\004ipv6\030" + - "\020 \001(\010BD\302HA\n?\n\013string.ipv6\022\"value must be" + - " a valid IPv6 address\032\014this.isIp(6)H\000R\004i" + - "pv6\022N\n\003uri\030\021 \001(\010B:\302H7\n5\n\nstring.uri\022\031val" + - "ue must be a valid URI\032\014this.isUri()H\000R\003" + - "uri\022\\\n\007uri_ref\030\022 \001(\010BA\302H>\n<\n\016string.uri_" + - "ref\022\031value must be a valid URI\032\017this.isU" + - "riRef()H\000R\006uriRef\022\202\001\n\007address\030\025 \001(\010Bf\302Hc" + - "\na\n\016string.address\022-value must be a vali" + - "d hostname, or ip address\032 this.isHostna" + - "me() || this.isIp()H\000R\007address\022\260\001\n\004uuid\030" + - "\026 \001(\010B\231\001\302H\225\001\n\222\001\n\013string.uuid\032\202\001!this.mat" + - "ches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-" + - "9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{1" + - "2}$\') ? \'value must be a valid UUID\' : \'" + - "\'H\000R\004uuid\022\254\004\n\020well_known_regex\030\030 \001(\0162\030.b" + - "uf.validate.KnownRegexB\345\003\302H\341\003\n\353\001\n#string" + - ".well_known_regex.header_name\032\303\001rules.we" + - "ll_known_regex == 1 && !this.matches(!ha" + - "s(rules.strict) || rules.strict ?\'^:?[0-" + - "9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u00" + - "00\\u000A\\u000D]+$\') ? \'value must be a v" + - "alid HTTP header name\' : \'\'\n\360\001\n$string.w" + - "ell_known_regex.header_value\032\307\001rules.wel" + - "l_known_regex == 2 && !this.matches(!has" + - "(rules.strict) || rules.strict ?\'^[^\\u00" + - "00-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u" + - "0000\\u000A\\u000D]*$\') ? \'value must be a" + - " valid HTTP header value\' : \'\'H\000R\016wellKn" + - "ownRegex\022\033\n\006strict\030\031 \001(\010H\rR\006strict\210\001\001B\014\n" + - "\nwell_knownB\010\n\006_constB\006\n\004_lenB\n\n\010_min_le" + - "nB\n\n\010_max_lenB\014\n\n_len_bytesB\014\n\n_min_byte" + - "sB\014\n\n_max_bytesB\n\n\010_patternB\t\n\007_prefixB\t" + - "\n\007_suffixB\013\n\t_containsB\017\n\r_not_containsB" + - "\t\n\007_strict\"\332\016\n\nBytesRules\022r\n\005const\030\001 \001(\014" + - "BW\302HT\nR\n\013bytes.const\032Cthis != rules.cons" + - "t ? \'value must be %x\'.format([rules.con" + - "st]) : \'\'H\001R\005const\210\001\001\022\202\001\n\003len\030\r \001(\004Bk\302Hh" + - "\nf\n\tbytes.len\032Yuint(this.size()) != rule" + - "s.len ? \'value length must be %s bytes\'." + - "format([rules.len]) : \'\'H\002R\003len\210\001\001\022\235\001\n\007m" + - "in_len\030\002 \001(\004B\177\302H|\nz\n\rbytes.min_len\032iuint" + - "(this.size()) < rules.min_len ? \'value l" + - "ength must be at least %s bytes\'.format(" + - "[rules.min_len]) : \'\'H\003R\006minLen\210\001\001\022\225\001\n\007m" + - "ax_len\030\003 \001(\004Bw\302Ht\nr\n\rbytes.max_len\032auint" + - "(this.size()) > rules.max_len ? \'value m" + - "ust be at most %s bytes\'.format([rules.m" + - "ax_len]) : \'\'H\004R\006maxLen\210\001\001\022\236\001\n\007pattern\030\004" + - " \001(\tB\177\302H|\nz\n\rbytes.pattern\032i!string(this" + - ").matches(rules.pattern) ? \'value must m" + - "atch regex pattern `%s`\'.format([rules.p" + - "attern]) : \'\'H\005R\007pattern\210\001\001\022\216\001\n\006prefix\030\005" + - " \001(\014Bq\302Hn\nl\n\014bytes.prefix\032\\!this.startsW" + - "ith(rules.prefix) ? \'value does not have" + - " prefix %x\'.format([rules.prefix]) : \'\'H" + - "\006R\006prefix\210\001\001\022\214\001\n\006suffix\030\006 \001(\014Bo\302Hl\nj\n\014by" + - "tes.suffix\032Z!this.endsWith(rules.suffix)" + - " ? \'value does not have suffix %x\'.forma" + - "t([rules.suffix]) : \'\'H\007R\006suffix\210\001\001\022\222\001\n\010" + - "contains\030\007 \001(\014Bq\302Hn\nl\n\016bytes.contains\032Z!" + - "this.contains(rules.contains) ? \'value d" + - "oes not contain %x\'.format([rules.contai" + - "ns]) : \'\'H\010R\010contains\210\001\001\022\233\001\n\002in\030\010 \003(\014B\212\001" + - "\302H\206\001\n\203\001\n\010bytes.in\032wdyn(rules)[\'in\'].size" + - "() > 0 && !(this in dyn(rules)[\'in\']) ? " + - "\'value must be in list %s\'.format([dyn(r" + - "ules)[\'in\']]) : \'\'R\002in\022}\n\006not_in\030\t \003(\014Bf" + - "\302Hc\na\n\014bytes.not_in\032Qthis in rules.not_i" + - "n ? \'value must not be in list %s\'.forma" + - "t([rules.not_in]) : \'\'R\005notIn\022r\n\002ip\030\n \001(" + - "\010B`\302H]\n[\n\010bytes.ip\032Othis.size() != 4 && " + - "this.size() != 16 ? \'value must be a val" + - "id IP address\' : \'\'H\000R\002ip\022e\n\004ipv4\030\013 \001(\010B" + - "O\302HL\nJ\n\nbytes.ipv4\032 rules.max_items ? \'value must co" + - "ntain no more than %s item(s)\'.format([r" + - "ules.max_items]) : \'\'H\001R\010maxItems\210\001\001\022l\n\006" + - "unique\030\003 \001(\010BO\302HL\nJ\n\017repeated.unique\022(re" + - "peated value must contain unique items\032\r" + - "this.unique()H\002R\006unique\210\001\001\0229\n\005items\030\004 \001(" + - "\0132\036.buf.validate.FieldConstraintsH\003R\005ite" + - "ms\210\001\001B\014\n\n_min_itemsB\014\n\n_max_itemsB\t\n\007_un" + - "iqueB\010\n\006_items\"\361\003\n\010MapRules\022\236\001\n\tmin_pair" + - "s\030\001 \001(\004B|\302Hy\nw\n\rmap.min_pairs\032fuint(this" + - ".size()) < rules.min_pairs ? \'map must b" + - "e at least %d entries\'.format([rules.min" + - "_pairs]) : \'\'H\000R\010minPairs\210\001\001\022\235\001\n\tmax_pai" + - "rs\030\002 \001(\004B{\302Hx\nv\n\rmap.max_pairs\032euint(thi" + - "s.size()) > rules.max_pairs ? \'map must " + - "be at most %d entries\'.format([rules.max" + - "_pairs]) : \'\'H\001R\010maxPairs\210\001\001\0227\n\004keys\030\004 \001" + - "(\0132\036.buf.validate.FieldConstraintsH\002R\004ke" + - "ys\210\001\001\022;\n\006values\030\005 \001(\0132\036.buf.validate.Fie" + - "ldConstraintsH\003R\006values\210\001\001B\014\n\n_min_pairs" + - "B\014\n\n_max_pairsB\007\n\005_keysB\t\n\007_values\"1\n\010An" + - "yRules\022\016\n\002in\030\002 \003(\tR\002in\022\025\n\006not_in\030\003 \003(\tR\005" + - "notIn\"\322\026\n\rDurationRules\022\223\001\n\005const\030\002 \001(\0132" + - "\031.google.protobuf.DurationB]\302HZ\nX\n\016durat" + - "ion.const\032Fthis != rules.const ? \'value " + + "s\'.format([rules.gte, rules.lte]) : \'\'\n\333" + + "\001\n\030sint32.gte_lte_exclusive\032\276\001has(rules." + + "lte) && rules.lte < rules.gte && (rules." + + "lte < this && this < rules.gte)? \'value " + + "must be greater than or equal to %s or l" + + "ess than or equal to %s\'.format([rules.g" + + "te, rules.lte]) : \'\'H\001R\003gte\022z\n\002in\030\006 \003(\021B" + + "j\302Hg\ne\n\tsint32.in\032X!(this in dyn(rules)[" + + "\'in\']) ? \'value must be in list %s\'.form" + + "at([dyn(rules)[\'in\']]) : \'\'R\002in\022~\n\006not_i" + + "n\030\007 \003(\021Bg\302Hd\nb\n\rsint32.not_in\032Qthis in r" + + "ules.not_in ? \'value must not be in list" + + " %s\'.format([rules.not_in]) : \'\'R\005notInB" + + "\013\n\tless_thanB\016\n\014greater_thanB\010\n\006_const\"\362" + + "\024\n\013SInt64Rules\022v\n\005const\030\001 \001(\022B[\302HX\nV\n\014si" + + "nt64.const\032Fthis != rules.const ? \'value" + + " must equal %s\'.format([rules.const]) : " + + "\'\'H\002R\005const\210\001\001\022\217\001\n\002lt\030\002 \001(\022B}\302Hz\nx\n\tsint" + + "64.lt\032k!has(rules.gte) && !has(rules.gt)" + + " && this >= rules.lt? \'value must be les" + + "s than %s\'.format([rules.lt]) : \'\'H\000R\002lt" + + "\022\242\001\n\003lte\030\003 \001(\022B\215\001\302H\211\001\n\206\001\n\nsint64.lte\032x!h" + + "as(rules.gte) && !has(rules.gt) && this " + + "> rules.lte? \'value must be less than or" + + " equal to %s\'.format([rules.lte]) : \'\'H\000" + + "R\003lte\022\240\007\n\002gt\030\004 \001(\022B\215\007\302H\211\007\n{\n\tsint64.gt\032n" + + "!has(rules.lt) && !has(rules.lte) && thi" + + "s <= rules.gt? \'value must be greater th" + + "an %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint6" + + "4.gt_lt\032\243\001has(rules.lt) && rules.lt >= r" + + "ules.gt && (this >= rules.lt || this <= " + + "rules.gt)? \'value must be greater than %" + + "s and less than %s\'.format([rules.gt, ru" + + "les.lt]) : \'\'\n\274\001\n\026sint64.gt_lt_exclusive" + + "\032\241\001has(rules.lt) && rules.lt < rules.gt " + + "&& (rules.lt <= this && this <= rules.gt" + + ")? \'value must be greater than %s or les" + + "s than %s\'.format([rules.gt, rules.lt]) " + + ": \'\'\n\304\001\n\rsint64.gt_lte\032\262\001has(rules.lte) " + + "&& rules.lte >= rules.gt && (this > rule" + + "s.lte || this <= rules.gt)? \'value must " + + "be greater than %s and less than or equa" + + "l to %s\'.format([rules.gt, rules.lte]) :" + + " \'\'\n\314\001\n\027sint64.gt_lte_exclusive\032\260\001has(ru" + + "les.lte) && rules.lte < rules.gt && (rul" + + "es.lte < this && this <= rules.gt)? \'val" + + "ue must be greater than %s or less than " + + "or equal to %s\'.format([rules.gt, rules." + + "lte]) : \'\'H\001R\002gt\022\355\007\n\003gte\030\005 \001(\022B\330\007\302H\324\007\n\211\001" + + "\n\nsint64.gte\032{!has(rules.lt) && !has(rul" + + "es.lte) && this < rules.gte? \'value must" + + " be greater than or equal to %s\'.format(" + + "[rules.gte]) : \'\'\n\303\001\n\rsint64.gte_lt\032\261\001ha" + + "s(rules.lt) && rules.lt >= rules.gte && " + + "(this >= rules.lt || this < rules.gte)? " + + "\'value must be greater than or equal to " + + "%s and less than %s\'.format([rules.gte, " + + "rules.lt]) : \'\'\n\313\001\n\027sint64.gte_lt_exclus" + + "ive\032\257\001has(rules.lt) && rules.lt < rules." + + "gte && (rules.lt <= this && this < rules" + + ".gte)? \'value must be greater than or eq" + + "ual to %s or less than %s\'.format([rules" + + ".gte, rules.lt]) : \'\'\n\323\001\n\016sint64.gte_lte" + + "\032\300\001has(rules.lte) && rules.lte >= rules." + + "gte && (this > rules.lte || this < rules" + + ".gte)? \'value must be greater than or eq" + + "ual to %s and less than or equal to %s\'." + + "format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030" + + "sint64.gte_lte_exclusive\032\276\001has(rules.lte" + + ") && rules.lte < rules.gte && (rules.lte" + + " < this && this < rules.gte)? \'value mus" + + "t be greater than or equal to %s or less" + + " than or equal to %s\'.format([rules.gte," + + " rules.lte]) : \'\'H\001R\003gte\022z\n\002in\030\006 \003(\022Bj\302H" + + "g\ne\n\tsint64.in\032X!(this in dyn(rules)[\'in" + + "\']) ? \'value must be in list %s\'.format(" + + "[dyn(rules)[\'in\']]) : \'\'R\002in\022~\n\006not_in\030\007" + + " \003(\022Bg\302Hd\nb\n\rsint64.not_in\032Qthis in rule" + + "s.not_in ? \'value must not be in list %s" + + "\'.format([rules.not_in]) : \'\'R\005notInB\013\n\t" + + "less_thanB\016\n\014greater_thanB\010\n\006_const\"\202\025\n\014" + + "Fixed32Rules\022w\n\005const\030\001 \001(\007B\\\302HY\nW\n\rfixe" + + "d32.const\032Fthis != rules.const ? \'value " + "must equal %s\'.format([rules.const]) : \'" + - "\'H\002R\005const\210\001\001\022\254\001\n\002lt\030\003 \001(\0132\031.google.prot" + - "obuf.DurationB\177\302H|\nz\n\013duration.lt\032k!has(" + - "rules.gte) && !has(rules.gt) && this >= " + - "rules.lt? \'value must be less than %s\'.f" + - "ormat([rules.lt]) : \'\'H\000R\002lt\022\277\001\n\003lte\030\004 \001" + - "(\0132\031.google.protobuf.DurationB\217\001\302H\213\001\n\210\001\n" + - "\014duration.lte\032x!has(rules.gte) && !has(r" + - "ules.gt) && this > rules.lte? \'value mus" + - "t be less than or equal to %s\'.format([r" + - "ules.lte]) : \'\'H\000R\003lte\022\305\007\n\002gt\030\005 \001(\0132\031.go" + - "ogle.protobuf.DurationB\227\007\302H\223\007\n}\n\013duratio" + - "n.gt\032n!has(rules.lt) && !has(rules.lte) " + - "&& this <= rules.gt? \'value must be grea" + - "ter than %s\'.format([rules.gt]) : \'\'\n\266\001\n" + - "\016duration.gt_lt\032\243\001has(rules.lt) && rules" + - ".lt >= rules.gt && (this >= rules.lt || " + - "this <= rules.gt)? \'value must be greate" + - "r than %s and less than %s\'.format([rule" + - "s.gt, rules.lt]) : \'\'\n\276\001\n\030duration.gt_lt" + - "_exclusive\032\241\001has(rules.lt) && rules.lt <" + - " rules.gt && (rules.lt <= this && this <" + - "= rules.gt)? \'value must be greater than" + - " %s or less than %s\'.format([rules.gt, r" + - "ules.lt]) : \'\'\n\306\001\n\017duration.gt_lte\032\262\001has" + - "(rules.lte) && rules.lte >= rules.gt && " + - "(this > rules.lte || this <= rules.gt)? " + - "\'value must be greater than %s and less " + - "than or equal to %s\'.format([rules.gt, r" + - "ules.lte]) : \'\'\n\316\001\n\031duration.gt_lte_excl" + - "usive\032\260\001has(rules.lte) && rules.lte < ru" + - "les.gt && (rules.lte < this && this <= r" + - "ules.gt)? \'value must be greater than %s" + - " or less than or equal to %s\'.format([ru" + - "les.gt, rules.lte]) : \'\'H\001R\002gt\022\222\010\n\003gte\030\006" + - " \001(\0132\031.google.protobuf.DurationB\342\007\302H\336\007\n\213" + - "\001\n\014duration.gte\032{!has(rules.lt) && !has(" + + "\'H\002R\005const\210\001\001\022\220\001\n\002lt\030\002 \001(\007B~\302H{\ny\n\nfixed" + + "32.lt\032k!has(rules.gte) && !has(rules.gt)" + + " && this >= rules.lt? \'value must be les" + + "s than %s\'.format([rules.lt]) : \'\'H\000R\002lt" + + "\022\243\001\n\003lte\030\003 \001(\007B\216\001\302H\212\001\n\207\001\n\013fixed32.lte\032x!" + + "has(rules.gte) && !has(rules.gt) && this" + + " > rules.lte? \'value must be less than o" + + "r equal to %s\'.format([rules.lte]) : \'\'H" + + "\000R\003lte\022\245\007\n\002gt\030\004 \001(\007B\222\007\302H\216\007\n|\n\nfixed32.gt" + + "\032n!has(rules.lt) && !has(rules.lte) && t" + + "his <= rules.gt? \'value must be greater " + + "than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfix" + + "ed32.gt_lt\032\243\001has(rules.lt) && rules.lt >" + + "= rules.gt && (this >= rules.lt || this " + + "<= rules.gt)? \'value must be greater tha" + + "n %s and less than %s\'.format([rules.gt," + + " rules.lt]) : \'\'\n\275\001\n\027fixed32.gt_lt_exclu" + + "sive\032\241\001has(rules.lt) && rules.lt < rules" + + ".gt && (rules.lt <= this && this <= rule" + + "s.gt)? \'value must be greater than %s or" + + " less than %s\'.format([rules.gt, rules.l" + + "t]) : \'\'\n\305\001\n\016fixed32.gt_lte\032\262\001has(rules." + + "lte) && rules.lte >= rules.gt && (this >" + + " rules.lte || this <= rules.gt)? \'value " + + "must be greater than %s and less than or" + + " equal to %s\'.format([rules.gt, rules.lt" + + "e]) : \'\'\n\315\001\n\030fixed32.gt_lte_exclusive\032\260\001" + + "has(rules.lte) && rules.lte < rules.gt &" + + "& (rules.lte < this && this <= rules.gt)" + + "? \'value must be greater than %s or less" + + " than or equal to %s\'.format([rules.gt, " + + "rules.lte]) : \'\'H\001R\002gt\022\362\007\n\003gte\030\005 \001(\007B\335\007\302" + + "H\331\007\n\212\001\n\013fixed32.gte\032{!has(rules.lt) && !" + + "has(rules.lte) && this < rules.gte? \'val" + + "ue must be greater than or equal to %s\'." + + "format([rules.gte]) : \'\'\n\304\001\n\016fixed32.gte" + + "_lt\032\261\001has(rules.lt) && rules.lt >= rules" + + ".gte && (this >= rules.lt || this < rule" + + "s.gte)? \'value must be greater than or e" + + "qual to %s and less than %s\'.format([rul" + + "es.gte, rules.lt]) : \'\'\n\314\001\n\030fixed32.gte_" + + "lt_exclusive\032\257\001has(rules.lt) && rules.lt" + + " < rules.gte && (rules.lt <= this && thi" + + "s < rules.gte)? \'value must be greater t" + + "han or equal to %s or less than %s\'.form" + + "at([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed" + + "32.gte_lte\032\300\001has(rules.lte) && rules.lte" + + " >= rules.gte && (this > rules.lte || th" + + "is < rules.gte)? \'value must be greater " + + "than or equal to %s and less than or equ" + + "al to %s\'.format([rules.gte, rules.lte])" + + " : \'\'\n\334\001\n\031fixed32.gte_lte_exclusive\032\276\001ha" + + "s(rules.lte) && rules.lte < rules.gte &&" + + " (rules.lte < this && this < rules.gte)?" + + " \'value must be greater than or equal to" + + " %s or less than or equal to %s\'.format(" + + "[rules.gte, rules.lte]) : \'\'H\001R\003gte\022{\n\002i" + + "n\030\006 \003(\007Bk\302Hh\nf\n\nfixed32.in\032X!(this in dy" + + "n(rules)[\'in\']) ? \'value must be in list" + + " %s\'.format([dyn(rules)[\'in\']]) : \'\'R\002in" + + "\022\177\n\006not_in\030\007 \003(\007Bh\302He\nc\n\016fixed32.not_in\032" + + "Qthis in rules.not_in ? \'value must not " + + "be in list %s\'.format([rules.not_in]) : " + + "\'\'R\005notInB\013\n\tless_thanB\016\n\014greater_thanB\010" + + "\n\006_const\"\202\025\n\014Fixed64Rules\022w\n\005const\030\001 \001(\006" + + "B\\\302HY\nW\n\rfixed64.const\032Fthis != rules.co" + + "nst ? \'value must equal %s\'.format([rule" + + "s.const]) : \'\'H\002R\005const\210\001\001\022\220\001\n\002lt\030\002 \001(\006B" + + "~\302H{\ny\n\nfixed64.lt\032k!has(rules.gte) && !" + + "has(rules.gt) && this >= rules.lt? \'valu" + + "e must be less than %s\'.format([rules.lt" + + "]) : \'\'H\000R\002lt\022\243\001\n\003lte\030\003 \001(\006B\216\001\302H\212\001\n\207\001\n\013f" + + "ixed64.lte\032x!has(rules.gte) && !has(rule" + + "s.gt) && this > rules.lte? \'value must b" + + "e less than or equal to %s\'.format([rule" + + "s.lte]) : \'\'H\000R\003lte\022\245\007\n\002gt\030\004 \001(\006B\222\007\302H\216\007\n" + + "|\n\nfixed64.gt\032n!has(rules.lt) && !has(ru" + + "les.lte) && this <= rules.gt? \'value mus" + + "t be greater than %s\'.format([rules.gt])" + + " : \'\'\n\265\001\n\rfixed64.gt_lt\032\243\001has(rules.lt) " + + "&& rules.lt >= rules.gt && (this >= rule" + + "s.lt || this <= rules.gt)? \'value must b" + + "e greater than %s and less than %s\'.form" + + "at([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed6" + + "4.gt_lt_exclusive\032\241\001has(rules.lt) && rul" + + "es.lt < rules.gt && (rules.lt <= this &&" + + " this <= rules.gt)? \'value must be great" + + "er than %s or less than %s\'.format([rule" + + "s.gt, rules.lt]) : \'\'\n\305\001\n\016fixed64.gt_lte" + + "\032\262\001has(rules.lte) && rules.lte >= rules." + + "gt && (this > rules.lte || this <= rules" + + ".gt)? \'value must be greater than %s and" + + " less than or equal to %s\'.format([rules" + + ".gt, rules.lte]) : \'\'\n\315\001\n\030fixed64.gt_lte" + + "_exclusive\032\260\001has(rules.lte) && rules.lte" + + " < rules.gt && (rules.lte < this && this" + + " <= rules.gt)? \'value must be greater th" + + "an %s or less than or equal to %s\'.forma" + + "t([rules.gt, rules.lte]) : \'\'H\001R\002gt\022\362\007\n\003" + + "gte\030\005 \001(\006B\335\007\302H\331\007\n\212\001\n\013fixed64.gte\032{!has(r" + + "ules.lt) && !has(rules.lte) && this < ru" + + "les.gte? \'value must be greater than or " + + "equal to %s\'.format([rules.gte]) : \'\'\n\304\001" + + "\n\016fixed64.gte_lt\032\261\001has(rules.lt) && rule" + + "s.lt >= rules.gte && (this >= rules.lt |" + + "| this < rules.gte)? \'value must be grea" + + "ter than or equal to %s and less than %s" + + "\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n" + + "\030fixed64.gte_lt_exclusive\032\257\001has(rules.lt" + + ") && rules.lt < rules.gte && (rules.lt <" + + "= this && this < rules.gte)? \'value must" + + " be greater than or equal to %s or less " + + "than %s\'.format([rules.gte, rules.lt]) :" + + " \'\'\n\324\001\n\017fixed64.gte_lte\032\300\001has(rules.lte)" + + " && rules.lte >= rules.gte && (this > ru" + + "les.lte || this < rules.gte)? \'value mus" + + "t be greater than or equal to %s and les" + + "s than or equal to %s\'.format([rules.gte" + + ", rules.lte]) : \'\'\n\334\001\n\031fixed64.gte_lte_e" + + "xclusive\032\276\001has(rules.lte) && rules.lte <" + + " rules.gte && (rules.lte < this && this " + + "< rules.gte)? \'value must be greater tha" + + "n or equal to %s or less than or equal t" + + "o %s\'.format([rules.gte, rules.lte]) : \'" + + "\'H\001R\003gte\022{\n\002in\030\006 \003(\006Bk\302Hh\nf\n\nfixed64.in\032" + + "X!(this in dyn(rules)[\'in\']) ? \'value mu" + + "st be in list %s\'.format([dyn(rules)[\'in" + + "\']]) : \'\'R\002in\022\177\n\006not_in\030\007 \003(\006Bh\302He\nc\n\016fi" + + "xed64.not_in\032Qthis in rules.not_in ? \'va" + + "lue must not be in list %s\'.format([rule" + + "s.not_in]) : \'\'R\005notInB\013\n\tless_thanB\016\n\014g" + + "reater_thanB\010\n\006_const\"\223\025\n\rSFixed32Rules\022" + + "x\n\005const\030\001 \001(\017B]\302HZ\nX\n\016sfixed32.const\032Ft" + + "his != rules.const ? \'value must equal %" + + "s\'.format([rules.const]) : \'\'H\002R\005const\210\001" + + "\001\022\221\001\n\002lt\030\002 \001(\017B\177\302H|\nz\n\013sfixed32.lt\032k!has" + + "(rules.gte) && !has(rules.gt) && this >=" + + " rules.lt? \'value must be less than %s\'." + + "format([rules.lt]) : \'\'H\000R\002lt\022\244\001\n\003lte\030\003 " + + "\001(\017B\217\001\302H\213\001\n\210\001\n\014sfixed32.lte\032x!has(rules." + + "gte) && !has(rules.gt) && this > rules.l" + + "te? \'value must be less than or equal to" + + " %s\'.format([rules.lte]) : \'\'H\000R\003lte\022\252\007\n" + + "\002gt\030\004 \001(\017B\227\007\302H\223\007\n}\n\013sfixed32.gt\032n!has(ru" + + "les.lt) && !has(rules.lte) && this <= ru" + + "les.gt? \'value must be greater than %s\'." + + "format([rules.gt]) : \'\'\n\266\001\n\016sfixed32.gt_" + + "lt\032\243\001has(rules.lt) && rules.lt >= rules." + + "gt && (this >= rules.lt || this <= rules" + + ".gt)? \'value must be greater than %s and" + + " less than %s\'.format([rules.gt, rules.l" + + "t]) : \'\'\n\276\001\n\030sfixed32.gt_lt_exclusive\032\241\001" + + "has(rules.lt) && rules.lt < rules.gt && " + + "(rules.lt <= this && this <= rules.gt)? " + + "\'value must be greater than %s or less t" + + "han %s\'.format([rules.gt, rules.lt]) : \'" + + "\'\n\306\001\n\017sfixed32.gt_lte\032\262\001has(rules.lte) &" + + "& rules.lte >= rules.gt && (this > rules" + + ".lte || this <= rules.gt)? \'value must b" + + "e greater than %s and less than or equal" + + " to %s\'.format([rules.gt, rules.lte]) : " + + "\'\'\n\316\001\n\031sfixed32.gt_lte_exclusive\032\260\001has(r" + + "ules.lte) && rules.lte < rules.gt && (ru" + + "les.lte < this && this <= rules.gt)? \'va" + + "lue must be greater than %s or less than" + + " or equal to %s\'.format([rules.gt, rules" + + ".lte]) : \'\'H\001R\002gt\022\367\007\n\003gte\030\005 \001(\017B\342\007\302H\336\007\n\213" + + "\001\n\014sfixed32.gte\032{!has(rules.lt) && !has(" + "rules.lte) && this < rules.gte? \'value m" + "ust be greater than or equal to %s\'.form" + - "at([rules.gte]) : \'\'\n\305\001\n\017duration.gte_lt" + + "at([rules.gte]) : \'\'\n\305\001\n\017sfixed32.gte_lt" + "\032\261\001has(rules.lt) && rules.lt >= rules.gt" + "e && (this >= rules.lt || this < rules.g" + "te)? \'value must be greater than or equa" + "l to %s and less than %s\'.format([rules." + - "gte, rules.lt]) : \'\'\n\315\001\n\031duration.gte_lt" + + "gte, rules.lt]) : \'\'\n\315\001\n\031sfixed32.gte_lt" + "_exclusive\032\257\001has(rules.lt) && rules.lt <" + " rules.gte && (rules.lt <= this && this " + "< rules.gte)? \'value must be greater tha" + "n or equal to %s or less than %s\'.format" + - "([rules.gte, rules.lt]) : \'\'\n\325\001\n\020duratio" + - "n.gte_lte\032\300\001has(rules.lte) && rules.lte " + + "([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed3" + + "2.gte_lte\032\300\001has(rules.lte) && rules.lte " + ">= rules.gte && (this > rules.lte || thi" + "s < rules.gte)? \'value must be greater t" + "han or equal to %s and less than or equa" + "l to %s\'.format([rules.gte, rules.lte]) " + - ": \'\'\n\335\001\n\032duration.gte_lte_exclusive\032\276\001ha" + + ": \'\'\n\335\001\n\032sfixed32.gte_lte_exclusive\032\276\001ha" + "s(rules.lte) && rules.lte < rules.gte &&" + " (rules.lte < this && this < rules.gte)?" + " \'value must be greater than or equal to" + " %s or less than or equal to %s\'.format(" + - "[rules.gte, rules.lte]) : \'\'H\001R\003gte\022\227\001\n\002" + - "in\030\007 \003(\0132\031.google.protobuf.DurationBl\302Hi" + - "\ng\n\013duration.in\032X!(this in dyn(rules)[\'i" + - "n\']) ? \'value must be in list %s\'.format" + - "([dyn(rules)[\'in\']]) : \'\'R\002in\022\233\001\n\006not_in" + - "\030\010 \003(\0132\031.google.protobuf.DurationBi\302Hf\nd" + - "\n\017duration.not_in\032Qthis in rules.not_in " + - "? \'value must not be in list %s\'.format(" + - "[rules.not_in]) : \'\'R\005notInB\013\n\tless_than" + - "B\016\n\014greater_thanB\010\n\006_const\"\312\027\n\016Timestamp" + - "Rules\022\225\001\n\005const\030\002 \001(\0132\032.google.protobuf." + - "TimestampB^\302H[\nY\n\017timestamp.const\032Fthis " + - "!= rules.const ? \'value must equal %s\'.f" + - "ormat([rules.const]) : \'\'H\002R\005const\210\001\001\022\257\001" + - "\n\002lt\030\003 \001(\0132\032.google.protobuf.TimestampB\200" + - "\001\302H}\n{\n\014timestamp.lt\032k!has(rules.gte) &&" + - " !has(rules.gt) && this >= rules.lt? \'va" + - "lue must be less than %s\'.format([rules." + - "lt]) : \'\'H\000R\002lt\022\301\001\n\003lte\030\004 \001(\0132\032.google.p" + - "rotobuf.TimestampB\220\001\302H\214\001\n\211\001\n\rtimestamp.l" + - "te\032x!has(rules.gte) && !has(rules.gt) &&" + - " this > rules.lte? \'value must be less t" + - "han or equal to %s\'.format([rules.lte]) " + - ": \'\'H\000R\003lte\022a\n\006lt_now\030\007 \001(\010BH\302HE\nC\n\020time" + - "stamp.lt_now\032/this > now ? \'value must b" + - "e less than now\' : \'\'H\000R\005ltNow\022\313\007\n\002gt\030\005 " + - "\001(\0132\032.google.protobuf.TimestampB\234\007\302H\230\007\n~" + - "\n\014timestamp.gt\032n!has(rules.lt) && !has(r" + - "ules.lte) && this <= rules.gt? \'value mu" + - "st be greater than %s\'.format([rules.gt]" + - ") : \'\'\n\267\001\n\017timestamp.gt_lt\032\243\001has(rules.l" + - "t) && rules.lt >= rules.gt && (this >= r" + - "ules.lt || this <= rules.gt)? \'value mus" + - "t be greater than %s and less than %s\'.f" + - "ormat([rules.gt, rules.lt]) : \'\'\n\277\001\n\031tim" + - "estamp.gt_lt_exclusive\032\241\001has(rules.lt) &" + - "& rules.lt < rules.gt && (rules.lt <= th" + - "is && this <= rules.gt)? \'value must be " + - "greater than %s or less than %s\'.format(" + - "[rules.gt, rules.lt]) : \'\'\n\307\001\n\020timestamp" + - ".gt_lte\032\262\001has(rules.lte) && rules.lte >=" + - " rules.gt && (this > rules.lte || this <" + - "= rules.gt)? \'value must be greater than" + - " %s and less than or equal to %s\'.format" + - "([rules.gt, rules.lte]) : \'\'\n\317\001\n\032timesta" + - "mp.gt_lte_exclusive\032\260\001has(rules.lte) && " + - "rules.lte < rules.gt && (rules.lte < thi" + - "s && this <= rules.gt)? \'value must be g" + - "reater than %s or less than or equal to " + - "%s\'.format([rules.gt, rules.lte]) : \'\'H\001" + - "R\002gt\022\230\010\n\003gte\030\006 \001(\0132\032.google.protobuf.Tim" + - "estampB\347\007\302H\343\007\n\214\001\n\rtimestamp.gte\032{!has(ru" + - "les.lt) && !has(rules.lte) && this < rul" + - "es.gte? \'value must be greater than or e" + - "qual to %s\'.format([rules.gte]) : \'\'\n\306\001\n" + - "\020timestamp.gte_lt\032\261\001has(rules.lt) && rul" + - "es.lt >= rules.gte && (this >= rules.lt " + - "|| this < rules.gte)? \'value must be gre" + - "ater than or equal to %s and less than %" + - "s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001" + - "\n\032timestamp.gte_lt_exclusive\032\257\001has(rules" + - ".lt) && rules.lt < rules.gte && (rules.l" + - "t <= this && this < rules.gte)? \'value m" + - "ust be greater than or equal to %s or le" + - "ss than %s\'.format([rules.gte, rules.lt]" + - ") : \'\'\n\326\001\n\021timestamp.gte_lte\032\300\001has(rules" + - ".lte) && rules.lte >= rules.gte && (this" + - " > rules.lte || this < rules.gte)? \'valu" + + "[rules.gte, rules.lte]) : \'\'H\001R\003gte\022|\n\002i" + + "n\030\006 \003(\017Bl\302Hi\ng\n\013sfixed32.in\032X!(this in d" + + "yn(rules)[\'in\']) ? \'value must be in lis" + + "t %s\'.format([dyn(rules)[\'in\']]) : \'\'R\002i" + + "n\022\200\001\n\006not_in\030\007 \003(\017Bi\302Hf\nd\n\017sfixed32.not_" + + "in\032Qthis in rules.not_in ? \'value must n" + + "ot be in list %s\'.format([rules.not_in])" + + " : \'\'R\005notInB\013\n\tless_thanB\016\n\014greater_tha" + + "nB\010\n\006_const\"\223\025\n\rSFixed64Rules\022x\n\005const\030\001" + + " \001(\020B]\302HZ\nX\n\016sfixed64.const\032Fthis != rul" + + "es.const ? \'value must equal %s\'.format(" + + "[rules.const]) : \'\'H\002R\005const\210\001\001\022\221\001\n\002lt\030\002" + + " \001(\020B\177\302H|\nz\n\013sfixed64.lt\032k!has(rules.gte" + + ") && !has(rules.gt) && this >= rules.lt?" + + " \'value must be less than %s\'.format([ru" + + "les.lt]) : \'\'H\000R\002lt\022\244\001\n\003lte\030\003 \001(\020B\217\001\302H\213\001" + + "\n\210\001\n\014sfixed64.lte\032x!has(rules.gte) && !h" + + "as(rules.gt) && this > rules.lte? \'value" + + " must be less than or equal to %s\'.forma" + + "t([rules.lte]) : \'\'H\000R\003lte\022\252\007\n\002gt\030\004 \001(\020B" + + "\227\007\302H\223\007\n}\n\013sfixed64.gt\032n!has(rules.lt) &&" + + " !has(rules.lte) && this <= rules.gt? \'v" + + "alue must be greater than %s\'.format([ru" + + "les.gt]) : \'\'\n\266\001\n\016sfixed64.gt_lt\032\243\001has(r" + + "ules.lt) && rules.lt >= rules.gt && (thi", + "s >= rules.lt || this <= rules.gt)? \'val" + + "ue must be greater than %s and less than" + + " %s\'.format([rules.gt, rules.lt]) : \'\'\n\276" + + "\001\n\030sfixed64.gt_lt_exclusive\032\241\001has(rules." + + "lt) && rules.lt < rules.gt && (rules.lt " + + "<= this && this <= rules.gt)? \'value mus" + + "t be greater than %s or less than %s\'.fo" + + "rmat([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfix" + + "ed64.gt_lte\032\262\001has(rules.lte) && rules.lt" + + "e >= rules.gt && (this > rules.lte || th" + + "is <= rules.gt)? \'value must be greater " + + "than %s and less than or equal to %s\'.fo" + + "rmat([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfi" + + "xed64.gt_lte_exclusive\032\260\001has(rules.lte) " + + "&& rules.lte < rules.gt && (rules.lte < " + + "this && this <= rules.gt)? \'value must b" + + "e greater than %s or less than or equal " + + "to %s\'.format([rules.gt, rules.lte]) : \'" + + "\'H\001R\002gt\022\367\007\n\003gte\030\005 \001(\020B\342\007\302H\336\007\n\213\001\n\014sfixed6" + + "4.gte\032{!has(rules.lt) && !has(rules.lte)" + + " && this < rules.gte? \'value must be gre" + + "ater than or equal to %s\'.format([rules." + + "gte]) : \'\'\n\305\001\n\017sfixed64.gte_lt\032\261\001has(rul" + + "es.lt) && rules.lt >= rules.gte && (this" + + " >= rules.lt || this < rules.gte)? \'valu" + "e must be greater than or equal to %s an" + - "d less than or equal to %s\'.format([rule" + - "s.gte, rules.lte]) : \'\'\n\336\001\n\033timestamp.gt" + - "e_lte_exclusive\032\276\001has(rules.lte) && rule" + - "s.lte < rules.gte && (rules.lte < this &" + - "& this < rules.gte)? \'value must be grea" + - "ter than or equal to %s or less than or " + - "equal to %s\'.format([rules.gte, rules.lt" + - "e]) : \'\'H\001R\003gte\022d\n\006gt_now\030\010 \001(\010BK\302HH\nF\n\020" + - "timestamp.gt_now\0322this < now ? \'value mu" + - "st be greater than now\' : \'\'H\001R\005gtNow\022\305\001" + - "\n\006within\030\t \001(\0132\031.google.protobuf.Duratio" + - "nB\214\001\302H\210\001\n\205\001\n\020timestamp.within\032qthis < no" + - "w-rules.within || this > now+rules.withi" + - "n ? \'value must be within %s of now\'.for" + - "mat([rules.within]) : \'\'H\003R\006within\210\001\001B\013\n" + - "\tless_thanB\016\n\014greater_thanB\010\n\006_constB\t\n\007" + - "_within*n\n\nKnownRegex\022\033\n\027KNOWN_REGEX_UNS" + - "PECIFIED\020\000\022 \n\034KNOWN_REGEX_HTTP_HEADER_NA" + - "ME\020\001\022!\n\035KNOWN_REGEX_HTTP_HEADER_VALUE\020\002:" + - "_\n\007message\022\037.google.protobuf.MessageOpti" + - "ons\030\207\t \001(\0132 .buf.validate.MessageConstra" + - "intsR\007message\210\001\001:W\n\005oneof\022\035.google.proto" + - "buf.OneofOptions\030\207\t \001(\0132\036.buf.validate.O" + - "neofConstraintsR\005oneof\210\001\001:W\n\005field\022\035.goo" + - "gle.protobuf.FieldOptions\030\207\t \001(\0132\036.buf.v" + - "alidate.FieldConstraintsR\005field\210\001\001Bn\n\022bu" + - "ild.buf.validateB\rValidateProtoP\001ZGbuf.b", - "uild/gen/go/bufbuild/protovalidate/proto" + - "colbuffers/go/buf/validateb\006proto3" + "d less than %s\'.format([rules.gte, rules" + + ".lt]) : \'\'\n\315\001\n\031sfixed64.gte_lt_exclusive" + + "\032\257\001has(rules.lt) && rules.lt < rules.gte" + + " && (rules.lt <= this && this < rules.gt" + + "e)? \'value must be greater than or equal" + + " to %s or less than %s\'.format([rules.gt" + + "e, rules.lt]) : \'\'\n\325\001\n\020sfixed64.gte_lte\032" + + "\300\001has(rules.lte) && rules.lte >= rules.g" + + "te && (this > rules.lte || this < rules." + + "gte)? \'value must be greater than or equ" + + "al to %s and less than or equal to %s\'.f" + + "ormat([rules.gte, rules.lte]) : \'\'\n\335\001\n\032s" + + "fixed64.gte_lte_exclusive\032\276\001has(rules.lt" + + "e) && rules.lte < rules.gte && (rules.lt" + + "e < this && this < rules.gte)? \'value mu" + + "st be greater than or equal to %s or les" + + "s than or equal to %s\'.format([rules.gte" + + ", rules.lte]) : \'\'H\001R\003gte\022|\n\002in\030\006 \003(\020Bl\302" + + "Hi\ng\n\013sfixed64.in\032X!(this in dyn(rules)[" + + "\'in\']) ? \'value must be in list %s\'.form" + + "at([dyn(rules)[\'in\']]) : \'\'R\002in\022\200\001\n\006not_" + + "in\030\007 \003(\020Bi\302Hf\nd\n\017sfixed64.not_in\032Qthis i" + + "n rules.not_in ? \'value must not be in l" + + "ist %s\'.format([rules.not_in]) : \'\'R\005not" + + "InB\013\n\tless_thanB\016\n\014greater_thanB\010\n\006_cons" + + "t\"\213\001\n\tBoolRules\022t\n\005const\030\001 \001(\010BY\302HV\nT\n\nb" + + "ool.const\032Fthis != rules.const ? \'value " + + "must equal %s\'.format([rules.const]) : \'" + + "\'H\000R\005const\210\001\001B\010\n\006_const\"\274\036\n\013StringRules\022" + + "x\n\005const\030\001 \001(\tB]\302HZ\nX\n\014string.const\032Hthi" + + "s != rules.const ? \'value must equal `%s" + + "`\'.format([rules.const]) : \'\'H\001R\005const\210\001" + + "\001\022\210\001\n\003len\030\023 \001(\004Bq\302Hn\nl\n\nstring.len\032^uint" + + "(this.size()) != rules.len ? \'value leng" + + "th must be %s characters\'.format([rules." + + "len]) : \'\'H\002R\003len\210\001\001\022\246\001\n\007min_len\030\002 \001(\004B\207" + + "\001\302H\203\001\n\200\001\n\016string.min_len\032nuint(this.size" + + "()) < rules.min_len ? \'value length must" + + " be at least %s characters\'.format([rule" + + "s.min_len]) : \'\'H\003R\006minLen\210\001\001\022\244\001\n\007max_le" + + "n\030\003 \001(\004B\205\001\302H\201\001\n\177\n\016string.max_len\032muint(t" + + "his.size()) > rules.max_len ? \'value len" + + "gth must be at most %s characters\'.forma" + + "t([rules.max_len]) : \'\'H\004R\006maxLen\210\001\001\022\252\001\n" + + "\tlen_bytes\030\024 \001(\004B\207\001\302H\203\001\n\200\001\n\020string.len_b" + + "ytes\032luint(bytes(this).size()) != rules." + + "len_bytes ? \'value length must be %s byt" + + "es\'.format([rules.len_bytes]) : \'\'H\005R\010le" + + "nBytes\210\001\001\022\262\001\n\tmin_bytes\030\004 \001(\004B\217\001\302H\213\001\n\210\001\n" + + "\020string.min_bytes\032tuint(bytes(this).size" + + "()) < rules.min_bytes ? \'value length mu" + + "st be at least %s bytes\'.format([rules.m" + + "in_bytes]) : \'\'H\006R\010minBytes\210\001\001\022\261\001\n\tmax_b" + + "ytes\030\005 \001(\004B\216\001\302H\212\001\n\207\001\n\020string.max_bytes\032s" + + "uint(bytes(this).size()) > rules.max_byt" + + "es ? \'value length must be at most %s by" + + "tes\'.format([rules.max_bytes]) : \'\'H\007R\010m" + + "axBytes\210\001\001\022\233\001\n\007pattern\030\006 \001(\tB|\302Hy\nw\n\016str" + + "ing.pattern\032e!this.matches(rules.pattern" + + ") ? \'value does not match regex pattern " + + "`%s`\'.format([rules.pattern]) : \'\'H\010R\007pa" + + "ttern\210\001\001\022\221\001\n\006prefix\030\007 \001(\tBt\302Hq\no\n\rstring" + + ".prefix\032^!this.startsWith(rules.prefix) " + + "? \'value does not have prefix `%s`\'.form" + + "at([rules.prefix]) : \'\'H\tR\006prefix\210\001\001\022\217\001\n" + + "\006suffix\030\010 \001(\tBr\302Ho\nm\n\rstring.suffix\032\\!th" + + "is.endsWith(rules.suffix) ? \'value does " + + "not have suffix `%s`\'.format([rules.suff" + + "ix]) : \'\'H\nR\006suffix\210\001\001\022\237\001\n\010contains\030\t \001(" + + "\tB~\302H{\ny\n\017string.contains\032f!this.contain" + + "s(rules.contains) ? \'value does not cont" + + "ain substring `%s`\'.format([rules.contai" + + "ns]) : \'\'H\013R\010contains\210\001\001\022\252\001\n\014not_contain" + + "s\030\027 \001(\tB\201\001\302H~\n|\n\023string.not_contains\032eth" + + "is.contains(rules.not_contains) ? \'value" + + " contains substring `%s`\'.format([rules." + + "not_contains]) : \'\'H\014R\013notContains\210\001\001\022z\n" + + "\002in\030\n \003(\tBj\302Hg\ne\n\tstring.in\032X!(this in d" + + "yn(rules)[\'in\']) ? \'value must be in lis" + + "t %s\'.format([dyn(rules)[\'in\']]) : \'\'R\002i" + + "n\022~\n\006not_in\030\013 \003(\tBg\302Hd\nb\n\rstring.not_in\032" + + "Qthis in rules.not_in ? \'value must not " + + "be in list %s\'.format([rules.not_in]) : " + + "\'\'R\005notIn\022`\n\005email\030\014 \001(\010BH\302HE\nC\n\014string." + + "email\022#value must be a valid email addre" + + "ss\032\016this.isEmail()H\000R\005email\022g\n\010hostname\030" + + "\r \001(\010BI\302HF\nD\n\017string.hostname\022\036value mus" + + "t be a valid hostname\032\021this.isHostname()" + + "H\000R\010hostname\022Q\n\002ip\030\016 \001(\010B?\302H<\n:\n\tstring." + + "ip\022 value must be a valid IP address\032\013th" + + "is.isIp()H\000R\002ip\022Z\n\004ipv4\030\017 \001(\010BD\302HA\n?\n\013st" + + "ring.ipv4\022\"value must be a valid IPv4 ad" + + "dress\032\014this.isIp(4)H\000R\004ipv4\022Z\n\004ipv6\030\020 \001(" + + "\010BD\302HA\n?\n\013string.ipv6\022\"value must be a v" + + "alid IPv6 address\032\014this.isIp(6)H\000R\004ipv6\022" + + "N\n\003uri\030\021 \001(\010B:\302H7\n5\n\nstring.uri\022\031value m" + + "ust be a valid URI\032\014this.isUri()H\000R\003uri\022" + + "\\\n\007uri_ref\030\022 \001(\010BA\302H>\n<\n\016string.uri_ref\022" + + "\031value must be a valid URI\032\017this.isUriRe" + + "f()H\000R\006uriRef\022\202\001\n\007address\030\025 \001(\010Bf\302Hc\na\n\016" + + "string.address\022-value must be a valid ho" + + "stname, or ip address\032 this.isHostname()" + + " || this.isIp()H\000R\007address\022\260\001\n\004uuid\030\026 \001(" + + "\010B\231\001\302H\225\001\n\222\001\n\013string.uuid\032\202\001!this.matches" + + "(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-f" + + "A-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\'" + + ") ? \'value must be a valid UUID\' : \'\'H\000R" + + "\004uuid\022\254\004\n\020well_known_regex\030\030 \001(\0162\030.buf.v" + + "alidate.KnownRegexB\345\003\302H\341\003\n\353\001\n#string.wel" + + "l_known_regex.header_name\032\303\001rules.well_k" + + "nown_regex == 1 && !this.matches(!has(ru" + + "les.strict) || rules.strict ?\'^:?[0-9a-z" + + "A-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u" + + "000A\\u000D]+$\') ? \'value must be a valid" + + " HTTP header name\' : \'\'\n\360\001\n$string.well_" + + "known_regex.header_value\032\307\001rules.well_kn" + + "own_regex == 2 && !this.matches(!has(rul" + + "es.strict) || rules.strict ?\'^[^\\u0000-\\" + + "u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000" + + "\\u000A\\u000D]*$\') ? \'value must be a val" + + "id HTTP header value\' : \'\'H\000R\016wellKnownR" + + "egex\022\033\n\006strict\030\031 \001(\010H\rR\006strict\210\001\001B\014\n\nwel" + + "l_knownB\010\n\006_constB\006\n\004_lenB\n\n\010_min_lenB\n\n" + + "\010_max_lenB\014\n\n_len_bytesB\014\n\n_min_bytesB\014\n" + + "\n_max_bytesB\n\n\010_patternB\t\n\007_prefixB\t\n\007_s" + + "uffixB\013\n\t_containsB\017\n\r_not_containsB\t\n\007_" + + "strict\"\332\016\n\nBytesRules\022r\n\005const\030\001 \001(\014BW\302H" + + "T\nR\n\013bytes.const\032Cthis != rules.const ? " + + "\'value must be %x\'.format([rules.const])" + + " : \'\'H\001R\005const\210\001\001\022\202\001\n\003len\030\r \001(\004Bk\302Hh\nf\n\t" + + "bytes.len\032Yuint(this.size()) != rules.le" + + "n ? \'value length must be %s bytes\'.form" + + "at([rules.len]) : \'\'H\002R\003len\210\001\001\022\235\001\n\007min_l" + + "en\030\002 \001(\004B\177\302H|\nz\n\rbytes.min_len\032iuint(thi" + + "s.size()) < rules.min_len ? \'value lengt" + + "h must be at least %s bytes\'.format([rul" + + "es.min_len]) : \'\'H\003R\006minLen\210\001\001\022\225\001\n\007max_l" + + "en\030\003 \001(\004Bw\302Ht\nr\n\rbytes.max_len\032auint(thi" + + "s.size()) > rules.max_len ? \'value must " + + "be at most %s bytes\'.format([rules.max_l" + + "en]) : \'\'H\004R\006maxLen\210\001\001\022\236\001\n\007pattern\030\004 \001(\t" + + "B\177\302H|\nz\n\rbytes.pattern\032i!string(this).ma" + + "tches(rules.pattern) ? \'value must match" + + " regex pattern `%s`\'.format([rules.patte" + + "rn]) : \'\'H\005R\007pattern\210\001\001\022\216\001\n\006prefix\030\005 \001(\014" + + "Bq\302Hn\nl\n\014bytes.prefix\032\\!this.startsWith(" + + "rules.prefix) ? \'value does not have pre" + + "fix %x\'.format([rules.prefix]) : \'\'H\006R\006p" + + "refix\210\001\001\022\214\001\n\006suffix\030\006 \001(\014Bo\302Hl\nj\n\014bytes." + + "suffix\032Z!this.endsWith(rules.suffix) ? \'" + + "value does not have suffix %x\'.format([r" + + "ules.suffix]) : \'\'H\007R\006suffix\210\001\001\022\222\001\n\010cont" + + "ains\030\007 \001(\014Bq\302Hn\nl\n\016bytes.contains\032Z!this" + + ".contains(rules.contains) ? \'value does " + + "not contain %x\'.format([rules.contains])" + + " : \'\'H\010R\010contains\210\001\001\022\233\001\n\002in\030\010 \003(\014B\212\001\302H\206\001" + + "\n\203\001\n\010bytes.in\032wdyn(rules)[\'in\'].size() >" + + " 0 && !(this in dyn(rules)[\'in\']) ? \'val" + + "ue must be in list %s\'.format([dyn(rules" + + ")[\'in\']]) : \'\'R\002in\022}\n\006not_in\030\t \003(\014Bf\302Hc\n" + + "a\n\014bytes.not_in\032Qthis in rules.not_in ? " + + "\'value must not be in list %s\'.format([r" + + "ules.not_in]) : \'\'R\005notIn\022r\n\002ip\030\n \001(\010B`\302" + + "H]\n[\n\010bytes.ip\032Othis.size() != 4 && this" + + ".size() != 16 ? \'value must be a valid I" + + "P address\' : \'\'H\000R\002ip\022e\n\004ipv4\030\013 \001(\010BO\302HL" + + "\nJ\n\nbytes.ipv4\032 rules.max_items ? \'value must contai" + + "n no more than %s item(s)\'.format([rules" + + ".max_items]) : \'\'H\001R\010maxItems\210\001\001\022l\n\006uniq" + + "ue\030\003 \001(\010BO\302HL\nJ\n\017repeated.unique\022(repeat" + + "ed value must contain unique items\032\rthis" + + ".unique()H\002R\006unique\210\001\001\0229\n\005items\030\004 \001(\0132\036." + + "buf.validate.FieldConstraintsH\003R\005items\210\001" + + "\001B\014\n\n_min_itemsB\014\n\n_max_itemsB\t\n\007_unique" + + "B\010\n\006_items\"\361\003\n\010MapRules\022\236\001\n\tmin_pairs\030\001 " + + "\001(\004B|\302Hy\nw\n\rmap.min_pairs\032fuint(this.siz" + + "e()) < rules.min_pairs ? \'map must be at" + + " least %d entries\'.format([rules.min_pai" + + "rs]) : \'\'H\000R\010minPairs\210\001\001\022\235\001\n\tmax_pairs\030\002" + + " \001(\004B{\302Hx\nv\n\rmap.max_pairs\032euint(this.si" + + "ze()) > rules.max_pairs ? \'map must be a" + + "t most %d entries\'.format([rules.max_pai" + + "rs]) : \'\'H\001R\010maxPairs\210\001\001\0227\n\004keys\030\004 \001(\0132\036" + + ".buf.validate.FieldConstraintsH\002R\004keys\210\001" + + "\001\022;\n\006values\030\005 \001(\0132\036.buf.validate.FieldCo" + + "nstraintsH\003R\006values\210\001\001B\014\n\n_min_pairsB\014\n\n" + + "_max_pairsB\007\n\005_keysB\t\n\007_values\"1\n\010AnyRul" + + "es\022\016\n\002in\030\002 \003(\tR\002in\022\025\n\006not_in\030\003 \003(\tR\005notI" + + "n\"\322\026\n\rDurationRules\022\223\001\n\005const\030\002 \001(\0132\031.go" + + "ogle.protobuf.DurationB]\302HZ\nX\n\016duration." + + "const\032Fthis != rules.const ? \'value must" + + " equal %s\'.format([rules.const]) : \'\'H\002R" + + "\005const\210\001\001\022\254\001\n\002lt\030\003 \001(\0132\031.google.protobuf" + + ".DurationB\177\302H|\nz\n\013duration.lt\032k!has(rule" + + "s.gte) && !has(rules.gt) && this >= rule" + + "s.lt? \'value must be less than %s\'.forma" + + "t([rules.lt]) : \'\'H\000R\002lt\022\277\001\n\003lte\030\004 \001(\0132\031" + + ".google.protobuf.DurationB\217\001\302H\213\001\n\210\001\n\014dur" + + "ation.lte\032x!has(rules.gte) && !has(rules" + + ".gt) && this > rules.lte? \'value must be" + + " less than or equal to %s\'.format([rules" + + ".lte]) : \'\'H\000R\003lte\022\305\007\n\002gt\030\005 \001(\0132\031.google" + + ".protobuf.DurationB\227\007\302H\223\007\n}\n\013duration.gt" + + "\032n!has(rules.lt) && !has(rules.lte) && t" + + "his <= rules.gt? \'value must be greater " + + "than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016dur" + + "ation.gt_lt\032\243\001has(rules.lt) && rules.lt " + + ">= rules.gt && (this >= rules.lt || this" + + " <= rules.gt)? \'value must be greater th" + + "an %s and less than %s\'.format([rules.gt" + + ", rules.lt]) : \'\'\n\276\001\n\030duration.gt_lt_exc" + + "lusive\032\241\001has(rules.lt) && rules.lt < rul" + + "es.gt && (rules.lt <= this && this <= ru" + + "les.gt)? \'value must be greater than %s " + + "or less than %s\'.format([rules.gt, rules" + + ".lt]) : \'\'\n\306\001\n\017duration.gt_lte\032\262\001has(rul" + + "es.lte) && rules.lte >= rules.gt && (thi" + + "s > rules.lte || this <= rules.gt)? \'val" + + "ue must be greater than %s and less than" + + " or equal to %s\'.format([rules.gt, rules" + + ".lte]) : \'\'\n\316\001\n\031duration.gt_lte_exclusiv" + + "e\032\260\001has(rules.lte) && rules.lte < rules." + + "gt && (rules.lte < this && this <= rules" + + ".gt)? \'value must be greater than %s or " + + "less than or equal to %s\'.format([rules." + + "gt, rules.lte]) : \'\'H\001R\002gt\022\222\010\n\003gte\030\006 \001(\013" + + "2\031.google.protobuf.DurationB\342\007\302H\336\007\n\213\001\n\014d" + + "uration.gte\032{!has(rules.lt) && !has(rule" + + "s.lte) && this < rules.gte? \'value must " + + "be greater than or equal to %s\'.format([" + + "rules.gte]) : \'\'\n\305\001\n\017duration.gte_lt\032\261\001h" + + "as(rules.lt) && rules.lt >= rules.gte &&" + + " (this >= rules.lt || this < rules.gte)?" + + " \'value must be greater than or equal to" + + " %s and less than %s\'.format([rules.gte," + + " rules.lt]) : \'\'\n\315\001\n\031duration.gte_lt_exc" + + "lusive\032\257\001has(rules.lt) && rules.lt < rul" + + "es.gte && (rules.lt <= this && this < ru" + + "les.gte)? \'value must be greater than or" + + " equal to %s or less than %s\'.format([ru" + + "les.gte, rules.lt]) : \'\'\n\325\001\n\020duration.gt" + + "e_lte\032\300\001has(rules.lte) && rules.lte >= r" + + "ules.gte && (this > rules.lte || this < " + + "rules.gte)? \'value must be greater than " + + "or equal to %s and less than or equal to" + + " %s\'.format([rules.gte, rules.lte]) : \'\'" + + "\n\335\001\n\032duration.gte_lte_exclusive\032\276\001has(ru" + + "les.lte) && rules.lte < rules.gte && (ru" + + "les.lte < this && this < rules.gte)? \'va" + + "lue must be greater than or equal to %s " + + "or less than or equal to %s\'.format([rul" + + "es.gte, rules.lte]) : \'\'H\001R\003gte\022\227\001\n\002in\030\007" + + " \003(\0132\031.google.protobuf.DurationBl\302Hi\ng\n\013" + + "duration.in\032X!(this in dyn(rules)[\'in\'])" + + " ? \'value must be in list %s\'.format([dy" + + "n(rules)[\'in\']]) : \'\'R\002in\022\233\001\n\006not_in\030\010 \003" + + "(\0132\031.google.protobuf.DurationBi\302Hf\nd\n\017du" + + "ration.not_in\032Qthis in rules.not_in ? \'v" + + "alue must not be in list %s\'.format([rul" + + "es.not_in]) : \'\'R\005notInB\013\n\tless_thanB\016\n\014" + + "greater_thanB\010\n\006_const\"\312\027\n\016TimestampRule" + + "s\022\225\001\n\005const\030\002 \001(\0132\032.google.protobuf.Time" + + "stampB^\302H[\nY\n\017timestamp.const\032Fthis != r" + + "ules.const ? \'value must equal %s\'.forma" + + "t([rules.const]) : \'\'H\002R\005const\210\001\001\022\257\001\n\002lt" + + "\030\003 \001(\0132\032.google.protobuf.TimestampB\200\001\302H}" + + "\n{\n\014timestamp.lt\032k!has(rules.gte) && !ha" + + "s(rules.gt) && this >= rules.lt? \'value " + + "must be less than %s\'.format([rules.lt])" + + " : \'\'H\000R\002lt\022\301\001\n\003lte\030\004 \001(\0132\032.google.proto" + + "buf.TimestampB\220\001\302H\214\001\n\211\001\n\rtimestamp.lte\032x" + + "!has(rules.gte) && !has(rules.gt) && thi" + + "s > rules.lte? \'value must be less than " + + "or equal to %s\'.format([rules.lte]) : \'\'" + + "H\000R\003lte\022a\n\006lt_now\030\007 \001(\010BH\302HE\nC\n\020timestam" + + "p.lt_now\032/this > now ? \'value must be le" + + "ss than now\' : \'\'H\000R\005ltNow\022\313\007\n\002gt\030\005 \001(\0132" + + "\032.google.protobuf.TimestampB\234\007\302H\230\007\n~\n\014ti" + + "mestamp.gt\032n!has(rules.lt) && !has(rules" + + ".lte) && this <= rules.gt? \'value must b" + + "e greater than %s\'.format([rules.gt]) : " + + "\'\'\n\267\001\n\017timestamp.gt_lt\032\243\001has(rules.lt) &" + + "& rules.lt >= rules.gt && (this >= rules" + + ".lt || this <= rules.gt)? \'value must be" + + " greater than %s and less than %s\'.forma" + + "t([rules.gt, rules.lt]) : \'\'\n\277\001\n\031timesta" + + "mp.gt_lt_exclusive\032\241\001has(rules.lt) && ru" + + "les.lt < rules.gt && (rules.lt <= this &" + + "& this <= rules.gt)? \'value must be grea" + + "ter than %s or less than %s\'.format([rul" + + "es.gt, rules.lt]) : \'\'\n\307\001\n\020timestamp.gt_" + + "lte\032\262\001has(rules.lte) && rules.lte >= rul" + + "es.gt && (this > rules.lte || this <= ru" + + "les.gt)? \'value must be greater than %s " + + "and less than or equal to %s\'.format([ru" + + "les.gt, rules.lte]) : \'\'\n\317\001\n\032timestamp.g" + + "t_lte_exclusive\032\260\001has(rules.lte) && rule" + + "s.lte < rules.gt && (rules.lte < this &&" + + " this <= rules.gt)? \'value must be great" + + "er than %s or less than or equal to %s\'." + + "format([rules.gt, rules.lte]) : \'\'H\001R\002gt" + + "\022\230\010\n\003gte\030\006 \001(\0132\032.google.protobuf.Timesta" + + "mpB\347\007\302H\343\007\n\214\001\n\rtimestamp.gte\032{!has(rules." + + "lt) && !has(rules.lte) && this < rules.g" + + "te? \'value must be greater than or equal" + + " to %s\'.format([rules.gte]) : \'\'\n\306\001\n\020tim" + + "estamp.gte_lt\032\261\001has(rules.lt) && rules.l" + + "t >= rules.gte && (this >= rules.lt || t" + + "his < rules.gte)? \'value must be greater" + + " than or equal to %s and less than %s\'.f" + + "ormat([rules.gte, rules.lt]) : \'\'\n\316\001\n\032ti" + + "mestamp.gte_lt_exclusive\032\257\001has(rules.lt)" + + " && rules.lt < rules.gte && (rules.lt <=" + + " this && this < rules.gte)? \'value must " + + "be greater than or equal to %s or less t" + + "han %s\'.format([rules.gte, rules.lt]) : " + + "\'\'\n\326\001\n\021timestamp.gte_lte\032\300\001has(rules.lte" + + ") && rules.lte >= rules.gte && (this > r" + + "ules.lte || this < rules.gte)? \'value mu" + + "st be greater than or equal to %s and le" + + "ss than or equal to %s\'.format([rules.gt" + + "e, rules.lte]) : \'\'\n\336\001\n\033timestamp.gte_lt" + + "e_exclusive\032\276\001has(rules.lte) && rules.lt" + + "e < rules.gte && (rules.lte < this && th" + + "is < rules.gte)? \'value must be greater " + + "than or equal to %s or less than or equa" + + "l to %s\'.format([rules.gte, rules.lte]) " + + ": \'\'H\001R\003gte\022d\n\006gt_now\030\010 \001(\010BK\302HH\nF\n\020time" + + "stamp.gt_now\0322this < now ? \'value must b" + + "e greater than now\' : \'\'H\001R\005gtNow\022\305\001\n\006wi" + + "thin\030\t \001(\0132\031.google.protobuf.DurationB\214\001" + + "\302H\210\001\n\205\001\n\020timestamp.within\032qthis < now-ru" + + "les.within || this > now+rules.within ? " + + "\'value must be within %s of now\'.format(" + + "[rules.within]) : \'\'H\003R\006within\210\001\001B\013\n\tles" + + "s_thanB\016\n\014greater_thanB\010\n\006_constB\t\n\007_wit" + + "hin*n\n\nKnownRegex\022\033\n\027KNOWN_REGEX_UNSPECI" + + "FIED\020\000\022 \n\034KNOWN_REGEX_HTTP_HEADER_NAME\020\001" + + "\022!\n\035KNOWN_REGEX_HTTP_HEADER_VALUE\020\002:_\n\007m" + + "essage\022\037.google.protobuf.MessageOptions\030" + + "\207\t \001(\0132 .buf.validate.MessageConstraints" + + "R\007message\210\001\001:W\n\005oneof\022\035.google.protobuf." + + "OneofOptions\030\207\t \001(\0132\036.buf.validate.Oneof" + + "ConstraintsR\005oneof\210\001\001:W\n\005field\022\035.google." + + "protobuf.FieldOptions\030\207\t \001(\0132\036.buf.valid" + + "ate.FieldConstraintsR\005field\210\001\001Bn\n\022build." + + "buf.validateB\rValidateProtoP\001ZGbuf.build" + + "/gen/go/bufbuild/protovalidate/protocolb" + + "uffers/go/buf/validateb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData,