From 843b36cd5bdfdce02eba95e70577594d7640939d Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 15:41:00 +0300 Subject: [PATCH 001/106] Make kvInput lazy memo safe for concurrent evals Evaluating several rules against one FromKV input from multiple goroutines raced on the unsynchronized memo map (fatal: concurrent map read and map write). Guard the map with a mutex and resolve each lazy path once via a per-path entry; plain values return before touching the memo. --- input.go | 48 +++++++++++++++++++++------- input_test.go | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+), 12 deletions(-) diff --git a/input.go b/input.go index 6e683b1..97abcc6 100644 --- a/input.go +++ b/input.go @@ -5,6 +5,7 @@ import ( "fmt" "strconv" "strings" + "sync" ) // Input resolves rule paths against an evaluation input source. @@ -36,12 +37,21 @@ func FromContextFunc(fn func(context.Context, []PathSegment) (any, bool, error)) } func FromKV(kv KV) Input { - return &kvInput{kv: kv, memo: map[string]any{}} + return &kvInput{kv: kv, memo: map[string]*lazyEntry{}} } +// kvInput may be shared by concurrent evals; mu guards memo, and each +// lazyEntry guards its own resolution. type kvInput struct { kv KV - memo map[string]any + mu sync.Mutex + memo map[string]*lazyEntry +} + +type lazyEntry struct { + mu sync.Mutex + done bool + value any } func (k *kvInput) Get(ctx context.Context, path []PathSegment) (any, bool, error) { @@ -92,32 +102,46 @@ func (k *kvInput) GetPath(ctx context.Context, path []pathSegment) (any, bool, e } func (k *kvInput) resolveLazy(ctx context.Context, path []pathSegment, value any) (any, error) { + // Plain values never touch the memo, so the common path stays lock-free. + switch value.(type) { + case LazyValue, LazyContextValue: + default: + return value, nil + } + + // A kvInput may be shared by concurrent evals. The map lock is held only to + // find the per-path entry; the entry lock is held across the lazy call so + // each path resolves once and lazy funcs resolving other paths on the same + // input do not block on each other. key := inputPathKey(path) - if resolved, ok := k.memo[key]; ok { - return resolved, nil + k.mu.Lock() + entry := k.memo[key] + if entry == nil { + entry = &lazyEntry{} + k.memo[key] = entry + } + k.mu.Unlock() + + entry.mu.Lock() + defer entry.mu.Unlock() + if entry.done { + return entry.value, nil } var ( resolved any err error - lazy bool ) switch v := value.(type) { case LazyValue: resolved, err = v() - lazy = true case LazyContextValue: resolved, err = v(ctx) - lazy = true - default: - return value, nil } if err != nil { return nil, err } - if lazy { - k.memo[key] = resolved - } + entry.value, entry.done = resolved, true return resolved, nil } diff --git a/input_test.go b/input_test.go index 43c85e4..48d4d2c 100644 --- a/input_test.go +++ b/input_test.go @@ -2,7 +2,11 @@ package rulekit import ( "context" + "errors" + "sync" + "sync/atomic" "testing" + "time" "github.com/stretchr/testify/require" ) @@ -50,3 +54,86 @@ func TestInputNestedInputTakesOverSubtree(t *testing.T) { require.NoError(t, result.Error) require.True(t, result.Pass()) } + +// A single FromKV input may be shared by concurrent evals (e.g. several rules +// evaluated against one request from different goroutines). Lazy values must +// be resolved exactly once per path and the memo must not race. +func TestInputFromKVConcurrentEval(t *testing.T) { + type contextKey string + var plainCalls, ctxCalls, nestedCalls atomic.Int64 + + input := FromKV(KV{ + "static": "value", + "plain": LazyValue(func() (any, error) { + plainCalls.Add(1) + time.Sleep(time.Millisecond) + return "plain", nil + }), + "user": LazyContextValue(func(ctx context.Context) (any, error) { + ctxCalls.Add(1) + time.Sleep(time.Millisecond) + return ctx.Value(contextKey("user")), nil + }), + "request": KV{ + "id": LazyValue(func() (any, error) { + nestedCalls.Add(1) + time.Sleep(time.Millisecond) + return "req-1", nil + }), + }, + }) + rules := []Rule{ + MustParse(`static == "value"`), + MustParse(`plain == "plain"`), + MustParse(`user == "root"`), + MustParse(`request.id == "req-1"`), + MustParse(`plain == "plain" and user == "root" and request.id == "req-1" and static == "value"`), + } + ctx := context.WithValue(context.Background(), contextKey("user"), "root") + + const goroutines = 16 + start := make(chan struct{}) + var wg sync.WaitGroup + for g := range goroutines { + wg.Add(1) + go func() { + defer wg.Done() + <-start + for i := range 50 { + rule := rules[(g+i)%len(rules)] + result := rule.Eval(ctx, input, Opts{}) + if result.Error != nil || !result.Pass() { + t.Errorf("goroutine %d: %s: error=%v pass=%v", g, rule, result.Error, result.Pass()) + return + } + } + }() + } + close(start) + wg.Wait() + + require.EqualValues(t, 1, plainCalls.Load()) + require.EqualValues(t, 1, ctxCalls.Load()) + require.EqualValues(t, 1, nestedCalls.Load()) +} + +// Failed lazy resolutions are not memoized; a later lookup retries. +func TestInputFromKVLazyErrorNotMemoized(t *testing.T) { + var calls int + rule := MustParse(`flaky == "ok"`) + input := FromKV(KV{ + "flaky": LazyValue(func() (any, error) { + calls++ + if calls == 1 { + return nil, errors.New("boom") + } + return "ok", nil + }), + }) + + require.Error(t, rule.Eval(nil, input, Opts{}).Error) + result := rule.Eval(nil, input, Opts{}) + require.NoError(t, result.Error) + require.True(t, result.Pass()) + require.Equal(t, 2, calls) +} From 1d7eb94382177d1150f0082188899167febcef4c Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 15:55:43 +0300 Subject: [PATCH 002/106] Remove dead tests and document quoted-literal conversion --- README.md | 2 +- rule_test.go | 73 ---------------------------------------------------- 2 files changed, 1 insertion(+), 74 deletions(-) diff --git a/README.md b/README.md index 33a53c1..83a0e6b 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ The Result also provides additional helper methods: | ---------------------- | ------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **bool** | VALUE, FIELD | `true` | Valid values: `true`, `false` | | **number** | VALUE, FIELD | `8080` | Integer or float. Parsed as either int64 or uint64 if out of range for int64, or float64 if float. | -| **string** | VALUE, FIELD | `"domain.com"` | A double-quoted string. Quotes may be escaped with a backslash: `"a string \"with\" quotes"`. Any quoted value is parsed as a string. | +| **string** | VALUE, FIELD | `"domain.com"` | A double-quoted string. Quotes may be escaped with a backslash: `"a string \"with\" quotes"`. A quoted value that is a valid IP address, CIDR, or MAC address is treated as that type (e.g. `"10.0.0.1"` is an IP). Any other quoted value is a string. | | **IP address** | VALUE, FIELD | `192.168.1.1`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff` | An IPv4, IPv6, or an IPv6 dual address. Maps to Go type: `net.IP` | | **CIDR** | VALUE | `192.168.1.0/24`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff/64` | An IPv4 or IPv6 CIDR block. Maps to Go type: `*net.IPNet` | | **Hexadecimal string** | VALUE, FIELD | `12:34:56:78:ab` (MAC address), `504f5354` (hex string "POST") | A hexadecimal string, optionally separated by colons. | diff --git a/rule_test.go b/rule_test.go index 2389ff6..9fb1a95 100644 --- a/rule_test.go +++ b/rule_test.go @@ -10,10 +10,6 @@ import ( "github.com/stretchr/testify/require" ) -func init() { - // SetErrorVerbose(true) -} - func TestEngineExample(t *testing.T) { filter, err := Parse(` tags == 'db-svc' @@ -418,36 +414,6 @@ func TestFilterParseBool(t *testing.T) { } } -func TestFilterOperationFieldTypes(t *testing.T) { - // want error - for _, s := range []string{ - "f == 123", - "f == 123", - "f == 123", - "f == 123", - "f == 123", - } { - _, err := Parse(s) - if err != nil { - t.Errorf("expected error for %s", s) - } - } - - // want no error - for _, s := range []string{ - "f == 123", - "f == 123", - "f == 123", - "f == 123", - "f == 123", - } { - _, err := Parse(s) - if err != nil { - t.Errorf("unexpected error for %s", s) - } - } -} - func TestFilterParseFloat(t *testing.T) { _, err := Parse("f_float32 == 123.345 or f_float64 != 74123412341234.123412341243") if err != nil { @@ -978,45 +944,6 @@ func TestSpecialBooleanFields(t *testing.T) { } } -// func TestEvaluatedRule(t *testing.T) { -// rule := MustParse(`user == "root" or (dst.protocol == "mysql" and dst.port == 3306)`) -// // happy path -// assertRule(t, rule, kv{"user": "root"}). -// Ok(). -// Pass(). -// EvaluatedRule(`user == "root"`) -// assertRule(t, rule, kv{"user": "test", "dst": KV{"protocol": "mysql", "port": 3306}}). -// Ok(). -// Pass(). -// EvaluatedRule(`dst.protocol == "mysql" and dst.port == 3306`) -// assertRule(t, rule, kv{"user": "test", "dst": KV{"protocol": "mysql", "port": 123}}). -// Ok(). -// Fail(). -// EvaluatedRule(`user == "root" or dst.port == 3306`) -// -// // In the case of missing fields, EvaluatedRule should return an optimized rule that -// // allows us to progressively build up the rule's result. -// res1 := assertRule(t, rule, kv{}). -// MissingFields("user", "dst.protocol", "dst.port"). -// Value(nil). -// EvaluatedRule(`user == "root" or (dst.protocol == "mysql" and dst.port == 3306)`). -// GetResult() -// -// res2 := assertRule(t, res1.EvaluatedRule, kv{"dst": KV{"protocol": "mysql"}}). -// MissingFields("user", "dst.port"). -// Value(nil). -// // we've only supplied dst.protocol, so the rule should be optimized -// EvaluatedRule(`user == "root" or dst.port == 3306`). -// GetResult() -// -// // dst.protocol should be "carried over" from the previous eval -// assertRule(t, res2.EvaluatedRule, kv{"dst": KV{"port": 3306}}). -// Ok(). -// // we have passed enough data for the and statement to pass -// Pass(). -// EvaluatedRule(`dst.port == 3306`) -// } - func TestStringAutomaticCasting(t *testing.T) { tests := []struct { name string From e12938ea50e22d87ee14a9be9dffed5a46749845 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:05:46 +0300 Subject: [PATCH 003/106] Let field names win over lone hex pairs; fix hex docs --- README.md | 2 +- parser.go | 3 ++- rule_test.go | 22 +++++++++++++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 83a0e6b..87f6e8c 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ The Result also provides additional helper methods: | **string** | VALUE, FIELD | `"domain.com"` | A double-quoted string. Quotes may be escaped with a backslash: `"a string \"with\" quotes"`. A quoted value that is a valid IP address, CIDR, or MAC address is treated as that type (e.g. `"10.0.0.1"` is an IP). Any other quoted value is a string. | | **IP address** | VALUE, FIELD | `192.168.1.1`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff` | An IPv4, IPv6, or an IPv6 dual address. Maps to Go type: `net.IP` | | **CIDR** | VALUE | `192.168.1.0/24`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff/64` | An IPv4 or IPv6 CIDR block. Maps to Go type: `*net.IPNet` | -| **Hexadecimal string** | VALUE, FIELD | `12:34:56:78:ab` (MAC address), `504f5354` (hex string "POST") | A hexadecimal string, optionally separated by colons. | +| **Hexadecimal string** | VALUE, FIELD | `50:4f:53:54` (bytes of "POST"), `12:34:56:78:9a:bc` (MAC address) | Bytes written as colon-separated hex pairs. Equals a string with the same bytes (`50:4f:53:54 == "POST"`) or a MAC address with the same value. A single pair must start with a digit (`0a`); `ab` is a field name. Eight pairs read as an IPv6 address. | | **Regex** | VALUE | `/example\.com$/` | A Go-style regular expression. Must be surrounded by forward slashes. May not be quoted with double quotes (otherwise it will be parsed as a string). Maps to Go type: `*regexp.Regexp` | ### Constructs diff --git a/parser.go b/parser.go index 70679df..c914b3b 100644 --- a/parser.go +++ b/parser.go @@ -431,7 +431,8 @@ func (l *lexer) scanAtom(leading string) token { if isFloat(raw) { return token{kind: token_FLOAT, raw: raw, start: start, end: l.pos, leadingTrivia: leading} } - if isHexString(raw) { + // A lone pair such as "ab" is also a valid field name; the field wins. + if isHexString(raw) && (strings.IndexByte(raw, ':') >= 0 || !isField(raw)) { return token{kind: token_HEX_STRING, raw: raw, start: start, end: l.pos, leadingTrivia: leading} } if isField(raw) { diff --git a/rule_test.go b/rule_test.go index 9fb1a95..47455d1 100644 --- a/rule_test.go +++ b/rule_test.go @@ -400,11 +400,12 @@ func TestFilterParseIP(t *testing.T) { } } -func TestFilterParseMac(t *testing.T) { - _, err := Parse("f_mac == 01:23:45:67:89:ab:cd:ef --or f_mac == 0123.4567.89ab.cdef") - if err != nil { - t.Error(err) - } +func TestFilterParseHexAndMac(t *testing.T) { + mac, err := net.ParseMAC("01:23:45:67:89:ab") + require.NoError(t, err) + assertRulep(t, `f_mac == 01:23:45:67:89:ab`, kv{"f_mac": mac}).Ok().DoesPass(true) + assertRulep(t, `f_mac == "01:23:45:67:89:ab"`, kv{"f_mac": mac}).Ok().DoesPass(true) + assertRulep(t, `f_bytes == 50:4f:53:54`, kv{"f_bytes": "POST"}).Ok().DoesPass(true) } func TestFilterParseBool(t *testing.T) { @@ -1208,3 +1209,14 @@ func TestNot(t *testing.T) { assertRulep(t, `not (a == 1)`, kv(map[string]any{"a": 1})).Ok().DoesPass(false) assertRulep(t, `not (a == 1)`, kv(map[string]any{"a": 2})).Ok().DoesPass(true) } + +func TestHexLikeFieldNames(t *testing.T) { + // A lone byte pair made of letters is a field name, not a hex literal. + assertRulep(t, `ab == 1`, kv{"ab": 1}).Ok().DoesPass(true) + assertRulep(t, `fe == "x"`, kv{"fe": "x"}).Ok().DoesPass(true) + assertRulep(t, `ad`, kv{"ad": true}).Ok().DoesPass(true) + assertRulep(t, `ad`, kv{}).MissingFields("ad") + // Byte pairs that cannot be field names remain hex literals. + assertRulep(t, `x == 0a`, kv{"x": "\n"}).Ok().DoesPass(true) + assertRulep(t, `x == ab:cd`, kv{"x": "\xab\xcd"}).Ok().DoesPass(true) +} From 2644915c02af17eb9a1fd4a3665305dd9d0e9130 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:14:27 +0300 Subject: [PATCH 004/106] Add built-in fields for URL, IP, CIDR, and MAC values --- README.md | 34 ++++++++++++- compare.go | 5 ++ compare_string.go | 4 ++ compare_url.go | 15 ++++++ fields.go | 109 ++++++++++++++++++++++++++++++++++++++++++ fields_test.go | 118 ++++++++++++++++++++++++++++++++++++++++++++++ input.go | 7 ++- json.go | 9 +++- nodes.go | 3 ++ parser.go | 17 +++++++ values.go | 10 +++- 11 files changed, 326 insertions(+), 5 deletions(-) create mode 100644 compare_url.go create mode 100644 fields.go create mode 100644 fields_test.go diff --git a/README.md b/README.md index 87f6e8c..d659627 100644 --- a/README.md +++ b/README.md @@ -109,10 +109,11 @@ The Result also provides additional helper methods: | ---------------------- | ------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **bool** | VALUE, FIELD | `true` | Valid values: `true`, `false` | | **number** | VALUE, FIELD | `8080` | Integer or float. Parsed as either int64 or uint64 if out of range for int64, or float64 if float. | -| **string** | VALUE, FIELD | `"domain.com"` | A double-quoted string. Quotes may be escaped with a backslash: `"a string \"with\" quotes"`. A quoted value that is a valid IP address, CIDR, or MAC address is treated as that type (e.g. `"10.0.0.1"` is an IP). Any other quoted value is a string. | +| **string** | VALUE, FIELD | `"domain.com"` | A double-quoted string. Quotes may be escaped with a backslash: `"a string \"with\" quotes"`. A quoted value that is a valid IP address, CIDR, MAC address, or absolute URL is treated as that type (e.g. `"10.0.0.1"` is an IP). Any other quoted value is a string. | | **IP address** | VALUE, FIELD | `192.168.1.1`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff` | An IPv4, IPv6, or an IPv6 dual address. Maps to Go type: `net.IP` | | **CIDR** | VALUE | `192.168.1.0/24`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff/64` | An IPv4 or IPv6 CIDR block. Maps to Go type: `*net.IPNet` | | **Hexadecimal string** | VALUE, FIELD | `50:4f:53:54` (bytes of "POST"), `12:34:56:78:9a:bc` (MAC address) | Bytes written as colon-separated hex pairs. Equals a string with the same bytes (`50:4f:53:54 == "POST"`) or a MAC address with the same value. A single pair must start with a digit (`0a`); `ab` is a field name. Eight pairs read as an IPv6 address. | +| **URL** | VALUE, FIELD | `"https://example.com/api"` | An absolute URL in quotes. Compares against strings and other URLs by its text. Maps to Go type: `*url.URL` | | **Regex** | VALUE | `/example\.com$/` | A Go-style regular expression. Must be surrounded by forward slashes. May not be quoted with double quotes (otherwise it will be parsed as a string). Maps to Go type: `*regexp.Regexp` | ### Constructs @@ -142,6 +143,35 @@ items[0].name == "first" Plain dotted fields do not fall back to flat keys. If the input contains a top-level key named `destination.ip`, use `["destination.ip"]`. +### Value Fields + +IP addresses, CIDRs, MAC addresses, and URLs expose read-only fields using the same path syntax: + +```perl +request.url.scheme == "https" and request.url.host == "api.example.com" +request.url.query["tag"] == "beta" +source.ip.version == "v6" +destination.net.prefix >= 24 +device.mac.oui == 00:1a:2b +``` + +| Type | Field | Value | +| ---- | ----- | ----- | +| URL | `scheme` | Lowercase scheme, e.g. `"https"` | +| URL | `host` | Lowercase host name without the port | +| URL | `port` | Port number, if the URL has one | +| URL | `path` | Path, e.g. `"/api/v1"` (`""` if empty) | +| URL | `query["name"]` | Query parameter value; a parameter given more than once is a list | +| URL | `fragment` | Text after `#` | +| URL | `user` | User name | +| IP address | `version` | `"v4"` or `"v6"` | +| CIDR | `network` | Network address, e.g. `10.0.0.0` | +| CIDR | `prefix` | Prefix length, e.g. `16` | +| CIDR | `version` | `"v4"` or `"v6"` | +| MAC address | `oui` | First three bytes, e.g. `00:1a:2b` | + +A field that the value doesn't have, such as `port` on `https://example.com`, is missing, so the rule result is unknown rather than false. Fields only apply to typed values: a map with a `host` key is read as a map, and a string from the input is never treated as a URL. + ### JSON Input Helpers `DecodeJSON` converts JSON documents into `rulekit.KV`. Plain JSON decodes dynamically by default. Annotated key suffixes are opt-in and are intended for values that JSON cannot represent natively: @@ -150,7 +180,7 @@ Plain dotted fields do not fall back to flat keys. If the input contains a top-l kv, err := rulekit.DecodeJSON(data, rulekit.JSONOptions{AnnotatedKeys: true}) ``` -Supported suffixes include `.$ip`, `.$cidr`, `.$mac`, `.$hex`, `.$base64`, `.$bytes_hex`, `.$bytes_base64`, `.$string`, `.$bool`, `.$int64`, `.$uint64`, and `.$float64`. +Supported suffixes include `.$ip`, `.$cidr`, `.$mac`, `.$url`, `.$hex`, `.$base64`, `.$bytes_hex`, `.$bytes_base64`, `.$string`, `.$bool`, `.$int64`, `.$uint64`, and `.$float64`. Fully typed documents are a separate mode. In this mode, every field value must be a typed object and annotated keys are rejected: diff --git a/compare.go b/compare.go index 640ea4f..74e67a9 100644 --- a/compare.go +++ b/compare.go @@ -3,6 +3,7 @@ package rulekit import ( "fmt" "net" + "net/url" ) type compareDiagnostic uint8 @@ -112,6 +113,10 @@ func compareDetailed(left any, op int, right any) compareOutcome { // mac ? any return compareMac(lv, op, right) + case *url.URL: + // url ? any + return compareURL(lv, op, right) + case []any: // []any ? any return compareSliceDetailed(lv, op, func(lv any, op int) compareOutcome { diff --git a/compare_string.go b/compare_string.go index 1842381..970846f 100644 --- a/compare_string.go +++ b/compare_string.go @@ -2,6 +2,7 @@ package rulekit import ( "net" + "net/url" "regexp" "strings" ) @@ -20,6 +21,9 @@ func compareString(left string, op int, right any) compareOutcome { case *net.IPNet: // string ? ipnet return compareStringString(left, op, right.String()) + case *url.URL: + // string ? url + return compareStringString(left, op, right.String()) case HexString: // string ? hex return compareBytesBytes([]byte(left), op, right.Bytes) diff --git a/compare_url.go b/compare_url.go new file mode 100644 index 0000000..8353de3 --- /dev/null +++ b/compare_url.go @@ -0,0 +1,15 @@ +package rulekit + +import "net/url" + +func compareURL(left *url.URL, op int, right any) compareOutcome { + switch right := right.(type) { + case *url.URL: + // url ? url + return compareStringString(left.String(), op, right.String()) + case string: + // url ? string + return compareStringString(left.String(), op, right) + } + return incomparable() +} diff --git a/fields.go b/fields.go new file mode 100644 index 0000000..4303657 --- /dev/null +++ b/fields.go @@ -0,0 +1,109 @@ +package rulekit + +import ( + "net" + "net/url" + "strconv" + "strings" +) + +// valueField resolves a built-in field of a typed value, such as url.host or +// ip.version. It reports false when the value has no such field or the field +// is absent from the value. +func valueField(value any, key string) (any, bool) { + switch v := value.(type) { + case *url.URL: + return urlField(v, key) + case url.Values: + return queryField(v, key) + case net.IP: + if key == "version" { + return ipVersion(v) + } + case *net.IPNet: + return cidrField(v, key) + case net.HardwareAddr: + if key == "oui" && len(v) >= 3 { + return v[:3], true + } + } + return nil, false +} + +func urlField(u *url.URL, key string) (any, bool) { + if u == nil { + return nil, false + } + switch key { + case "scheme": + return nonEmpty(u.Scheme) + case "host": + return nonEmpty(strings.ToLower(u.Hostname())) + case "port": + port, err := strconv.Atoi(u.Port()) + if err != nil { + return nil, false + } + return port, true + case "path": + return u.Path, true + case "query": + return u.Query(), true + case "fragment": + return nonEmpty(u.Fragment) + case "user": + if u.User == nil { + return nil, false + } + return nonEmpty(u.User.Username()) + } + return nil, false +} + +// queryField returns a single value as a string and repeated values as a list. +func queryField(values url.Values, key string) (any, bool) { + switch v := values[key]; len(v) { + case 0: + return nil, false + case 1: + return v[0], true + default: + return v, true + } +} + +func cidrField(n *net.IPNet, key string) (any, bool) { + if n == nil { + return nil, false + } + switch key { + case "network": + return n.IP, true + case "prefix": + ones, bits := n.Mask.Size() + if bits == 0 { + return nil, false + } + return ones, true + case "version": + return ipVersion(n.IP) + } + return nil, false +} + +func ipVersion(ip net.IP) (any, bool) { + if ip.To4() != nil { + return "v4", true + } + if len(ip) == net.IPv6len { + return "v6", true + } + return nil, false +} + +func nonEmpty(s string) (any, bool) { + if s == "" { + return nil, false + } + return s, true +} diff --git a/fields_test.go b/fields_test.go new file mode 100644 index 0000000..5d2c9d7 --- /dev/null +++ b/fields_test.go @@ -0,0 +1,118 @@ +package rulekit + +import ( + "net" + "net/url" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestURLFields(t *testing.T) { + u, err := url.Parse("https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top") + require.NoError(t, err) + bare, err := url.Parse("http://example.com") + require.NoError(t, err) + input := kv{"url": u, "bare": bare} + + assertRulep(t, `url.scheme == "https"`, input).Ok().DoesPass(true) + assertRulep(t, `url.host == "example.com"`, input).Ok().DoesPass(true) + assertRulep(t, `url.port == 8443`, input).Ok().DoesPass(true) + assertRulep(t, `url.path == "/api/v1"`, input).Ok().DoesPass(true) + assertRulep(t, `url.query.env == "prod"`, input).Ok().DoesPass(true) + assertRulep(t, `url.query["tag"] == "b"`, input).Ok().DoesPass(true) + assertRulep(t, `url.fragment == "top"`, input).Ok().DoesPass(true) + assertRulep(t, `url.user == "alice"`, input).Ok().DoesPass(true) + + // Parts absent from the URL are unknown, not empty. + assertRulep(t, `bare.port == 80`, input).MissingFields("bare.port").Value(nil) + assertRulep(t, `bare.query.env == "prod"`, input).MissingFields("bare.query.env").Value(nil) + assertRulep(t, `bare.fragment == ""`, input).MissingFields("bare.fragment").Value(nil) + assertRulep(t, `bare.user == ""`, input).MissingFields("bare.user").Value(nil) + assertRulep(t, `bare.path == ""`, input).Ok().DoesPass(true) + assertRulep(t, `url.nope == 1`, input).MissingFields("url.nope").Value(nil) +} + +func TestURLValueComparesAsString(t *testing.T) { + u, err := url.Parse("https://example.com/a") + require.NoError(t, err) + input := kv{"url": u, "s": "https://example.com/a"} + + assertRulep(t, `url == "https://example.com/a"`, input).Ok().DoesPass(true) + assertRulep(t, `url != "https://example.com/b"`, input).Ok().DoesPass(true) + assertRulep(t, `url contains "example.com"`, input).Ok().DoesPass(true) + assertRulep(t, `url matches /^https:/`, input).Ok().DoesPass(true) + assertRulep(t, `url in ["https://example.com/b", "https://example.com/a"]`, input).Ok().DoesPass(true) + // A KV string stays a string: it compares to URL literals by text but has no fields. + assertRulep(t, `s == "https://example.com/a"`, input).Ok().DoesPass(true) + assertRulep(t, `s.host == "example.com"`, input).MissingFields("s.host").Value(nil) +} + +func TestQuotedURLLiteral(t *testing.T) { + for raw, isURL := range map[string]bool{ + "https://example.com/a?b=c": true, + "http://[::1]:8080/": true, + "mailto:a@example.com": false, + "https://": false, + "example.com/a": false, + // Literals whose canonical form differs from the source stay strings, + // so comparisons against KV strings keep matching the text as written. + "https://example.com/a b": false, + } { + value, err := parseString(`"` + raw + `"`) + require.NoError(t, err, raw) + _, gotURL := value.(*url.URL) + require.Equal(t, isURL, gotURL, raw) + } +} + +func TestIPFields(t *testing.T) { + input := kv{ + "v4": net.ParseIP("10.1.2.3"), + "v6": net.ParseIP("2001:db8::1"), + "mapped": net.ParseIP("::ffff:10.1.2.3"), + } + assertRulep(t, `v4.version == "v4"`, input).Ok().DoesPass(true) + assertRulep(t, `v6.version == "v6"`, input).Ok().DoesPass(true) + assertRulep(t, `mapped.version == "v4"`, input).Ok().DoesPass(true) + assertRulep(t, `v4.nope == 1`, input).MissingFields("v4.nope").Value(nil) +} + +func TestCIDRFields(t *testing.T) { + _, v4, err := net.ParseCIDR("10.1.0.0/16") + require.NoError(t, err) + _, v6, err := net.ParseCIDR("2001:db8::/32") + require.NoError(t, err) + input := kv{"net4": v4, "net6": v6} + + assertRulep(t, `net4.network == 10.1.0.0`, input).Ok().DoesPass(true) + assertRulep(t, `net4.prefix == 16`, input).Ok().DoesPass(true) + assertRulep(t, `net4.version == "v4"`, input).Ok().DoesPass(true) + assertRulep(t, `net6.prefix == 32`, input).Ok().DoesPass(true) + assertRulep(t, `net6.version == "v6"`, input).Ok().DoesPass(true) +} + +func TestMACFields(t *testing.T) { + mac, err := net.ParseMAC("00:1A:2B:3C:4D:5E") + require.NoError(t, err) + input := kv{"mac": mac} + + assertRulep(t, `mac.oui == 00:1a:2b`, input).Ok().DoesPass(true) + assertRulep(t, `mac.oui == "00:1a:2b"`, input).Ok().DoesPass(true) + assertRulep(t, `mac.oui == 00:1a:2c`, input).Ok().DoesPass(false) +} + +func TestValueFieldsMapKeysWin(t *testing.T) { + // Fields only apply to typed values; a map with the same key is read as a map. + assertRulep(t, `url.host == "from-map"`, kv{"url": KV{"host": "from-map"}}).Ok().DoesPass(true) +} + +func TestDecodeJSONURL(t *testing.T) { + data, err := DecodeJSON([]byte(`{"a.$url": "https://example.com:8443/x"}`), JSONOptions{AnnotatedKeys: true}) + require.NoError(t, err) + assertRulep(t, `a.port == 8443 and a.host == "example.com"`, kv(data)).Ok().DoesPass(true) + + typed, err := DecodeJSON([]byte(`{"a": {"$type": "url", "value": "https://example.com/x"}}`), JSONOptions{TypedDocument: true}) + require.NoError(t, err) + assertRulep(t, `a.path == "/x"`, kv(typed)).Ok().DoesPass(true) +} diff --git a/input.go b/input.go index 97abcc6..bdb8615 100644 --- a/input.go +++ b/input.go @@ -86,7 +86,12 @@ func (k *kvInput) GetPath(ctx context.Context, path []pathSegment) (any, bool, e currentMap, ok := current.(map[string]any) if !ok { - return nil, false, nil + field, ok := valueField(current, segment.key) + if !ok { + return nil, false, nil + } + current = field + continue } value, ok := currentMap[segment.key] if !ok { diff --git a/json.go b/json.go index 25b826d..a84a6f2 100644 --- a/json.go +++ b/json.go @@ -7,6 +7,7 @@ import ( "encoding/json" "fmt" "net" + "net/url" "strconv" "strings" ) @@ -139,7 +140,7 @@ func normalizeJSONNumber(n json.Number) (any, error) { } func splitAnnotatedKey(key string) (string, string, bool) { - for _, suffix := range []string{".$bytes_base64", ".$bytes_hex", ".$base64", ".$hex", ".$float64", ".$uint64", ".$int64", ".$bool", ".$string", ".$cidr", ".$mac", ".$ip"} { + for _, suffix := range []string{".$bytes_base64", ".$bytes_hex", ".$base64", ".$hex", ".$float64", ".$uint64", ".$int64", ".$bool", ".$string", ".$cidr", ".$mac", ".$url", ".$ip"} { if strings.HasSuffix(key, suffix) { return strings.TrimSuffix(key, suffix), strings.TrimPrefix(suffix, "."), true } @@ -223,6 +224,12 @@ func decodeScalarValue(typ string, value any, encoding string) (any, error) { return nil, err } return net.ParseMAC(s) + case "url": + s, err := stringScalar(value) + if err != nil { + return nil, err + } + return url.Parse(s) case "bytes": return decodeBytes(value, encoding) case "hex": diff --git a/nodes.go b/nodes.go index 58b0333..07fc685 100644 --- a/nodes.go +++ b/nodes.go @@ -3,6 +3,7 @@ package rulekit import ( "context" "fmt" + "net/url" "regexp" ) @@ -213,6 +214,8 @@ func (n *nodeMatch) apply(lv any, rv any) bool { switch val := lv.(type) { case string: return r.MatchString(val) + case *url.URL: + return r.MatchString(val.String()) case []string: for _, s := range val { if r.MatchString(s) { diff --git a/parser.go b/parser.go index c914b3b..3531e6d 100644 --- a/parser.go +++ b/parser.go @@ -3,6 +3,7 @@ package rulekit import ( "fmt" "net" + "net/url" "regexp" "strconv" "strings" @@ -99,9 +100,25 @@ func parseString[T interface{ string | []byte }](data T) (any, error) { return mac, nil } } + if u, ok := parseAbsoluteURL(str); ok { + return u, nil + } return str, nil } +// parseAbsoluteURL reports whether str is an absolute URL with a scheme and +// host whose canonical form is exactly str. +func parseAbsoluteURL(str string) (*url.URL, bool) { + if !strings.Contains(str, "://") { + return nil, false + } + u, err := url.Parse(str) + if err != nil || u.Scheme == "" || u.Host == "" || u.String() != str { + return nil, false + } + return u, true +} + func parseInt[T interface{ string | []byte }](data T) (any, error) { raw := string(data) if n, err := strconv.ParseInt(raw, 0, 64); err == nil { diff --git a/values.go b/values.go index 3f23185..834414d 100644 --- a/values.go +++ b/values.go @@ -3,6 +3,7 @@ package rulekit import ( "context" "net" + "net/url" "strconv" "strings" ) @@ -206,6 +207,8 @@ func isZero(val any) bool { return len(v) == 0 case *net.IPNet: return v == nil || v.IP == nil + case *url.URL: + return v == nil case []any: return len(v) == 0 } @@ -242,7 +245,12 @@ func indexPath(m KV, segments []pathSegment) (any, bool) { currentMap, ok := current.(map[string]any) if !ok { - return nil, false + field, ok := valueField(current, seg.key) + if !ok { + return nil, false + } + current = field + continue } val, ok := currentMap[seg.key] if !ok { From 115df8b25d8f91abbc63346e9802e143a9f2a245 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:20:11 +0300 Subject: [PATCH 005/106] Require colons for bare hex; add x"..." hex literals --- README.md | 2 +- hexstring.go | 12 +++++++++++- parser.go | 15 ++++++++++++--- rule_test.go | 20 +++++++++++++++----- 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d659627..36480bd 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ The Result also provides additional helper methods: | **string** | VALUE, FIELD | `"domain.com"` | A double-quoted string. Quotes may be escaped with a backslash: `"a string \"with\" quotes"`. A quoted value that is a valid IP address, CIDR, MAC address, or absolute URL is treated as that type (e.g. `"10.0.0.1"` is an IP). Any other quoted value is a string. | | **IP address** | VALUE, FIELD | `192.168.1.1`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff` | An IPv4, IPv6, or an IPv6 dual address. Maps to Go type: `net.IP` | | **CIDR** | VALUE | `192.168.1.0/24`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff/64` | An IPv4 or IPv6 CIDR block. Maps to Go type: `*net.IPNet` | -| **Hexadecimal string** | VALUE, FIELD | `50:4f:53:54` (bytes of "POST"), `12:34:56:78:9a:bc` (MAC address) | Bytes written as colon-separated hex pairs. Equals a string with the same bytes (`50:4f:53:54 == "POST"`) or a MAC address with the same value. A single pair must start with a digit (`0a`); `ab` is a field name. Eight pairs read as an IPv6 address. | +| **Hexadecimal string** | VALUE, FIELD | `50:4f:53:54`, `x"504f5354"`, `x"0a"` | Bytes, written either as two or more colon-separated hex pairs or as hex digits in `x"..."`. Equals a string with the same bytes (`x"504f5354" == "POST"`) or a MAC address with the same value. Eight colon-separated pairs read as an IPv6 address; use `x"..."` for 8-byte values. | | **URL** | VALUE, FIELD | `"https://example.com/api"` | An absolute URL in quotes. Compares against strings and other URLs by its text. Maps to Go type: `*url.URL` | | **Regex** | VALUE | `/example\.com$/` | A Go-style regular expression. Must be surrounded by forward slashes. May not be quoted with double quotes (otherwise it will be parsed as a string). Maps to Go type: `*regexp.Regexp` | diff --git a/hexstring.go b/hexstring.go index 7072e4d..7401218 100644 --- a/hexstring.go +++ b/hexstring.go @@ -2,6 +2,7 @@ package rulekit import ( "encoding/hex" + "fmt" "strings" ) @@ -15,8 +16,17 @@ func (h HexString) String() string { return h.raw_value } +// ParseHexString parses colon-separated hex pairs (50:4f:53:54) or an +// x"..." literal whose digits may optionally be separated by colons. func ParseHexString(s string) (HexString, error) { - decoded, err := hex.DecodeString(strings.ReplaceAll(s, ":", "")) + digits := s + if len(s) >= 3 && (s[0] == 'x' || s[0] == 'X') && (s[1] == '"' || s[1] == '\'') && s[len(s)-1] == s[1] { + digits = s[2 : len(s)-1] + if digits == "" { + return HexString{}, fmt.Errorf("empty hex literal") + } + } + decoded, err := hex.DecodeString(strings.ReplaceAll(digits, ":", "")) if err != nil { return HexString{}, err } diff --git a/parser.go b/parser.go index 3531e6d..d4d30f3 100644 --- a/parser.go +++ b/parser.go @@ -327,6 +327,16 @@ func (l *lexer) next() token { } l.pos++ return token{kind: op_GT, raw: ">", start: start, end: l.pos, leadingTrivia: leading} + case 'x', 'X': + if l.pos+1 < len(l.input) && (l.input[l.pos+1] == '"' || l.input[l.pos+1] == '\'') { + l.pos++ + tok := l.scanDelimited(l.input[l.pos], token_HEX_STRING, leading) + tok.start = start + if tok.kind == token_HEX_STRING { + tok.raw = l.input[start:l.pos] + } + return tok + } case '/', '\'', '"': if ch == '/' && l.hasPrefix("/*") { break @@ -448,8 +458,7 @@ func (l *lexer) scanAtom(leading string) token { if isFloat(raw) { return token{kind: token_FLOAT, raw: raw, start: start, end: l.pos, leadingTrivia: leading} } - // A lone pair such as "ab" is also a valid field name; the field wins. - if isHexString(raw) && (strings.IndexByte(raw, ':') >= 0 || !isField(raw)) { + if isHexString(raw) { return token{kind: token_HEX_STRING, raw: raw, start: start, end: l.pos, leadingTrivia: leading} } if isField(raw) { @@ -513,7 +522,7 @@ func isFloat(s string) bool { } func isHexString(s string) bool { - if len(s) < 2 { + if !strings.Contains(s, ":") { return false } parts := strings.Split(s, ":") diff --git a/rule_test.go b/rule_test.go index 47455d1..f0b9618 100644 --- a/rule_test.go +++ b/rule_test.go @@ -1210,13 +1210,23 @@ func TestNot(t *testing.T) { assertRulep(t, `not (a == 1)`, kv(map[string]any{"a": 2})).Ok().DoesPass(true) } -func TestHexLikeFieldNames(t *testing.T) { - // A lone byte pair made of letters is a field name, not a hex literal. +func TestHexLiterals(t *testing.T) { + // Unquoted hex needs at least two colon-separated pairs; a lone pair is a field name. assertRulep(t, `ab == 1`, kv{"ab": 1}).Ok().DoesPass(true) assertRulep(t, `fe == "x"`, kv{"fe": "x"}).Ok().DoesPass(true) - assertRulep(t, `ad`, kv{"ad": true}).Ok().DoesPass(true) assertRulep(t, `ad`, kv{}).MissingFields("ad") - // Byte pairs that cannot be field names remain hex literals. - assertRulep(t, `x == 0a`, kv{"x": "\n"}).Ok().DoesPass(true) assertRulep(t, `x == ab:cd`, kv{"x": "\xab\xcd"}).Ok().DoesPass(true) + assertParseError(t, `x == 0a`) + + // x"..." is hex with optional colons, in either quote style and case. + assertRulep(t, `x == x"0a"`, kv{"x": "\n"}).Ok().DoesPass(true) + assertRulep(t, `x == x"504f5354"`, kv{"x": "POST"}).Ok().DoesPass(true) + assertRulep(t, `x == X'50:4F:53:54'`, kv{"x": "POST"}).Ok().DoesPass(true) + // Eight unquoted pairs are an IPv6 address; x"..." keeps them as bytes. + assertRulep(t, `x == x"0123456789abcdef"`, kv{"x": "\x01\x23\x45\x67\x89\xab\xcd\xef"}).Ok().DoesPass(true) + assertParseError(t, `x == x""`) + assertParseError(t, `x == x"abc"`) + assertParseError(t, `x == x"0g"`) + + require.Equal(t, `x == x"0a"`, MustParse(`x == x"0a"`).String()) } From f1eb61a29a0da570d50916e4832631df3feafe70 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:27:14 +0300 Subject: [PATCH 006/106] Support i, m, and s regex flag suffixes --- README.md | 2 +- parser.go | 34 +++++++++++++++++++++++++++++----- rule_test.go | 13 +++++++++++++ 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 36480bd..3db01da 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ The Result also provides additional helper methods: | **CIDR** | VALUE | `192.168.1.0/24`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff/64` | An IPv4 or IPv6 CIDR block. Maps to Go type: `*net.IPNet` | | **Hexadecimal string** | VALUE, FIELD | `50:4f:53:54`, `x"504f5354"`, `x"0a"` | Bytes, written either as two or more colon-separated hex pairs or as hex digits in `x"..."`. Equals a string with the same bytes (`x"504f5354" == "POST"`) or a MAC address with the same value. Eight colon-separated pairs read as an IPv6 address; use `x"..."` for 8-byte values. | | **URL** | VALUE, FIELD | `"https://example.com/api"` | An absolute URL in quotes. Compares against strings and other URLs by its text. Maps to Go type: `*url.URL` | -| **Regex** | VALUE | `/example\.com$/` | A Go-style regular expression. Must be surrounded by forward slashes. May not be quoted with double quotes (otherwise it will be parsed as a string). Maps to Go type: `*regexp.Regexp` | +| **Regex** | VALUE | `/example\.com$/`, `/curl/i` | A Go-style regular expression. Must be surrounded by forward slashes. May not be quoted with double quotes (otherwise it will be parsed as a string). Flags may follow the closing slash: `i` (ignore case), `m` (`^` and `$` match at line breaks), `s` (`.` matches newlines). Maps to Go type: `*regexp.Regexp` | ### Constructs diff --git a/parser.go b/parser.go index d4d30f3..e1d7389 100644 --- a/parser.go +++ b/parser.go @@ -142,7 +142,11 @@ func parseBool[T interface{ string | []byte }](data T) (bool, error) { func parseRegex[T interface{ string | []byte }](data T) (*regexp.Regexp, error) { raw := string(data) - pattern := raw[1 : len(raw)-1] + end := strings.LastIndexByte(raw, raw[0]) + pattern := raw[1:end] + if flags := raw[end+1:]; flags != "" { + pattern = "(?" + flags + ")" + pattern + } return regexp.Compile(pattern) } @@ -307,7 +311,7 @@ func (l *lexer) next() token { if l.match("||") { return token{kind: op_OR, raw: "||", start: start, end: l.pos, leadingTrivia: leading} } - return l.scanDelimited('|', token_REGEX, leading) + return l.scanRegex('|', leading) case '=': if l.match("==") { return token{kind: op_EQ, raw: "==", start: start, end: l.pos, leadingTrivia: leading} @@ -341,11 +345,10 @@ func (l *lexer) next() token { if ch == '/' && l.hasPrefix("/*") { break } - kind := token_REGEX if ch == '\'' || ch == '"' { - kind = token_STRING + return l.scanDelimited(ch, token_STRING, leading) } - return l.scanDelimited(ch, kind, leading) + return l.scanRegex(ch, leading) } if ch == '+' || ch == '-' || ch == ':' || isAtomStart(rune(ch)) || unicode.IsDigit(rune(ch)) { @@ -406,6 +409,27 @@ func (l *lexer) scanDelimited(delim byte, kind int, leading string) token { return token{kind: token_ERROR, raw: "unterminated literal", start: start, end: l.pos, leadingTrivia: leading} } +// scanRegex scans a delimited regex and an optional run of i, m, and s flags +// directly after the closing delimiter. A run containing any other letter is +// left for the next token, so /x/and still lexes as a regex followed by "and". +func (l *lexer) scanRegex(delim byte, leading string) token { + tok := l.scanDelimited(delim, token_REGEX, leading) + if tok.kind != token_REGEX { + return tok + } + end := l.pos + for end < len(l.input) && unicode.IsLetter(rune(l.input[end])) { + end++ + } + flags := l.input[l.pos:end] + if flags != "" && strings.Trim(flags, "ims") == "" { + l.pos = end + tok.raw = l.input[tok.start:end] + tok.end = end + } + return tok +} + func (l *lexer) scanAtom(leading string) token { start := l.pos for l.pos < len(l.input) { diff --git a/rule_test.go b/rule_test.go index f0b9618..12be3db 100644 --- a/rule_test.go +++ b/rule_test.go @@ -1230,3 +1230,16 @@ func TestHexLiterals(t *testing.T) { require.Equal(t, `x == x"0a"`, MustParse(`x == x"0a"`).String()) } + +func TestRegexFlags(t *testing.T) { + assertRulep(t, `ua matches /curl/i`, kv{"ua": "CURL/8.0"}).Ok().DoesPass(true) + assertRulep(t, `ua matches |curl|i`, kv{"ua": "CURL/8.0"}).Ok().DoesPass(true) + assertRulep(t, `ua matches /curl/`, kv{"ua": "CURL/8.0"}).Ok().DoesPass(false) + assertRulep(t, `body matches /a.b/s`, kv{"body": "a\nb"}).Ok().DoesPass(true) + assertRulep(t, `body matches /^b$/m`, kv{"body": "a\nb"}).Ok().DoesPass(true) + assertRulep(t, `body matches /^A.B$/ims`, kv{"body": "x\na\nb"}).Ok().DoesPass(true) + assertParseError(t, `ua matches /curl/q`) + // A keyword directly after the closing delimiter is still a keyword. + assertRulep(t, `ua matches /curl/and ok`, kv{"ua": "curl", "ok": true}).Ok().DoesPass(true) + require.Equal(t, `ua =~ /curl/i`, MustParse(`ua matches /curl/i`).String()) +} From 8d5dbd7dcc181e5cf11bc47cdd43586912a8d90c Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:33:14 +0300 Subject: [PATCH 007/106] Reject regex forms that differ across engines --- README.md | 2 +- parser.go | 3 ++ regex.go | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++ rule_test.go | 20 ++++++++++++++ 4 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 regex.go diff --git a/README.md b/README.md index 3db01da..c070526 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ The Result also provides additional helper methods: | **CIDR** | VALUE | `192.168.1.0/24`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff/64` | An IPv4 or IPv6 CIDR block. Maps to Go type: `*net.IPNet` | | **Hexadecimal string** | VALUE, FIELD | `50:4f:53:54`, `x"504f5354"`, `x"0a"` | Bytes, written either as two or more colon-separated hex pairs or as hex digits in `x"..."`. Equals a string with the same bytes (`x"504f5354" == "POST"`) or a MAC address with the same value. Eight colon-separated pairs read as an IPv6 address; use `x"..."` for 8-byte values. | | **URL** | VALUE, FIELD | `"https://example.com/api"` | An absolute URL in quotes. Compares against strings and other URLs by its text. Maps to Go type: `*url.URL` | -| **Regex** | VALUE | `/example\.com$/`, `/curl/i` | A Go-style regular expression. Must be surrounded by forward slashes. May not be quoted with double quotes (otherwise it will be parsed as a string). Flags may follow the closing slash: `i` (ignore case), `m` (`^` and `$` match at line breaks), `s` (`.` matches newlines). Maps to Go type: `*regexp.Regexp` | +| **Regex** | VALUE | `/example\.com$/`, `/curl/i` | A regular expression in [RE2 syntax](https://github.com/google/re2/wiki/Syntax), surrounded by forward slashes. May not be quoted with double quotes (otherwise it will be parsed as a string). Flags may follow the closing slash: `i` (ignore case), `m` (`^` and `$` match at line breaks), `s` (`.` matches newlines). `\d`, `\w`, `\s`, and `\b` match ASCII only. Not supported: `\Q...\E`, `\<` and `\>`, numeric escapes such as `\0` (use `\x{...}`), `{,n}` (use `{0,n}`), `\p{^...}` (use `\P{...}`), nested classes, and `&&`, `--`, or `~~` inside a class. | ### Constructs diff --git a/parser.go b/parser.go index e1d7389..28fb5f8 100644 --- a/parser.go +++ b/parser.go @@ -147,6 +147,9 @@ func parseRegex[T interface{ string | []byte }](data T) (*regexp.Regexp, error) if flags := raw[end+1:]; flags != "" { pattern = "(?" + flags + ")" + pattern } + if err := checkRegexDialect(pattern); err != nil { + return nil, err + } return regexp.Compile(pattern) } diff --git a/regex.go b/regex.go new file mode 100644 index 0000000..827b547 --- /dev/null +++ b/regex.go @@ -0,0 +1,77 @@ +package rulekit + +import ( + "fmt" + "strings" +) + +// checkRegexDialect rejects regex forms that regex engines interpret +// differently, so a pattern means the same thing in every rulekit +// implementation. Patterns are otherwise compiled with RE2 syntax. +func checkRegexDialect(pattern string) error { + inClass := false + classStart := 0 + for i := 0; i < len(pattern); i++ { + c := pattern[i] + if c == '\\' { + if i+1 >= len(pattern) { + return nil // the compiler reports the trailing backslash + } + next := pattern[i+1] + switch { + case next == '<' || next == '>': + return fmt.Errorf(`\%c is not supported; use \b for word boundaries`, next) + case next == 'Q' || next == 'E': + return fmt.Errorf(`\Q...\E is not supported; escape each character instead`) + case next >= '0' && next <= '9': + return fmt.Errorf(`\%c is not supported; use \x{...} for character codes`, next) + case (next == 'b' || next == 'B') && i+2 < len(pattern) && pattern[i+2] == '{': + return fmt.Errorf(`\%c{...} is not supported`, next) + case (next == 'p' || next == 'P') && strings.HasPrefix(pattern[i+2:], "{^"): + return fmt.Errorf(`\%c{^...} is not supported; use \P{...} to negate a Unicode class`, next) + } + end := i + 1 + if (next == 'p' || next == 'P') && i+2 < len(pattern) && pattern[i+2] == '{' { + if close := strings.IndexByte(pattern[i+2:], '}'); close >= 0 { + end = i + 2 + close + } + } + if inClass && strings.IndexByte("dDsSwWpP", next) >= 0 && + end+2 < len(pattern) && pattern[end+1] == '-' && pattern[end+2] != ']' { + return fmt.Errorf(`\%c cannot start a range in a character class; escape the dash as \-`, next) + } + i = end + continue + } + + if inClass { + switch { + case c == ']' && i > classStart: + inClass = false + case c == '[': + if strings.HasPrefix(pattern[i:], "[:") { + if close := strings.Index(pattern[i+2:], ":]"); close >= 0 { + i += 2 + close + 1 + continue + } + } + return fmt.Errorf(`nested character classes are not supported; escape [ as \[`) + case (c == '&' || c == '-' || c == '~') && i+1 < len(pattern) && pattern[i+1] == c: + return fmt.Errorf(`%c%c in a character class is not supported; escape it as \%c\%c`, c, c, c, c) + } + continue + } + + switch { + case c == '[': + inClass = true + classStart = i + 1 + if classStart < len(pattern) && pattern[classStart] == '^' { + classStart++ + } + case c == '{' && i+1 < len(pattern) && pattern[i+1] == ',': + return fmt.Errorf(`{,n} is not supported; use {0,n}`) + } + } + return nil +} diff --git a/rule_test.go b/rule_test.go index 12be3db..f64f05d 100644 --- a/rule_test.go +++ b/rule_test.go @@ -1243,3 +1243,23 @@ func TestRegexFlags(t *testing.T) { assertRulep(t, `ua matches /curl/and ok`, kv{"ua": "curl", "ok": true}).Ok().DoesPass(true) require.Equal(t, `ua =~ /curl/i`, MustParse(`ua matches /curl/i`).String()) } + +func TestRegexDialect(t *testing.T) { + // Forms whose meaning differs between regex engines are rejected. + for _, pattern := range []string{ + `/\/`, `/\Qa.b\E/`, `/\0/`, `/\12/`, `/\b{start}a/`, + `/\p{^L}/`, `/a{,3}/`, `/[\d-z]/`, `/[\p{L}-z]/`, + `/[a[b]]/`, `/[[a]]/`, `/[a-z&&b]/`, `/[a--b]/`, `/[a~~b]/`, + } { + assertParseError(t, `x matches `+pattern) + } + // Equivalent forms that mean the same everywhere are accepted. + for _, pattern := range []string{ + `/\ba/`, `/\x{1F600}/`, `/a{0,3}/`, `/\P{L}/`, `/[\d\-z]/`, `/[a-z]/`, + `/[[:alpha:]]/`, `/[[:^digit:]x]/`, `/[\[\]]/`, `/[]a]/`, `/[^]a]/`, `/[a-]/`, `/[a&b~c-]/`, + `/\{,3\}/`, `/a{2}/`, + } { + _, err := Parse(`x matches ` + pattern) + require.NoError(t, err, pattern) + } +} From cc814a3f8728a1de913e22b008fe71a717cf4c82 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:44:05 +0300 Subject: [PATCH 008/106] Remove EvaluatedRule leftovers and dead test code --- rule_test.go | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/rule_test.go b/rule_test.go index f64f05d..c16ea06 100644 --- a/rule_test.go +++ b/rule_test.go @@ -1,7 +1,6 @@ package rulekit import ( - "errors" "net" "reflect" "testing" @@ -62,24 +61,20 @@ func TestEngineExample(t *testing.T) { func TestEval(t *testing.T) { tcs := []struct { - filter string - tests map[*map[string]any]TestResult - wantErr string + filter string + tests map[*map[string]any]TestResult }{ { filter: `tls_version == 1.2`, tests: map[*map[string]any]TestResult{ {"tls_version": 1.2}: { Value: true, - // EvaluatedRule: "tls_version == 1.2", }, {"tls_version": 1.1}: { Value: false, - // EvaluatedRule: "tls_version == 1.2", }, {}: { MissingFields: []string{"tls_version"}, - // EvaluatedRule: "tls_version == 1.2", }, }, }, @@ -88,7 +83,6 @@ func TestEval(t *testing.T) { tests: map[*map[string]any]TestResult{ {}: { MissingFields: []string{"tls_version"}, - // EvaluatedRule: "tls_version != 5", }, }, }, @@ -97,7 +91,6 @@ func TestEval(t *testing.T) { tests: map[*map[string]any]TestResult{ {}: { MissingFields: []string{"tls_version"}, - // EvaluatedRule: "!tls_version", }, }, }, @@ -106,15 +99,12 @@ func TestEval(t *testing.T) { tests: map[*map[string]any]TestResult{ {"domain": "example.com"}: { Value: true, - // EvaluatedRule: `domain =~ /example\.com$/`, }, {"tags": "db-svc"}: { Value: true, - // EvaluatedRule: `tags == "db-svc"`, }, {"domain": "other.com"}: { MissingFields: []string{"tags"}, - // EvaluatedRule: `tags == "db-svc"`, }, }, }, @@ -123,23 +113,18 @@ func TestEval(t *testing.T) { tests: map[*map[string]any]TestResult{ {"domain": "example.com"}: { MissingFields: []string{"tags"}, - // EvaluatedRule: `tags == "db-svc"`, }, {"tags": "db-svc"}: { MissingFields: []string{"domain"}, - // EvaluatedRule: `domain == "example.com"`, }, {"domain": "example.com", "tags": []string{"test", "db-svc"}}: { Value: true, - // EvaluatedRule: `domain == "example.com" and tags == "db-svc"`, }, {"domain": "qpoint.io"}: { Value: false, - // EvaluatedRule: `domain == "example.com"`, }, {"tags": []string{}}: { Value: false, - // EvaluatedRule: `tags == "db-svc"`, }, }, }, @@ -162,7 +147,6 @@ func TestEval(t *testing.T) { }, }: { Value: true, - // EvaluatedRule: `dst.ip == 1.1.1.1 and (dst.port == 443 and tls.enabled)`, }, }, }, @@ -170,10 +154,6 @@ func TestEval(t *testing.T) { for _, tc := range tcs { p, err := Parse(tc.filter) - if tc.wantErr != "" { - require.EqualError(t, err, tc.wantErr) - return - } require.NoError(t, err) for input, want := range tc.tests { @@ -489,7 +469,6 @@ func TestFilterMatchIP(t *testing.T) { }, }: { Value: true, - // EvaluatedRule: "ip.src == 192.168.1.1 and ip.dst == 192.168.1.1", }, { "ip": KV{ @@ -498,11 +477,9 @@ func TestFilterMatchIP(t *testing.T) { }, }: { Value: false, - // EvaluatedRule: "ip.src == 192.168.1.1", }, {}: { MissingFields: []string{"ip.dst", "ip.src"}, - // EvaluatedRule: "ip.src == 192.168.1.1 and ip.dst == 192.168.1.1", }, } @@ -523,7 +500,6 @@ func TestFilterMatchIP(t *testing.T) { }, }: { Value: true, - // EvaluatedRule: "ip.src == 192.168.0.0/16", }, { "ip": KV{ @@ -532,11 +508,9 @@ func TestFilterMatchIP(t *testing.T) { }, }: { Value: false, - // EvaluatedRule: "ip.src == 192.168.0.0/16", }, {}: { MissingFields: []string{"ip.src"}, - // EvaluatedRule: "ip.src == 192.168.0.0/16", }, } @@ -1165,14 +1139,6 @@ func TestOpts_Validate(t *testing.T) { } } -func TestEval_invalid_ctx(t *testing.T) { - assertRulep(t, `true`, &ctx{ - Functions: map[string]*Function{ - "starts_with": {}, - }, - }).Error(errors.New(`function "starts_with": name conflicts with a stdlib function`)) -} - func TestFieldNames(t *testing.T) { valid := []string{ "field", From b19b69554c8a405d1392a566182ca81cdbc542e8 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:44:28 +0300 Subject: [PATCH 009/106] Report rulekit type names in comparison diagnostics --- ast_test.go | 2 +- compare.go | 37 ++++++++++++++++++++++++++++++++++--- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/ast_test.go b/ast_test.go index b5139ef..69b69c0 100644 --- a/ast_test.go +++ b/ast_test.go @@ -230,7 +230,7 @@ func TestEvalTraceComparisonDiagnostics(t *testing.T) { code: DiagnosticComparisonInvalidShape, leftType: "int64", operator: "contains", - rightType: "[]interface {}", + rightType: "array", wantStatus: TraceFailed, }, } diff --git a/compare.go b/compare.go index 74e67a9..72ab0bf 100644 --- a/compare.go +++ b/compare.go @@ -4,6 +4,7 @@ import ( "fmt" "net" "net/url" + "regexp" ) type compareDiagnostic uint8 @@ -205,12 +206,42 @@ func newComparisonDiagnostic(code compareDiagnostic, left any, op int, right any } } +// diagnosticType names a value's type using the same vocabulary as typed +// JSON input ($type), so diagnostics read the same in every implementation. func diagnosticType(value any) string { - if value == nil { - return "" + switch value.(type) { + case nil: + return "null" + case bool: + return "bool" + case int, int64: + return "int64" + case uint, uint64: + return "uint64" + case float32, float64: + return "float64" + case string: + return "string" + case HexString, []byte: + return "bytes" + case net.IP: + return "ip" + case *net.IPNet: + return "cidr" + case net.HardwareAddr: + return "mac" + case *url.URL: + return "url" + case *regexp.Regexp: + return "regex" + case []any, []string, []int, []int64, []uint, []uint64, []float32, []float64, []net.IP: + return "array" + case map[string]any, url.Values: + return "object" } - return fmt.Sprintf("%T", value) + return "unknown" } + func compareSlice[T any](slice []T, op int, fn func(el T, op int) bool) bool { return compareSliceDetailed(slice, op, func(el T, op int) compareOutcome { return comparePass(fn(el, op)) From d0f034cae3fa1d7df1e1545d4be665f96de401c9 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:45:52 +0300 Subject: [PATCH 010/106] Treat quoted CIDRs and MACs consistently; test literals by behavior --- ast.go | 12 +++++++ functions_stdlib_test.go | 18 +++++----- parser.go | 8 ++--- parser_test.go | 75 +++++++++------------------------------- 4 files changed, 40 insertions(+), 73 deletions(-) diff --git a/ast.go b/ast.go index 333f61a..7daf6db 100644 --- a/ast.go +++ b/ast.go @@ -275,6 +275,18 @@ func astLiteralIs(node astNode, kind int) bool { return ok && lit.kind == kind } +// astQuotedCIDR reports whether node is a quoted literal such as +// "10.0.0.0/8" that parses as a CIDR. +func astQuotedCIDR(node astNode) bool { + lit, ok := node.(*astLiteral) + if !ok || lit.kind != token_STRING { + return false + } + value, err := parseString(lit.raw) + _, isCIDR := value.(*net.IPNet) + return err == nil && isCIDR +} + func astValidInequalityOperand(node astNode) bool { switch n := node.(type) { case *astPath, *astCall: diff --git a/functions_stdlib_test.go b/functions_stdlib_test.go index 76c2f0f..ea60324 100644 --- a/functions_stdlib_test.go +++ b/functions_stdlib_test.go @@ -29,13 +29,13 @@ func TestFn_StartsWith(t *testing.T) { assertRulep(t, `starts_with(code, 5)`, kv{"code": 404}).Fail() assertRulep(t, `starts_with(starts_with("https://example.com", "https://"), "true")`, nil).Pass() - // parser errors - assertParseErrorValue(t, "starts_with()", `syntax error at line 1:14: -starts_with() - ^ -function "starts_with" expects 2 arguments, got 0`) - assertParseErrorValue(t, "starts_with(arg1)", `syntax error at line 1:18: -starts_with(arg1) - ^ -function "starts_with" expects 2 arguments, got 1`) + // arity is checked at parse time and reported just after the call + for expr, column := range map[string]int{"starts_with()": 14, "starts_with(arg1)": 18} { + _, err := Parse(expr) + var parseErr *ParseError + require.ErrorAs(t, err, &parseErr, expr) + require.Equal(t, 1, parseErr.Line, expr) + require.Equal(t, column, parseErr.Column, expr) + require.Contains(t, parseErr.Message, `function "starts_with" expects 2 arguments`, expr) + } } diff --git a/parser.go b/parser.go index 28fb5f8..6ada78e 100644 --- a/parser.go +++ b/parser.go @@ -95,10 +95,8 @@ func parseString[T interface{ string | []byte }](data T) (any, error) { return ip, nil } else if _, ipnet, err := net.ParseCIDR(str); err == nil { return ipnet, nil - } else if strings.Count(str, ":") == 5 || strings.Count(str, ":") == 7 { - if mac, err := net.ParseMAC(str); err == nil { - return mac, nil - } + } else if mac, err := net.ParseMAC(str); err == nil && (len(mac) == 6 || len(mac) == 8) { + return mac, nil } if u, ok := parseAbsoluteURL(str); ok { return u, nil @@ -646,7 +644,7 @@ func (p *parser) parseExpr(minPrec int) (astNode, error) { if err != nil { return nil, err } - if !astLiteralIs(right, token_IP_CIDR) { + if !astLiteralIs(right, token_IP_CIDR) && !astQuotedCIDR(right) { if _, ok := right.(*astArray); !ok { return nil, p.errorf(tok, "in requires an array or CIDR value") } diff --git a/parser_test.go b/parser_test.go index e7ca40d..c84e297 100644 --- a/parser_test.go +++ b/parser_test.go @@ -2,69 +2,26 @@ package rulekit import ( "net" - "reflect" "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) -func Test_parseString(t *testing.T) { - tests := []struct { - name string - input string - wantType string - wantOK bool - }{ - { - name: "Regular string", - input: `"just a string"`, - wantType: "string", - wantOK: true, - }, - { - name: "Valid IPv4", - input: `"192.168.1.1"`, - wantType: "net.IP", - wantOK: true, - }, - { - name: "Valid IPv6", - input: `"2001:db8::1"`, - wantType: "net.IP", - wantOK: true, - }, - { - name: "Valid CIDR", - input: `"192.168.1.0/24"`, - wantType: "*net.IPNet", - wantOK: true, - }, - { - name: "Valid MAC address", - input: `"01:23:45:67:89:ab"`, - wantType: "net.HardwareAddr", - wantOK: true, - }, - { - name: "Number", - input: `12345`, - wantType: "", - wantOK: false, - }, - } +func TestQuotedLiteralTypes(t *testing.T) { + ip := net.ParseIP("192.168.1.1") + mac := mustParseMac("01:23:45:67:89:ab") + input := kv{"s": "just a string", "ip": ip, "mac": mac} - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - result, err := parseString(tt.input) - if tt.wantOK { - require.NoError(t, err) - assert.Equal(t, tt.wantType, reflect.TypeOf(result).String()) - } else { - require.Error(t, err) - } - }) - } + // A plain quoted value is a string. + assertRulep(t, `s == "just a string"`, input).Ok().DoesPass(true) + // Quoted IPs compare as IPs, not text: forms that differ as text are equal. + assertRulep(t, `ip == "192.168.1.1"`, input).Ok().DoesPass(true) + assertRulep(t, `"2001:db8::1" == 2001:db8:0:0:0:0:0:1`, nil).Ok().DoesPass(true) + assertRulep(t, `"10.1.2.3" in 10.0.0.0/8`, nil).Ok().DoesPass(true) + // A quoted CIDR is a CIDR. + assertRulep(t, `ip in "192.168.1.0/24"`, input).Ok().DoesPass(true) + // Quoted MACs are MACs in any standard notation. + assertRulep(t, `mac == "01:23:45:67:89:ab"`, input).Ok().DoesPass(true) + assertRulep(t, `mac == "01-23-45-67-89-AB"`, input).Ok().DoesPass(true) + assertRulep(t, `mac == "0123.4567.89ab"`, input).Ok().DoesPass(true) } func mustParseMac(s string) net.HardwareAddr { From c036cd24bec64968c299123b17f98ec34a1acb42 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:46:31 +0300 Subject: [PATCH 011/106] Give single-quoted strings the same escapes as double-quoted --- README.md | 2 +- parser.go | 31 +++++++++++++++++++++++++++---- rule_test.go | 18 +++++++++++++----- 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c070526..f3a2dfe 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ The Result also provides additional helper methods: | ---------------------- | ------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **bool** | VALUE, FIELD | `true` | Valid values: `true`, `false` | | **number** | VALUE, FIELD | `8080` | Integer or float. Parsed as either int64 or uint64 if out of range for int64, or float64 if float. | -| **string** | VALUE, FIELD | `"domain.com"` | A double-quoted string. Quotes may be escaped with a backslash: `"a string \"with\" quotes"`. A quoted value that is a valid IP address, CIDR, MAC address, or absolute URL is treated as that type (e.g. `"10.0.0.1"` is an IP). Any other quoted value is a string. | +| **string** | VALUE, FIELD | `"domain.com"`, `'domain.com'` | A double- or single-quoted string. Both accept backslash escapes: `"a \"quoted\" word"`, `'it\'s'`. A quoted value that is a valid IP address, CIDR, MAC address, or absolute URL is treated as that type (e.g. `"10.0.0.1"` is an IP). Any other quoted value is a string. | | **IP address** | VALUE, FIELD | `192.168.1.1`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff` | An IPv4, IPv6, or an IPv6 dual address. Maps to Go type: `net.IP` | | **CIDR** | VALUE | `192.168.1.0/24`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff/64` | An IPv4 or IPv6 CIDR block. Maps to Go type: `*net.IPNet` | | **Hexadecimal string** | VALUE, FIELD | `50:4f:53:54`, `x"504f5354"`, `x"0a"` | Bytes, written either as two or more colon-separated hex pairs or as hex digits in `x"..."`. Equals a string with the same bytes (`x"504f5354" == "POST"`) or a MAC address with the same value. Eight colon-separated pairs read as an IPv6 address; use `x"..."` for 8-byte values. | diff --git a/parser.go b/parser.go index 6ada78e..54799cd 100644 --- a/parser.go +++ b/parser.go @@ -80,10 +80,7 @@ func operatorToString(op int) string { func parseString[T interface{ string | []byte }](data T) (any, error) { str := string(data) if str[0] == '\'' { - str = str[1 : len(str)-1] - str = strings.ReplaceAll(str, `"`, `\"`) - str = strings.ReplaceAll(str, `\'`, `'`) - str = `"` + str + `"` + str = singleToDoubleQuoted(str) } var err error str, err = strconv.Unquote(str) @@ -104,6 +101,32 @@ func parseString[T interface{ string | []byte }](data T) (any, error) { return str, nil } +// singleToDoubleQuoted rewrites a single-quoted literal as the equivalent +// double-quoted one, so both quote styles accept the same escapes. +func singleToDoubleQuoted(str string) string { + inner := str[1 : len(str)-1] + var b strings.Builder + b.Grow(len(inner) + 2) + b.WriteByte('"') + for i := 0; i < len(inner); i++ { + c := inner[i] + switch { + case c == '\\' && i+1 < len(inner): + i++ + if inner[i] != '\'' { + b.WriteByte('\\') + } + b.WriteByte(inner[i]) + case c == '"': + b.WriteString(`\"`) + default: + b.WriteByte(c) + } + } + b.WriteByte('"') + return b.String() +} + // parseAbsoluteURL reports whether str is an absolute URL with a scheme and // host whose canonical form is exactly str. func parseAbsoluteURL(str string) (*url.URL, bool) { diff --git a/rule_test.go b/rule_test.go index c16ea06..51f9aaa 100644 --- a/rule_test.go +++ b/rule_test.go @@ -359,11 +359,20 @@ func TestFilterParseInt(t *testing.T) { } } -func TestFilterParseString(t *testing.T) { - _, err := Parse(`f_string=="text" or f_string=="te\"x't" or f_string =='test' or f_string == 'te"s\'t' or f_string contains 12 && f_string==01:23:45:67:89:ab:AB:cd:ef`) - if err != nil { - t.Error(err) +func TestStringLiterals(t *testing.T) { + for expr, want := range map[string]string{ + `s == "text"`: `text`, + `s == "te\"x't"`: `te"x't`, + `s == 'test'`: `test`, + `s == 'te"s\'t'`: `te"s't`, + `s == 'bad qu\"ote'`: `bad qu"ote`, + `s == "tab\there"`: "tab\there", + `s == 'tab\there'`: "tab\there", + } { + assertRulep(t, expr, kv{"s": want}).Ok().DoesPass(true) } + // Nine colon-separated pairs (not an IPv6 address) are hex bytes; case is ignored. + assertRulep(t, `s == 01:23:45:67:89:ab:AB:cd:ef`, kv{"s": "\x01\x23\x45\x67\x89\xab\xab\xcd\xef"}).Ok().DoesPass(true) } func TestFilterParseRegexp(t *testing.T) { @@ -561,7 +570,6 @@ func TestParseError(t *testing.T) { "test == >=", "field == 123 && ip == 1.2.3", "field == 123 && ip << 1", - "str == 'bad qu\\\"ote'", } { _, err := Parse(s) if err == nil { From 20d211bcb2adc65d4f38e0ccc30cbcba1a238cde Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:47:00 +0300 Subject: [PATCH 012/106] Test function parsing through its printed form --- rule_test.go | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/rule_test.go b/rule_test.go index 51f9aaa..3798731 100644 --- a/rule_test.go +++ b/rule_test.go @@ -5,7 +5,6 @@ import ( "reflect" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -988,15 +987,7 @@ func TestFunctionParsing(t *testing.T) { [1, 2, 3], nested_func(true) )`) - - fn := unwrapTracedRule(parsed.(*rule).Rule).(*FunctionValue) - require.Equal(t, "func_name", fn.fn) - require.Len(t, fn.args.vals, 4) - assert.IsType(t, FieldValue(""), unwrapTracedRule(fn.args.vals[0])) - assert.IsType(t, &LiteralValue[any]{}, unwrapTracedRule(fn.args.vals[1])) - assert.IsType(t, net.IP{}, unwrapTracedRule(fn.args.vals[1]).(*LiteralValue[any]).value) - assert.IsType(t, &ArrayValue{}, unwrapTracedRule(fn.args.vals[2])) - assert.IsType(t, &FunctionValue{}, unwrapTracedRule(fn.args.vals[3])) + require.Equal(t, `func_name(fieldarg, 192.168.0.0, [1, 2, 3], nested_func(true))`, parsed.String()) } func TestMacros(t *testing.T) { From 48f7d9dd4074cb42929f6978e2de9d71bf2bda6d Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:47:50 +0300 Subject: [PATCH 013/106] Parse leading-zero integers as decimal --- README.md | 2 +- parser.go | 33 ++++++++++++++++++++------------- rule_test.go | 19 +++++++++++++++++++ 3 files changed, 40 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index f3a2dfe..f7be863 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ The Result also provides additional helper methods: | Type | Used As | Example | Description | | ---------------------- | ------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **bool** | VALUE, FIELD | `true` | Valid values: `true`, `false` | -| **number** | VALUE, FIELD | `8080` | Integer or float. Parsed as either int64 or uint64 if out of range for int64, or float64 if float. | +| **number** | VALUE, FIELD | `8080`, `0x1f`, `1_000`, `1.5` | Integer or float. Integers may be decimal (leading zeros are still decimal: `010` is ten) or use a `0x`, `0o`, or `0b` prefix, with optional `_` separators. Parsed as int64, or uint64 if out of range for int64, or float64 if float. | | **string** | VALUE, FIELD | `"domain.com"`, `'domain.com'` | A double- or single-quoted string. Both accept backslash escapes: `"a \"quoted\" word"`, `'it\'s'`. A quoted value that is a valid IP address, CIDR, MAC address, or absolute URL is treated as that type (e.g. `"10.0.0.1"` is an IP). Any other quoted value is a string. | | **IP address** | VALUE, FIELD | `192.168.1.1`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff` | An IPv4, IPv6, or an IPv6 dual address. Maps to Go type: `net.IP` | | **CIDR** | VALUE | `192.168.1.0/24`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff/64` | An IPv4 or IPv6 CIDR block. Maps to Go type: `*net.IPNet` | diff --git a/parser.go b/parser.go index 54799cd..9feb63b 100644 --- a/parser.go +++ b/parser.go @@ -142,15 +142,29 @@ func parseAbsoluteURL(str string) (*url.URL, bool) { func parseInt[T interface{ string | []byte }](data T) (any, error) { raw := string(data) - if n, err := strconv.ParseInt(raw, 0, 64); err == nil { - return n, nil - } - if n, err := strconv.ParseUint(raw, 0, 64); err == nil { + if n, ok := parseIntLiteral(raw); ok { return n, nil } return nil, fmt.Errorf("parsing integer: invalid value %q", raw) } +// parseIntLiteral parses decimal integers and 0x, 0o, and 0b prefixed +// integers, with optional _ separators. Leading zeros are decimal, so 010 is +// ten. Values above the int64 range are returned as uint64. +func parseIntLiteral(s string) (any, bool) { + base := 0 + if digits := strings.TrimPrefix(s, "-"); len(digits) > 1 && digits[0] == '0' && digits[1] >= '0' && digits[1] <= '9' { + base = 10 + } + if n, err := strconv.ParseInt(s, base, 64); err == nil { + return n, true + } + if n, err := strconv.ParseUint(s, base, 64); err == nil { + return n, true + } + return nil, false +} + func parseFloat[T interface{ string | []byte }](data T) (float64, error) { return strconv.ParseFloat(string(data), 64) } @@ -550,15 +564,8 @@ func isField(s string) bool { } func isInteger(s string) bool { - if s == "" || s == "+" || s == "-" { - return false - } - _, err := strconv.ParseInt(s, 0, 64) - if err == nil { - return true - } - _, err = strconv.ParseUint(s, 0, 64) - return err == nil + _, ok := parseIntLiteral(s) + return ok } func isFloat(s string) bool { diff --git a/rule_test.go b/rule_test.go index 3798731..93dfca1 100644 --- a/rule_test.go +++ b/rule_test.go @@ -990,6 +990,25 @@ func TestFunctionParsing(t *testing.T) { require.Equal(t, `func_name(fieldarg, 192.168.0.0, [1, 2, 3], nested_func(true))`, parsed.String()) } +func TestIntegerLiterals(t *testing.T) { + for expr, want := range map[string]any{ + `x == 10`: 10, + `x == 010`: 10, // leading zeros are decimal, not octal + `x == -010`: -10, + `x == 0x1f`: 31, + `x == 0o17`: 15, + `x == 0b101`: 5, + `x == 1_000`: 1000, + `x == 0`: 0, + `x == 00`: 0, + `x == 18446744073709551615`: uint64(18446744073709551615), + } { + assertRulep(t, expr, kv{"x": want}).Ok().DoesPass(true) + } + assertRulep(t, `18446744073709551615 > 9223372036854775807`, nil).Ok().DoesPass(true) + assertRulep(t, `-1 < 18446744073709551615`, nil).Ok().DoesPass(true) +} + func TestMacros(t *testing.T) { r := MustParse(`dst_k8s_svc() && user != "root"`) macros := MacroSet{} From 3037c9f59fc6826d726417860a344f8f8bdf3868 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:50:26 +0300 Subject: [PATCH 014/106] Keep compact output single-line with comments; fix token kinds and formatter spacing --- ast_api.go | 32 +++++++++++++++++++++- ast_test.go | 20 +++++++++++++- format.go | 77 +++++++++++++++++++++++++++++++++++------------------ 3 files changed, 101 insertions(+), 28 deletions(-) diff --git a/ast_api.go b/ast_api.go index 231e7f2..8d16d6e 100644 --- a/ast_api.go +++ b/ast_api.go @@ -265,8 +265,38 @@ func tokenKindString(kind int) string { return "MATCHES" case op_IN: return "IN" + case token_FIELD: + return "FIELD" + case token_STRING: + return "STRING" + case token_INT: + return "INT" + case token_FLOAT: + return "FLOAT" + case token_BOOL: + return "BOOL" + case token_IP: + return "IP" + case token_IP_CIDR: + return "IP_CIDR" + case token_HEX_STRING: + return "HEX_STRING" + case token_REGEX: + return "REGEX" + case token_LPAREN: + return "LPAREN" + case token_RPAREN: + return "RPAREN" + case token_LBRACKET: + return "LBRACKET" + case token_RBRACKET: + return "RBRACKET" + case token_DOT: + return "DOT" + case token_COMMA: + return "COMMA" default: - return valueTokenString(kind) + return "UNKNOWN" } } diff --git a/ast_test.go b/ast_test.go index 69b69c0..d865d66 100644 --- a/ast_test.go +++ b/ast_test.go @@ -109,7 +109,7 @@ func TestFormatPreservesComments(t *testing.T) { require.NoError(t, err) compact := Format(ast, Compact()) - require.Equal(t, "-- top\na == 1 -- explain\nand b =~ /x/", compact) + require.Equal(t, "/* top */ a == 1 /* explain */ and b =~ /x/", compact) multiline := Format(ast, Multiline(" ")) require.Equal(t, "-- top\na == 1 -- explain\nand b =~ /x/", multiline) @@ -119,6 +119,24 @@ func TestFormatPreservesComments(t *testing.T) { require.Equal(t, `a == 1 and b =~ /x/`, roundTrip.String()) } +func TestFormatCompactKeepsLineCommentsThatCannotBeBlocks(t *testing.T) { + ast, err := ParseAST("a == 1 -- has */ inside\nand /* multi\n line */ b == 2") + require.NoError(t, err) + require.Equal(t, "a == 1 -- has */ inside\nand /* multi line */ b == 2", Format(ast, Compact())) +} + +func TestFormatCompactWithCommentsKeepsCanonicalSpacing(t *testing.T) { + ast, err := ParseAST("(a == 1) -- x\nand f(x, 1) and items[0].name == 'n'") + require.NoError(t, err) + require.Equal(t, `(a == 1) /* x */ and f(x, 1) and items[0].name == 'n'`, Format(ast, Compact())) +} + +func TestFormatMultilineWithComments(t *testing.T) { + ast, err := ParseAST("(a == 1 or b == 2) -- c\nand f(x, 1) and x in [1, 2]") + require.NoError(t, err) + require.Equal(t, "(\n a == 1\n or b == 2\n) -- c\nand f(x, 1)\nand x in [1, 2]", Format(ast, Multiline(" "))) +} + func TestASTTokensIncludeTrivia(t *testing.T) { ast, err := ParseAST("field == 1 -- explain\n and other == 2") require.NoError(t, err) diff --git a/format.go b/format.go index e80788e..2b9b644 100644 --- a/format.go +++ b/format.go @@ -68,6 +68,11 @@ type tokenFormatter struct { atLine bool multiline bool indent string + // groups records, for each open parenthesis, whether it groups an + // expression (true) or encloses call arguments (false). + groups []bool + // spaceAfterComment separates a token from a preceding inline comment. + spaceAfterComment bool } func formatTokensPreservingComments(tokens []Token, mode PrintMode) string { @@ -91,35 +96,37 @@ func formatTokensPreservingComments(tokens []Token, mode PrintMode) string { } func (f *tokenFormatter) writeToken(tok Token) { - if f.multiline { - switch tok.Kind { - case "RPAREN": - if f.depth > 0 { - f.depth-- - } - if !f.atLine { - f.newline() - } - case "AND", "OR": - if !f.atLine { - f.newline() - } + closesGroup := false + if tok.Kind == "RPAREN" && len(f.groups) > 0 { + closesGroup = f.groups[len(f.groups)-1] + f.groups = f.groups[:len(f.groups)-1] + if closesGroup && f.depth > 0 { + f.depth-- } } + if f.multiline && (closesGroup || tok.Kind == "AND" || tok.Kind == "OR") && !f.atLine { + f.newline() + } - if f.needsSpace(tok.Kind) { + if f.spaceAfterComment && !f.atLine && tok.Kind != "RPAREN" { + f.b.WriteByte(' ') + } else if f.needsSpace(tok.Kind) { f.b.WriteByte(' ') - f.atLine = false } + f.spaceAfterComment = false f.b.WriteString(canonicalToken(tok)) f.atLine = false - if f.multiline && tok.Kind == "LPAREN" && f.prev != "FIELD" { - f.depth++ - f.newline() - } else if tok.Kind == "LPAREN" && f.prev != "FIELD" { - f.depth++ + if tok.Kind == "LPAREN" { + group := f.prev != "FIELD" + f.groups = append(f.groups, group) + if group { + f.depth++ + if f.multiline { + f.newline() + } + } } f.prev = tok.Kind } @@ -136,11 +143,22 @@ func (f *tokenFormatter) writeTrivia(trivia string) { if strings.HasPrefix(trivia, "--") { end := strings.IndexByte(trivia, '\n') if end < 0 { - f.writeComment(strings.TrimSpace(trivia)) + end = len(trivia) + } + comment := strings.TrimSpace(trivia[:end]) + // Compact output is single-line, so line comments become block + // comments unless their text would end the block early. + if text := strings.TrimSpace(comment[2:]); !f.multiline && !strings.Contains(text, "*/") { + if text != "" { + f.writeComment("/* " + text + " */") + } + } else { + f.writeComment(comment) + f.newline() + } + if end == len(trivia) { return } - f.writeComment(strings.TrimSpace(trivia[:end])) - f.newline() trivia = trivia[end+1:] continue } @@ -151,8 +169,12 @@ func (f *tokenFormatter) writeTrivia(trivia string) { return } comment := strings.TrimSpace(trivia[:end+2]) - f.writeComment(comment) trivia = trivia[end+2:] + if !f.multiline { + f.writeComment(strings.Join(strings.Fields(comment), " ")) + continue + } + f.writeComment(comment) if strings.Contains(trivia, "\n") || strings.Contains(comment, "\n") { f.newline() } @@ -168,15 +190,15 @@ func (f *tokenFormatter) writeComment(comment string) { } f.b.WriteString(comment) f.atLine = false + f.spaceAfterComment = true } func (f *tokenFormatter) newline() { f.b.WriteByte('\n') - f.atLine = true if f.multiline && f.depth > 0 { f.b.WriteString(strings.Repeat(f.indent, f.depth)) - f.atLine = false } + f.atLine = true } func (f *tokenFormatter) needsSpace(kind string) bool { @@ -192,6 +214,9 @@ func (f *tokenFormatter) needsSpace(kind string) bool { if kind == "LPAREN" && f.prev == "FIELD" { return false } + if kind == "LBRACKET" && (f.prev == "FIELD" || f.prev == "RBRACKET") { + return false + } return true } From 8aba88a9894aaec6a0225ee829e6ead75415c8d8 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:50:54 +0300 Subject: [PATCH 015/106] README: fix v2 import path, contains/in/array wording, matches alias --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f7be863..c51a6cf 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ A field on its own (without an operator) will check if the field contains a non- ## Usage Example ```go -import "github.com/qpoint-io/rulekit" +import "github.com/qpoint-io/rulekit/v2" // ... @@ -97,9 +97,9 @@ The Result also provides additional helper methods: | `>=` | `ge` | Greater than or equal to | | `<` | `lt` | Less than | | `<=` | `le` | Less than or equal to | -| `contains` | | Check if a value contains another value | -| `in` | | Check if a value is contained within an array or an IP within a CIDR. If the left side is an array, the check passes when ANY of its elements matches (same as `==` and `contains`) | -| `matches` | | Match against a regular expression | +| `contains` | | A string contains a substring, an array contains an element, or a CIDR contains an IP | +| `in` | | A value is an element of an array, or an IP is within a CIDR. If the left side is an array, the check passes when ANY of its elements matches (same as `==` and `contains`) | +| `matches` | `=~` | Match against a regular expression | ## Supported Types @@ -120,7 +120,7 @@ The Result also provides additional helper methods: | Type | Used As | Example | Description | | ------------ | ------- | ------------------------------ | --------------------------------------------------------------------------------------------- | -| **Array** | VALUE | `[1, "string", true]` | An array of mixed value types. Can be used with most operators including `in` and `contains`. | +| **Array** | VALUE | `[1, "string", true]` | An array of mixed value types. Use it on the right of `in`, `==` (any element is equal), or `!=` (no element is equal), or on the left of `contains`. | | **Function** | VALUE | `starts_with(url, "https://")` | A function call with optional arguments. Can be built-in or custom. | | **Macro** | VALUE | `isValidRequest()` | A zero-argument function that encapsulates a predefined rule. | From 5a3971dbc19b3499de420f07802b3743f9b247f1 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 16:52:41 +0300 Subject: [PATCH 016/106] Promote AST JSON format from the demo into the library Add json.Marshaler on *AST plus AST.JSON and AST.JSONSpan, with public JSONAST/JSONNode/JSONToken/JSONSpan types matching the shape the demo already emitted. ASTKind and Operator gain String methods. The demo now uses the library types and is its own module, so it is no longer part of the root module zip. --- README.md | 45 +++++++ ast_json.go | 203 ++++++++++++++++++++++++++++++ ast_json_test.go | 310 ++++++++++++++++++++++++++++++++++++++++++++++ demo/go.mod | 12 ++ demo/go.sum | 13 ++ demo/wasm/main.go | 236 +++++------------------------------ 6 files changed, 614 insertions(+), 205 deletions(-) create mode 100644 ast_json.go create mode 100644 ast_json_test.go create mode 100644 demo/go.mod create mode 100644 demo/go.sum diff --git a/README.md b/README.md index c51a6cf..a512136 100644 --- a/README.md +++ b/README.md @@ -212,6 +212,51 @@ The public AST view is read-only. Build edited expressions by parsing replacemen `AST.Tokens()` returns the token stream with byte spans plus leading and trailing whitespace/comment trivia for source-aware tools. +`json.Marshal(ast)` encodes the AST as JSON with the source, the node tree, and the tokens (excluding EOF). `ast.JSON()` returns the same document as Go values. + +```go +ast, err := rulekit.ParseAST(`age >= 18`) +if err != nil { /* ... */ } +data, err := json.Marshal(ast) +``` + +```json +{ + "source": "age >= 18", + "root": { + "id": "root", + "kind": "binary", + "text": "age >= 18", + "operator": ">=", + "raw": ">=", + "span": {"start": 0, "end": 9, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 10}, + "children": [ + { + "id": "root.0", + "kind": "path", + "text": "age", + "path": "age", + "span": {"start": 0, "end": 3, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 4} + }, + { + "id": "root.1", + "kind": "literal", + "text": "18", + "raw": "18", + "span": {"start": 7, "end": 9, "startLine": 1, "startColumn": 8, "endLine": 1, "endColumn": 10} + } + ] + }, + "tokens": [ + {"kind": "FIELD", "role": "id", "raw": "age", "span": {"start": 0, "end": 3, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 4}}, + {"kind": "GE", "role": "kw", "raw": ">=", "span": {"start": 4, "end": 6, "startLine": 1, "startColumn": 5, "endLine": 1, "endColumn": 7}}, + {"kind": "INT", "role": "num", "raw": "18", "span": {"start": 7, "end": 9, "startLine": 1, "startColumn": 8, "endLine": 1, "endColumn": 10}} + ] +} +``` + +Node IDs are tree positions: `root`, then `.`. `text` is the node's compact expression. Unary and binary nodes carry the normalized `operator` and its source spelling in `raw`; literals carry their source token in `raw`, calls their function name, and paths their rendered `path`. Spans are byte offsets with 1-based lines and byte columns. Token `role` is `id`, `str`, `num`, `kw`, or `pun`. + Use `Print` and `Format` for explicit output modes: ```go diff --git a/ast_json.go b/ast_json.go new file mode 100644 index 0000000..271d132 --- /dev/null +++ b/ast_json.go @@ -0,0 +1,203 @@ +package rulekit + +import ( + "encoding/json" + "sort" + "strconv" +) + +// JSONAST is the JSON form of a parsed AST. Marshal an *AST to produce it. +type JSONAST struct { + Source string `json:"source"` + Root *JSONNode `json:"root"` + Tokens []JSONToken `json:"tokens"` +} + +// JSONNode is the JSON form of one AST node. +// +// ID is the node's position in the tree: "root" for the root node and +// "." for each child. Text is the compact canonical +// expression for the node. Operator and Raw are set for unary and binary nodes +// (normalized and source spelling); Raw is the literal token for literal nodes +// and the function name for call nodes. Path is set for path nodes. +type JSONNode struct { + ID string `json:"id"` + Kind string `json:"kind"` + Text string `json:"text"` + Operator string `json:"operator,omitempty"` + Raw string `json:"raw,omitempty"` + Path string `json:"path,omitempty"` + Span JSONSpan `json:"span"` + Children []JSONNode `json:"children,omitempty"` +} + +// JSONToken is the JSON form of one source token. Role groups token kinds for +// syntax highlighting: "id" (fields), "str" (string-like literals), "num" +// (numbers), "kw" (operators), or "pun" (punctuation). +type JSONToken struct { + Kind string `json:"kind"` + Role string `json:"role"` + Raw string `json:"raw"` + Span JSONSpan `json:"span"` +} + +// JSONSpan is a byte span with 1-based line and column positions. Columns count +// bytes from the start of the line. +type JSONSpan struct { + Start int `json:"start"` + End int `json:"end"` + StartLine int `json:"startLine"` + StartColumn int `json:"startColumn"` + EndLine int `json:"endLine"` + EndColumn int `json:"endColumn"` +} + +// MarshalJSON encodes the AST as a JSONAST document. +func (a *AST) MarshalJSON() ([]byte, error) { + return json.Marshal(a.JSON()) +} + +// JSON returns the JSON form of the AST. Tokens exclude the EOF token. +func (a *AST) JSON() JSONAST { + if a == nil { + return JSONAST{} + } + lines := newLineIndex(a.source) + out := JSONAST{Source: a.source, Root: jsonNode(lines, a.Root(), "root"), Tokens: make([]JSONToken, 0, len(a.tokens))} + for _, tok := range a.tokens { + if tok.Kind == "EOF" { + continue + } + out.Tokens = append(out.Tokens, JSONToken{Kind: tok.Kind, Role: tokenRole(tok.Kind), Raw: tok.Raw, Span: lines.span(tok.Span)}) + } + return out +} + +// JSONSpan returns the JSON form of a span in the AST source. +func (a *AST) JSONSpan(span Span) JSONSpan { + return newLineIndex(a.Source()).span(span) +} + +// String returns the JSON kind name of an AST node kind. +func (k ASTKind) String() string { + switch k { + case ASTLiteral: + return "literal" + case ASTPath: + return "path" + case ASTArray: + return "array" + case ASTCall: + return "call" + case ASTUnary: + return "unary" + case ASTBinary: + return "binary" + default: + return "unknown" + } +} + +// String returns the normalized spelling of an operator. +func (o Operator) String() string { + switch o { + case OperatorNot: + return "not" + case OperatorAnd: + return "and" + case OperatorOr: + return "or" + case OperatorEQ: + return "==" + case OperatorNE: + return "!=" + case OperatorGT: + return ">" + case OperatorGE: + return ">=" + case OperatorLT: + return "<" + case OperatorLE: + return "<=" + case OperatorContains: + return "contains" + case OperatorMatches: + return "matches" + case OperatorIn: + return "in" + default: + return "unknown" + } +} + +func jsonNode(lines lineIndex, node ASTNode, id string) *JSONNode { + if node == nil { + return nil + } + out := &JSONNode{ID: id, Kind: node.Kind().String(), Text: node.String(), Span: lines.span(node.Span())} + switch n := node.(type) { + case *astUnary: + out.Operator, out.Raw = publicOperator(n.op).String(), n.rawOp + case *astBinary: + out.Operator, out.Raw = publicOperator(n.op).String(), n.rawOp + case *astLiteral: + out.Raw = n.raw + case *astPath: + out.Path = (&PathValue{segments: n.segments}).String() + case *astCall: + out.Raw = n.name + } + children := node.Children() + if len(children) > 0 { + out.Children = make([]JSONNode, 0, len(children)) + } + for i, child := range children { + out.Children = append(out.Children, *jsonNode(lines, child, id+"."+strconv.Itoa(i))) + } + return out +} + +func tokenRole(kind string) string { + switch kind { + case "FIELD": + return "id" + case "STRING", "REGEX", "IP", "IP_CIDR", "HEX_STRING", "BOOL": + return "str" + case "INT", "FLOAT": + return "num" + case "AND", "OR", "NOT", "EQ", "NE", "GT", "GE", "LT", "LE", "CONTAINS", "MATCHES", "IN": + return "kw" + default: + return "pun" + } +} + +// lineIndex maps byte offsets in a source to line and column positions. +type lineIndex struct { + starts []int // byte offset where each line starts + size int // source length in bytes +} + +func newLineIndex(source string) lineIndex { + starts := []int{0} + for i := range len(source) { + if source[i] == '\n' { + starts = append(starts, i+1) + } + } + return lineIndex{starts: starts, size: len(source)} +} + +func (l lineIndex) span(span Span) JSONSpan { + startLine, startColumn := l.position(span.Start) + endLine, endColumn := l.position(span.End) + return JSONSpan{Start: span.Start, End: span.End, StartLine: startLine, StartColumn: startColumn, EndLine: endLine, EndColumn: endColumn} +} + +// position returns the 1-based line and byte column of offset, clamped to the +// source bounds. +func (l lineIndex) position(offset int) (int, int) { + offset = min(max(offset, 0), l.size) + line := sort.Search(len(l.starts), func(i int) bool { return l.starts[i] > offset }) - 1 + return line + 1, offset - l.starts[line] + 1 +} diff --git a/ast_json_test.go b/ast_json_test.go new file mode 100644 index 0000000..b850e5c --- /dev/null +++ b/ast_json_test.go @@ -0,0 +1,310 @@ +package rulekit + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestASTJSON(t *testing.T) { + source := "req.headers[\"user-agent\"][0] matches /curl/i and not starts_with(path, \"/api\")\n" + + "or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\" or mac == 00:11:22:33:44:55" + ast, err := ParseAST(source) + require.NoError(t, err) + + got, err := json.Marshal(ast) + require.NoError(t, err) + require.JSONEq(t, astJSONGolden, string(got)) +} + +const astJSONGolden = ` +{ + "source": "req.headers[\"user-agent\"][0] matches /curl/i and not starts_with(path, \"/api\")\nor n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\" or mac == 00:11:22:33:44:55", + "root": { + "id": "root", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\" or mac == 00:11:22:33:44:55", + "operator": "or", + "raw": "or", + "span": {"start": 0, "end": 179, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 101}, + "children": [ + { + "id": "root.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\"", + "operator": "or", + "raw": "or", + "span": {"start": 0, "end": 151, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 73}, + "children": [ + { + "id": "root.0.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4]", + "operator": "or", + "raw": "or", + "span": {"start": 0, "end": 132, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 54}, + "children": [ + { + "id": "root.0.0.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true]", + "operator": "or", + "raw": "or", + "span": {"start": 0, "end": 101, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 23}, + "children": [ + { + "id": "root.0.0.0.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\")", + "operator": "and", + "raw": "and", + "span": {"start": 0, "end": 78, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 79}, + "children": [ + { + "id": "root.0.0.0.0.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i", + "operator": "matches", + "raw": "matches", + "span": {"start": 0, "end": 44, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 45}, + "children": [ + { + "id": "root.0.0.0.0.0.0", + "kind": "path", + "text": "req.headers[\"user-agent\"][0]", + "path": "req.headers[\"user-agent\"][0]", + "span": {"start": 0, "end": 28, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 29} + }, + { + "id": "root.0.0.0.0.0.1", + "kind": "literal", + "text": "/curl/i", + "raw": "/curl/i", + "span": {"start": 37, "end": 44, "startLine": 1, "startColumn": 38, "endLine": 1, "endColumn": 45} + } + ] + }, + { + "id": "root.0.0.0.0.1", + "kind": "unary", + "text": "not starts_with(path, \"/api\")", + "operator": "not", + "raw": "not", + "span": {"start": 49, "end": 78, "startLine": 1, "startColumn": 50, "endLine": 1, "endColumn": 79}, + "children": [ + { + "id": "root.0.0.0.0.1.0", + "kind": "call", + "text": "starts_with(path, \"/api\")", + "raw": "starts_with", + "span": {"start": 53, "end": 78, "startLine": 1, "startColumn": 54, "endLine": 1, "endColumn": 79}, + "children": [ + { + "id": "root.0.0.0.0.1.0.0", + "kind": "path", + "text": "path", + "path": "path", + "span": {"start": 65, "end": 69, "startLine": 1, "startColumn": 66, "endLine": 1, "endColumn": 70} + }, + { + "id": "root.0.0.0.0.1.0.1", + "kind": "literal", + "text": "\"/api\"", + "raw": "\"/api\"", + "span": {"start": 71, "end": 77, "startLine": 1, "startColumn": 72, "endLine": 1, "endColumn": 78} + } + ] + } + ] + } + ] + }, + { + "id": "root.0.0.0.1", + "kind": "binary", + "text": "n in [1, 2.5, true]", + "operator": "in", + "raw": "in", + "span": {"start": 82, "end": 101, "startLine": 2, "startColumn": 4, "endLine": 2, "endColumn": 23}, + "children": [ + { + "id": "root.0.0.0.1.0", + "kind": "path", + "text": "n", + "path": "n", + "span": {"start": 82, "end": 83, "startLine": 2, "startColumn": 4, "endLine": 2, "endColumn": 5} + }, + { + "id": "root.0.0.0.1.1", + "kind": "array", + "text": "[1, 2.5, true]", + "span": {"start": 87, "end": 101, "startLine": 2, "startColumn": 9, "endLine": 2, "endColumn": 23}, + "children": [ + { + "id": "root.0.0.0.1.1.0", + "kind": "literal", + "text": "1", + "raw": "1", + "span": {"start": 88, "end": 89, "startLine": 2, "startColumn": 10, "endLine": 2, "endColumn": 11} + }, + { + "id": "root.0.0.0.1.1.1", + "kind": "literal", + "text": "2.5", + "raw": "2.5", + "span": {"start": 91, "end": 94, "startLine": 2, "startColumn": 13, "endLine": 2, "endColumn": 16} + }, + { + "id": "root.0.0.0.1.1.2", + "kind": "literal", + "text": "true", + "raw": "true", + "span": {"start": 96, "end": 100, "startLine": 2, "startColumn": 18, "endLine": 2, "endColumn": 22} + } + ] + } + ] + } + ] + }, + { + "id": "root.0.0.1", + "kind": "binary", + "text": "ip in [10.0.0.0/8, 1.2.3.4]", + "operator": "in", + "raw": "in", + "span": {"start": 105, "end": 132, "startLine": 2, "startColumn": 27, "endLine": 2, "endColumn": 54}, + "children": [ + { + "id": "root.0.0.1.0", + "kind": "path", + "text": "ip", + "path": "ip", + "span": {"start": 105, "end": 107, "startLine": 2, "startColumn": 27, "endLine": 2, "endColumn": 29} + }, + { + "id": "root.0.0.1.1", + "kind": "array", + "text": "[10.0.0.0/8, 1.2.3.4]", + "span": {"start": 111, "end": 132, "startLine": 2, "startColumn": 33, "endLine": 2, "endColumn": 54}, + "children": [ + { + "id": "root.0.0.1.1.0", + "kind": "literal", + "text": "10.0.0.0/8", + "raw": "10.0.0.0/8", + "span": {"start": 112, "end": 122, "startLine": 2, "startColumn": 34, "endLine": 2, "endColumn": 44} + }, + { + "id": "root.0.0.1.1.1", + "kind": "literal", + "text": "1.2.3.4", + "raw": "1.2.3.4", + "span": {"start": 124, "end": 131, "startLine": 2, "startColumn": 46, "endLine": 2, "endColumn": 53} + } + ] + } + ] + } + ] + }, + { + "id": "root.0.1", + "kind": "binary", + "text": "body == x\"0a0b\"", + "operator": "==", + "raw": "==", + "span": {"start": 136, "end": 151, "startLine": 2, "startColumn": 58, "endLine": 2, "endColumn": 73}, + "children": [ + { + "id": "root.0.1.0", + "kind": "path", + "text": "body", + "path": "body", + "span": {"start": 136, "end": 140, "startLine": 2, "startColumn": 58, "endLine": 2, "endColumn": 62} + }, + { + "id": "root.0.1.1", + "kind": "literal", + "text": "x\"0a0b\"", + "raw": "x\"0a0b\"", + "span": {"start": 144, "end": 151, "startLine": 2, "startColumn": 66, "endLine": 2, "endColumn": 73} + } + ] + } + ] + }, + { + "id": "root.1", + "kind": "binary", + "text": "mac == 00:11:22:33:44:55", + "operator": "==", + "raw": "==", + "span": {"start": 155, "end": 179, "startLine": 2, "startColumn": 77, "endLine": 2, "endColumn": 101}, + "children": [ + { + "id": "root.1.0", + "kind": "path", + "text": "mac", + "path": "mac", + "span": {"start": 155, "end": 158, "startLine": 2, "startColumn": 77, "endLine": 2, "endColumn": 80} + }, + { + "id": "root.1.1", + "kind": "literal", + "text": "00:11:22:33:44:55", + "raw": "00:11:22:33:44:55", + "span": {"start": 162, "end": 179, "startLine": 2, "startColumn": 84, "endLine": 2, "endColumn": 101} + } + ] + } + ] + }, + "tokens": [ + {"kind": "FIELD", "role": "id", "raw": "req.headers", "span": {"start": 0, "end": 11, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 12}}, + {"kind": "LBRACKET", "role": "pun", "raw": "[", "span": {"start": 11, "end": 12, "startLine": 1, "startColumn": 12, "endLine": 1, "endColumn": 13}}, + {"kind": "STRING", "role": "str", "raw": "\"user-agent\"", "span": {"start": 12, "end": 24, "startLine": 1, "startColumn": 13, "endLine": 1, "endColumn": 25}}, + {"kind": "RBRACKET", "role": "pun", "raw": "]", "span": {"start": 24, "end": 25, "startLine": 1, "startColumn": 25, "endLine": 1, "endColumn": 26}}, + {"kind": "LBRACKET", "role": "pun", "raw": "[", "span": {"start": 25, "end": 26, "startLine": 1, "startColumn": 26, "endLine": 1, "endColumn": 27}}, + {"kind": "INT", "role": "num", "raw": "0", "span": {"start": 26, "end": 27, "startLine": 1, "startColumn": 27, "endLine": 1, "endColumn": 28}}, + {"kind": "RBRACKET", "role": "pun", "raw": "]", "span": {"start": 27, "end": 28, "startLine": 1, "startColumn": 28, "endLine": 1, "endColumn": 29}}, + {"kind": "MATCHES", "role": "kw", "raw": "matches", "span": {"start": 29, "end": 36, "startLine": 1, "startColumn": 30, "endLine": 1, "endColumn": 37}}, + {"kind": "REGEX", "role": "str", "raw": "/curl/i", "span": {"start": 37, "end": 44, "startLine": 1, "startColumn": 38, "endLine": 1, "endColumn": 45}}, + {"kind": "AND", "role": "kw", "raw": "and", "span": {"start": 45, "end": 48, "startLine": 1, "startColumn": 46, "endLine": 1, "endColumn": 49}}, + {"kind": "NOT", "role": "kw", "raw": "not", "span": {"start": 49, "end": 52, "startLine": 1, "startColumn": 50, "endLine": 1, "endColumn": 53}}, + {"kind": "FIELD", "role": "id", "raw": "starts_with", "span": {"start": 53, "end": 64, "startLine": 1, "startColumn": 54, "endLine": 1, "endColumn": 65}}, + {"kind": "LPAREN", "role": "pun", "raw": "(", "span": {"start": 64, "end": 65, "startLine": 1, "startColumn": 65, "endLine": 1, "endColumn": 66}}, + {"kind": "FIELD", "role": "id", "raw": "path", "span": {"start": 65, "end": 69, "startLine": 1, "startColumn": 66, "endLine": 1, "endColumn": 70}}, + {"kind": "COMMA", "role": "pun", "raw": ",", "span": {"start": 69, "end": 70, "startLine": 1, "startColumn": 70, "endLine": 1, "endColumn": 71}}, + {"kind": "STRING", "role": "str", "raw": "\"/api\"", "span": {"start": 71, "end": 77, "startLine": 1, "startColumn": 72, "endLine": 1, "endColumn": 78}}, + {"kind": "RPAREN", "role": "pun", "raw": ")", "span": {"start": 77, "end": 78, "startLine": 1, "startColumn": 78, "endLine": 1, "endColumn": 79}}, + {"kind": "OR", "role": "kw", "raw": "or", "span": {"start": 79, "end": 81, "startLine": 2, "startColumn": 1, "endLine": 2, "endColumn": 3}}, + {"kind": "FIELD", "role": "id", "raw": "n", "span": {"start": 82, "end": 83, "startLine": 2, "startColumn": 4, "endLine": 2, "endColumn": 5}}, + {"kind": "IN", "role": "kw", "raw": "in", "span": {"start": 84, "end": 86, "startLine": 2, "startColumn": 6, "endLine": 2, "endColumn": 8}}, + {"kind": "LBRACKET", "role": "pun", "raw": "[", "span": {"start": 87, "end": 88, "startLine": 2, "startColumn": 9, "endLine": 2, "endColumn": 10}}, + {"kind": "INT", "role": "num", "raw": "1", "span": {"start": 88, "end": 89, "startLine": 2, "startColumn": 10, "endLine": 2, "endColumn": 11}}, + {"kind": "COMMA", "role": "pun", "raw": ",", "span": {"start": 89, "end": 90, "startLine": 2, "startColumn": 11, "endLine": 2, "endColumn": 12}}, + {"kind": "FLOAT", "role": "num", "raw": "2.5", "span": {"start": 91, "end": 94, "startLine": 2, "startColumn": 13, "endLine": 2, "endColumn": 16}}, + {"kind": "COMMA", "role": "pun", "raw": ",", "span": {"start": 94, "end": 95, "startLine": 2, "startColumn": 16, "endLine": 2, "endColumn": 17}}, + {"kind": "BOOL", "role": "str", "raw": "true", "span": {"start": 96, "end": 100, "startLine": 2, "startColumn": 18, "endLine": 2, "endColumn": 22}}, + {"kind": "RBRACKET", "role": "pun", "raw": "]", "span": {"start": 100, "end": 101, "startLine": 2, "startColumn": 22, "endLine": 2, "endColumn": 23}}, + {"kind": "OR", "role": "kw", "raw": "or", "span": {"start": 102, "end": 104, "startLine": 2, "startColumn": 24, "endLine": 2, "endColumn": 26}}, + {"kind": "FIELD", "role": "id", "raw": "ip", "span": {"start": 105, "end": 107, "startLine": 2, "startColumn": 27, "endLine": 2, "endColumn": 29}}, + {"kind": "IN", "role": "kw", "raw": "in", "span": {"start": 108, "end": 110, "startLine": 2, "startColumn": 30, "endLine": 2, "endColumn": 32}}, + {"kind": "LBRACKET", "role": "pun", "raw": "[", "span": {"start": 111, "end": 112, "startLine": 2, "startColumn": 33, "endLine": 2, "endColumn": 34}}, + {"kind": "IP_CIDR", "role": "str", "raw": "10.0.0.0/8", "span": {"start": 112, "end": 122, "startLine": 2, "startColumn": 34, "endLine": 2, "endColumn": 44}}, + {"kind": "COMMA", "role": "pun", "raw": ",", "span": {"start": 122, "end": 123, "startLine": 2, "startColumn": 44, "endLine": 2, "endColumn": 45}}, + {"kind": "IP", "role": "str", "raw": "1.2.3.4", "span": {"start": 124, "end": 131, "startLine": 2, "startColumn": 46, "endLine": 2, "endColumn": 53}}, + {"kind": "RBRACKET", "role": "pun", "raw": "]", "span": {"start": 131, "end": 132, "startLine": 2, "startColumn": 53, "endLine": 2, "endColumn": 54}}, + {"kind": "OR", "role": "kw", "raw": "or", "span": {"start": 133, "end": 135, "startLine": 2, "startColumn": 55, "endLine": 2, "endColumn": 57}}, + {"kind": "FIELD", "role": "id", "raw": "body", "span": {"start": 136, "end": 140, "startLine": 2, "startColumn": 58, "endLine": 2, "endColumn": 62}}, + {"kind": "EQ", "role": "kw", "raw": "==", "span": {"start": 141, "end": 143, "startLine": 2, "startColumn": 63, "endLine": 2, "endColumn": 65}}, + {"kind": "HEX_STRING", "role": "str", "raw": "x\"0a0b\"", "span": {"start": 144, "end": 151, "startLine": 2, "startColumn": 66, "endLine": 2, "endColumn": 73}}, + {"kind": "OR", "role": "kw", "raw": "or", "span": {"start": 152, "end": 154, "startLine": 2, "startColumn": 74, "endLine": 2, "endColumn": 76}}, + {"kind": "FIELD", "role": "id", "raw": "mac", "span": {"start": 155, "end": 158, "startLine": 2, "startColumn": 77, "endLine": 2, "endColumn": 80}}, + {"kind": "EQ", "role": "kw", "raw": "==", "span": {"start": 159, "end": 161, "startLine": 2, "startColumn": 81, "endLine": 2, "endColumn": 83}}, + {"kind": "HEX_STRING", "role": "str", "raw": "00:11:22:33:44:55", "span": {"start": 162, "end": 179, "startLine": 2, "startColumn": 84, "endLine": 2, "endColumn": 101}} + ] +} +` diff --git a/demo/go.mod b/demo/go.mod new file mode 100644 index 0000000..721b8a7 --- /dev/null +++ b/demo/go.mod @@ -0,0 +1,12 @@ +module github.com/qpoint-io/rulekit/v2/demo + +go 1.26.2 + +require github.com/qpoint-io/rulekit/v2 v2.0.0-00010101000000-000000000000 + +require ( + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect +) + +replace github.com/qpoint-io/rulekit/v2 => ../ diff --git a/demo/go.sum b/demo/go.sum new file mode 100644 index 0000000..d34fb45 --- /dev/null +++ b/demo/go.sum @@ -0,0 +1,13 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/demo/wasm/main.go b/demo/wasm/main.go index 598d828..c0ea2f3 100644 --- a/demo/wasm/main.go +++ b/demo/wasm/main.go @@ -12,48 +12,21 @@ import ( rulekit "github.com/qpoint-io/rulekit/v2" ) -type spanDTO struct { - Start int `json:"start"` - End int `json:"end"` - StartLine int `json:"startLine"` - StartColumn int `json:"startColumn"` - EndLine int `json:"endLine"` - EndColumn int `json:"endColumn"` -} - -type astNodeDTO struct { - ID string `json:"id"` - Kind string `json:"kind"` - Text string `json:"text"` - Operator string `json:"operator,omitempty"` - Raw string `json:"raw,omitempty"` - Path string `json:"path,omitempty"` - Span spanDTO `json:"span"` - Children []astNodeDTO `json:"children,omitempty"` -} - -type tokenDTO struct { - Kind string `json:"kind"` - Role string `json:"role"` - Raw string `json:"raw"` - Span spanDTO `json:"span"` -} - type parseResponse struct { - OK bool `json:"ok"` - Source string `json:"source,omitempty"` - Compact string `json:"compact,omitempty"` - Multiline string `json:"multiline,omitempty"` - AST *astNodeDTO `json:"ast,omitempty"` - Tokens []tokenDTO `json:"tokens,omitempty"` - Error string `json:"error,omitempty"` + OK bool `json:"ok"` + Source string `json:"source,omitempty"` + Compact string `json:"compact,omitempty"` + Multiline string `json:"multiline,omitempty"` + AST *rulekit.JSONNode `json:"ast,omitempty"` + Tokens []rulekit.JSONToken `json:"tokens,omitempty"` + Error string `json:"error,omitempty"` } type sourceResponse struct { - OK bool `json:"ok"` - Source string `json:"source,omitempty"` - AST *astNodeDTO `json:"ast,omitempty"` - Error string `json:"error,omitempty"` + OK bool `json:"ok"` + Source string `json:"source,omitempty"` + AST *rulekit.JSONNode `json:"ast,omitempty"` + Error string `json:"error,omitempty"` } type nodeRef struct { @@ -70,13 +43,13 @@ type editRequest struct { } type evalResponse struct { - OK bool `json:"ok"` - Value any `json:"value,omitempty"` - Status string `json:"status,omitempty"` - Error string `json:"error,omitempty"` - MissingFields []string `json:"missingFields,omitempty"` - Trace *traceDTO `json:"trace,omitempty"` - AST *astNodeDTO `json:"ast,omitempty"` + OK bool `json:"ok"` + Value any `json:"value,omitempty"` + Status string `json:"status,omitempty"` + Error string `json:"error,omitempty"` + MissingFields []string `json:"missingFields,omitempty"` + Trace *traceDTO `json:"trace,omitempty"` + AST *rulekit.JSONNode `json:"ast,omitempty"` } type traceDTO struct { @@ -89,7 +62,7 @@ type traceDTO struct { Status string `json:"status,omitempty"` Active bool `json:"active,omitempty"` Pruned bool `json:"pruned,omitempty"` - Span *spanDTO `json:"span,omitempty"` + Span *rulekit.JSONSpan `json:"span,omitempty"` Children []*traceDTO `json:"children,omitempty"` } @@ -143,14 +116,14 @@ func parseRule(source string) parseResponse { if err != nil { return parseResponse{OK: false, Source: source, Error: err.Error()} } - root := ast.Root() + doc := ast.JSON() return parseResponse{ OK: true, Source: source, Compact: rulekit.Format(ast, rulekit.Compact()), Multiline: rulekit.Format(ast, rulekit.Multiline(" ")), - AST: buildASTDTO(source, root, "root"), - Tokens: buildTokens(source, ast.Tokens()), + AST: doc.Root, + Tokens: doc.Tokens, } } @@ -263,13 +236,13 @@ func evalRule(source string, inputJSON string) evalResponse { } rule, err := rulekit.Compile(ast) if err != nil { - return evalResponse{OK: false, Error: err.Error(), AST: buildASTDTO(source, ast.Root(), "root")} + return evalResponse{OK: false, Error: err.Error(), AST: ast.JSON().Root} } var input map[string]any decoder := json.NewDecoder(strings.NewReader(inputJSON)) decoder.UseNumber() if err := decoder.Decode(&input); err != nil { - return evalResponse{OK: false, Error: "input json: " + err.Error(), AST: buildASTDTO(source, ast.Root(), "root")} + return evalResponse{OK: false, Error: "input json: " + err.Error(), AST: ast.JSON().Root} } res := rule.Eval(context.Background(), jsonInput(input), rulekit.Opts{Trace: true}) out := evalResponse{ @@ -277,8 +250,8 @@ func evalRule(source string, inputJSON string) evalResponse { Value: res.Value, Status: resultStatus(res), MissingFields: res.MissingFields, - Trace: buildTraceDTO(source, res.Trace), - AST: buildASTDTO(source, ast.Root(), "root"), + Trace: buildTraceDTO(ast, res.Trace), + AST: ast.JSON().Root, } if res.Error != nil { out.Error = res.Error.Error() @@ -311,45 +284,7 @@ func printMode(mode string) rulekit.PrintMode { return rulekit.Compact() } -func buildASTDTO(source string, node rulekit.ASTNode, id string) *astNodeDTO { - if node == nil { - return nil - } - span := node.Span() - out := &astNodeDTO{ID: id, Kind: kindString(node.Kind()), Text: node.String(), Span: spanFromSource(source, span)} - if op := operatorString(rulekit.NodeOperator(node)); op != "" { - out.Operator = op - out.Raw = rulekit.NodeRawOperator(node) - } - if raw, ok := rulekit.NodeLiteral(node); ok { - out.Raw = raw - } - if segments, ok := rulekit.NodePath(node); ok { - out.Path = pathString(segments) - } - if name, ok := rulekit.NodeCallName(node); ok { - out.Raw = name - } - children := node.Children() - for i, child := range children { - childID := fmt.Sprintf("%s.%d", id, i) - out.Children = append(out.Children, *buildASTDTO(source, child, childID)) - } - return out -} - -func buildTokens(source string, tokens []rulekit.Token) []tokenDTO { - out := make([]tokenDTO, 0, len(tokens)) - for _, tok := range tokens { - if tok.Kind == "EOF" { - continue - } - out = append(out, tokenDTO{Kind: tok.Kind, Role: tokenRole(tok.Kind), Raw: tok.Raw, Span: spanFromSource(source, tok.Span)}) - } - return out -} - -func buildTraceDTO(source string, trace *rulekit.Trace) *traceDTO { +func buildTraceDTO(ast *rulekit.AST, trace *rulekit.Trace) *traceDTO { if trace == nil { return nil } @@ -366,12 +301,12 @@ func buildTraceDTO(source string, trace *rulekit.Trace) *traceDTO { out.Error = trace.Error.Error() } if trace.Node != nil { - out.Kind = kindString(trace.Node.Kind()) - span := spanFromSource(source, trace.Node.Span()) + out.Kind = trace.Node.Kind().String() + span := ast.JSONSpan(trace.Node.Span()) out.Span = &span } for _, child := range trace.Children { - out.Children = append(out.Children, buildTraceDTO(source, child)) + out.Children = append(out.Children, buildTraceDTO(ast, child)) } return out } @@ -407,7 +342,7 @@ func rewriteOperator(source string, node rulekit.ASTNode, next string) (string, } raw := rulekit.NodeRawOperator(node) if raw == "" { - raw = operatorString(rulekit.NodeOperator(node)) + raw = rulekit.NodeOperator(node).String() } left := children[0].Span() right := children[1].Span() @@ -433,115 +368,6 @@ func sourceForNode(source string, node rulekit.ASTNode) string { return source[span.Start:span.End] } -func spanFromSource(source string, span rulekit.Span) spanDTO { - startLine, startColumn := lineColumn(source, span.Start) - endLine, endColumn := lineColumn(source, span.End) - return spanDTO{Start: span.Start, End: span.End, StartLine: startLine, StartColumn: startColumn, EndLine: endLine, EndColumn: endColumn} -} - -func lineColumn(source string, offset int) (int, int) { - line, col := 1, 1 - if offset < 0 { - offset = 0 - } - if offset > len(source) { - offset = len(source) - } - for i := 0; i < offset; i++ { - if source[i] == '\n' { - line++ - col = 1 - } else { - col++ - } - } - return line, col -} - -func kindString(kind rulekit.ASTKind) string { - switch kind { - case rulekit.ASTLiteral: - return "literal" - case rulekit.ASTPath: - return "path" - case rulekit.ASTArray: - return "array" - case rulekit.ASTCall: - return "call" - case rulekit.ASTUnary: - return "unary" - case rulekit.ASTBinary: - return "binary" - default: - return "unknown" - } -} - -func operatorString(op rulekit.Operator) string { - switch op { - case rulekit.OperatorNot: - return "not" - case rulekit.OperatorAnd: - return "and" - case rulekit.OperatorOr: - return "or" - case rulekit.OperatorEQ: - return "==" - case rulekit.OperatorNE: - return "!=" - case rulekit.OperatorGT: - return ">" - case rulekit.OperatorGE: - return ">=" - case rulekit.OperatorLT: - return "<" - case rulekit.OperatorLE: - return "<=" - case rulekit.OperatorContains: - return "contains" - case rulekit.OperatorMatches: - return "matches" - case rulekit.OperatorIn: - return "in" - default: - return "" - } -} - -func pathString(segments []rulekit.PathSegment) string { - var b strings.Builder - for i, segment := range segments { - if segment.IsIndex { - b.WriteString(fmt.Sprintf("[%d]", segment.Index)) - continue - } - if i > 0 && !segment.Bracket { - b.WriteString(".") - } - if segment.Bracket { - b.WriteString(fmt.Sprintf("[%q]", segment.Key)) - } else { - b.WriteString(segment.Key) - } - } - return b.String() -} - -func tokenRole(kind string) string { - switch kind { - case "FIELD": - return "id" - case "STRING", "REGEX", "IP", "IP_CIDR", "HEX_STRING", "BOOL": - return "str" - case "INT", "FLOAT": - return "num" - case "AND", "OR", "NOT", "EQ", "NE", "GT", "GE", "LT", "LE", "CONTAINS", "MATCHES", "IN": - return "kw" - default: - return "pun" - } -} - type jsonInput map[string]any func (j jsonInput) Get(ctx context.Context, path []rulekit.PathSegment) (any, bool, error) { From aef850127353fbfff0614f1d630c60e63c2c44eb Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:06:14 +0300 Subject: [PATCH 017/106] Move language-neutral tests into JSON test vectors Add testdata/vectors (eval, literals, paths, fields, regex, functions, macros, parse_errors, print, trace, json_input, ast_json) with a schema README, and vectors_test.go, which strictly decodes and runs every vector file. Remove the Go tests the vectors now cover; keep Go-only coverage (AST/token/rewrite APIs, custom functions, Opts.Validate, input adapters, typed-slice and non-UTF-8 inputs, error wording, fuzzing, benchmarks). --- ast_json_test.go | 310 ---------- ast_test.go | 238 -------- fields_test.go | 118 ---- functions_stdlib_test.go | 41 -- json_test.go | 62 +- parser_test.go | 33 - rule_test.go | 952 ++--------------------------- rule_util_test.go | 112 ---- testdata/vectors/README.md | 112 ++++ testdata/vectors/ast_json.json | 674 ++++++++++++++++++++ testdata/vectors/eval.json | 515 ++++++++++++++++ testdata/vectors/fields.json | 251 ++++++++ testdata/vectors/functions.json | 65 ++ testdata/vectors/json_input.json | 232 +++++++ testdata/vectors/literals.json | 206 +++++++ testdata/vectors/macros.json | 26 + testdata/vectors/parse_errors.json | 32 + testdata/vectors/paths.json | 61 ++ testdata/vectors/print.json | 119 ++++ testdata/vectors/regex.json | 63 ++ testdata/vectors/trace.json | 102 ++++ vectors_test.go | 472 ++++++++++++++ 22 files changed, 2992 insertions(+), 1804 deletions(-) delete mode 100644 ast_json_test.go delete mode 100644 fields_test.go delete mode 100644 functions_stdlib_test.go delete mode 100644 parser_test.go create mode 100644 testdata/vectors/README.md create mode 100644 testdata/vectors/ast_json.json create mode 100644 testdata/vectors/eval.json create mode 100644 testdata/vectors/fields.json create mode 100644 testdata/vectors/functions.json create mode 100644 testdata/vectors/json_input.json create mode 100644 testdata/vectors/literals.json create mode 100644 testdata/vectors/macros.json create mode 100644 testdata/vectors/parse_errors.json create mode 100644 testdata/vectors/paths.json create mode 100644 testdata/vectors/print.json create mode 100644 testdata/vectors/regex.json create mode 100644 testdata/vectors/trace.json create mode 100644 vectors_test.go diff --git a/ast_json_test.go b/ast_json_test.go deleted file mode 100644 index b850e5c..0000000 --- a/ast_json_test.go +++ /dev/null @@ -1,310 +0,0 @@ -package rulekit - -import ( - "encoding/json" - "testing" - - "github.com/stretchr/testify/require" -) - -func TestASTJSON(t *testing.T) { - source := "req.headers[\"user-agent\"][0] matches /curl/i and not starts_with(path, \"/api\")\n" + - "or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\" or mac == 00:11:22:33:44:55" - ast, err := ParseAST(source) - require.NoError(t, err) - - got, err := json.Marshal(ast) - require.NoError(t, err) - require.JSONEq(t, astJSONGolden, string(got)) -} - -const astJSONGolden = ` -{ - "source": "req.headers[\"user-agent\"][0] matches /curl/i and not starts_with(path, \"/api\")\nor n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\" or mac == 00:11:22:33:44:55", - "root": { - "id": "root", - "kind": "binary", - "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\" or mac == 00:11:22:33:44:55", - "operator": "or", - "raw": "or", - "span": {"start": 0, "end": 179, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 101}, - "children": [ - { - "id": "root.0", - "kind": "binary", - "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\"", - "operator": "or", - "raw": "or", - "span": {"start": 0, "end": 151, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 73}, - "children": [ - { - "id": "root.0.0", - "kind": "binary", - "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4]", - "operator": "or", - "raw": "or", - "span": {"start": 0, "end": 132, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 54}, - "children": [ - { - "id": "root.0.0.0", - "kind": "binary", - "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true]", - "operator": "or", - "raw": "or", - "span": {"start": 0, "end": 101, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 23}, - "children": [ - { - "id": "root.0.0.0.0", - "kind": "binary", - "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\")", - "operator": "and", - "raw": "and", - "span": {"start": 0, "end": 78, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 79}, - "children": [ - { - "id": "root.0.0.0.0.0", - "kind": "binary", - "text": "req.headers[\"user-agent\"][0] =~ /curl/i", - "operator": "matches", - "raw": "matches", - "span": {"start": 0, "end": 44, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 45}, - "children": [ - { - "id": "root.0.0.0.0.0.0", - "kind": "path", - "text": "req.headers[\"user-agent\"][0]", - "path": "req.headers[\"user-agent\"][0]", - "span": {"start": 0, "end": 28, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 29} - }, - { - "id": "root.0.0.0.0.0.1", - "kind": "literal", - "text": "/curl/i", - "raw": "/curl/i", - "span": {"start": 37, "end": 44, "startLine": 1, "startColumn": 38, "endLine": 1, "endColumn": 45} - } - ] - }, - { - "id": "root.0.0.0.0.1", - "kind": "unary", - "text": "not starts_with(path, \"/api\")", - "operator": "not", - "raw": "not", - "span": {"start": 49, "end": 78, "startLine": 1, "startColumn": 50, "endLine": 1, "endColumn": 79}, - "children": [ - { - "id": "root.0.0.0.0.1.0", - "kind": "call", - "text": "starts_with(path, \"/api\")", - "raw": "starts_with", - "span": {"start": 53, "end": 78, "startLine": 1, "startColumn": 54, "endLine": 1, "endColumn": 79}, - "children": [ - { - "id": "root.0.0.0.0.1.0.0", - "kind": "path", - "text": "path", - "path": "path", - "span": {"start": 65, "end": 69, "startLine": 1, "startColumn": 66, "endLine": 1, "endColumn": 70} - }, - { - "id": "root.0.0.0.0.1.0.1", - "kind": "literal", - "text": "\"/api\"", - "raw": "\"/api\"", - "span": {"start": 71, "end": 77, "startLine": 1, "startColumn": 72, "endLine": 1, "endColumn": 78} - } - ] - } - ] - } - ] - }, - { - "id": "root.0.0.0.1", - "kind": "binary", - "text": "n in [1, 2.5, true]", - "operator": "in", - "raw": "in", - "span": {"start": 82, "end": 101, "startLine": 2, "startColumn": 4, "endLine": 2, "endColumn": 23}, - "children": [ - { - "id": "root.0.0.0.1.0", - "kind": "path", - "text": "n", - "path": "n", - "span": {"start": 82, "end": 83, "startLine": 2, "startColumn": 4, "endLine": 2, "endColumn": 5} - }, - { - "id": "root.0.0.0.1.1", - "kind": "array", - "text": "[1, 2.5, true]", - "span": {"start": 87, "end": 101, "startLine": 2, "startColumn": 9, "endLine": 2, "endColumn": 23}, - "children": [ - { - "id": "root.0.0.0.1.1.0", - "kind": "literal", - "text": "1", - "raw": "1", - "span": {"start": 88, "end": 89, "startLine": 2, "startColumn": 10, "endLine": 2, "endColumn": 11} - }, - { - "id": "root.0.0.0.1.1.1", - "kind": "literal", - "text": "2.5", - "raw": "2.5", - "span": {"start": 91, "end": 94, "startLine": 2, "startColumn": 13, "endLine": 2, "endColumn": 16} - }, - { - "id": "root.0.0.0.1.1.2", - "kind": "literal", - "text": "true", - "raw": "true", - "span": {"start": 96, "end": 100, "startLine": 2, "startColumn": 18, "endLine": 2, "endColumn": 22} - } - ] - } - ] - } - ] - }, - { - "id": "root.0.0.1", - "kind": "binary", - "text": "ip in [10.0.0.0/8, 1.2.3.4]", - "operator": "in", - "raw": "in", - "span": {"start": 105, "end": 132, "startLine": 2, "startColumn": 27, "endLine": 2, "endColumn": 54}, - "children": [ - { - "id": "root.0.0.1.0", - "kind": "path", - "text": "ip", - "path": "ip", - "span": {"start": 105, "end": 107, "startLine": 2, "startColumn": 27, "endLine": 2, "endColumn": 29} - }, - { - "id": "root.0.0.1.1", - "kind": "array", - "text": "[10.0.0.0/8, 1.2.3.4]", - "span": {"start": 111, "end": 132, "startLine": 2, "startColumn": 33, "endLine": 2, "endColumn": 54}, - "children": [ - { - "id": "root.0.0.1.1.0", - "kind": "literal", - "text": "10.0.0.0/8", - "raw": "10.0.0.0/8", - "span": {"start": 112, "end": 122, "startLine": 2, "startColumn": 34, "endLine": 2, "endColumn": 44} - }, - { - "id": "root.0.0.1.1.1", - "kind": "literal", - "text": "1.2.3.4", - "raw": "1.2.3.4", - "span": {"start": 124, "end": 131, "startLine": 2, "startColumn": 46, "endLine": 2, "endColumn": 53} - } - ] - } - ] - } - ] - }, - { - "id": "root.0.1", - "kind": "binary", - "text": "body == x\"0a0b\"", - "operator": "==", - "raw": "==", - "span": {"start": 136, "end": 151, "startLine": 2, "startColumn": 58, "endLine": 2, "endColumn": 73}, - "children": [ - { - "id": "root.0.1.0", - "kind": "path", - "text": "body", - "path": "body", - "span": {"start": 136, "end": 140, "startLine": 2, "startColumn": 58, "endLine": 2, "endColumn": 62} - }, - { - "id": "root.0.1.1", - "kind": "literal", - "text": "x\"0a0b\"", - "raw": "x\"0a0b\"", - "span": {"start": 144, "end": 151, "startLine": 2, "startColumn": 66, "endLine": 2, "endColumn": 73} - } - ] - } - ] - }, - { - "id": "root.1", - "kind": "binary", - "text": "mac == 00:11:22:33:44:55", - "operator": "==", - "raw": "==", - "span": {"start": 155, "end": 179, "startLine": 2, "startColumn": 77, "endLine": 2, "endColumn": 101}, - "children": [ - { - "id": "root.1.0", - "kind": "path", - "text": "mac", - "path": "mac", - "span": {"start": 155, "end": 158, "startLine": 2, "startColumn": 77, "endLine": 2, "endColumn": 80} - }, - { - "id": "root.1.1", - "kind": "literal", - "text": "00:11:22:33:44:55", - "raw": "00:11:22:33:44:55", - "span": {"start": 162, "end": 179, "startLine": 2, "startColumn": 84, "endLine": 2, "endColumn": 101} - } - ] - } - ] - }, - "tokens": [ - {"kind": "FIELD", "role": "id", "raw": "req.headers", "span": {"start": 0, "end": 11, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 12}}, - {"kind": "LBRACKET", "role": "pun", "raw": "[", "span": {"start": 11, "end": 12, "startLine": 1, "startColumn": 12, "endLine": 1, "endColumn": 13}}, - {"kind": "STRING", "role": "str", "raw": "\"user-agent\"", "span": {"start": 12, "end": 24, "startLine": 1, "startColumn": 13, "endLine": 1, "endColumn": 25}}, - {"kind": "RBRACKET", "role": "pun", "raw": "]", "span": {"start": 24, "end": 25, "startLine": 1, "startColumn": 25, "endLine": 1, "endColumn": 26}}, - {"kind": "LBRACKET", "role": "pun", "raw": "[", "span": {"start": 25, "end": 26, "startLine": 1, "startColumn": 26, "endLine": 1, "endColumn": 27}}, - {"kind": "INT", "role": "num", "raw": "0", "span": {"start": 26, "end": 27, "startLine": 1, "startColumn": 27, "endLine": 1, "endColumn": 28}}, - {"kind": "RBRACKET", "role": "pun", "raw": "]", "span": {"start": 27, "end": 28, "startLine": 1, "startColumn": 28, "endLine": 1, "endColumn": 29}}, - {"kind": "MATCHES", "role": "kw", "raw": "matches", "span": {"start": 29, "end": 36, "startLine": 1, "startColumn": 30, "endLine": 1, "endColumn": 37}}, - {"kind": "REGEX", "role": "str", "raw": "/curl/i", "span": {"start": 37, "end": 44, "startLine": 1, "startColumn": 38, "endLine": 1, "endColumn": 45}}, - {"kind": "AND", "role": "kw", "raw": "and", "span": {"start": 45, "end": 48, "startLine": 1, "startColumn": 46, "endLine": 1, "endColumn": 49}}, - {"kind": "NOT", "role": "kw", "raw": "not", "span": {"start": 49, "end": 52, "startLine": 1, "startColumn": 50, "endLine": 1, "endColumn": 53}}, - {"kind": "FIELD", "role": "id", "raw": "starts_with", "span": {"start": 53, "end": 64, "startLine": 1, "startColumn": 54, "endLine": 1, "endColumn": 65}}, - {"kind": "LPAREN", "role": "pun", "raw": "(", "span": {"start": 64, "end": 65, "startLine": 1, "startColumn": 65, "endLine": 1, "endColumn": 66}}, - {"kind": "FIELD", "role": "id", "raw": "path", "span": {"start": 65, "end": 69, "startLine": 1, "startColumn": 66, "endLine": 1, "endColumn": 70}}, - {"kind": "COMMA", "role": "pun", "raw": ",", "span": {"start": 69, "end": 70, "startLine": 1, "startColumn": 70, "endLine": 1, "endColumn": 71}}, - {"kind": "STRING", "role": "str", "raw": "\"/api\"", "span": {"start": 71, "end": 77, "startLine": 1, "startColumn": 72, "endLine": 1, "endColumn": 78}}, - {"kind": "RPAREN", "role": "pun", "raw": ")", "span": {"start": 77, "end": 78, "startLine": 1, "startColumn": 78, "endLine": 1, "endColumn": 79}}, - {"kind": "OR", "role": "kw", "raw": "or", "span": {"start": 79, "end": 81, "startLine": 2, "startColumn": 1, "endLine": 2, "endColumn": 3}}, - {"kind": "FIELD", "role": "id", "raw": "n", "span": {"start": 82, "end": 83, "startLine": 2, "startColumn": 4, "endLine": 2, "endColumn": 5}}, - {"kind": "IN", "role": "kw", "raw": "in", "span": {"start": 84, "end": 86, "startLine": 2, "startColumn": 6, "endLine": 2, "endColumn": 8}}, - {"kind": "LBRACKET", "role": "pun", "raw": "[", "span": {"start": 87, "end": 88, "startLine": 2, "startColumn": 9, "endLine": 2, "endColumn": 10}}, - {"kind": "INT", "role": "num", "raw": "1", "span": {"start": 88, "end": 89, "startLine": 2, "startColumn": 10, "endLine": 2, "endColumn": 11}}, - {"kind": "COMMA", "role": "pun", "raw": ",", "span": {"start": 89, "end": 90, "startLine": 2, "startColumn": 11, "endLine": 2, "endColumn": 12}}, - {"kind": "FLOAT", "role": "num", "raw": "2.5", "span": {"start": 91, "end": 94, "startLine": 2, "startColumn": 13, "endLine": 2, "endColumn": 16}}, - {"kind": "COMMA", "role": "pun", "raw": ",", "span": {"start": 94, "end": 95, "startLine": 2, "startColumn": 16, "endLine": 2, "endColumn": 17}}, - {"kind": "BOOL", "role": "str", "raw": "true", "span": {"start": 96, "end": 100, "startLine": 2, "startColumn": 18, "endLine": 2, "endColumn": 22}}, - {"kind": "RBRACKET", "role": "pun", "raw": "]", "span": {"start": 100, "end": 101, "startLine": 2, "startColumn": 22, "endLine": 2, "endColumn": 23}}, - {"kind": "OR", "role": "kw", "raw": "or", "span": {"start": 102, "end": 104, "startLine": 2, "startColumn": 24, "endLine": 2, "endColumn": 26}}, - {"kind": "FIELD", "role": "id", "raw": "ip", "span": {"start": 105, "end": 107, "startLine": 2, "startColumn": 27, "endLine": 2, "endColumn": 29}}, - {"kind": "IN", "role": "kw", "raw": "in", "span": {"start": 108, "end": 110, "startLine": 2, "startColumn": 30, "endLine": 2, "endColumn": 32}}, - {"kind": "LBRACKET", "role": "pun", "raw": "[", "span": {"start": 111, "end": 112, "startLine": 2, "startColumn": 33, "endLine": 2, "endColumn": 34}}, - {"kind": "IP_CIDR", "role": "str", "raw": "10.0.0.0/8", "span": {"start": 112, "end": 122, "startLine": 2, "startColumn": 34, "endLine": 2, "endColumn": 44}}, - {"kind": "COMMA", "role": "pun", "raw": ",", "span": {"start": 122, "end": 123, "startLine": 2, "startColumn": 44, "endLine": 2, "endColumn": 45}}, - {"kind": "IP", "role": "str", "raw": "1.2.3.4", "span": {"start": 124, "end": 131, "startLine": 2, "startColumn": 46, "endLine": 2, "endColumn": 53}}, - {"kind": "RBRACKET", "role": "pun", "raw": "]", "span": {"start": 131, "end": 132, "startLine": 2, "startColumn": 53, "endLine": 2, "endColumn": 54}}, - {"kind": "OR", "role": "kw", "raw": "or", "span": {"start": 133, "end": 135, "startLine": 2, "startColumn": 55, "endLine": 2, "endColumn": 57}}, - {"kind": "FIELD", "role": "id", "raw": "body", "span": {"start": 136, "end": 140, "startLine": 2, "startColumn": 58, "endLine": 2, "endColumn": 62}}, - {"kind": "EQ", "role": "kw", "raw": "==", "span": {"start": 141, "end": 143, "startLine": 2, "startColumn": 63, "endLine": 2, "endColumn": 65}}, - {"kind": "HEX_STRING", "role": "str", "raw": "x\"0a0b\"", "span": {"start": 144, "end": 151, "startLine": 2, "startColumn": 66, "endLine": 2, "endColumn": 73}}, - {"kind": "OR", "role": "kw", "raw": "or", "span": {"start": 152, "end": 154, "startLine": 2, "startColumn": 74, "endLine": 2, "endColumn": 76}}, - {"kind": "FIELD", "role": "id", "raw": "mac", "span": {"start": 155, "end": 158, "startLine": 2, "startColumn": 77, "endLine": 2, "endColumn": 80}}, - {"kind": "EQ", "role": "kw", "raw": "==", "span": {"start": 159, "end": 161, "startLine": 2, "startColumn": 81, "endLine": 2, "endColumn": 83}}, - {"kind": "HEX_STRING", "role": "str", "raw": "00:11:22:33:44:55", "span": {"start": 162, "end": 179, "startLine": 2, "startColumn": 84, "endLine": 2, "endColumn": 101}} - ] -} -` diff --git a/ast_test.go b/ast_test.go index d865d66..6e39a0f 100644 --- a/ast_test.go +++ b/ast_test.go @@ -1,62 +1,11 @@ package rulekit import ( - "net" "testing" "github.com/stretchr/testify/require" ) -func TestPrintASTCompact(t *testing.T) { - tests := map[string]string{ - `field == "value" and other != 1`: `field == "value" and other != 1`, - `domain matches /example\.com$/ OR tags == "x"`: `domain =~ /example\.com$/ or tags == "x"`, - `a or (b and c)`: `a or b and c`, - `(a or b) and c`: `(a or b) and c`, - `request.headers["user-agent"] == "curl"`: `request.headers["user-agent"] == "curl"`, - `items[0].name in ["first", "second"]`: `items[0].name in ["first", "second"]`, - `starts_with(path, "/api")`: `starts_with(path, "/api")`, - } - - for input, want := range tests { - t.Run(input, func(t *testing.T) { - ast, err := parseAST(input) - require.NoError(t, err) - require.Equal(t, want, printAST(ast)) - }) - } -} - -func TestPrintASTSemanticRoundTrip(t *testing.T) { - expressions := []string{ - `field == "value" and other != 1`, - `domain matches /example\.com$/ OR tags == "x"`, - `(a or b) and c`, - `not (a == 1 or b == 2)`, - `request.headers["user-agent"] == "curl"`, - `items[0].name in ["first", "second"]`, - `ip in 192.168.0.0/16`, - `starts_with(path, "/api")`, - } - - for _, input := range expressions { - t.Run(input, func(t *testing.T) { - ast, err := parseAST(input) - require.NoError(t, err) - - printed := printAST(ast) - roundTripped, err := parseAST(printed) - require.NoError(t, err) - - originalRule, err := lowerAST(ast) - require.NoError(t, err) - printedRule, err := lowerAST(roundTripped) - require.NoError(t, err) - require.Equal(t, originalRule.String(), printedRule.String()) - }) - } -} - func TestPublicASTAPI(t *testing.T) { ast, err := ParseAST(`request.headers["user-agent"] == "curl"`) require.NoError(t, err) @@ -82,61 +31,6 @@ func TestPublicASTAPI(t *testing.T) { require.Equal(t, `request.headers["user-agent"] == "curl"`, rule.String()) } -func TestFormat(t *testing.T) { - ast, err := ParseAST(`(a == 1 or b == 2) and c == 3 and request.headers["user-agent"] == "curl"`) - require.NoError(t, err) - - compact := Format(ast, Compact()) - require.Equal(t, `(a == 1 or b == 2) and c == 3 and request.headers["user-agent"] == "curl"`, compact) - require.Equal(t, `(a == 1 or b == 2) and c == 3 and request.headers["user-agent"] == "curl"`, MustParse(ast.Source()).Print(Compact())) - require.Equal(t, ast.Source(), MustParse(ast.Source()).Print(Source())) - - multiline := Format(ast, Multiline(" ")) - require.Equal(t, `( - a == 1 - or b == 2 -) -and c == 3 -and request.headers["user-agent"] == "curl"`, multiline) - - roundTrip, err := ParseAST(multiline) - require.NoError(t, err) - require.Equal(t, compact, roundTrip.String()) -} - -func TestFormatPreservesComments(t *testing.T) { - ast, err := ParseAST("-- top\na==1 -- explain\n and b matches /x/") - require.NoError(t, err) - - compact := Format(ast, Compact()) - require.Equal(t, "/* top */ a == 1 /* explain */ and b =~ /x/", compact) - - multiline := Format(ast, Multiline(" ")) - require.Equal(t, "-- top\na == 1 -- explain\nand b =~ /x/", multiline) - - roundTrip, err := ParseAST(compact) - require.NoError(t, err) - require.Equal(t, `a == 1 and b =~ /x/`, roundTrip.String()) -} - -func TestFormatCompactKeepsLineCommentsThatCannotBeBlocks(t *testing.T) { - ast, err := ParseAST("a == 1 -- has */ inside\nand /* multi\n line */ b == 2") - require.NoError(t, err) - require.Equal(t, "a == 1 -- has */ inside\nand /* multi line */ b == 2", Format(ast, Compact())) -} - -func TestFormatCompactWithCommentsKeepsCanonicalSpacing(t *testing.T) { - ast, err := ParseAST("(a == 1) -- x\nand f(x, 1) and items[0].name == 'n'") - require.NoError(t, err) - require.Equal(t, `(a == 1) /* x */ and f(x, 1) and items[0].name == 'n'`, Format(ast, Compact())) -} - -func TestFormatMultilineWithComments(t *testing.T) { - ast, err := ParseAST("(a == 1 or b == 2) -- c\nand f(x, 1) and x in [1, 2]") - require.NoError(t, err) - require.Equal(t, "(\n a == 1\n or b == 2\n) -- c\nand f(x, 1)\nand x in [1, 2]", Format(ast, Multiline(" "))) -} - func TestASTTokensIncludeTrivia(t *testing.T) { ast, err := ParseAST("field == 1 -- explain\n and other == 2") require.NoError(t, err) @@ -169,135 +63,3 @@ func TestRewritePreservesUnchangedSource(t *testing.T) { require.NoError(t, err) require.Equal(t, `field == 3 and other == 2`, roundTrip.String()) } - -func TestEvalTraceShortCircuit(t *testing.T) { - rule := MustParse(`a == 1 or b == 2`) - input := FromKV(KV{"a": int64(1)}) - - withoutTrace := rule.Eval(nil, input, Opts{}) - require.Nil(t, withoutTrace.Trace) - - result := rule.Eval(nil, input, Opts{Trace: true}) - require.NoError(t, result.Error) - require.True(t, result.Pass()) - require.NotNil(t, result.Trace) - require.Equal(t, ASTBinary, result.Trace.Node.Kind()) - require.Equal(t, `a == 1 or b == 2`, result.Trace.Expr) - require.Len(t, result.Trace.Children, 2) - require.Equal(t, TracePassed, result.Trace.Status) - require.Equal(t, TracePassed, result.Trace.Children[0].Status) - require.Equal(t, TracePruned, result.Trace.Children[1].Status) - require.True(t, result.Trace.Children[0].Active) - require.False(t, result.Trace.Children[0].Pruned) - require.Equal(t, true, result.Trace.Children[0].Value) - require.False(t, result.Trace.Children[1].Active) - require.True(t, result.Trace.Children[1].Pruned) - require.Equal(t, `b == 2`, result.Trace.Children[1].Expr) -} - -func TestEvalTraceMissingFields(t *testing.T) { - rule := MustParse(`a == 1 or b == 2`) - - result := rule.Eval(nil, FromKV(KV{}), Opts{Trace: true}) - require.NoError(t, result.Error) - require.True(t, result.Unknown()) - require.ElementsMatch(t, []string{"a", "b"}, result.MissingFields) - require.NotNil(t, result.Trace) - require.Equal(t, TraceMissing, result.Trace.Status) - require.ElementsMatch(t, []string{"a", "b"}, result.Trace.MissingFields) - require.Len(t, result.Trace.Children, 2) - require.Equal(t, TraceMissing, result.Trace.Children[0].Status) - require.Equal(t, TraceMissing, result.Trace.Children[1].Status) -} - -func TestEvalTraceComparisonDiagnostics(t *testing.T) { - tcs := []struct { - name string - rule string - input KV - code DiagnosticCode - leftType string - operator string - rightType string - wantStatus TraceStatus - }{ - { - name: "incomparable types", - rule: `port == "443"`, - input: KV{"port": int64(443)}, - code: DiagnosticComparisonIncomparable, - leftType: "int64", - operator: "==", - rightType: "string", - wantStatus: TraceFailed, - }, - { - name: "unsupported operator", - rule: `port contains 443`, - input: KV{"port": int64(443)}, - code: DiagnosticComparisonUnsupportedOperator, - leftType: "int64", - operator: "contains", - rightType: "int64", - wantStatus: TraceFailed, - }, - { - name: "invalid shape", - rule: `port contains [443]`, - input: KV{"port": int64(443)}, - code: DiagnosticComparisonInvalidShape, - leftType: "int64", - operator: "contains", - rightType: "array", - wantStatus: TraceFailed, - }, - } - - for _, tc := range tcs { - t.Run(tc.name, func(t *testing.T) { - rule := MustParse(tc.rule) - - withoutTrace := rule.Eval(nil, FromKV(tc.input), Opts{}) - require.NoError(t, withoutTrace.Error) - require.True(t, withoutTrace.Fail()) - require.Nil(t, withoutTrace.Trace) - - result := rule.Eval(nil, FromKV(tc.input), Opts{Trace: true}) - require.NoError(t, result.Error) - require.True(t, result.Fail()) - require.NotNil(t, result.Trace) - require.Equal(t, tc.wantStatus, result.Trace.Status) - require.Len(t, result.Trace.Diagnostics, 1) - - diagnostic := result.Trace.Diagnostics[0] - require.Equal(t, tc.code, diagnostic.Code) - require.Equal(t, tc.leftType, diagnostic.LeftType) - require.Equal(t, tc.operator, diagnostic.Operator) - require.Equal(t, tc.rightType, diagnostic.RightType) - require.NotEmpty(t, diagnostic.Message) - }) - } -} - -func TestEvalTraceMacroExpansion(t *testing.T) { - rule := MustParse(`is_internal() and user != "root"`) - macros := MacroSet{} - require.NoError(t, macros.Register("is_internal", `ip in 172.16.0.0/16 or host matches /svc\.cluster\.local$/`)) - - result := rule.Eval(nil, FromKV(KV{ - "ip": net.ParseIP("172.16.0.1"), - "user": "api", - }), Opts{Trace: true, Macros: macros}) - require.NoError(t, result.Error) - require.True(t, result.Pass()) - require.NotNil(t, result.Trace) - require.Equal(t, TracePassed, result.Trace.Status) - require.Len(t, result.Trace.Children, 2) - - macroCall := result.Trace.Children[0] - require.Equal(t, `is_internal()`, macroCall.Expr) - require.Equal(t, TracePassed, macroCall.Status) - require.Len(t, macroCall.Children, 1) - require.Equal(t, `ip in 172.16.0.0/16 or host =~ /svc\.cluster\.local$/`, macroCall.Children[0].Expr) - require.Equal(t, TracePassed, macroCall.Children[0].Status) -} diff --git a/fields_test.go b/fields_test.go deleted file mode 100644 index 5d2c9d7..0000000 --- a/fields_test.go +++ /dev/null @@ -1,118 +0,0 @@ -package rulekit - -import ( - "net" - "net/url" - "testing" - - "github.com/stretchr/testify/require" -) - -func TestURLFields(t *testing.T) { - u, err := url.Parse("https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top") - require.NoError(t, err) - bare, err := url.Parse("http://example.com") - require.NoError(t, err) - input := kv{"url": u, "bare": bare} - - assertRulep(t, `url.scheme == "https"`, input).Ok().DoesPass(true) - assertRulep(t, `url.host == "example.com"`, input).Ok().DoesPass(true) - assertRulep(t, `url.port == 8443`, input).Ok().DoesPass(true) - assertRulep(t, `url.path == "/api/v1"`, input).Ok().DoesPass(true) - assertRulep(t, `url.query.env == "prod"`, input).Ok().DoesPass(true) - assertRulep(t, `url.query["tag"] == "b"`, input).Ok().DoesPass(true) - assertRulep(t, `url.fragment == "top"`, input).Ok().DoesPass(true) - assertRulep(t, `url.user == "alice"`, input).Ok().DoesPass(true) - - // Parts absent from the URL are unknown, not empty. - assertRulep(t, `bare.port == 80`, input).MissingFields("bare.port").Value(nil) - assertRulep(t, `bare.query.env == "prod"`, input).MissingFields("bare.query.env").Value(nil) - assertRulep(t, `bare.fragment == ""`, input).MissingFields("bare.fragment").Value(nil) - assertRulep(t, `bare.user == ""`, input).MissingFields("bare.user").Value(nil) - assertRulep(t, `bare.path == ""`, input).Ok().DoesPass(true) - assertRulep(t, `url.nope == 1`, input).MissingFields("url.nope").Value(nil) -} - -func TestURLValueComparesAsString(t *testing.T) { - u, err := url.Parse("https://example.com/a") - require.NoError(t, err) - input := kv{"url": u, "s": "https://example.com/a"} - - assertRulep(t, `url == "https://example.com/a"`, input).Ok().DoesPass(true) - assertRulep(t, `url != "https://example.com/b"`, input).Ok().DoesPass(true) - assertRulep(t, `url contains "example.com"`, input).Ok().DoesPass(true) - assertRulep(t, `url matches /^https:/`, input).Ok().DoesPass(true) - assertRulep(t, `url in ["https://example.com/b", "https://example.com/a"]`, input).Ok().DoesPass(true) - // A KV string stays a string: it compares to URL literals by text but has no fields. - assertRulep(t, `s == "https://example.com/a"`, input).Ok().DoesPass(true) - assertRulep(t, `s.host == "example.com"`, input).MissingFields("s.host").Value(nil) -} - -func TestQuotedURLLiteral(t *testing.T) { - for raw, isURL := range map[string]bool{ - "https://example.com/a?b=c": true, - "http://[::1]:8080/": true, - "mailto:a@example.com": false, - "https://": false, - "example.com/a": false, - // Literals whose canonical form differs from the source stay strings, - // so comparisons against KV strings keep matching the text as written. - "https://example.com/a b": false, - } { - value, err := parseString(`"` + raw + `"`) - require.NoError(t, err, raw) - _, gotURL := value.(*url.URL) - require.Equal(t, isURL, gotURL, raw) - } -} - -func TestIPFields(t *testing.T) { - input := kv{ - "v4": net.ParseIP("10.1.2.3"), - "v6": net.ParseIP("2001:db8::1"), - "mapped": net.ParseIP("::ffff:10.1.2.3"), - } - assertRulep(t, `v4.version == "v4"`, input).Ok().DoesPass(true) - assertRulep(t, `v6.version == "v6"`, input).Ok().DoesPass(true) - assertRulep(t, `mapped.version == "v4"`, input).Ok().DoesPass(true) - assertRulep(t, `v4.nope == 1`, input).MissingFields("v4.nope").Value(nil) -} - -func TestCIDRFields(t *testing.T) { - _, v4, err := net.ParseCIDR("10.1.0.0/16") - require.NoError(t, err) - _, v6, err := net.ParseCIDR("2001:db8::/32") - require.NoError(t, err) - input := kv{"net4": v4, "net6": v6} - - assertRulep(t, `net4.network == 10.1.0.0`, input).Ok().DoesPass(true) - assertRulep(t, `net4.prefix == 16`, input).Ok().DoesPass(true) - assertRulep(t, `net4.version == "v4"`, input).Ok().DoesPass(true) - assertRulep(t, `net6.prefix == 32`, input).Ok().DoesPass(true) - assertRulep(t, `net6.version == "v6"`, input).Ok().DoesPass(true) -} - -func TestMACFields(t *testing.T) { - mac, err := net.ParseMAC("00:1A:2B:3C:4D:5E") - require.NoError(t, err) - input := kv{"mac": mac} - - assertRulep(t, `mac.oui == 00:1a:2b`, input).Ok().DoesPass(true) - assertRulep(t, `mac.oui == "00:1a:2b"`, input).Ok().DoesPass(true) - assertRulep(t, `mac.oui == 00:1a:2c`, input).Ok().DoesPass(false) -} - -func TestValueFieldsMapKeysWin(t *testing.T) { - // Fields only apply to typed values; a map with the same key is read as a map. - assertRulep(t, `url.host == "from-map"`, kv{"url": KV{"host": "from-map"}}).Ok().DoesPass(true) -} - -func TestDecodeJSONURL(t *testing.T) { - data, err := DecodeJSON([]byte(`{"a.$url": "https://example.com:8443/x"}`), JSONOptions{AnnotatedKeys: true}) - require.NoError(t, err) - assertRulep(t, `a.port == 8443 and a.host == "example.com"`, kv(data)).Ok().DoesPass(true) - - typed, err := DecodeJSON([]byte(`{"a": {"$type": "url", "value": "https://example.com/x"}}`), JSONOptions{TypedDocument: true}) - require.NoError(t, err) - assertRulep(t, `a.path == "/x"`, kv(typed)).Ok().DoesPass(true) -} diff --git a/functions_stdlib_test.go b/functions_stdlib_test.go deleted file mode 100644 index ea60324..0000000 --- a/functions_stdlib_test.go +++ /dev/null @@ -1,41 +0,0 @@ -package rulekit - -import ( - "errors" - "net" - "testing" - - "github.com/stretchr/testify/require" -) - -func TestFn_InvalidArgs(t *testing.T) { - _, err := Parse("some_none_stdlib_fn()") - require.NoError(t, err) - - assertRulep(t, "unknown_fn()", nil).Error(errors.New(`unknown function "unknown_fn"`)) - assertRulep(t, "unknown_fn(some_args)", nil).Error(errors.New(`unknown function "unknown_fn"`)) -} - -func TestFn_StartsWith(t *testing.T) { - r := MustParse(`starts_with(url, "https://")`) - assertRule(t, r, kv{"url": "https://example.com"}).Pass() - assertRule(t, r, kv{"url": "http://example.com"}).Fail() - assertRule(t, r, kv{"url": "invalid-url"}).Fail() - - // non-string args - assertRulep(t, `starts_with(ip, "10.0")`, kv{"ip": net.ParseIP("10.0.0.1")}).Pass() - assertRulep(t, `starts_with(code, 5)`, kv{"code": 500}).Pass() - assertRulep(t, `starts_with(code, "5")`, kv{"code": 500}).Pass() - assertRulep(t, `starts_with(code, 5)`, kv{"code": 404}).Fail() - assertRulep(t, `starts_with(starts_with("https://example.com", "https://"), "true")`, nil).Pass() - - // arity is checked at parse time and reported just after the call - for expr, column := range map[string]int{"starts_with()": 14, "starts_with(arg1)": 18} { - _, err := Parse(expr) - var parseErr *ParseError - require.ErrorAs(t, err, &parseErr, expr) - require.Equal(t, 1, parseErr.Line, expr) - require.Equal(t, column, parseErr.Column, expr) - require.Contains(t, parseErr.Message, `function "starts_with" expects 2 arguments`, expr) - } -} diff --git a/json_test.go b/json_test.go index 25a9db3..4b74a68 100644 --- a/json_test.go +++ b/json_test.go @@ -1,65 +1,18 @@ package rulekit import ( - "net" "testing" "github.com/stretchr/testify/require" ) -func TestDecodeJSONAnnotatedKeys(t *testing.T) { - kv, err := DecodeJSON([]byte(`{ - "src.$ip": "1.2.3.4", - "dst.$cidr": "10.0.0.0/8", - "payload.$hex": "474554", - "name.$string": "api", - "enabled.$bool": true, - "max.$uint64": "18446744073709551615", - "nested": {"count.$int64": "42"} - }`), JSONOptions{AnnotatedKeys: true}) - require.NoError(t, err) - - require.Equal(t, net.ParseIP("1.2.3.4"), kv["src"]) - require.IsType(t, &net.IPNet{}, kv["dst"]) - require.Equal(t, []byte("GET"), kv["payload"]) - require.Equal(t, "api", kv["name"]) - require.Equal(t, true, kv["enabled"]) - require.Equal(t, uint64(18446744073709551615), kv["max"]) - require.Equal(t, int64(42), kv["nested"].(map[string]any)["count"]) -} - -func TestDecodeJSONTypedDocument(t *testing.T) { - kv, err := DecodeJSON([]byte(`{ - "src": {"$type": "ip", "value": "1.2.3.4"}, - "payload": {"$type": "bytes", "encoding": "base64", "value": "R0VU"}, - "u64": {"$type": "uint64", "value": "18446744073709551615"}, - "nested": {"$type": "object", "value": {"enabled": {"$type": "bool", "value": true}}}, - "items": {"$type": "array", "value": [{"$type": "string", "value": "first"}]} - }`), JSONOptions{TypedDocument: true}) - require.NoError(t, err) - - require.Equal(t, net.ParseIP("1.2.3.4"), kv["src"]) - require.Equal(t, []byte("GET"), kv["payload"]) - require.Equal(t, uint64(18446744073709551615), kv["u64"]) - require.Equal(t, true, kv["nested"].(map[string]any)["enabled"]) - require.Equal(t, []any{"first"}, kv["items"]) -} - -func TestDecodeJSONPlainModeKeepsAnnotatedKeys(t *testing.T) { - kv, err := DecodeJSON([]byte(`{"src.$ip": "1.2.3.4", "src": {"$type": "ip", "value": "1.2.3.4"}}`), JSONOptions{}) - require.NoError(t, err) - - require.Equal(t, "1.2.3.4", kv["src.$ip"]) - require.Equal(t, map[string]any{"$type": "ip", "value": "1.2.3.4"}, kv["src"]) -} - -func TestDecodeJSONDuplicateAnnotatedKey(t *testing.T) { +// TestDecodeJSONErrors pins the Go error messages and the Go options struct. +// Which inputs fail is covered by testdata/vectors/json_input.json. +func TestDecodeJSONErrors(t *testing.T) { _, err := DecodeJSON([]byte(`{"src": "plain", "src.$ip": "1.2.3.4"}`), JSONOptions{AnnotatedKeys: true}) require.EqualError(t, err, `duplicate normalized key "src"`) -} -func TestDecodeJSONTypedDocumentRejectsPlainValuesAndAnnotatedKeys(t *testing.T) { - _, err := DecodeJSON([]byte(`{"src.$ip": {"$type": "ip", "value": "1.2.3.4"}}`), JSONOptions{TypedDocument: true}) + _, err = DecodeJSON([]byte(`{"src.$ip": {"$type": "ip", "value": "1.2.3.4"}}`), JSONOptions{TypedDocument: true}) require.EqualError(t, err, `typed json key "src.$ip" must not use annotated suffix "$ip"`) _, err = DecodeJSON([]byte(`{"src": "1.2.3.4"}`), JSONOptions{TypedDocument: true}) @@ -68,10 +21,3 @@ func TestDecodeJSONTypedDocumentRejectsPlainValuesAndAnnotatedKeys(t *testing.T) _, err = DecodeJSON([]byte(`{"src": {"$type": "ip", "value": "1.2.3.4"}}`), JSONOptions{TypedDocument: true, AnnotatedKeys: true}) require.EqualError(t, err, `json options AnnotatedKeys and TypedDocument are mutually exclusive`) } - -func TestDecodeJSONEval(t *testing.T) { - data, err := DecodeJSON([]byte(`{"src.$ip": "1.2.3.4", "items": [{"name": "first"}]}`), JSONOptions{AnnotatedKeys: true}) - require.NoError(t, err) - - assertParseEval(t, `src == 1.2.3.4 and items[0].name == "first"`, kv(data), true) -} diff --git a/parser_test.go b/parser_test.go deleted file mode 100644 index c84e297..0000000 --- a/parser_test.go +++ /dev/null @@ -1,33 +0,0 @@ -package rulekit - -import ( - "net" - "testing" -) - -func TestQuotedLiteralTypes(t *testing.T) { - ip := net.ParseIP("192.168.1.1") - mac := mustParseMac("01:23:45:67:89:ab") - input := kv{"s": "just a string", "ip": ip, "mac": mac} - - // A plain quoted value is a string. - assertRulep(t, `s == "just a string"`, input).Ok().DoesPass(true) - // Quoted IPs compare as IPs, not text: forms that differ as text are equal. - assertRulep(t, `ip == "192.168.1.1"`, input).Ok().DoesPass(true) - assertRulep(t, `"2001:db8::1" == 2001:db8:0:0:0:0:0:1`, nil).Ok().DoesPass(true) - assertRulep(t, `"10.1.2.3" in 10.0.0.0/8`, nil).Ok().DoesPass(true) - // A quoted CIDR is a CIDR. - assertRulep(t, `ip in "192.168.1.0/24"`, input).Ok().DoesPass(true) - // Quoted MACs are MACs in any standard notation. - assertRulep(t, `mac == "01:23:45:67:89:ab"`, input).Ok().DoesPass(true) - assertRulep(t, `mac == "01-23-45-67-89-AB"`, input).Ok().DoesPass(true) - assertRulep(t, `mac == "0123.4567.89ab"`, input).Ok().DoesPass(true) -} - -func mustParseMac(s string) net.HardwareAddr { - mac, err := net.ParseMAC(s) - if err != nil { - panic(err) - } - return mac -} diff --git a/rule_test.go b/rule_test.go index 93dfca1..cac2fe5 100644 --- a/rule_test.go +++ b/rule_test.go @@ -2,165 +2,67 @@ package rulekit import ( "net" - "reflect" "testing" "github.com/stretchr/testify/require" ) -func TestEngineExample(t *testing.T) { - filter, err := Parse(` +// TestGoInputTypes covers Go input values that the JSON test vectors in +// testdata/vectors cannot express: typed slices, unsigned Go integers, and +// strings holding non-UTF-8 bytes. Their JSON-expressible equivalents are vectors. +func TestGoInputTypes(t *testing.T) { + engine := ` tags == 'db-svc' OR domain matches /example\.com$/ -- any domain or subdomain of example.com OR src.process.path matches |^/usr/bin/| -- patterns can be enclosed in |...| or /.../ OR (process.uid != 0 AND tags contains 'internal-svc') /* connections to LAN addresses over privileged ports */ OR (destination.port <= 1023 AND destination.ip == 192.168.0.0/16) - `) - require.NoError(t, err) - - assertRule(t, filter, kv{ - "tags": []string{"db-svc", "internal-vlan", "unprivileged-user"}, - "domain": "example.com", - "process": KV{ - "uid": 1000, - "path": "/usr/bin/some-other-process", - }, - "port": 8080, - }).Ok().Value(true) - - assertRule(t, filter, kv{ - "destination": KV{ - "ip": net.ParseIP("192.168.2.37"), - "port": 22, - }, - }).Ok().Pass() - - assertRule(t, filter, kv{ - "destination.ip": net.ParseIP("1.1.1.1"), - "destination.port": 22, - }).NotOk().Value(nil) - - assertRule(t, filter, kv{ - "src": KV{ - "process": KV{ - "path": "/usr/bin/some-other-process", - }, - }, - }).Ok().Pass() - - assertRule(t, filter, kv{ - "src": KV{ - "process": KV{ - "path": "/opt/go", - }, - }, - }).NotOk().Value(nil) -} - -func TestEval(t *testing.T) { - tcs := []struct { - filter string - tests map[*map[string]any]TestResult + ` + tests := []struct { + name string + rule string + input kv + pass bool }{ { - filter: `tls_version == 1.2`, - tests: map[*map[string]any]TestResult{ - {"tls_version": 1.2}: { - Value: true, - }, - {"tls_version": 1.1}: { - Value: false, - }, - {}: { - MissingFields: []string{"tls_version"}, - }, - }, - }, - { - filter: `tls_version != 5`, - tests: map[*map[string]any]TestResult{ - {}: { - MissingFields: []string{"tls_version"}, - }, - }, - }, - { - filter: `!tls_version`, - tests: map[*map[string]any]TestResult{ - {}: { - MissingFields: []string{"tls_version"}, - }, + name: "[]string in engine example", + rule: engine, + input: kv{ + "tags": []string{"db-svc", "internal-vlan", "unprivileged-user"}, + "domain": "example.com", + "process": KV{"uid": 1000, "path": "/usr/bin/some-other-process"}, + "port": 8080, }, - }, - { - filter: `domain matches /example\.com$/ OR tags == "db-svc"`, - tests: map[*map[string]any]TestResult{ - {"domain": "example.com"}: { - Value: true, - }, - {"tags": "db-svc"}: { - Value: true, - }, - {"domain": "other.com"}: { - MissingFields: []string{"tags"}, - }, - }, - }, - { - filter: `domain == "example.com" AND tags == "db-svc"`, - tests: map[*map[string]any]TestResult{ - {"domain": "example.com"}: { - MissingFields: []string{"tags"}, - }, - {"tags": "db-svc"}: { - MissingFields: []string{"domain"}, - }, - {"domain": "example.com", "tags": []string{"test", "db-svc"}}: { - Value: true, - }, - {"domain": "qpoint.io"}: { - Value: false, - }, - {"tags": []string{}}: { - Value: false, - }, - }, - }, - { - filter: ` - dst.ip == 8.8.8.8 - or ( - dst.ip == 1.1.1.1 - and ( - dst.port == 53 - or (dst.port == 443 and tls.enabled) - ) - )`, - tests: map[*map[string]any]TestResult{ - { - "tls": KV{"enabled": true}, - "dst": KV{ - "ip": net.ParseIP("1.1.1.1"), - "port": 443, - }, - }: { - Value: true, - }, - }, - }, + pass: true, + }, + {"[]string == element", `domain == "example.com" AND tags == "db-svc"`, kv{"domain": "example.com", "tags": []string{"test", "db-svc"}}, true}, + {"empty []string == element", `domain == "example.com" AND tags == "db-svc"`, kv{"tags": []string{}}, false}, + {"uint equality", `f_int == 1 and f_uint == 13`, kv{"f_int": 1, "f_uint": uint(13)}, true}, + {"uint inequality", `f_int == 1 and f_uint == 13`, kv{"f_int": 1, "f_uint": uint(14)}, false}, + {"[]int != with no equal element", `f_int != 2`, kv{"f_int": []int{1, 3, 4}}, true}, + {"[]int != with an equal element", `f_int != 2`, kv{"f_int": []int{1, 2, 3, 4}}, false}, + {"[]string index", `items[1] == "second"`, kv{"items": []string{"first", "second"}}, true}, + {"[]string in array matches", `client in ["alice", "bob"]`, kv{"client": []string{"nobody", "bob"}}, true}, + {"[]string in array no match", `client in ["alice", "bob"]`, kv{"client": []string{"nobody", "somebody"}}, false}, + {"empty []string in array", `client in ["alice"]`, kv{"client": []string{}}, false}, + {"[]int in array matches", `ports in [80, 443]`, kv{"ports": []int{22, 443}}, true}, + {"[]int in array no match", `ports in [80, 443]`, kv{"ports": []int{22, 8080}}, false}, + {"[]int64 in array matches", `ports in [80, 443]`, kv{"ports": []int64{22, 80}}, true}, + {"[]net.IP in CIDR matches", `ips in 192.168.0.0/16`, kv{"ips": []net.IP{net.ParseIP("1.1.1.1"), net.ParseIP("192.168.0.1")}}, true}, + {"[]net.IP in CIDR no match", `ips in 192.168.0.0/16`, kv{"ips": []net.IP{net.ParseIP("1.1.1.1"), net.ParseIP("8.8.8.8")}}, false}, + {"[]net.IP in array matches", `ips in [1.0.0.0/8, 8.8.8.8]`, kv{"ips": []net.IP{net.ParseIP("192.168.0.1"), net.ParseIP("8.8.8.8")}}, true}, + {"not ([]string in array) when no element matches", `not (client in ["alice", "bob"])`, kv{"client": []string{"nobody", "somebody"}}, true}, + {"not ([]string in array) when an element matches", `not (client in ["alice", "bob"])`, kv{"client": []string{"nobody", "bob"}}, false}, + {"non-UTF-8 string equals nine hex pairs", `s == 01:23:45:67:89:ab:AB:cd:ef`, kv{"s": "\x01\x23\x45\x67\x89\xab\xab\xcd\xef"}, true}, + {"non-UTF-8 string equals two hex pairs", `x == ab:cd`, kv{"x": "\xab\xcd"}, true}, + {"non-UTF-8 string equals x-quoted hex", `x == x"0123456789abcdef"`, kv{"x": "\x01\x23\x45\x67\x89\xab\xcd\xef"}, true}, } - for _, tc := range tcs { - p, err := Parse(tc.filter) - require.NoError(t, err) - - for input, want := range tc.tests { - got := toTestResult(evalRule(p, kv(*input))) - if !reflect.DeepEqual(got, want) { - t.Errorf("Filter: %s\nInput: %+v\nGot: %+v\nWant: %+v", tc.filter, *input, got, want) - } - } + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + assertRulep(t, tc.rule, tc.input).Ok().Value(tc.pass) + }) } } @@ -336,257 +238,6 @@ func BenchmarkEvalTrace(b *testing.B) { var benchmarkResult Result -func TestFilterParseUint(t *testing.T) { - _, err := Parse("f_uint==4294967295 && f_uint64==18446744073709551615") - if err != nil { - t.Error(err) - } - _, err = Parse("f_uint==0 && f_uint64==0") - if err != nil { - t.Error(err) - } -} - -func TestFilterParseInt(t *testing.T) { - _, err := Parse("f_int==2147483647 && f_int64==9223372036854775807") - if err != nil { - t.Error(err) - } - _, err = Parse("f_int==-2147483648 && f_int64==-9223372036854775808") - if err != nil { - t.Error(err) - } -} - -func TestStringLiterals(t *testing.T) { - for expr, want := range map[string]string{ - `s == "text"`: `text`, - `s == "te\"x't"`: `te"x't`, - `s == 'test'`: `test`, - `s == 'te"s\'t'`: `te"s't`, - `s == 'bad qu\"ote'`: `bad qu"ote`, - `s == "tab\there"`: "tab\there", - `s == 'tab\there'`: "tab\there", - } { - assertRulep(t, expr, kv{"s": want}).Ok().DoesPass(true) - } - // Nine colon-separated pairs (not an IPv6 address) are hex bytes; case is ignored. - assertRulep(t, `s == 01:23:45:67:89:ab:AB:cd:ef`, kv{"s": "\x01\x23\x45\x67\x89\xab\xab\xcd\xef"}).Ok().DoesPass(true) -} - -func TestFilterParseRegexp(t *testing.T) { - _, err := Parse("f_string matches /gl=se$/ and str matches |some/path/here|") - if err != nil { - t.Error(err) - } -} - -func TestFilterParseIP(t *testing.T) { - _, err := Parse("f_ipv4 == 192.168.1.1 or f_ipv6==::1 or f_ipv6==2001:db8::1") - if err != nil { - t.Error(err) - } -} - -func TestFilterParseHexAndMac(t *testing.T) { - mac, err := net.ParseMAC("01:23:45:67:89:ab") - require.NoError(t, err) - assertRulep(t, `f_mac == 01:23:45:67:89:ab`, kv{"f_mac": mac}).Ok().DoesPass(true) - assertRulep(t, `f_mac == "01:23:45:67:89:ab"`, kv{"f_mac": mac}).Ok().DoesPass(true) - assertRulep(t, `f_bytes == 50:4f:53:54`, kv{"f_bytes": "POST"}).Ok().DoesPass(true) -} - -func TestFilterParseBool(t *testing.T) { - _, err := Parse("f_bool.1 == true or f_bool.2 != false") - if err != nil { - t.Error(err) - } -} - -func TestFilterParseFloat(t *testing.T) { - _, err := Parse("f_float32 == 123.345 or f_float64 != 74123412341234.123412341243") - if err != nil { - t.Error(err) - } -} - -// Test filters -func TestFilterMatchIntUint(t *testing.T) { - f, err := Parse("f_int == 1 and f_uint == 13") - if err != nil { - t.Fatal(err) - } - - if !evalRule(f, kv{"f_int": 1, "f_uint": uint(13)}).Pass() { - t.Error("Packet must pass") - } - - if evalRule(f, kv{"f_int": 1, "f_uint": uint(14)}).Pass() { - t.Error("Packet must not pass") - } - - // field with multiple values - f2, err := Parse("f_int != 2") - if err != nil { - t.Fatal(err) - } - if !evalRule(f2, kv{"f_int": []int{1, 3, 4}}).Pass() { - t.Error("Packet must pass") - } - - if evalRule(f2, kv{"f_int": []int{1, 2, 3, 4}}).Pass() { - t.Error("Packet must not pass") - } -} - -func TestFilterMatchString(t *testing.T) { - f, err := Parse("f_string.1 == \"1\" and f_string.2 == 47:45:54 and f_string.3 == \"abc123\"") - if err != nil { - t.Fatal(err) - } - if !evalRule(f, kv{"f_string": KV{"1": "1", "2": "GET", "3": "abc123"}}).Pass() { - t.Error("Packet must pass") - } - - if evalRule(f, kv{"f_string": KV{"1": "2", "2": "GET", "3": "abc123"}}).Pass() { - t.Error("Packet must not pass") - } - - f2, err := Parse("f_string.1 contains \"1\" and f_string.2 contains 47:45:54 and f_string.3 contains \"abc123\"") - if err != nil { - t.Fatal(err) - } - if !evalRule(f2, kv{"f_string": KV{"1": "asdf1asdf", "2": "text - GET ---", "3": "asf fffabc123"}}).Pass() { - t.Error("Packet must pass") - } - - if evalRule(f2, kv{"f_string": KV{"1": "test234test", "2": "xxxxETyyy", "3": "abc125"}}).Pass() { - t.Error("Packet must not pass") - } -} - -func TestFilterMatchIP(t *testing.T) { - f, err := Parse("ip.src==192.168.1.1 and ip.dst==192.168.1.1") - require.NoError(t, err) - - cases := map[*map[string]any]TestResult{ - { - "ip": KV{ - "src": net.ParseIP("192.168.1.1"), - "dst": net.ParseIP("192.168.1.1"), - }, - }: { - Value: true, - }, - { - "ip": KV{ - "src": net.ParseIP("192.168.1.2"), - "dst": net.ParseIP("192.168.1.1"), - }, - }: { - Value: false, - }, - {}: { - MissingFields: []string{"ip.dst", "ip.src"}, - }, - } - - for input, want := range cases { - got := toTestResult(evalRule(f, kv(*input))) - require.Equalf(t, want, got, "filter: %s, values: %+v", f.String(), input) - } - - // CIDR test cases - f4, err := Parse("ip.src == 192.168.0.0/16") - require.NoError(t, err) - - cidrCases := map[*map[string]any]TestResult{ - { - "ip": KV{ - "src": net.ParseIP("192.168.100.1"), - "dst": net.ParseIP("192.168.1.1"), - }, - }: { - Value: true, - }, - { - "ip": KV{ - "src": net.ParseIP("172.16.0.1"), - "dst": net.ParseIP("10.0.0.1"), - }, - }: { - Value: false, - }, - {}: { - MissingFields: []string{"ip.src"}, - }, - } - - for input, want := range cidrCases { - got := toTestResult(evalRule(f4, kv(*input))) - require.Equalf(t, want, got, "filter: %s, values: %+v", f4.String(), input) - } -} - -func TestFilterMatchMac(t *testing.T) { - f, err := Parse("f_mac == ab:3b:06:07:b2:ef") - require.NoError(t, err) - - h1, _ := net.ParseMAC("ab:3b:06:07:b2:ef") - h2, _ := net.ParseMAC("aa:bb:cc:dd:ee:ff") - - cases := map[*map[string]any]TestResult{ - { - "f_mac": h1, - }: { - Value: true, - // EvaluatedRule: "f_mac == ab:3b:06:07:b2:ef", - }, - { - "f_mac": h2, - }: { - Value: false, - // EvaluatedRule: "f_mac == ab:3b:06:07:b2:ef", - }, - {}: { - MissingFields: []string{"f_mac"}, - // EvaluatedRule: "f_mac == ab:3b:06:07:b2:ef", - }, - } - - for input, want := range cases { - got := toTestResult(evalRule(f, kv(*input))) - require.Equal(t, want, got) - } -} - -func TestParseError(t *testing.T) { - // error - for _, s := range []string{ - "??", - "field == %1==", - "== true", - "test == >=", - "field == 123 && ip == 1.2.3", - "field == 123 && ip << 1", - } { - _, err := Parse(s) - if err == nil { - t.Errorf("expected error for %s", s) - } - } - - // no error - for _, s := range []string{ - "f_string == 123", - } { - _, err := Parse(s) - if err != nil { - t.Errorf("unexpected error for %s", s) - } - } -} - func FuzzParse(f *testing.F) { // Add initial corpus of valid and edge case inputs seeds := []string{ @@ -631,421 +282,25 @@ func FuzzParse(f *testing.F) { }) } -func TestArray(t *testing.T) { - assertParseError(t, `field == [1,]`) // trailing commas are not allowed - assertParseError(t, `field == [1, [1, 2], 3]`) // nested arrays are not allowed - - assertRulep(t, `[1, "str", 3]`, nil). - Ok(). - Value([]any{int64(1), "str", int64(3)}) - // EvaluatedRule(`[1, "str", 3]`) - - { - f := MustParse(`field == [1, "str", 3]`) - require.Equal(t, `field == [1, "str", 3]`, f.String()) - - assertEval(t, f, kv{"field": 3}, true) - assertEval(t, f, kv{"field": 4}, false) - assertEval(t, f, kv{"field": "str"}, true) - } - - { - f := MustParse(`field contains [1, "str", 3]`) - require.Equal(t, `field contains [1, "str", 3]`, f.String()) - - // contains does not support arrays on the right side - assertEval(t, f, kv{"field": "string"}, false) - assertEval(t, f, kv{"field": "str"}, false) - assertEval(t, f, kv{"field": 123}, false) - } - - { - f := MustParse(`field contains "str"`) - require.Equal(t, `field contains "str"`, f.String()) - - assertEval(t, f, kv{"field": "string"}, true) // substring - assertEval(t, f, kv{"field": []any{"str", 123}}, true) - assertEval(t, f, kv{"field": []any{"test", "string"}}, false) - } - - assertParseEval(t, `f == "string"`, kv{"f": []any{1, "str", 3}}, false) // false (no element equals "string") - assertParseEval(t, `f != "string"`, kv{"f": []any{1, "str", 3}}, true) // true (no element equals "string") - assertParseEval(t, `f contains "string"`, kv{"f": []any{1, "str", 3}}, false) // false (array doesn't contain "string") - - { - f := MustParse(`arr contains val`) - - assertEval(t, f, kv{ - "arr": []any{1, "str", 3}, - "val": "str", - }, true) - assertEval(t, f, kv{ - "arr": []any{1, "str", 3}, - "val": 50, - }, false) - } - - assertParseEval(t, `[1,2,3] contains 2`, nil, true) - assertParseEval(t, `[1,2,3] contains "str"`, nil, false) -} - -func TestBracketPathIndexing(t *testing.T) { - assertParseEval(t, `data["field.name"] == true`, kv{ - "data": KV{"field.name": true}, - }, true) - assertRulep(t, `data.field.name == true`, kv{ - "data": KV{"field.name": true}, - }).NotOk().MissingFields("data.field.name") - assertParseEval(t, `["destination.ip"] == 1.1.1.1`, kv{ - "destination.ip": net.ParseIP("1.1.1.1"), - }, true) - assertParseEval(t, `items[0].name == "first"`, kv{ - "items": []any{KV{"name": "first"}, KV{"name": "second"}}, - }, true) - assertParseEval(t, `items[1] == "second"`, kv{ - "items": []string{"first", "second"}, - }, true) - - require.Equal(t, `request.headers["user-agent"] == "curl"`, MustParse(`request.headers["user-agent"] == "curl"`).String()) - require.Equal(t, `["destination.ip"] == 1.1.1.1`, MustParse(`["destination.ip"] == 1.1.1.1`).String()) - - assertParseError(t, `items[] == "x"`) - assertParseError(t, `items[field] == "x"`) - assertParseError(t, `items[-1] == "x"`) -} - -func TestIn(t *testing.T) { - { - f := MustParse(`field in [1, "str", 3]`) - require.Equal(t, `field in [1, "str", 3]`, f.String()) - - assertEval(t, f, kv{"field": "string"}, false) - assertEval(t, f, kv{"field": "str"}, true) - assertEval(t, f, kv{"field": "s"}, false) - assertEval(t, f, kv{"field": 123}, false) - } - - assertParseEval(t, `5 in [1,2,3]`, nil, false) - assertParseEval(t, `"str" in ["str"]`, nil, true) - assertParseEval(t, `1.2.3.4 in [1.0.0.0/8, 8.8.8.8]`, nil, true) - assertParseEval(t, `192.168.0.1 in [1.0.0.0/8, 8.8.8.8]`, nil, false) - assertParseEval(t, `192.168.0.1 in 192.168.0.0/16`, nil, true) - assertParseEval(t, `ip in 192.168.0.0/16`, kv{"ip": net.ParseIP("192.168.0.1")}, true) - assertParseEval(t, `cidr contains ip`, kv{"cidr": parseCIDR(t, "192.168.0.0/16"), "ip": net.ParseIP("192.168.0.1")}, true) -} - -func TestInListLeft(t *testing.T) { - tests := []struct { - name string - rule string - input map[string]any - pass bool - }{ - { - name: "[]string in array matches", - rule: `client in ["alice", "bob"]`, - input: map[string]any{"client": []string{"nobody", "bob"}}, - pass: true, - }, - { - name: "[]string in array no match", - rule: `client in ["alice", "bob"]`, - input: map[string]any{"client": []string{"nobody", "somebody"}}, - pass: false, - }, - { - name: "empty []string in array", - rule: `client in ["alice"]`, - input: map[string]any{"client": []string{}}, - pass: false, - }, - { - name: "[]any in array matches", - rule: `client in ["alice", 3]`, - input: map[string]any{"client": []any{"nobody", 3}}, - pass: true, - }, - { - name: "[]any in array no match", - rule: `client in ["alice", 3]`, - input: map[string]any{"client": []any{"nobody", 4}}, - pass: false, - }, - { - name: "[]int in array matches", - rule: `ports in [80, 443]`, - input: map[string]any{"ports": []int{22, 443}}, - pass: true, - }, - { - name: "[]int in array no match", - rule: `ports in [80, 443]`, - input: map[string]any{"ports": []int{22, 8080}}, - pass: false, - }, - { - name: "[]int64 in array matches", - rule: `ports in [80, 443]`, - input: map[string]any{"ports": []int64{22, 80}}, - pass: true, - }, - { - name: "[]net.IP in CIDR matches", - rule: `ips in 192.168.0.0/16`, - input: map[string]any{"ips": []net.IP{net.ParseIP("1.1.1.1"), net.ParseIP("192.168.0.1")}}, - pass: true, - }, - { - name: "[]net.IP in CIDR no match", - rule: `ips in 192.168.0.0/16`, - input: map[string]any{"ips": []net.IP{net.ParseIP("1.1.1.1"), net.ParseIP("8.8.8.8")}}, - pass: false, - }, - { - name: "[]net.IP in array matches", - rule: `ips in [1.0.0.0/8, 8.8.8.8]`, - input: map[string]any{"ips": []net.IP{net.ParseIP("192.168.0.1"), net.ParseIP("8.8.8.8")}}, - pass: true, - }, - { - name: "not (list in array) when no element matches", - rule: `not (client in ["alice", "bob"])`, - input: map[string]any{"client": []string{"nobody", "somebody"}}, - pass: true, - }, - { - name: "not (list in array) when an element matches", - rule: `not (client in ["alice", "bob"])`, - input: map[string]any{"client": []string{"nobody", "bob"}}, - pass: false, - }, - // scalar left side is unchanged - { - name: "scalar in array matches", - rule: `client in ["alice", "bob"]`, - input: map[string]any{"client": "bob"}, - pass: true, - }, - { - name: "scalar in array no match", - rule: `client in ["alice", "bob"]`, - input: map[string]any{"client": "nobody"}, - pass: false, - }, - } - - for _, tc := range tests { - t.Run(tc.name, func(t *testing.T) { - assertRulep(t, tc.rule, kv(tc.input)).Ok().DoesPass(tc.pass) - }) - } -} - -func TestOperationValidity(t *testing.T) { - assertParseError(t, `f >= "string"`) - assertParseError(t, `f < 1.2.3.4`) - assertParseError(t, `f > 01:02:03:04:05:06`) - assertParseError(t, `f <= true`) - assertParseError(t, `f > /pattern/`) - - _ = MustParse(`f >= 1`) - _ = MustParse(`f < 1.5`) -} - -func TestSpecialBooleanFields(t *testing.T) { - tests := []struct { - name string - rule string - input map[string]any - expected any - }{ - { - name: "standalone true", - rule: "true", - input: map[string]any{}, - expected: true, - }, - { - name: "standalone false", - rule: "false", - input: map[string]any{}, - expected: false, - }, - { - name: "true equals true", - rule: "true == true", - input: map[string]any{}, - expected: true, - }, - { - name: "false equals false", - rule: "false == false", - input: map[string]any{}, - expected: true, - }, - { - name: "true not equals false", - rule: "true != false", - input: map[string]any{}, - expected: true, - }, - { - name: "field equals true", - rule: "field == true", - input: map[string]any{"field": true}, - expected: true, - }, - { - name: "field not equals true", - rule: "field != true", - input: map[string]any{"field": false}, - expected: true, - }, - { - name: "case insensitive TRUE", - rule: "TRUE == true", - input: map[string]any{}, - expected: true, - }, - { - name: "case insensitive FALSE", - rule: "FALSE == false", - input: map[string]any{}, - expected: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - rule := MustParse(tt.rule) - result := evalRule(rule, kv(tt.input)) - if result.Value != tt.expected { - t.Errorf("Expected %v, got %v for rule: %s", tt.expected, result.Value, tt.rule) - } - }) - } -} - -func TestStringAutomaticCasting(t *testing.T) { - tests := []struct { - name string - ruleExpr string - inputData map[string]any - expected bool - }{ - { - name: "explicit IP equals string IP", - ruleExpr: `ip == "192.168.1.1"`, - inputData: map[string]any{"ip": net.ParseIP("192.168.1.1")}, - expected: true, - }, - { - name: "string IP equals explicit IP", - ruleExpr: `"192.168.1.1" == ip`, - inputData: map[string]any{"ip": net.ParseIP("192.168.1.1")}, - expected: true, - }, - { - name: "string field with IP value equals explicit IP", - ruleExpr: `ipstr == 192.168.1.1`, - inputData: map[string]any{"ipstr": "192.168.1.1"}, - expected: true, - }, - { - name: "string IP in CIDR array", - ruleExpr: `"192.168.1.5" in [192.168.1.0/24]`, - inputData: map[string]any{}, - expected: true, - }, - { - name: "string IP not in CIDR array", - ruleExpr: `"10.0.0.1" in [192.168.1.0/24]`, - inputData: map[string]any{}, - expected: false, - }, - { - name: "string MAC equals MAC", - ruleExpr: `mac == "01:23:45:67:89:ab"`, - inputData: map[string]any{"mac": mustParseMac("01:23:45:67:89:ab")}, - expected: true, - }, - } - - for _, tc := range tests { - t.Run(tc.name, func(t *testing.T) { - assertRulep(t, tc.ruleExpr, kv(tc.inputData)). - Ok(). - DoesPass(tc.expected) - }) - } -} - -func TestFunctionParsing(t *testing.T) { - parsed := MustParse(`func_name( - fieldarg, - 192.168.0.0, - [1, 2, 3], - nested_func(true) - )`) - require.Equal(t, `func_name(fieldarg, 192.168.0.0, [1, 2, 3], nested_func(true))`, parsed.String()) -} - -func TestIntegerLiterals(t *testing.T) { - for expr, want := range map[string]any{ - `x == 10`: 10, - `x == 010`: 10, // leading zeros are decimal, not octal - `x == -010`: -10, - `x == 0x1f`: 31, - `x == 0o17`: 15, - `x == 0b101`: 5, - `x == 1_000`: 1000, - `x == 0`: 0, - `x == 00`: 0, - `x == 18446744073709551615`: uint64(18446744073709551615), - } { - assertRulep(t, expr, kv{"x": want}).Ok().DoesPass(true) - } - assertRulep(t, `18446744073709551615 > 9223372036854775807`, nil).Ok().DoesPass(true) - assertRulep(t, `-1 < 18446744073709551615`, nil).Ok().DoesPass(true) -} - -func TestMacros(t *testing.T) { - r := MustParse(`dst_k8s_svc() && user != "root"`) +func TestMacroSetRegister(t *testing.T) { macros := MacroSet{} require.NoError(t, macros.Register("dst_k8s_svc", `ip in 172.16.0.0/16 or host matches /svc.cluster.local$/`)) require.Equal(t, `ip in 172.16.0.0/16 or host matches /svc.cluster.local$/`, macros["dst_k8s_svc"].Source) require.NotNil(t, macros["dst_k8s_svc"].AST) +} - assertRule(t, r, &ctx{ - Macros: macros, - KV: KV{ - "ip": net.ParseIP("172.16.0.1"), - "user": "nouser", - }, - }). - Pass() - // EvaluatedRule(`ip == 172.16.0.0/16 and user != "root"`) +// TestFunctionErrorMessages pins Go error wording. Which expressions fail, and +// the parse error positions, are covered by testdata/vectors/functions.json. +func TestFunctionErrorMessages(t *testing.T) { + assertRulep(t, "unknown_fn()", nil).ErrorString(`unknown function "unknown_fn"`) + assertRulep(t, "unknown_fn(some_args)", nil).ErrorString(`unknown function "unknown_fn"`) - assertRule(t, r, &ctx{ - Macros: macros, - KV: KV{ - "ip": net.ParseIP("1.1.1.1"), - "host": "1.1.1.1", - "user": "nouser", - }, - }). - Fail() - // EvaluatedRule(`ip == 172.16.0.0/16 or host =~ /svc.cluster.local$/`) - - assertRule(t, r, &ctx{ - Macros: macros, - KV: KV{ - "host": "test.svc.cluster.local", - "user": "nouser", - }, - }). - Pass() - // EvaluatedRule(`host =~ /svc.cluster.local$/ and user != "root"`) + for _, expr := range []string{"starts_with()", "starts_with(arg1)"} { + _, err := Parse(expr) + var parseErr *ParseError + require.ErrorAs(t, err, &parseErr, expr) + require.Contains(t, parseErr.Message, `function "starts_with" expects 2 arguments`, expr) + } } func TestCustomFunction(t *testing.T) { @@ -1156,94 +411,3 @@ func TestOpts_Validate(t *testing.T) { }) } } - -func TestFieldNames(t *testing.T) { - valid := []string{ - "field", - "field1", - "field-", - "field_", - "field_1", - "field-1", - "field.1", - "field-1.field2", - "field-1.field2-3", - "request.header.user-agent", - } - for _, field := range valid { - r := field + ` == true` - _, err := Parse(r) - require.NoError(t, err, r) - } - - invalid := []string{ - "-field", - `field%.field`, - "01fie^ld", - "01fie||d", - } - for _, field := range invalid { - r := field + ` == true` - _, err := Parse(r) - require.Error(t, err, r) - } -} - -func TestNot(t *testing.T) { - assertRulep(t, `not (a == 1)`, kv(map[string]any{"a": 1})).Ok().DoesPass(false) - assertRulep(t, `not (a == 1)`, kv(map[string]any{"a": 2})).Ok().DoesPass(true) -} - -func TestHexLiterals(t *testing.T) { - // Unquoted hex needs at least two colon-separated pairs; a lone pair is a field name. - assertRulep(t, `ab == 1`, kv{"ab": 1}).Ok().DoesPass(true) - assertRulep(t, `fe == "x"`, kv{"fe": "x"}).Ok().DoesPass(true) - assertRulep(t, `ad`, kv{}).MissingFields("ad") - assertRulep(t, `x == ab:cd`, kv{"x": "\xab\xcd"}).Ok().DoesPass(true) - assertParseError(t, `x == 0a`) - - // x"..." is hex with optional colons, in either quote style and case. - assertRulep(t, `x == x"0a"`, kv{"x": "\n"}).Ok().DoesPass(true) - assertRulep(t, `x == x"504f5354"`, kv{"x": "POST"}).Ok().DoesPass(true) - assertRulep(t, `x == X'50:4F:53:54'`, kv{"x": "POST"}).Ok().DoesPass(true) - // Eight unquoted pairs are an IPv6 address; x"..." keeps them as bytes. - assertRulep(t, `x == x"0123456789abcdef"`, kv{"x": "\x01\x23\x45\x67\x89\xab\xcd\xef"}).Ok().DoesPass(true) - assertParseError(t, `x == x""`) - assertParseError(t, `x == x"abc"`) - assertParseError(t, `x == x"0g"`) - - require.Equal(t, `x == x"0a"`, MustParse(`x == x"0a"`).String()) -} - -func TestRegexFlags(t *testing.T) { - assertRulep(t, `ua matches /curl/i`, kv{"ua": "CURL/8.0"}).Ok().DoesPass(true) - assertRulep(t, `ua matches |curl|i`, kv{"ua": "CURL/8.0"}).Ok().DoesPass(true) - assertRulep(t, `ua matches /curl/`, kv{"ua": "CURL/8.0"}).Ok().DoesPass(false) - assertRulep(t, `body matches /a.b/s`, kv{"body": "a\nb"}).Ok().DoesPass(true) - assertRulep(t, `body matches /^b$/m`, kv{"body": "a\nb"}).Ok().DoesPass(true) - assertRulep(t, `body matches /^A.B$/ims`, kv{"body": "x\na\nb"}).Ok().DoesPass(true) - assertParseError(t, `ua matches /curl/q`) - // A keyword directly after the closing delimiter is still a keyword. - assertRulep(t, `ua matches /curl/and ok`, kv{"ua": "curl", "ok": true}).Ok().DoesPass(true) - require.Equal(t, `ua =~ /curl/i`, MustParse(`ua matches /curl/i`).String()) -} - -func TestRegexDialect(t *testing.T) { - // Forms whose meaning differs between regex engines are rejected. - for _, pattern := range []string{ - `/\/`, `/\Qa.b\E/`, `/\0/`, `/\12/`, `/\b{start}a/`, - `/\p{^L}/`, `/a{,3}/`, `/[\d-z]/`, `/[\p{L}-z]/`, - `/[a[b]]/`, `/[[a]]/`, `/[a-z&&b]/`, `/[a--b]/`, `/[a~~b]/`, - } { - assertParseError(t, `x matches `+pattern) - } - // Equivalent forms that mean the same everywhere are accepted. - for _, pattern := range []string{ - `/\ba/`, `/\x{1F600}/`, `/a{0,3}/`, `/\P{L}/`, `/[\d\-z]/`, `/[a-z]/`, - `/[[:alpha:]]/`, `/[[:^digit:]x]/`, `/[\[\]]/`, `/[]a]/`, `/[^]a]/`, `/[a-]/`, `/[a&b~c-]/`, - `/\{,3\}/`, `/a{2}/`, - } { - _, err := Parse(`x matches ` + pattern) - require.NoError(t, err, pattern) - } -} diff --git a/rule_util_test.go b/rule_util_test.go index cbbc586..88e2bb9 100644 --- a/rule_util_test.go +++ b/rule_util_test.go @@ -3,9 +3,6 @@ package rulekit import ( "context" "fmt" - "net" - "reflect" - "slices" "testing" "github.com/stretchr/testify/assert" @@ -62,72 +59,18 @@ func (r *ruleAssertion) Ok() *ruleAssertion { return r } -func (r *ruleAssertion) DoesPass(pass bool) *ruleAssertion { - r.t.Helper() - switch pass { - case true: - assert.True(r.t, r.result.Pass(), "expected rule to pass\n%s", r) - case false: - assert.True(r.t, r.result.Fail(), "expected rule to fail\n%s", r) - } - return r -} - func (r *ruleAssertion) Pass() *ruleAssertion { r.t.Helper() assert.True(r.t, r.result.Pass(), "expected rule to pass\n%s", r) return r } -func (r *ruleAssertion) Fail() *ruleAssertion { - r.t.Helper() - assert.True(r.t, r.result.Fail(), "expected rule to fail\n%s", r) - return r -} - -func (r *ruleAssertion) NotOk() *ruleAssertion { - r.t.Helper() - assert.False(r.t, r.result.Ok(), "rule should not be ok\n%s", r) - return r -} - -func (r *ruleAssertion) MissingFields(fields ...string) *ruleAssertion { - r.t.Helper() - slices.Sort(fields) - missing := append([]string(nil), r.result.MissingFields...) - slices.Sort(missing) - assert.Equal(r.t, fields, missing, "missing fields should match\n%s", r) - return r -} - -func (r *ruleAssertion) Error(err error) *ruleAssertion { - r.t.Helper() - assert.Equal(r.t, err, r.result.Error, "error should match\n%s", r) - return r -} - func (r *ruleAssertion) ErrorString(err string) *ruleAssertion { r.t.Helper() assert.EqualError(r.t, r.result.Error, err, "error should match\n%s", r) return r } -func (r *ruleAssertion) Result(expected TestResult) *ruleAssertion { - r.t.Helper() - assert.Equal(r.t, expected, toTestResult(r.result), "result should match\n%s", r) - return r -} - -func (r *ruleAssertion) GetResult() Result { - return r.result -} - -func parseCIDR(t *testing.T, s string) *net.IPNet { - _, ipnet, err := net.ParseCIDR(s) - require.NoError(t, err) - return ipnet -} - type Ctxer interface { EvalArgs() (context.Context, Input, Opts) } @@ -162,42 +105,6 @@ func (c *ctx) EvalArgs() (context.Context, Input, Opts) { return ctx, input, Opts{Trace: c.Trace, Macros: c.Macros, Functions: c.Functions} } -func assertParseEval(t *testing.T, rule string, input Ctxer, pass bool) { - t.Helper() - r, err := Parse(rule) - require.NoError(t, err) - assertEval(t, r, input, pass) -} - -// assertEval is a helper function to assert the result of a rule evaluation. -// It enforces strict evaluation. -func assertEval(t *testing.T, r Rule, input Ctxer, value any) { - ctx := context.Background() - var ruleInput Input - opts := Opts{} - if input != nil { - ctx, ruleInput, opts = input.EvalArgs() - } - res := r.Eval(ctx, ruleInput, opts) - if !res.Ok() { - t.Errorf("rule.Eval(%v) failed: error=%v missing=%v", input, res.Error, res.MissingFields) - return - } - if !reflect.DeepEqual(res.Value, value) { - t.Errorf("rule.Eval(%v) = %v, want %v", input, res.Value, value) - } -} - -func assertParseError(t *testing.T, rule string) { - _, err := Parse(rule) - assert.Error(t, err) -} - -func assertParseErrorValue(t *testing.T, rule string, expected string) { - _, err := Parse(rule) - assert.EqualError(t, err, expected) -} - func mustMacroSet(t testing.TB, macros map[string]string) MacroSet { t.Helper() set := MacroSet{} @@ -206,22 +113,3 @@ func mustMacroSet(t testing.TB, macros map[string]string) MacroSet { } return set } - -// TestResult mirrors Result for easier testing. -type TestResult struct { - Value any - Error error - MissingFields []string -} - -// toTestResult converts a Result to TestResult for easier test assertions -func toTestResult(r Result) TestResult { - missing := append([]string(nil), r.MissingFields...) - slices.Sort(missing) - - return TestResult{ - Value: r.Value, - Error: r.Error, - MissingFields: missing, - } -} diff --git a/testdata/vectors/README.md b/testdata/vectors/README.md new file mode 100644 index 0000000..9c1dd2f --- /dev/null +++ b/testdata/vectors/README.md @@ -0,0 +1,112 @@ +# Rulekit test vectors + +Language-neutral test cases that every Rulekit implementation must pass. The Go +runner is `vectors_test.go` in the repository root. + +## Files + +Every `*.json` file in this directory is a vector file; any other entry except +this README is an error. Files group cases by area (`eval`, `literals`, `paths`, +`fields`, `regex`, `functions`, `macros`, `parse_errors`, `print`, `trace`, +`json_input`, `ast_json`). + +```json +{ + "input_mode": "annotated_keys", + "cases": [ + {"name": "ip field in cidr", "expr": "ip in 192.168.0.0/16", "input": {"ip.$ip": "192.168.0.1"}, "expect": {"value": true}} + ] +} +``` + +Decode files strictly: unknown keys anywhere in the file (outside `input`, +`value`, and `ast_json`, which hold arbitrary JSON) are errors, so a misspelled +expectation cannot silently pass. Case names are unique within a file. + +## File keys + +| Key | Meaning | +|---|---| +| `input_mode` | Default input mode for the file's cases (see `input`). | +| `cases` | Non-empty list of cases. | + +## Case keys + +| Key | Meaning | +|---|---| +| `name` | Required, unique within the file. | +| `expr` | The rule expression. Required unless `expect.decode_error` is set. | +| `input` | A JSON object decoded with the public JSON input decoder (`DecodeJSON` in Go) in the case's input mode. When absent, evaluate with no input at all. | +| `input_mode` | Overrides the file's mode: `plain`, `annotated_keys` (`"src.$ip": "1.2.3.4"`), or `typed_document` (`{"$type": "ip", "value": "1.2.3.4"}` everywhere). | +| `macros` | `{name: source}` macros registered for evaluation. | +| `expect` | Expectations; at least one key is required. | + +## Expectations + +Run the steps in order; each applies only when its keys are present. + +1. **Decode.** `decode_error: true` — decoding `input` fails. Such a case has + no `expr` and nothing else is checked. Error wording is not part of the + contract. +2. **Parse.** `parse_error: true` — parsing `expr` fails; nothing else is + checked. `parse_error: {"line": L, "column": C}` — also checks the 1-based + error position. `parse_error: false` — parsing succeeds (use it alone for + parse-only cases). Without `parse_error`, parsing must succeed. +3. **Print** (`print`). Each key compares one printer output: + - `string`: the canonical expression (comments dropped). + - `compact`: compact print (single line; comments kept as `/* */` unless a + line comment contains `*/`). + - `source`: the original expression text. + - `multiline_2sp` / `multiline_4sp`: multiline print with a two- or + four-space indent. + + Every `compact` and `multiline_*` output, and the `string` output, must + parse again to the same canonical `string`. The Go runner also checks that + printing the parsed AST and the compiled rule give the same output. +4. **AST JSON** (`ast_json`). The JSON AST document for `expr`, compared as + JSON (key order and whitespace do not matter). +5. **Evaluate** when any of `value`, `error`, `missing_fields`, or `trace` is + present. Evaluate twice, with tracing off and on; both results must match + the expectations, and the untraced result has no trace. + - `error`: `true` if evaluation must fail. Default `false`: no error. Error + wording is not part of the contract. + - `missing_fields`: the result's missing fields, compared as a sorted list. + Default `[]`. + - `value`: the result value (see below). Not checked when absent; `null` + checks for no value. + - `trace`: the trace tree (see below). + +## Values + +`value` uses the typed JSON input format with shorthand: + +- `true`, `false`, `null`, and strings are themselves. +- Integers are `int64`, or `uint64` when they exceed the `int64` range; numbers + with a fraction or exponent are `float64`. +- Arrays are arrays; objects without a `$type` key are objects. +- An object with a `$type` key is a typed JSON value exactly as in a + `typed_document` input, e.g. `{"$type": "ip", "value": "10.0.0.1"}`, + `{"$type": "bytes", "encoding": "hex", "value": "0a0b"}`, + `{"$type": "uint64", "value": "18446744073709551615"}`. Its nested `object` + and `array` members must be typed as well. + +Values are equal when their types and contents match: `1` (`int64`) does not +equal `{"$type": "uint64", "value": "1"}`. Byte values compare by content +regardless of the encoding used to write them. Compare network values by their +canonical text form (`ip`, `cidr`, `mac`, `url`). + +## Traces + +`trace` describes the root of the trace tree. Every key is optional; only the +keys present are checked. + +| Key | Meaning | +|---|---| +| `kind` | AST node kind: `literal`, `path`, `array`, `call`, `unary`, `binary`. | +| `expr` | The node's canonical expression. | +| `status` | `passed`, `failed`, `missing`, `error`, `pruned`, or `unknown`. | +| `value` | The node's value, as in `value` above. | +| `active` / `pruned` | Whether the node was evaluated / skipped by short-circuiting. | +| `missing_fields` | The node's missing fields, compared sorted. | +| `diagnostics` | The exact list of diagnostics, each `{code, left_type, operator, right_type}`. Types use typed JSON names (`int64`, `string`, `array`, ...). Each diagnostic must also carry a non-empty message; its wording is not part of the contract. | +| `children` | The exact list of child traces, each matched recursively. `{}` matches any child. | diff --git a/testdata/vectors/ast_json.json b/testdata/vectors/ast_json.json new file mode 100644 index 0000000..f2e852a --- /dev/null +++ b/testdata/vectors/ast_json.json @@ -0,0 +1,674 @@ +{ + "cases": [ + { + "name": "ast json document", + "expr": "req.headers[\"user-agent\"][0] matches /curl/i and not starts_with(path, \"/api\")\nor n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\" or mac == 00:11:22:33:44:55", + "expect": { + "ast_json": { + "source": "req.headers[\"user-agent\"][0] matches /curl/i and not starts_with(path, \"/api\")\nor n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\" or mac == 00:11:22:33:44:55", + "root": { + "id": "root", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\" or mac == 00:11:22:33:44:55", + "operator": "or", + "raw": "or", + "span": {"start": 0, "end": 179, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 101}, + "children": [ + { + "id": "root.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4] or body == x\"0a0b\"", + "operator": "or", + "raw": "or", + "span": {"start": 0, "end": 151, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 73}, + "children": [ + { + "id": "root.0.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true] or ip in [10.0.0.0/8, 1.2.3.4]", + "operator": "or", + "raw": "or", + "span": {"start": 0, "end": 132, "startLine": 1, "startColumn": 1, "endLine": 2, "endColumn": 54}, + "children": [ + { + "id": "root.0.0.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\") or n in [1, 2.5, true]", + "operator": "or", + "raw": "or", + "span": { + "start": 0, + "end": 101, + "startLine": 1, + "startColumn": 1, + "endLine": 2, + "endColumn": 23 + }, + "children": [ + { + "id": "root.0.0.0.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i and not starts_with(path, \"/api\")", + "operator": "and", + "raw": "and", + "span": { + "start": 0, + "end": 78, + "startLine": 1, + "startColumn": 1, + "endLine": 1, + "endColumn": 79 + }, + "children": [ + { + "id": "root.0.0.0.0.0", + "kind": "binary", + "text": "req.headers[\"user-agent\"][0] =~ /curl/i", + "operator": "matches", + "raw": "matches", + "span": { + "start": 0, + "end": 44, + "startLine": 1, + "startColumn": 1, + "endLine": 1, + "endColumn": 45 + }, + "children": [ + { + "id": "root.0.0.0.0.0.0", + "kind": "path", + "text": "req.headers[\"user-agent\"][0]", + "path": "req.headers[\"user-agent\"][0]", + "span": { + "start": 0, + "end": 28, + "startLine": 1, + "startColumn": 1, + "endLine": 1, + "endColumn": 29 + } + }, + { + "id": "root.0.0.0.0.0.1", + "kind": "literal", + "text": "/curl/i", + "raw": "/curl/i", + "span": { + "start": 37, + "end": 44, + "startLine": 1, + "startColumn": 38, + "endLine": 1, + "endColumn": 45 + } + } + ] + }, + { + "id": "root.0.0.0.0.1", + "kind": "unary", + "text": "not starts_with(path, \"/api\")", + "operator": "not", + "raw": "not", + "span": { + "start": 49, + "end": 78, + "startLine": 1, + "startColumn": 50, + "endLine": 1, + "endColumn": 79 + }, + "children": [ + { + "id": "root.0.0.0.0.1.0", + "kind": "call", + "text": "starts_with(path, \"/api\")", + "raw": "starts_with", + "span": { + "start": 53, + "end": 78, + "startLine": 1, + "startColumn": 54, + "endLine": 1, + "endColumn": 79 + }, + "children": [ + { + "id": "root.0.0.0.0.1.0.0", + "kind": "path", + "text": "path", + "path": "path", + "span": { + "start": 65, + "end": 69, + "startLine": 1, + "startColumn": 66, + "endLine": 1, + "endColumn": 70 + } + }, + { + "id": "root.0.0.0.0.1.0.1", + "kind": "literal", + "text": "\"/api\"", + "raw": "\"/api\"", + "span": { + "start": 71, + "end": 77, + "startLine": 1, + "startColumn": 72, + "endLine": 1, + "endColumn": 78 + } + } + ] + } + ] + } + ] + }, + { + "id": "root.0.0.0.1", + "kind": "binary", + "text": "n in [1, 2.5, true]", + "operator": "in", + "raw": "in", + "span": { + "start": 82, + "end": 101, + "startLine": 2, + "startColumn": 4, + "endLine": 2, + "endColumn": 23 + }, + "children": [ + { + "id": "root.0.0.0.1.0", + "kind": "path", + "text": "n", + "path": "n", + "span": { + "start": 82, + "end": 83, + "startLine": 2, + "startColumn": 4, + "endLine": 2, + "endColumn": 5 + } + }, + { + "id": "root.0.0.0.1.1", + "kind": "array", + "text": "[1, 2.5, true]", + "span": { + "start": 87, + "end": 101, + "startLine": 2, + "startColumn": 9, + "endLine": 2, + "endColumn": 23 + }, + "children": [ + { + "id": "root.0.0.0.1.1.0", + "kind": "literal", + "text": "1", + "raw": "1", + "span": { + "start": 88, + "end": 89, + "startLine": 2, + "startColumn": 10, + "endLine": 2, + "endColumn": 11 + } + }, + { + "id": "root.0.0.0.1.1.1", + "kind": "literal", + "text": "2.5", + "raw": "2.5", + "span": { + "start": 91, + "end": 94, + "startLine": 2, + "startColumn": 13, + "endLine": 2, + "endColumn": 16 + } + }, + { + "id": "root.0.0.0.1.1.2", + "kind": "literal", + "text": "true", + "raw": "true", + "span": { + "start": 96, + "end": 100, + "startLine": 2, + "startColumn": 18, + "endLine": 2, + "endColumn": 22 + } + } + ] + } + ] + } + ] + }, + { + "id": "root.0.0.1", + "kind": "binary", + "text": "ip in [10.0.0.0/8, 1.2.3.4]", + "operator": "in", + "raw": "in", + "span": { + "start": 105, + "end": 132, + "startLine": 2, + "startColumn": 27, + "endLine": 2, + "endColumn": 54 + }, + "children": [ + { + "id": "root.0.0.1.0", + "kind": "path", + "text": "ip", + "path": "ip", + "span": { + "start": 105, + "end": 107, + "startLine": 2, + "startColumn": 27, + "endLine": 2, + "endColumn": 29 + } + }, + { + "id": "root.0.0.1.1", + "kind": "array", + "text": "[10.0.0.0/8, 1.2.3.4]", + "span": { + "start": 111, + "end": 132, + "startLine": 2, + "startColumn": 33, + "endLine": 2, + "endColumn": 54 + }, + "children": [ + { + "id": "root.0.0.1.1.0", + "kind": "literal", + "text": "10.0.0.0/8", + "raw": "10.0.0.0/8", + "span": { + "start": 112, + "end": 122, + "startLine": 2, + "startColumn": 34, + "endLine": 2, + "endColumn": 44 + } + }, + { + "id": "root.0.0.1.1.1", + "kind": "literal", + "text": "1.2.3.4", + "raw": "1.2.3.4", + "span": { + "start": 124, + "end": 131, + "startLine": 2, + "startColumn": 46, + "endLine": 2, + "endColumn": 53 + } + } + ] + } + ] + } + ] + }, + { + "id": "root.0.1", + "kind": "binary", + "text": "body == x\"0a0b\"", + "operator": "==", + "raw": "==", + "span": {"start": 136, "end": 151, "startLine": 2, "startColumn": 58, "endLine": 2, "endColumn": 73}, + "children": [ + { + "id": "root.0.1.0", + "kind": "path", + "text": "body", + "path": "body", + "span": { + "start": 136, + "end": 140, + "startLine": 2, + "startColumn": 58, + "endLine": 2, + "endColumn": 62 + } + }, + { + "id": "root.0.1.1", + "kind": "literal", + "text": "x\"0a0b\"", + "raw": "x\"0a0b\"", + "span": { + "start": 144, + "end": 151, + "startLine": 2, + "startColumn": 66, + "endLine": 2, + "endColumn": 73 + } + } + ] + } + ] + }, + { + "id": "root.1", + "kind": "binary", + "text": "mac == 00:11:22:33:44:55", + "operator": "==", + "raw": "==", + "span": {"start": 155, "end": 179, "startLine": 2, "startColumn": 77, "endLine": 2, "endColumn": 101}, + "children": [ + { + "id": "root.1.0", + "kind": "path", + "text": "mac", + "path": "mac", + "span": {"start": 155, "end": 158, "startLine": 2, "startColumn": 77, "endLine": 2, "endColumn": 80} + }, + { + "id": "root.1.1", + "kind": "literal", + "text": "00:11:22:33:44:55", + "raw": "00:11:22:33:44:55", + "span": { + "start": 162, + "end": 179, + "startLine": 2, + "startColumn": 84, + "endLine": 2, + "endColumn": 101 + } + } + ] + } + ] + }, + "tokens": [ + { + "kind": "FIELD", + "role": "id", + "raw": "req.headers", + "span": {"start": 0, "end": 11, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 12} + }, + { + "kind": "LBRACKET", + "role": "pun", + "raw": "[", + "span": {"start": 11, "end": 12, "startLine": 1, "startColumn": 12, "endLine": 1, "endColumn": 13} + }, + { + "kind": "STRING", + "role": "str", + "raw": "\"user-agent\"", + "span": {"start": 12, "end": 24, "startLine": 1, "startColumn": 13, "endLine": 1, "endColumn": 25} + }, + { + "kind": "RBRACKET", + "role": "pun", + "raw": "]", + "span": {"start": 24, "end": 25, "startLine": 1, "startColumn": 25, "endLine": 1, "endColumn": 26} + }, + { + "kind": "LBRACKET", + "role": "pun", + "raw": "[", + "span": {"start": 25, "end": 26, "startLine": 1, "startColumn": 26, "endLine": 1, "endColumn": 27} + }, + { + "kind": "INT", + "role": "num", + "raw": "0", + "span": {"start": 26, "end": 27, "startLine": 1, "startColumn": 27, "endLine": 1, "endColumn": 28} + }, + { + "kind": "RBRACKET", + "role": "pun", + "raw": "]", + "span": {"start": 27, "end": 28, "startLine": 1, "startColumn": 28, "endLine": 1, "endColumn": 29} + }, + { + "kind": "MATCHES", + "role": "kw", + "raw": "matches", + "span": {"start": 29, "end": 36, "startLine": 1, "startColumn": 30, "endLine": 1, "endColumn": 37} + }, + { + "kind": "REGEX", + "role": "str", + "raw": "/curl/i", + "span": {"start": 37, "end": 44, "startLine": 1, "startColumn": 38, "endLine": 1, "endColumn": 45} + }, + { + "kind": "AND", + "role": "kw", + "raw": "and", + "span": {"start": 45, "end": 48, "startLine": 1, "startColumn": 46, "endLine": 1, "endColumn": 49} + }, + { + "kind": "NOT", + "role": "kw", + "raw": "not", + "span": {"start": 49, "end": 52, "startLine": 1, "startColumn": 50, "endLine": 1, "endColumn": 53} + }, + { + "kind": "FIELD", + "role": "id", + "raw": "starts_with", + "span": {"start": 53, "end": 64, "startLine": 1, "startColumn": 54, "endLine": 1, "endColumn": 65} + }, + { + "kind": "LPAREN", + "role": "pun", + "raw": "(", + "span": {"start": 64, "end": 65, "startLine": 1, "startColumn": 65, "endLine": 1, "endColumn": 66} + }, + { + "kind": "FIELD", + "role": "id", + "raw": "path", + "span": {"start": 65, "end": 69, "startLine": 1, "startColumn": 66, "endLine": 1, "endColumn": 70} + }, + { + "kind": "COMMA", + "role": "pun", + "raw": ",", + "span": {"start": 69, "end": 70, "startLine": 1, "startColumn": 70, "endLine": 1, "endColumn": 71} + }, + { + "kind": "STRING", + "role": "str", + "raw": "\"/api\"", + "span": {"start": 71, "end": 77, "startLine": 1, "startColumn": 72, "endLine": 1, "endColumn": 78} + }, + { + "kind": "RPAREN", + "role": "pun", + "raw": ")", + "span": {"start": 77, "end": 78, "startLine": 1, "startColumn": 78, "endLine": 1, "endColumn": 79} + }, + { + "kind": "OR", + "role": "kw", + "raw": "or", + "span": {"start": 79, "end": 81, "startLine": 2, "startColumn": 1, "endLine": 2, "endColumn": 3} + }, + { + "kind": "FIELD", + "role": "id", + "raw": "n", + "span": {"start": 82, "end": 83, "startLine": 2, "startColumn": 4, "endLine": 2, "endColumn": 5} + }, + { + "kind": "IN", + "role": "kw", + "raw": "in", + "span": {"start": 84, "end": 86, "startLine": 2, "startColumn": 6, "endLine": 2, "endColumn": 8} + }, + { + "kind": "LBRACKET", + "role": "pun", + "raw": "[", + "span": {"start": 87, "end": 88, "startLine": 2, "startColumn": 9, "endLine": 2, "endColumn": 10} + }, + { + "kind": "INT", + "role": "num", + "raw": "1", + "span": {"start": 88, "end": 89, "startLine": 2, "startColumn": 10, "endLine": 2, "endColumn": 11} + }, + { + "kind": "COMMA", + "role": "pun", + "raw": ",", + "span": {"start": 89, "end": 90, "startLine": 2, "startColumn": 11, "endLine": 2, "endColumn": 12} + }, + { + "kind": "FLOAT", + "role": "num", + "raw": "2.5", + "span": {"start": 91, "end": 94, "startLine": 2, "startColumn": 13, "endLine": 2, "endColumn": 16} + }, + { + "kind": "COMMA", + "role": "pun", + "raw": ",", + "span": {"start": 94, "end": 95, "startLine": 2, "startColumn": 16, "endLine": 2, "endColumn": 17} + }, + { + "kind": "BOOL", + "role": "str", + "raw": "true", + "span": {"start": 96, "end": 100, "startLine": 2, "startColumn": 18, "endLine": 2, "endColumn": 22} + }, + { + "kind": "RBRACKET", + "role": "pun", + "raw": "]", + "span": {"start": 100, "end": 101, "startLine": 2, "startColumn": 22, "endLine": 2, "endColumn": 23} + }, + { + "kind": "OR", + "role": "kw", + "raw": "or", + "span": {"start": 102, "end": 104, "startLine": 2, "startColumn": 24, "endLine": 2, "endColumn": 26} + }, + { + "kind": "FIELD", + "role": "id", + "raw": "ip", + "span": {"start": 105, "end": 107, "startLine": 2, "startColumn": 27, "endLine": 2, "endColumn": 29} + }, + { + "kind": "IN", + "role": "kw", + "raw": "in", + "span": {"start": 108, "end": 110, "startLine": 2, "startColumn": 30, "endLine": 2, "endColumn": 32} + }, + { + "kind": "LBRACKET", + "role": "pun", + "raw": "[", + "span": {"start": 111, "end": 112, "startLine": 2, "startColumn": 33, "endLine": 2, "endColumn": 34} + }, + { + "kind": "IP_CIDR", + "role": "str", + "raw": "10.0.0.0/8", + "span": {"start": 112, "end": 122, "startLine": 2, "startColumn": 34, "endLine": 2, "endColumn": 44} + }, + { + "kind": "COMMA", + "role": "pun", + "raw": ",", + "span": {"start": 122, "end": 123, "startLine": 2, "startColumn": 44, "endLine": 2, "endColumn": 45} + }, + { + "kind": "IP", + "role": "str", + "raw": "1.2.3.4", + "span": {"start": 124, "end": 131, "startLine": 2, "startColumn": 46, "endLine": 2, "endColumn": 53} + }, + { + "kind": "RBRACKET", + "role": "pun", + "raw": "]", + "span": {"start": 131, "end": 132, "startLine": 2, "startColumn": 53, "endLine": 2, "endColumn": 54} + }, + { + "kind": "OR", + "role": "kw", + "raw": "or", + "span": {"start": 133, "end": 135, "startLine": 2, "startColumn": 55, "endLine": 2, "endColumn": 57} + }, + { + "kind": "FIELD", + "role": "id", + "raw": "body", + "span": {"start": 136, "end": 140, "startLine": 2, "startColumn": 58, "endLine": 2, "endColumn": 62} + }, + { + "kind": "EQ", + "role": "kw", + "raw": "==", + "span": {"start": 141, "end": 143, "startLine": 2, "startColumn": 63, "endLine": 2, "endColumn": 65} + }, + { + "kind": "HEX_STRING", + "role": "str", + "raw": "x\"0a0b\"", + "span": {"start": 144, "end": 151, "startLine": 2, "startColumn": 66, "endLine": 2, "endColumn": 73} + }, + { + "kind": "OR", + "role": "kw", + "raw": "or", + "span": {"start": 152, "end": 154, "startLine": 2, "startColumn": 74, "endLine": 2, "endColumn": 76} + }, + { + "kind": "FIELD", + "role": "id", + "raw": "mac", + "span": {"start": 155, "end": 158, "startLine": 2, "startColumn": 77, "endLine": 2, "endColumn": 80} + }, + { + "kind": "EQ", + "role": "kw", + "raw": "==", + "span": {"start": 159, "end": 161, "startLine": 2, "startColumn": 81, "endLine": 2, "endColumn": 83} + }, + { + "kind": "HEX_STRING", + "role": "str", + "raw": "00:11:22:33:44:55", + "span": {"start": 162, "end": 179, "startLine": 2, "startColumn": 84, "endLine": 2, "endColumn": 101} + } + ] + } + } + } + ] +} diff --git a/testdata/vectors/eval.json b/testdata/vectors/eval.json new file mode 100644 index 0000000..135ed81 --- /dev/null +++ b/testdata/vectors/eval.json @@ -0,0 +1,515 @@ +{ + "input_mode": "annotated_keys", + "cases": [ + { + "name": "engine example: tags array matches", + "expr": "\n\t\ttags == 'db-svc'\n\t\tOR domain matches /example\\.com$/ -- any domain or subdomain of example.com\n\t\tOR src.process.path matches |^/usr/bin/| -- patterns can be enclosed in |...| or /.../\n\t\tOR (process.uid != 0 AND tags contains 'internal-svc') \n\t\t/* connections to LAN addresses over privileged ports */\n\t\tOR (destination.port <= 1023 AND destination.ip == 192.168.0.0/16)\n\t", + "input": { + "tags": ["db-svc", "internal-vlan", "unprivileged-user"], + "domain": "example.com", + "process": {"uid": 1000, "path": "/usr/bin/some-other-process"}, + "port": 8080 + }, + "expect": {"value": true} + }, + { + "name": "engine example: LAN address over privileged port", + "expr": "\n\t\ttags == 'db-svc'\n\t\tOR domain matches /example\\.com$/ -- any domain or subdomain of example.com\n\t\tOR src.process.path matches |^/usr/bin/| -- patterns can be enclosed in |...| or /.../\n\t\tOR (process.uid != 0 AND tags contains 'internal-svc') \n\t\t/* connections to LAN addresses over privileged ports */\n\t\tOR (destination.port <= 1023 AND destination.ip == 192.168.0.0/16)\n\t", + "input": {"destination": {"ip.$ip": "192.168.2.37", "port": 22}}, + "expect": {"value": true} + }, + { + "name": "engine example: flat dotted keys are not nested paths", + "expr": "\n\t\ttags == 'db-svc'\n\t\tOR domain matches /example\\.com$/ -- any domain or subdomain of example.com\n\t\tOR src.process.path matches |^/usr/bin/| -- patterns can be enclosed in |...| or /.../\n\t\tOR (process.uid != 0 AND tags contains 'internal-svc') \n\t\t/* connections to LAN addresses over privileged ports */\n\t\tOR (destination.port <= 1023 AND destination.ip == 192.168.0.0/16)\n\t", + "input": {"destination.ip.$ip": "1.1.1.1", "destination.port": 22}, + "expect": { + "value": null, + "missing_fields": ["destination.ip", "destination.port", "domain", "process.uid", "src.process.path", "tags"] + } + }, + { + "name": "engine example: src process path matches", + "expr": "\n\t\ttags == 'db-svc'\n\t\tOR domain matches /example\\.com$/ -- any domain or subdomain of example.com\n\t\tOR src.process.path matches |^/usr/bin/| -- patterns can be enclosed in |...| or /.../\n\t\tOR (process.uid != 0 AND tags contains 'internal-svc') \n\t\t/* connections to LAN addresses over privileged ports */\n\t\tOR (destination.port <= 1023 AND destination.ip == 192.168.0.0/16)\n\t", + "input": {"src": {"process": {"path": "/usr/bin/some-other-process"}}}, + "expect": {"value": true} + }, + { + "name": "engine example: no branch matches", + "expr": "\n\t\ttags == 'db-svc'\n\t\tOR domain matches /example\\.com$/ -- any domain or subdomain of example.com\n\t\tOR src.process.path matches |^/usr/bin/| -- patterns can be enclosed in |...| or /.../\n\t\tOR (process.uid != 0 AND tags contains 'internal-svc') \n\t\t/* connections to LAN addresses over privileged ports */\n\t\tOR (destination.port <= 1023 AND destination.ip == 192.168.0.0/16)\n\t", + "input": {"src": {"process": {"path": "/opt/go"}}}, + "expect": { + "value": null, + "missing_fields": ["destination.ip", "destination.port", "domain", "process.uid", "tags"] + } + }, + { + "name": "float equality true", + "expr": "tls_version == 1.2", + "input": {"tls_version": 1.2}, + "expect": {"value": true} + }, + { + "name": "float equality false", + "expr": "tls_version == 1.2", + "input": {"tls_version": 1.1}, + "expect": {"value": false} + }, + { + "name": "equality on missing field", + "expr": "tls_version == 1.2", + "input": {}, + "expect": {"value": null, "missing_fields": ["tls_version"]} + }, + { + "name": "inequality on missing field", + "expr": "tls_version != 5", + "input": {}, + "expect": {"value": null, "missing_fields": ["tls_version"]} + }, + { + "name": "negated missing field", + "expr": "!tls_version", + "input": {}, + "expect": {"value": null, "missing_fields": ["tls_version"]} + }, + { + "name": "or: first branch true", + "expr": "domain matches /example\\.com$/ OR tags == \"db-svc\"", + "input": {"domain": "example.com"}, + "expect": {"value": true} + }, + { + "name": "or: second branch true with first missing", + "expr": "domain matches /example\\.com$/ OR tags == \"db-svc\"", + "input": {"tags": "db-svc"}, + "expect": {"value": true} + }, + { + "name": "or: false branch and missing branch", + "expr": "domain matches /example\\.com$/ OR tags == \"db-svc\"", + "input": {"domain": "other.com"}, + "expect": {"value": null, "missing_fields": ["tags"]} + }, + { + "name": "and: true branch and missing branch", + "expr": "domain == \"example.com\" AND tags == \"db-svc\"", + "input": {"domain": "example.com"}, + "expect": {"value": null, "missing_fields": ["tags"]} + }, + { + "name": "and: missing branch and true branch", + "expr": "domain == \"example.com\" AND tags == \"db-svc\"", + "input": {"tags": "db-svc"}, + "expect": {"value": null, "missing_fields": ["domain"]} + }, + { + "name": "and: array field equals element", + "expr": "domain == \"example.com\" AND tags == \"db-svc\"", + "input": {"domain": "example.com", "tags": ["test", "db-svc"]}, + "expect": {"value": true} + }, + { + "name": "and: false branch wins over missing branch", + "expr": "domain == \"example.com\" AND tags == \"db-svc\"", + "input": {"domain": "qpoint.io"}, + "expect": {"value": false} + }, + { + "name": "and: empty array field equals nothing", + "expr": "domain == \"example.com\" AND tags == \"db-svc\"", + "input": {"tags": []}, + "expect": {"value": false} + }, + { + "name": "nested and/or with bare bool field", + "expr": "\n\t\t\t\tdst.ip == 8.8.8.8\n\t\t\t\tor (\n\t\t\t\t\tdst.ip == 1.1.1.1\n\t\t\t\t\tand (\n\t\t\t\t\t\tdst.port == 53\n\t\t\t\t\t\tor (dst.port == 443 and tls.enabled)\n\t\t\t\t\t)\n\t\t\t\t)", + "input": {"tls": {"enabled": true}, "dst": {"ip.$ip": "1.1.1.1", "port": 443}}, + "expect": {"value": true} + }, + { + "name": "int and uint64 equality", + "expr": "f_int == 1 and f_uint == 13", + "input": {"f_int": 1, "f_uint.$uint64": "13"}, + "expect": {"value": true} + }, + { + "name": "int and uint64 inequality", + "expr": "f_int == 1 and f_uint == 13", + "input": {"f_int": 1, "f_uint.$uint64": "14"}, + "expect": {"value": false} + }, + { + "name": "array != means no element equals", + "expr": "f_int != 2", + "input": {"f_int": [1, 3, 4]}, + "expect": {"value": true} + }, + { + "name": "array != with an equal element", + "expr": "f_int != 2", + "input": {"f_int": [1, 2, 3, 4]}, + "expect": {"value": false} + }, + { + "name": "numeric map keys and hex equals string", + "expr": "f_string.1 == \"1\" and f_string.2 == 47:45:54 and f_string.3 == \"abc123\"", + "input": {"f_string": {"1": "1", "2": "GET", "3": "abc123"}}, + "expect": {"value": true} + }, + { + "name": "numeric map keys and hex equals string: mismatch", + "expr": "f_string.1 == \"1\" and f_string.2 == 47:45:54 and f_string.3 == \"abc123\"", + "input": {"f_string": {"1": "2", "2": "GET", "3": "abc123"}}, + "expect": {"value": false} + }, + { + "name": "string and hex contains", + "expr": "f_string.1 contains \"1\" and f_string.2 contains 47:45:54 and f_string.3 contains \"abc123\"", + "input": {"f_string": {"1": "asdf1asdf", "2": "text - GET ---", "3": "asf fffabc123"}}, + "expect": {"value": true} + }, + { + "name": "string and hex contains: mismatch", + "expr": "f_string.1 contains \"1\" and f_string.2 contains 47:45:54 and f_string.3 contains \"abc123\"", + "input": {"f_string": {"1": "test234test", "2": "xxxxETyyy", "3": "abc125"}}, + "expect": {"value": false} + }, + { + "name": "ip equality", + "expr": "ip.src==192.168.1.1 and ip.dst==192.168.1.1", + "input": {"ip": {"src.$ip": "192.168.1.1", "dst.$ip": "192.168.1.1"}}, + "expect": {"value": true} + }, + { + "name": "ip inequality", + "expr": "ip.src==192.168.1.1 and ip.dst==192.168.1.1", + "input": {"ip": {"src.$ip": "192.168.1.2", "dst.$ip": "192.168.1.1"}}, + "expect": {"value": false} + }, + { + "name": "ip equality on missing fields", + "expr": "ip.src==192.168.1.1 and ip.dst==192.168.1.1", + "input": {}, + "expect": {"value": null, "missing_fields": ["ip.dst", "ip.src"]} + }, + { + "name": "ip == cidr is containment", + "expr": "ip.src == 192.168.0.0/16", + "input": {"ip": {"src.$ip": "192.168.100.1", "dst.$ip": "192.168.1.1"}}, + "expect": {"value": true} + }, + { + "name": "ip == cidr outside range", + "expr": "ip.src == 192.168.0.0/16", + "input": {"ip": {"src.$ip": "172.16.0.1", "dst.$ip": "10.0.0.1"}}, + "expect": {"value": false} + }, + { + "name": "ip == cidr on missing field", + "expr": "ip.src == 192.168.0.0/16", + "input": {}, + "expect": {"value": null, "missing_fields": ["ip.src"]} + }, + { + "name": "mac equals hex literal", + "expr": "f_mac == ab:3b:06:07:b2:ef", + "input": {"f_mac.$mac": "ab:3b:06:07:b2:ef"}, + "expect": {"value": true} + }, + { + "name": "mac differs from hex literal", + "expr": "f_mac == ab:3b:06:07:b2:ef", + "input": {"f_mac.$mac": "aa:bb:cc:dd:ee:ff"}, + "expect": {"value": false} + }, + { + "name": "mac equality on missing field", + "expr": "f_mac == ab:3b:06:07:b2:ef", + "input": {}, + "expect": {"value": null, "missing_fields": ["f_mac"]} + }, + { + "name": "field == array is membership: int", + "expr": "field == [1, \"str\", 3]", + "input": {"field": 3}, + "expect": {"value": true} + }, + { + "name": "field == array is membership: no match", + "expr": "field == [1, \"str\", 3]", + "input": {"field": 4}, + "expect": {"value": false} + }, + { + "name": "field == array is membership: string", + "expr": "field == [1, \"str\", 3]", + "input": {"field": "str"}, + "expect": {"value": true} + }, + { + "name": "contains with array on the right: superstring", + "expr": "field contains [1, \"str\", 3]", + "input": {"field": "string"}, + "expect": {"value": false} + }, + { + "name": "contains with array on the right: element", + "expr": "field contains [1, \"str\", 3]", + "input": {"field": "str"}, + "expect": {"value": false} + }, + { + "name": "contains with array on the right: int", + "expr": "field contains [1, \"str\", 3]", + "input": {"field": 123}, + "expect": {"value": false} + }, + { + "name": "string contains substring", + "expr": "field contains \"str\"", + "input": {"field": "string"}, + "expect": {"value": true} + }, + { + "name": "array contains element", + "expr": "field contains \"str\"", + "input": {"field": ["str", 123]}, + "expect": {"value": true} + }, + { + "name": "array contains is not substring", + "expr": "field contains \"str\"", + "input": {"field": ["test", "string"]}, + "expect": {"value": false} + }, + { + "name": "array == scalar: no element equals", + "expr": "f == \"string\"", + "input": {"f": [1, "str", 3]}, + "expect": {"value": false} + }, + { + "name": "array != scalar: no element equals", + "expr": "f != \"string\"", + "input": {"f": [1, "str", 3]}, + "expect": {"value": true} + }, + { + "name": "array contains scalar: no element equals", + "expr": "f contains \"string\"", + "input": {"f": [1, "str", 3]}, + "expect": {"value": false} + }, + { + "name": "field array contains field value", + "expr": "arr contains val", + "input": {"arr": [1, "str", 3], "val": "str"}, + "expect": {"value": true} + }, + { + "name": "field array contains field value: no match", + "expr": "arr contains val", + "input": {"arr": [1, "str", 3], "val": 50}, + "expect": {"value": false} + }, + {"name": "array literal contains int", "expr": "[1,2,3] contains 2", "expect": {"value": true}}, + {"name": "array literal contains string", "expr": "[1,2,3] contains \"str\"", "expect": {"value": false}}, + { + "name": "in array: superstring", + "expr": "field in [1, \"str\", 3]", + "input": {"field": "string"}, + "expect": {"value": false} + }, + { + "name": "in array: element", + "expr": "field in [1, \"str\", 3]", + "input": {"field": "str"}, + "expect": {"value": true} + }, + { + "name": "in array: substring", + "expr": "field in [1, \"str\", 3]", + "input": {"field": "s"}, + "expect": {"value": false} + }, + {"name": "in array: int", "expr": "field in [1, \"str\", 3]", "input": {"field": 123}, "expect": {"value": false}}, + {"name": "int literal in array", "expr": "5 in [1,2,3]", "expect": {"value": false}}, + {"name": "string literal in array", "expr": "\"str\" in [\"str\"]", "expect": {"value": true}}, + {"name": "ip literal in mixed cidr/ip array", "expr": "1.2.3.4 in [1.0.0.0/8, 8.8.8.8]", "expect": {"value": true}}, + { + "name": "ip literal not in mixed cidr/ip array", + "expr": "192.168.0.1 in [1.0.0.0/8, 8.8.8.8]", + "expect": {"value": false} + }, + {"name": "ip literal in cidr", "expr": "192.168.0.1 in 192.168.0.0/16", "expect": {"value": true}}, + { + "name": "ip field in cidr", + "expr": "ip in 192.168.0.0/16", + "input": {"ip.$ip": "192.168.0.1"}, + "expect": {"value": true} + }, + { + "name": "cidr field contains ip field", + "expr": "cidr contains ip", + "input": {"cidr.$cidr": "192.168.0.0/16", "ip.$ip": "192.168.0.1"}, + "expect": {"value": true} + }, + { + "name": "array in array: any element matches", + "expr": "client in [\"alice\", \"bob\"]", + "input": {"client": ["nobody", "bob"]}, + "expect": {"value": true} + }, + { + "name": "array in array: no element matches", + "expr": "client in [\"alice\", \"bob\"]", + "input": {"client": ["nobody", "somebody"]}, + "expect": {"value": false} + }, + { + "name": "empty array in array", + "expr": "client in [\"alice\"]", + "input": {"client": []}, + "expect": {"value": false} + }, + { + "name": "mixed array in array: matches", + "expr": "client in [\"alice\", 3]", + "input": {"client": ["nobody", 3]}, + "expect": {"value": true} + }, + { + "name": "mixed array in array: no match", + "expr": "client in [\"alice\", 3]", + "input": {"client": ["nobody", 4]}, + "expect": {"value": false} + }, + { + "name": "int array in array: matches", + "expr": "ports in [80, 443]", + "input": {"ports": [22, 443]}, + "expect": {"value": true} + }, + { + "name": "int array in array: no match", + "expr": "ports in [80, 443]", + "input": {"ports": [22, 8080]}, + "expect": {"value": false} + }, + { + "name": "int array in array: first element matches", + "expr": "ports in [80, 443]", + "input": {"ports": [22, 80]}, + "expect": {"value": true} + }, + { + "name": "ip array in cidr: matches", + "expr": "ips in 192.168.0.0/16", + "input_mode": "typed_document", + "input": { + "ips": { + "$type": "array", + "value": [{"$type": "ip", "value": "1.1.1.1"}, {"$type": "ip", "value": "192.168.0.1"}] + } + }, + "expect": {"value": true} + }, + { + "name": "ip array in cidr: no match", + "expr": "ips in 192.168.0.0/16", + "input_mode": "typed_document", + "input": { + "ips": {"$type": "array", "value": [{"$type": "ip", "value": "1.1.1.1"}, {"$type": "ip", "value": "8.8.8.8"}]} + }, + "expect": {"value": false} + }, + { + "name": "ip array in mixed array: matches", + "expr": "ips in [1.0.0.0/8, 8.8.8.8]", + "input_mode": "typed_document", + "input": { + "ips": { + "$type": "array", + "value": [{"$type": "ip", "value": "192.168.0.1"}, {"$type": "ip", "value": "8.8.8.8"}] + } + }, + "expect": {"value": true} + }, + { + "name": "not (array in array): no element matches", + "expr": "not (client in [\"alice\", \"bob\"])", + "input": {"client": ["nobody", "somebody"]}, + "expect": {"value": true} + }, + { + "name": "not (array in array): an element matches", + "expr": "not (client in [\"alice\", \"bob\"])", + "input": {"client": ["nobody", "bob"]}, + "expect": {"value": false} + }, + { + "name": "scalar in array: matches", + "expr": "client in [\"alice\", \"bob\"]", + "input": {"client": "bob"}, + "expect": {"value": true} + }, + { + "name": "scalar in array: no match", + "expr": "client in [\"alice\", \"bob\"]", + "input": {"client": "nobody"}, + "expect": {"value": false} + }, + {"name": "bool: standalone true", "expr": "true", "input": {}, "expect": {"value": true}}, + {"name": "bool: standalone false", "expr": "false", "input": {}, "expect": {"value": false}}, + {"name": "bool: true equals true", "expr": "true == true", "input": {}, "expect": {"value": true}}, + {"name": "bool: false equals false", "expr": "false == false", "input": {}, "expect": {"value": true}}, + {"name": "bool: true not equals false", "expr": "true != false", "input": {}, "expect": {"value": true}}, + {"name": "bool: field equals true", "expr": "field == true", "input": {"field": true}, "expect": {"value": true}}, + { + "name": "bool: field not equals true", + "expr": "field != true", + "input": {"field": false}, + "expect": {"value": true} + }, + {"name": "bool: case insensitive TRUE", "expr": "TRUE == true", "input": {}, "expect": {"value": true}}, + {"name": "bool: case insensitive FALSE", "expr": "FALSE == false", "input": {}, "expect": {"value": true}}, + { + "name": "ip field equals quoted ip", + "expr": "ip == \"192.168.1.1\"", + "input": {"ip.$ip": "192.168.1.1"}, + "expect": {"value": true} + }, + { + "name": "quoted ip equals ip field", + "expr": "\"192.168.1.1\" == ip", + "input": {"ip.$ip": "192.168.1.1"}, + "expect": {"value": true} + }, + { + "name": "string field equals ip literal", + "expr": "ipstr == 192.168.1.1", + "input": {"ipstr": "192.168.1.1"}, + "expect": {"value": true} + }, + { + "name": "quoted ip in cidr array", + "expr": "\"192.168.1.5\" in [192.168.1.0/24]", + "input": {}, + "expect": {"value": true} + }, + { + "name": "quoted ip not in cidr array", + "expr": "\"10.0.0.1\" in [192.168.1.0/24]", + "input": {}, + "expect": {"value": false} + }, + { + "name": "mac field equals quoted mac", + "expr": "mac == \"01:23:45:67:89:ab\"", + "input": {"mac.$mac": "01:23:45:67:89:ab"}, + "expect": {"value": true} + }, + {"name": "not negates true", "expr": "not (a == 1)", "input": {"a": 1}, "expect": {"value": false}}, + {"name": "not negates false", "expr": "not (a == 1)", "input": {"a": 2}, "expect": {"value": true}} + ] +} diff --git a/testdata/vectors/fields.json b/testdata/vectors/fields.json new file mode 100644 index 0000000..ad15bdf --- /dev/null +++ b/testdata/vectors/fields.json @@ -0,0 +1,251 @@ +{ + "input_mode": "annotated_keys", + "cases": [ + { + "name": "url field: url.scheme == \"https\"", + "expr": "url.scheme == \"https\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": true} + }, + { + "name": "url field: url.host == \"example.com\"", + "expr": "url.host == \"example.com\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": true} + }, + { + "name": "url field: url.port == 8443", + "expr": "url.port == 8443", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": true} + }, + { + "name": "url field: url.path == \"/api/v1\"", + "expr": "url.path == \"/api/v1\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": true} + }, + { + "name": "url field: url.query.env == \"prod\"", + "expr": "url.query.env == \"prod\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": true} + }, + { + "name": "url field: url.query[\"tag\"] == \"b\"", + "expr": "url.query[\"tag\"] == \"b\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": true} + }, + { + "name": "url field: url.fragment == \"top\"", + "expr": "url.fragment == \"top\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": true} + }, + { + "name": "url field: url.user == \"alice\"", + "expr": "url.user == \"alice\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": true} + }, + { + "name": "absent url part is missing: bare.port", + "expr": "bare.port == 80", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": null, "missing_fields": ["bare.port"]} + }, + { + "name": "absent url part is missing: bare.query.env", + "expr": "bare.query.env == \"prod\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": null, "missing_fields": ["bare.query.env"]} + }, + { + "name": "absent url part is missing: bare.fragment", + "expr": "bare.fragment == \"\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": null, "missing_fields": ["bare.fragment"]} + }, + { + "name": "absent url part is missing: bare.user", + "expr": "bare.user == \"\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": null, "missing_fields": ["bare.user"]} + }, + { + "name": "url without path has empty path", + "expr": "bare.path == \"\"", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": true} + }, + { + "name": "unknown url field is missing", + "expr": "url.nope == 1", + "input": { + "url.$url": "https://alice@Example.com:8443/api/v1?tag=a&tag=b&env=prod#top", + "bare.$url": "http://example.com" + }, + "expect": {"value": null, "missing_fields": ["url.nope"]} + }, + { + "name": "url compares as string: url == \"https://example.com/a\"", + "expr": "url == \"https://example.com/a\"", + "input": {"url.$url": "https://example.com/a", "s": "https://example.com/a"}, + "expect": {"value": true} + }, + { + "name": "url compares as string: url != \"https://example.com/b\"", + "expr": "url != \"https://example.com/b\"", + "input": {"url.$url": "https://example.com/a", "s": "https://example.com/a"}, + "expect": {"value": true} + }, + { + "name": "url compares as string: url contains \"example.com\"", + "expr": "url contains \"example.com\"", + "input": {"url.$url": "https://example.com/a", "s": "https://example.com/a"}, + "expect": {"value": true} + }, + { + "name": "url compares as string: url matches /^https:/", + "expr": "url matches /^https:/", + "input": {"url.$url": "https://example.com/a", "s": "https://example.com/a"}, + "expect": {"value": true} + }, + { + "name": "url compares as string: url in [\"https://example.com/b\", \"https://example.com/a\"]", + "expr": "url in [\"https://example.com/b\", \"https://example.com/a\"]", + "input": {"url.$url": "https://example.com/a", "s": "https://example.com/a"}, + "expect": {"value": true} + }, + { + "name": "url compares as string: s == \"https://example.com/a\"", + "expr": "s == \"https://example.com/a\"", + "input": {"url.$url": "https://example.com/a", "s": "https://example.com/a"}, + "expect": {"value": true} + }, + { + "name": "string value has no url fields", + "expr": "s.host == \"example.com\"", + "input": {"url.$url": "https://example.com/a", "s": "https://example.com/a"}, + "expect": {"value": null, "missing_fields": ["s.host"]} + }, + { + "name": "ip field: v4.version == \"v4\"", + "expr": "v4.version == \"v4\"", + "input": {"v4.$ip": "10.1.2.3", "v6.$ip": "2001:db8::1", "mapped.$ip": "::ffff:10.1.2.3"}, + "expect": {"value": true} + }, + { + "name": "ip field: v6.version == \"v6\"", + "expr": "v6.version == \"v6\"", + "input": {"v4.$ip": "10.1.2.3", "v6.$ip": "2001:db8::1", "mapped.$ip": "::ffff:10.1.2.3"}, + "expect": {"value": true} + }, + { + "name": "ip field: mapped.version == \"v4\"", + "expr": "mapped.version == \"v4\"", + "input": {"v4.$ip": "10.1.2.3", "v6.$ip": "2001:db8::1", "mapped.$ip": "::ffff:10.1.2.3"}, + "expect": {"value": true} + }, + { + "name": "unknown ip field is missing", + "expr": "v4.nope == 1", + "input": {"v4.$ip": "10.1.2.3", "v6.$ip": "2001:db8::1", "mapped.$ip": "::ffff:10.1.2.3"}, + "expect": {"value": null, "missing_fields": ["v4.nope"]} + }, + { + "name": "cidr field: net4.network == 10.1.0.0", + "expr": "net4.network == 10.1.0.0", + "input": {"net4.$cidr": "10.1.0.0/16", "net6.$cidr": "2001:db8::/32"}, + "expect": {"value": true} + }, + { + "name": "cidr field: net4.prefix == 16", + "expr": "net4.prefix == 16", + "input": {"net4.$cidr": "10.1.0.0/16", "net6.$cidr": "2001:db8::/32"}, + "expect": {"value": true} + }, + { + "name": "cidr field: net4.version == \"v4\"", + "expr": "net4.version == \"v4\"", + "input": {"net4.$cidr": "10.1.0.0/16", "net6.$cidr": "2001:db8::/32"}, + "expect": {"value": true} + }, + { + "name": "cidr field: net6.prefix == 32", + "expr": "net6.prefix == 32", + "input": {"net4.$cidr": "10.1.0.0/16", "net6.$cidr": "2001:db8::/32"}, + "expect": {"value": true} + }, + { + "name": "cidr field: net6.version == \"v6\"", + "expr": "net6.version == \"v6\"", + "input": {"net4.$cidr": "10.1.0.0/16", "net6.$cidr": "2001:db8::/32"}, + "expect": {"value": true} + }, + { + "name": "mac oui equals hex", + "expr": "mac.oui == 00:1a:2b", + "input": {"mac.$mac": "00:1A:2B:3C:4D:5E"}, + "expect": {"value": true} + }, + { + "name": "mac oui equals quoted hex", + "expr": "mac.oui == \"00:1a:2b\"", + "input": {"mac.$mac": "00:1A:2B:3C:4D:5E"}, + "expect": {"value": true} + }, + { + "name": "mac oui mismatch", + "expr": "mac.oui == 00:1a:2c", + "input": {"mac.$mac": "00:1A:2B:3C:4D:5E"}, + "expect": {"value": false} + }, + { + "name": "map keys win over value fields", + "expr": "url.host == \"from-map\"", + "input": {"url": {"host": "from-map"}}, + "expect": {"value": true} + } + ] +} diff --git a/testdata/vectors/functions.json b/testdata/vectors/functions.json new file mode 100644 index 0000000..b9b32c0 --- /dev/null +++ b/testdata/vectors/functions.json @@ -0,0 +1,65 @@ +{ + "input_mode": "annotated_keys", + "cases": [ + {"name": "unknown function parses", "expr": "some_none_stdlib_fn()", "expect": {"parse_error": false}}, + {"name": "unknown function is an eval error", "expr": "unknown_fn()", "expect": {"error": true}}, + {"name": "unknown function with args is an eval error", "expr": "unknown_fn(some_args)", "expect": {"error": true}}, + { + "name": "starts_with: match", + "expr": "starts_with(url, \"https://\")", + "input": {"url": "https://example.com"}, + "expect": {"value": true} + }, + { + "name": "starts_with: no match", + "expr": "starts_with(url, \"https://\")", + "input": {"url": "http://example.com"}, + "expect": {"value": false} + }, + { + "name": "starts_with: not a url", + "expr": "starts_with(url, \"https://\")", + "input": {"url": "invalid-url"}, + "expect": {"value": false} + }, + { + "name": "starts_with: ip stringified", + "expr": "starts_with(ip, \"10.0\")", + "input": {"ip.$ip": "10.0.0.1"}, + "expect": {"value": true} + }, + { + "name": "starts_with: int and int prefix", + "expr": "starts_with(code, 5)", + "input": {"code": 500}, + "expect": {"value": true} + }, + { + "name": "starts_with: int and string prefix", + "expr": "starts_with(code, \"5\")", + "input": {"code": 500}, + "expect": {"value": true} + }, + { + "name": "starts_with: int no match", + "expr": "starts_with(code, 5)", + "input": {"code": 404}, + "expect": {"value": false} + }, + { + "name": "starts_with: bool result stringified", + "expr": "starts_with(starts_with(\"https://example.com\", \"https://\"), \"true\")", + "expect": {"value": true} + }, + { + "name": "starts_with: no args is a parse error", + "expr": "starts_with()", + "expect": {"parse_error": {"line": 1, "column": 14}} + }, + { + "name": "starts_with: one arg is a parse error", + "expr": "starts_with(arg1)", + "expect": {"parse_error": {"line": 1, "column": 18}} + } + ] +} diff --git a/testdata/vectors/json_input.json b/testdata/vectors/json_input.json new file mode 100644 index 0000000..e93c819 --- /dev/null +++ b/testdata/vectors/json_input.json @@ -0,0 +1,232 @@ +{ + "cases": [ + { + "name": "annotated keys: src", + "expr": "src", + "input_mode": "annotated_keys", + "input": { + "src.$ip": "1.2.3.4", + "dst.$cidr": "10.0.0.0/8", + "payload.$hex": "474554", + "name.$string": "api", + "enabled.$bool": true, + "max.$uint64": "18446744073709551615", + "nested": {"count.$int64": "42"} + }, + "expect": {"value": {"$type": "ip", "value": "1.2.3.4"}} + }, + { + "name": "annotated keys: dst", + "expr": "dst", + "input_mode": "annotated_keys", + "input": { + "src.$ip": "1.2.3.4", + "dst.$cidr": "10.0.0.0/8", + "payload.$hex": "474554", + "name.$string": "api", + "enabled.$bool": true, + "max.$uint64": "18446744073709551615", + "nested": {"count.$int64": "42"} + }, + "expect": {"value": {"$type": "cidr", "value": "10.0.0.0/8"}} + }, + { + "name": "annotated keys: payload", + "expr": "payload", + "input_mode": "annotated_keys", + "input": { + "src.$ip": "1.2.3.4", + "dst.$cidr": "10.0.0.0/8", + "payload.$hex": "474554", + "name.$string": "api", + "enabled.$bool": true, + "max.$uint64": "18446744073709551615", + "nested": {"count.$int64": "42"} + }, + "expect": {"value": {"$type": "bytes", "encoding": "hex", "value": "474554"}} + }, + { + "name": "annotated keys: name", + "expr": "name", + "input_mode": "annotated_keys", + "input": { + "src.$ip": "1.2.3.4", + "dst.$cidr": "10.0.0.0/8", + "payload.$hex": "474554", + "name.$string": "api", + "enabled.$bool": true, + "max.$uint64": "18446744073709551615", + "nested": {"count.$int64": "42"} + }, + "expect": {"value": "api"} + }, + { + "name": "annotated keys: enabled", + "expr": "enabled", + "input_mode": "annotated_keys", + "input": { + "src.$ip": "1.2.3.4", + "dst.$cidr": "10.0.0.0/8", + "payload.$hex": "474554", + "name.$string": "api", + "enabled.$bool": true, + "max.$uint64": "18446744073709551615", + "nested": {"count.$int64": "42"} + }, + "expect": {"value": true} + }, + { + "name": "annotated keys: max", + "expr": "max", + "input_mode": "annotated_keys", + "input": { + "src.$ip": "1.2.3.4", + "dst.$cidr": "10.0.0.0/8", + "payload.$hex": "474554", + "name.$string": "api", + "enabled.$bool": true, + "max.$uint64": "18446744073709551615", + "nested": {"count.$int64": "42"} + }, + "expect": {"value": {"$type": "uint64", "value": "18446744073709551615"}} + }, + { + "name": "annotated keys: nested.count", + "expr": "nested.count", + "input_mode": "annotated_keys", + "input": { + "src.$ip": "1.2.3.4", + "dst.$cidr": "10.0.0.0/8", + "payload.$hex": "474554", + "name.$string": "api", + "enabled.$bool": true, + "max.$uint64": "18446744073709551615", + "nested": {"count.$int64": "42"} + }, + "expect": {"value": {"$type": "int64", "value": "42"}} + }, + { + "name": "typed document: src", + "expr": "src", + "input_mode": "typed_document", + "input": { + "src": {"$type": "ip", "value": "1.2.3.4"}, + "payload": {"$type": "bytes", "encoding": "base64", "value": "R0VU"}, + "u64": {"$type": "uint64", "value": "18446744073709551615"}, + "nested": {"$type": "object", "value": {"enabled": {"$type": "bool", "value": true}}}, + "items": {"$type": "array", "value": [{"$type": "string", "value": "first"}]} + }, + "expect": {"value": {"$type": "ip", "value": "1.2.3.4"}} + }, + { + "name": "typed document: payload", + "expr": "payload", + "input_mode": "typed_document", + "input": { + "src": {"$type": "ip", "value": "1.2.3.4"}, + "payload": {"$type": "bytes", "encoding": "base64", "value": "R0VU"}, + "u64": {"$type": "uint64", "value": "18446744073709551615"}, + "nested": {"$type": "object", "value": {"enabled": {"$type": "bool", "value": true}}}, + "items": {"$type": "array", "value": [{"$type": "string", "value": "first"}]} + }, + "expect": {"value": {"$type": "bytes", "encoding": "base64", "value": "R0VU"}} + }, + { + "name": "typed document: u64", + "expr": "u64", + "input_mode": "typed_document", + "input": { + "src": {"$type": "ip", "value": "1.2.3.4"}, + "payload": {"$type": "bytes", "encoding": "base64", "value": "R0VU"}, + "u64": {"$type": "uint64", "value": "18446744073709551615"}, + "nested": {"$type": "object", "value": {"enabled": {"$type": "bool", "value": true}}}, + "items": {"$type": "array", "value": [{"$type": "string", "value": "first"}]} + }, + "expect": {"value": {"$type": "uint64", "value": "18446744073709551615"}} + }, + { + "name": "typed document: nested.enabled", + "expr": "nested.enabled", + "input_mode": "typed_document", + "input": { + "src": {"$type": "ip", "value": "1.2.3.4"}, + "payload": {"$type": "bytes", "encoding": "base64", "value": "R0VU"}, + "u64": {"$type": "uint64", "value": "18446744073709551615"}, + "nested": {"$type": "object", "value": {"enabled": {"$type": "bool", "value": true}}}, + "items": {"$type": "array", "value": [{"$type": "string", "value": "first"}]} + }, + "expect": {"value": true} + }, + { + "name": "typed document: items", + "expr": "items", + "input_mode": "typed_document", + "input": { + "src": {"$type": "ip", "value": "1.2.3.4"}, + "payload": {"$type": "bytes", "encoding": "base64", "value": "R0VU"}, + "u64": {"$type": "uint64", "value": "18446744073709551615"}, + "nested": {"$type": "object", "value": {"enabled": {"$type": "bool", "value": true}}}, + "items": {"$type": "array", "value": [{"$type": "string", "value": "first"}]} + }, + "expect": {"value": ["first"]} + }, + { + "name": "plain mode keeps annotated key names", + "expr": "[\"src.$ip\"] == \"1.2.3.4\"", + "input_mode": "plain", + "input": {"src.$ip": "1.2.3.4", "src": {"$type": "ip", "value": "1.2.3.4"}}, + "expect": {"value": true} + }, + { + "name": "plain mode keeps typed objects as objects", + "expr": "src", + "input_mode": "plain", + "input": {"src.$ip": "1.2.3.4", "src": {"$type": "ip", "value": "1.2.3.4"}}, + "expect": { + "value": { + "$type": "object", + "value": {"$type": {"$type": "string", "value": "ip"}, "value": {"$type": "string", "value": "1.2.3.4"}} + } + } + }, + { + "name": "annotated keys: duplicate normalized key", + "input_mode": "annotated_keys", + "input": {"src": "plain", "src.$ip": "1.2.3.4"}, + "expect": {"decode_error": true} + }, + { + "name": "typed document: annotated key rejected", + "input_mode": "typed_document", + "input": {"src.$ip": {"$type": "ip", "value": "1.2.3.4"}}, + "expect": {"decode_error": true} + }, + { + "name": "typed document: plain value rejected", + "input_mode": "typed_document", + "input": {"src": "1.2.3.4"}, + "expect": {"decode_error": true} + }, + { + "name": "annotated keys: eval with ip and array index", + "expr": "src == 1.2.3.4 and items[0].name == \"first\"", + "input_mode": "annotated_keys", + "input": {"src.$ip": "1.2.3.4", "items": [{"name": "first"}]}, + "expect": {"value": true} + }, + { + "name": "annotated keys: url", + "expr": "a.port == 8443 and a.host == \"example.com\"", + "input_mode": "annotated_keys", + "input": {"a.$url": "https://example.com:8443/x"}, + "expect": {"value": true} + }, + { + "name": "typed document: url", + "expr": "a.path == \"/x\"", + "input_mode": "typed_document", + "input": {"a": {"$type": "url", "value": "https://example.com/x"}}, + "expect": {"value": true} + } + ] +} diff --git a/testdata/vectors/literals.json b/testdata/vectors/literals.json new file mode 100644 index 0000000..003820d --- /dev/null +++ b/testdata/vectors/literals.json @@ -0,0 +1,206 @@ +{ + "input_mode": "annotated_keys", + "cases": [ + { + "name": "uint64 max parses", + "expr": "f_uint==4294967295 && f_uint64==18446744073709551615", + "expect": {"parse_error": false} + }, + {"name": "zero parses", "expr": "f_uint==0 && f_uint64==0", "expect": {"parse_error": false}}, + { + "name": "int64 max parses", + "expr": "f_int==2147483647 && f_int64==9223372036854775807", + "expect": {"parse_error": false} + }, + { + "name": "int64 min parses", + "expr": "f_int==-2147483648 && f_int64==-9223372036854775808", + "expect": {"parse_error": false} + }, + { + "name": "ipv4 and ipv6 literals parse", + "expr": "f_ipv4 == 192.168.1.1 or f_ipv6==::1 or f_ipv6==2001:db8::1", + "expect": {"parse_error": false} + }, + { + "name": "float literals parse", + "expr": "f_float32 == 123.345 or f_float64 != 74123412341234.123412341243", + "expect": {"parse_error": false} + }, + {"name": "string literal: \"text\"", "expr": "s == \"text\"", "input": {"s": "text"}, "expect": {"value": true}}, + { + "name": "string literal: \"te\\\"x't\"", + "expr": "s == \"te\\\"x't\"", + "input": {"s": "te\"x't"}, + "expect": {"value": true} + }, + {"name": "string literal: 'test'", "expr": "s == 'test'", "input": {"s": "test"}, "expect": {"value": true}}, + { + "name": "string literal: 'te\"s\\'t'", + "expr": "s == 'te\"s\\'t'", + "input": {"s": "te\"s't"}, + "expect": {"value": true} + }, + { + "name": "string literal: 'bad qu\\\"ote'", + "expr": "s == 'bad qu\\\"ote'", + "input": {"s": "bad qu\"ote"}, + "expect": {"value": true} + }, + { + "name": "string literal: \"tab\\there\"", + "expr": "s == \"tab\\there\"", + "input": {"s": "tab\there"}, + "expect": {"value": true} + }, + { + "name": "string literal: 'tab\\there'", + "expr": "s == 'tab\\there'", + "input": {"s": "tab\there"}, + "expect": {"value": true} + }, + { + "name": "nine hex pairs are bytes, case-insensitive", + "expr": "s == 0a:0B:0c:0D:0e:0F:01:02:03", + "input": {"s": "\n\u000b\f\r\u000e\u000f\u0001\u0002\u0003"}, + "expect": {"value": true} + }, + { + "name": "unquoted mac literal equals mac", + "expr": "f_mac == 01:23:45:67:89:ab", + "input": {"f_mac.$mac": "01:23:45:67:89:ab"}, + "expect": {"value": true} + }, + { + "name": "quoted mac literal equals mac", + "expr": "f_mac == \"01:23:45:67:89:ab\"", + "input": {"f_mac.$mac": "01:23:45:67:89:ab"}, + "expect": {"value": true} + }, + { + "name": "four hex pairs equal string bytes", + "expr": "f_bytes == 50:4f:53:54", + "input": {"f_bytes": "POST"}, + "expect": {"value": true} + }, + {"name": "integer literal: 10", "expr": "x == 10", "input": {"x": 10}, "expect": {"value": true}}, + {"name": "integer literal: 010", "expr": "x == 010", "input": {"x": 10}, "expect": {"value": true}}, + {"name": "integer literal: -010", "expr": "x == -010", "input": {"x": -10}, "expect": {"value": true}}, + {"name": "integer literal: 0x1f", "expr": "x == 0x1f", "input": {"x": 31}, "expect": {"value": true}}, + {"name": "integer literal: 0o17", "expr": "x == 0o17", "input": {"x": 15}, "expect": {"value": true}}, + {"name": "integer literal: 0b101", "expr": "x == 0b101", "input": {"x": 5}, "expect": {"value": true}}, + {"name": "integer literal: 1_000", "expr": "x == 1_000", "input": {"x": 1000}, "expect": {"value": true}}, + {"name": "integer literal: 0", "expr": "x == 0", "input": {"x": 0}, "expect": {"value": true}}, + {"name": "integer literal: 00", "expr": "x == 00", "input": {"x": 0}, "expect": {"value": true}}, + { + "name": "integer literal: 18446744073709551615", + "expr": "x == 18446744073709551615", + "input": {"x": 18446744073709551615}, + "expect": {"value": true} + }, + { + "name": "uint64 literal greater than int64 max", + "expr": "18446744073709551615 > 9223372036854775807", + "expect": {"value": true} + }, + {"name": "negative less than uint64 max", "expr": "-1 < 18446744073709551615", "expect": {"value": true}}, + { + "name": "single hex pair is a field name: number", + "expr": "ab == 1", + "input": {"ab": 1}, + "expect": {"value": true} + }, + { + "name": "single hex pair is a field name: string", + "expr": "fe == \"x\"", + "input": {"fe": "x"}, + "expect": {"value": true} + }, + { + "name": "single hex pair alone is a missing field", + "expr": "ad", + "input": {}, + "expect": {"missing_fields": ["ad"]} + }, + {"name": "two hex pairs are bytes", "expr": "x == 50:4f", "input": {"x": "PO"}, "expect": {"value": true}}, + {"name": "lone hex pair with digit is a parse error", "expr": "x == 0a", "expect": {"parse_error": true}}, + {"name": "x-quoted hex: single byte", "expr": "x == x\"0a\"", "input": {"x": "\n"}, "expect": {"value": true}}, + {"name": "x-quoted hex: no colons", "expr": "x == x\"504f5354\"", "input": {"x": "POST"}, "expect": {"value": true}}, + { + "name": "x-quoted hex: upper X, single quotes, colons", + "expr": "x == X'50:4F:53:54'", + "input": {"x": "POST"}, + "expect": {"value": true} + }, + { + "name": "x-quoted hex: eight bytes stay bytes", + "expr": "x == x\"504f53540a0b0c0d\"", + "input": {"x": "POST\n\u000b\f\r"}, + "expect": {"value": true} + }, + {"name": "x-quoted hex: empty is a parse error", "expr": "x == x\"\"", "expect": {"parse_error": true}}, + {"name": "x-quoted hex: odd digits is a parse error", "expr": "x == x\"abc\"", "expect": {"parse_error": true}}, + {"name": "x-quoted hex: non-hex digit is a parse error", "expr": "x == x\"0g\"", "expect": {"parse_error": true}}, + { + "name": "quoted plain value is a string", + "expr": "s == \"just a string\"", + "input": {"s": "just a string", "ip.$ip": "192.168.1.1", "mac.$mac": "01:23:45:67:89:ab"}, + "expect": {"value": true} + }, + { + "name": "quoted ip is an ip", + "expr": "ip == \"192.168.1.1\"", + "input": {"s": "just a string", "ip.$ip": "192.168.1.1", "mac.$mac": "01:23:45:67:89:ab"}, + "expect": {"value": true} + }, + {"name": "quoted ipv6 compares as ip", "expr": "\"2001:db8::1\" == 2001:db8:0:0:0:0:0:1", "expect": {"value": true}}, + {"name": "quoted ip in cidr", "expr": "\"10.1.2.3\" in 10.0.0.0/8", "expect": {"value": true}}, + { + "name": "quoted cidr is a cidr", + "expr": "ip in \"192.168.1.0/24\"", + "input": {"s": "just a string", "ip.$ip": "192.168.1.1", "mac.$mac": "01:23:45:67:89:ab"}, + "expect": {"value": true} + }, + { + "name": "quoted mac: colon notation", + "expr": "mac == \"01:23:45:67:89:ab\"", + "input": {"s": "just a string", "ip.$ip": "192.168.1.1", "mac.$mac": "01:23:45:67:89:ab"}, + "expect": {"value": true} + }, + { + "name": "quoted mac: hyphen notation", + "expr": "mac == \"01-23-45-67-89-AB\"", + "input": {"s": "just a string", "ip.$ip": "192.168.1.1", "mac.$mac": "01:23:45:67:89:ab"}, + "expect": {"value": true} + }, + { + "name": "quoted mac: dot notation", + "expr": "mac == \"0123.4567.89ab\"", + "input": {"s": "just a string", "ip.$ip": "192.168.1.1", "mac.$mac": "01:23:45:67:89:ab"}, + "expect": {"value": true} + }, + { + "name": "quoted url: https://example.com/a?b=c", + "expr": "\"https://example.com/a?b=c\"", + "expect": {"value": {"$type": "url", "value": "https://example.com/a?b=c"}} + }, + { + "name": "quoted url: http://[::1]:8080/", + "expr": "\"http://[::1]:8080/\"", + "expect": {"value": {"$type": "url", "value": "http://[::1]:8080/"}} + }, + { + "name": "quoted non-url: mailto:a@example.com", + "expr": "\"mailto:a@example.com\"", + "expect": {"value": "mailto:a@example.com"} + }, + {"name": "quoted non-url: https://", "expr": "\"https://\"", "expect": {"value": "https://"}}, + {"name": "quoted non-url: example.com/a", "expr": "\"example.com/a\"", "expect": {"value": "example.com/a"}}, + { + "name": "quoted non-url: https://example.com/a b", + "expr": "\"https://example.com/a b\"", + "expect": {"value": "https://example.com/a b"} + }, + {"name": "array literal value", "expr": "[1, \"str\", 3]", "expect": {"value": [1, "str", 3]}} + ] +} diff --git a/testdata/vectors/macros.json b/testdata/vectors/macros.json new file mode 100644 index 0000000..360eb83 --- /dev/null +++ b/testdata/vectors/macros.json @@ -0,0 +1,26 @@ +{ + "input_mode": "annotated_keys", + "cases": [ + { + "name": "macro: ip branch", + "expr": "dst_k8s_svc() && user != \"root\"", + "input": {"ip.$ip": "172.16.0.1", "user": "nouser"}, + "macros": {"dst_k8s_svc": "ip in 172.16.0.0/16 or host matches /svc.cluster.local$/"}, + "expect": {"value": true} + }, + { + "name": "macro: no branch matches", + "expr": "dst_k8s_svc() && user != \"root\"", + "input": {"ip.$ip": "1.1.1.1", "host": "1.1.1.1", "user": "nouser"}, + "macros": {"dst_k8s_svc": "ip in 172.16.0.0/16 or host matches /svc.cluster.local$/"}, + "expect": {"value": false} + }, + { + "name": "macro: host branch with ip missing", + "expr": "dst_k8s_svc() && user != \"root\"", + "input": {"host": "test.svc.cluster.local", "user": "nouser"}, + "macros": {"dst_k8s_svc": "ip in 172.16.0.0/16 or host matches /svc.cluster.local$/"}, + "expect": {"value": true} + } + ] +} diff --git a/testdata/vectors/parse_errors.json b/testdata/vectors/parse_errors.json new file mode 100644 index 0000000..8583c5b --- /dev/null +++ b/testdata/vectors/parse_errors.json @@ -0,0 +1,32 @@ +{ + "cases": [ + {"name": "syntax error: ??", "expr": "??", "expect": {"parse_error": true}}, + {"name": "syntax error: field == %1==", "expr": "field == %1==", "expect": {"parse_error": true}}, + {"name": "syntax error: == true", "expr": "== true", "expect": {"parse_error": true}}, + {"name": "syntax error: test == >=", "expr": "test == >=", "expect": {"parse_error": true}}, + { + "name": "syntax error: field == 123 && ip == 1.2.3", + "expr": "field == 123 && ip == 1.2.3", + "expect": {"parse_error": true} + }, + { + "name": "syntax error: field == 123 && ip << 1", + "expr": "field == 123 && ip << 1", + "expect": {"parse_error": true} + }, + {"name": "int compared to field parses", "expr": "f_string == 123", "expect": {"parse_error": false}}, + {"name": "ordering against non-number: f >= \"string\"", "expr": "f >= \"string\"", "expect": {"parse_error": true}}, + {"name": "ordering against non-number: f < 1.2.3.4", "expr": "f < 1.2.3.4", "expect": {"parse_error": true}}, + { + "name": "ordering against non-number: f > 01:02:03:04:05:06", + "expr": "f > 01:02:03:04:05:06", + "expect": {"parse_error": true} + }, + {"name": "ordering against non-number: f <= true", "expr": "f <= true", "expect": {"parse_error": true}}, + {"name": "ordering against non-number: f > /pattern/", "expr": "f > /pattern/", "expect": {"parse_error": true}}, + {"name": "ordering against int parses", "expr": "f >= 1", "expect": {"parse_error": false}}, + {"name": "ordering against float parses", "expr": "f < 1.5", "expect": {"parse_error": false}}, + {"name": "array trailing comma", "expr": "field == [1,]", "expect": {"parse_error": true}}, + {"name": "nested array", "expr": "field == [1, [1, 2], 3]", "expect": {"parse_error": true}} + ] +} diff --git a/testdata/vectors/paths.json b/testdata/vectors/paths.json new file mode 100644 index 0000000..22e8b57 --- /dev/null +++ b/testdata/vectors/paths.json @@ -0,0 +1,61 @@ +{ + "input_mode": "annotated_keys", + "cases": [ + { + "name": "bracket key with dot", + "expr": "data[\"field.name\"] == true", + "input": {"data": {"field.name": true}}, + "expect": {"value": true} + }, + { + "name": "dotted path does not match dotted key", + "expr": "data.field.name == true", + "input": {"data": {"field.name": true}}, + "expect": {"missing_fields": ["data.field.name"]} + }, + { + "name": "root bracket key", + "expr": "[\"destination.ip\"] == 1.1.1.1", + "input": {"destination.ip.$ip": "1.1.1.1"}, + "expect": {"value": true} + }, + { + "name": "array index then key", + "expr": "items[0].name == \"first\"", + "input": {"items": [{"name": "first"}, {"name": "second"}]}, + "expect": {"value": true} + }, + { + "name": "array index", + "expr": "items[1] == \"second\"", + "input": {"items": ["first", "second"]}, + "expect": {"value": true} + }, + {"name": "empty index is a parse error", "expr": "items[] == \"x\"", "expect": {"parse_error": true}}, + {"name": "field index is a parse error", "expr": "items[field] == \"x\"", "expect": {"parse_error": true}}, + {"name": "negative index is a parse error", "expr": "items[-1] == \"x\"", "expect": {"parse_error": true}}, + {"name": "valid field name: field", "expr": "field == true", "expect": {"parse_error": false}}, + {"name": "valid field name: field1", "expr": "field1 == true", "expect": {"parse_error": false}}, + {"name": "valid field name: field-", "expr": "field- == true", "expect": {"parse_error": false}}, + {"name": "valid field name: field_", "expr": "field_ == true", "expect": {"parse_error": false}}, + {"name": "valid field name: field_1", "expr": "field_1 == true", "expect": {"parse_error": false}}, + {"name": "valid field name: field-1", "expr": "field-1 == true", "expect": {"parse_error": false}}, + {"name": "valid field name: field.1", "expr": "field.1 == true", "expect": {"parse_error": false}}, + {"name": "valid field name: field-1.field2", "expr": "field-1.field2 == true", "expect": {"parse_error": false}}, + {"name": "valid field name: field-1.field2-3", "expr": "field-1.field2-3 == true", "expect": {"parse_error": false}}, + { + "name": "valid field name: request.header.user-agent", + "expr": "request.header.user-agent == true", + "expect": {"parse_error": false} + }, + {"name": "invalid field name: -field", "expr": "-field == true", "expect": {"parse_error": true}}, + {"name": "invalid field name: field%.field", "expr": "field%.field == true", "expect": {"parse_error": true}}, + {"name": "invalid field name: 01fie^ld", "expr": "01fie^ld == true", "expect": {"parse_error": true}}, + {"name": "invalid field name: 01fie||d", "expr": "01fie||d == true", "expect": {"parse_error": true}}, + { + "name": "numeric path segments parse", + "expr": "f_bool.1 == true or f_bool.2 != false", + "expect": {"parse_error": false} + } + ] +} diff --git a/testdata/vectors/print.json b/testdata/vectors/print.json new file mode 100644 index 0000000..b4f4dd6 --- /dev/null +++ b/testdata/vectors/print.json @@ -0,0 +1,119 @@ +{ + "cases": [ + { + "name": "compact: field == \"value\" and other != 1", + "expr": "field == \"value\" and other != 1", + "expect": {"print": {"compact": "field == \"value\" and other != 1"}} + }, + { + "name": "compact: domain matches /example\\.com$/ OR tags == \"x\"", + "expr": "domain matches /example\\.com$/ OR tags == \"x\"", + "expect": {"print": {"compact": "domain =~ /example\\.com$/ or tags == \"x\""}} + }, + {"name": "compact: a or (b and c)", "expr": "a or (b and c)", "expect": {"print": {"compact": "a or b and c"}}}, + {"name": "compact: (a or b) and c", "expr": "(a or b) and c", "expect": {"print": {"compact": "(a or b) and c"}}}, + { + "name": "compact: request.headers[\"user-agent\"] == \"curl\"", + "expr": "request.headers[\"user-agent\"] == \"curl\"", + "expect": {"print": {"compact": "request.headers[\"user-agent\"] == \"curl\""}} + }, + { + "name": "compact: items[0].name in [\"first\", \"second\"]", + "expr": "items[0].name in [\"first\", \"second\"]", + "expect": {"print": {"compact": "items[0].name in [\"first\", \"second\"]"}} + }, + { + "name": "compact: starts_with(path, \"/api\")", + "expr": "starts_with(path, \"/api\")", + "expect": {"print": {"compact": "starts_with(path, \"/api\")"}} + }, + { + "name": "compact: not (a == 1 or b == 2)", + "expr": "not (a == 1 or b == 2)", + "expect": {"print": {"compact": "not (a == 1 or b == 2)"}} + }, + { + "name": "compact: ip in 192.168.0.0/16", + "expr": "ip in 192.168.0.0/16", + "expect": {"print": {"compact": "ip in 192.168.0.0/16"}} + }, + { + "name": "format: compact, source, multiline", + "expr": "(a == 1 or b == 2) and c == 3 and request.headers[\"user-agent\"] == \"curl\"", + "expect": { + "print": { + "compact": "(a == 1 or b == 2) and c == 3 and request.headers[\"user-agent\"] == \"curl\"", + "source": "(a == 1 or b == 2) and c == 3 and request.headers[\"user-agent\"] == \"curl\"", + "multiline_4sp": "(\n a == 1\n or b == 2\n)\nand c == 3\nand request.headers[\"user-agent\"] == \"curl\"" + } + } + }, + { + "name": "format: comments become block comments in compact", + "expr": "-- top\na==1 -- explain\n and b matches /x/", + "expect": { + "print": { + "string": "a == 1 and b =~ /x/", + "compact": "/* top */ a == 1 /* explain */ and b =~ /x/", + "multiline_2sp": "-- top\na == 1 -- explain\nand b =~ /x/" + } + } + }, + { + "name": "format: compact keeps line comments containing */", + "expr": "a == 1 -- has */ inside\nand /* multi\n line */ b == 2", + "expect": {"print": {"compact": "a == 1 -- has */ inside\nand /* multi line */ b == 2"}} + }, + { + "name": "format: compact with comments keeps canonical spacing", + "expr": "(a == 1) -- x\nand f(x, 1) and items[0].name == 'n'", + "expect": {"print": {"compact": "(a == 1) /* x */ and f(x, 1) and items[0].name == 'n'"}} + }, + { + "name": "format: multiline with comments", + "expr": "(a == 1 or b == 2) -- c\nand f(x, 1) and x in [1, 2]", + "expect": {"print": {"multiline_2sp": "(\n a == 1\n or b == 2\n) -- c\nand f(x, 1)\nand x in [1, 2]"}} + }, + { + "name": "string: field == [1, \"str\", 3]", + "expr": "field == [1, \"str\", 3]", + "expect": {"print": {"string": "field == [1, \"str\", 3]"}} + }, + { + "name": "string: field contains [1, \"str\", 3]", + "expr": "field contains [1, \"str\", 3]", + "expect": {"print": {"string": "field contains [1, \"str\", 3]"}} + }, + { + "name": "string: field contains \"str\"", + "expr": "field contains \"str\"", + "expect": {"print": {"string": "field contains \"str\""}} + }, + { + "name": "string: field in [1, \"str\", 3]", + "expr": "field in [1, \"str\", 3]", + "expect": {"print": {"string": "field in [1, \"str\", 3]"}} + }, + { + "name": "string: [\"destination.ip\"] == 1.1.1.1", + "expr": "[\"destination.ip\"] == 1.1.1.1", + "expect": {"print": {"string": "[\"destination.ip\"] == 1.1.1.1"}} + }, + {"name": "string: x == x\"0a\"", "expr": "x == x\"0a\"", "expect": {"print": {"string": "x == x\"0a\""}}}, + { + "name": "string: request.headers bracket path", + "expr": "request.headers[\"user-agent\"] == \"curl\"", + "expect": {"print": {"string": "request.headers[\"user-agent\"] == \"curl\""}} + }, + { + "name": "string: multi-line call arguments", + "expr": "func_name(\n\t\tfieldarg,\n\t\t192.168.0.0,\n\t\t[1, 2, 3],\n\t\tnested_func(true)\n\t)", + "expect": {"print": {"string": "func_name(fieldarg, 192.168.0.0, [1, 2, 3], nested_func(true))"}} + }, + { + "name": "string: matches prints as =~ with flags", + "expr": "ua matches /curl/i", + "expect": {"print": {"string": "ua =~ /curl/i"}} + } + ] +} diff --git a/testdata/vectors/regex.json b/testdata/vectors/regex.json new file mode 100644 index 0000000..a9f50af --- /dev/null +++ b/testdata/vectors/regex.json @@ -0,0 +1,63 @@ +{ + "input_mode": "annotated_keys", + "cases": [ + { + "name": "slash and pipe regex delimiters parse", + "expr": "f_string matches /gl=se$/ and str matches |some/path/here|", + "expect": {"parse_error": false} + }, + {"name": "flag i", "expr": "ua matches /curl/i", "input": {"ua": "CURL/8.0"}, "expect": {"value": true}}, + { + "name": "flag i with pipe delimiters", + "expr": "ua matches |curl|i", + "input": {"ua": "CURL/8.0"}, + "expect": {"value": true} + }, + { + "name": "case-sensitive by default", + "expr": "ua matches /curl/", + "input": {"ua": "CURL/8.0"}, + "expect": {"value": false} + }, + {"name": "flag s", "expr": "body matches /a.b/s", "input": {"body": "a\nb"}, "expect": {"value": true}}, + {"name": "flag m", "expr": "body matches /^b$/m", "input": {"body": "a\nb"}, "expect": {"value": true}}, + {"name": "flags ims", "expr": "body matches /^A.B$/ims", "input": {"body": "x\na\nb"}, "expect": {"value": true}}, + {"name": "unknown flag is a parse error", "expr": "ua matches /curl/q", "expect": {"parse_error": true}}, + { + "name": "keyword after closing delimiter", + "expr": "ua matches /curl/and ok", + "input": {"ua": "curl", "ok": true}, + "expect": {"value": true} + }, + {"name": "rejected: /\\/", "expr": "x matches /a\\>/", "expect": {"parse_error": true}}, + {"name": "rejected: /\\Qa.b\\E/", "expr": "x matches /\\Qa.b\\E/", "expect": {"parse_error": true}}, + {"name": "rejected: /\\0/", "expr": "x matches /\\0/", "expect": {"parse_error": true}}, + {"name": "rejected: /\\12/", "expr": "x matches /\\12/", "expect": {"parse_error": true}}, + {"name": "rejected: /\\b{start}a/", "expr": "x matches /\\b{start}a/", "expect": {"parse_error": true}}, + {"name": "rejected: /\\p{^L}/", "expr": "x matches /\\p{^L}/", "expect": {"parse_error": true}}, + {"name": "rejected: /a{,3}/", "expr": "x matches /a{,3}/", "expect": {"parse_error": true}}, + {"name": "rejected: /[\\d-z]/", "expr": "x matches /[\\d-z]/", "expect": {"parse_error": true}}, + {"name": "rejected: /[\\p{L}-z]/", "expr": "x matches /[\\p{L}-z]/", "expect": {"parse_error": true}}, + {"name": "rejected: /[a[b]]/", "expr": "x matches /[a[b]]/", "expect": {"parse_error": true}}, + {"name": "rejected: /[[a]]/", "expr": "x matches /[[a]]/", "expect": {"parse_error": true}}, + {"name": "rejected: /[a-z&&b]/", "expr": "x matches /[a-z&&b]/", "expect": {"parse_error": true}}, + {"name": "rejected: /[a--b]/", "expr": "x matches /[a--b]/", "expect": {"parse_error": true}}, + {"name": "rejected: /[a~~b]/", "expr": "x matches /[a~~b]/", "expect": {"parse_error": true}}, + {"name": "accepted: /\\ba/", "expr": "x matches /\\ba/", "expect": {"parse_error": false}}, + {"name": "accepted: /\\x{1F600}/", "expr": "x matches /\\x{1F600}/", "expect": {"parse_error": false}}, + {"name": "accepted: /a{0,3}/", "expr": "x matches /a{0,3}/", "expect": {"parse_error": false}}, + {"name": "accepted: /\\P{L}/", "expr": "x matches /\\P{L}/", "expect": {"parse_error": false}}, + {"name": "accepted: /[\\d\\-z]/", "expr": "x matches /[\\d\\-z]/", "expect": {"parse_error": false}}, + {"name": "accepted: /[a-z]/", "expr": "x matches /[a-z]/", "expect": {"parse_error": false}}, + {"name": "accepted: /[[:alpha:]]/", "expr": "x matches /[[:alpha:]]/", "expect": {"parse_error": false}}, + {"name": "accepted: /[[:^digit:]x]/", "expr": "x matches /[[:^digit:]x]/", "expect": {"parse_error": false}}, + {"name": "accepted: /[\\[\\]]/", "expr": "x matches /[\\[\\]]/", "expect": {"parse_error": false}}, + {"name": "accepted: /[]a]/", "expr": "x matches /[]a]/", "expect": {"parse_error": false}}, + {"name": "accepted: /[^]a]/", "expr": "x matches /[^]a]/", "expect": {"parse_error": false}}, + {"name": "accepted: /[a-]/", "expr": "x matches /[a-]/", "expect": {"parse_error": false}}, + {"name": "accepted: /[a&b~c-]/", "expr": "x matches /[a&b~c-]/", "expect": {"parse_error": false}}, + {"name": "accepted: /\\{,3\\}/", "expr": "x matches /\\{,3\\}/", "expect": {"parse_error": false}}, + {"name": "accepted: /a{2}/", "expr": "x matches /a{2}/", "expect": {"parse_error": false}} + ] +} diff --git a/testdata/vectors/trace.json b/testdata/vectors/trace.json new file mode 100644 index 0000000..cdd2e78 --- /dev/null +++ b/testdata/vectors/trace.json @@ -0,0 +1,102 @@ +{ + "input_mode": "annotated_keys", + "cases": [ + { + "name": "or short-circuits the right side", + "expr": "a == 1 or b == 2", + "input": {"a": 1}, + "expect": { + "value": true, + "trace": { + "kind": "binary", + "expr": "a == 1 or b == 2", + "status": "passed", + "children": [ + {"status": "passed", "active": true, "pruned": false, "value": true}, + {"expr": "b == 2", "status": "pruned", "active": false, "pruned": true} + ] + } + } + }, + { + "name": "missing fields propagate to the root", + "expr": "a == 1 or b == 2", + "input": {}, + "expect": { + "missing_fields": ["a", "b"], + "trace": { + "status": "missing", + "missing_fields": ["a", "b"], + "children": [{"status": "missing"}, {"status": "missing"}] + } + } + }, + { + "name": "diagnostic: incomparable types", + "expr": "port == \"443\"", + "input": {"port": 443}, + "expect": { + "value": false, + "trace": { + "status": "failed", + "diagnostics": [ + {"code": "comparison_incomparable", "left_type": "int64", "operator": "==", "right_type": "string"} + ] + } + } + }, + { + "name": "diagnostic: unsupported operator", + "expr": "port contains 443", + "input": {"port": 443}, + "expect": { + "value": false, + "trace": { + "status": "failed", + "diagnostics": [ + { + "code": "comparison_unsupported_operator", + "left_type": "int64", + "operator": "contains", + "right_type": "int64" + } + ] + } + } + }, + { + "name": "diagnostic: invalid shape", + "expr": "port contains [443]", + "input": {"port": 443}, + "expect": { + "value": false, + "trace": { + "status": "failed", + "diagnostics": [ + {"code": "comparison_invalid_shape", "left_type": "int64", "operator": "contains", "right_type": "array"} + ] + } + } + }, + { + "name": "macro call has the expanded macro as its child", + "expr": "is_internal() and user != \"root\"", + "input": {"ip.$ip": "172.16.0.1", "user": "api"}, + "macros": {"is_internal": "ip in 172.16.0.0/16 or host matches /svc\\.cluster\\.local$/"}, + "expect": { + "value": true, + "trace": { + "status": "passed", + "children": [ + { + "expr": "is_internal()", + "status": "passed", + "children": [{"expr": "ip in 172.16.0.0/16 or host =~ /svc\\.cluster\\.local$/", "status": "passed"}] + }, + {} + ] + } + } + } + ] +} diff --git a/vectors_test.go b/vectors_test.go new file mode 100644 index 0000000..85d55f1 --- /dev/null +++ b/vectors_test.go @@ -0,0 +1,472 @@ +package rulekit + +import ( + "bytes" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "net" + "net/url" + "os" + "path/filepath" + "reflect" + "slices" + "strconv" + "strings" + "testing" + + "github.com/stretchr/testify/require" +) + +// The language-neutral test vectors in testdata/vectors are shared with other +// implementations; testdata/vectors/README.md documents the format. + +const vectorDir = "testdata/vectors" + +type vectorFile struct { + InputMode string `json:"input_mode"` + Cases []vectorCase `json:"cases"` +} + +type vectorCase struct { + Name string `json:"name"` + Expr *string `json:"expr"` + InputMode string `json:"input_mode"` + Input json.RawMessage `json:"input"` + Macros map[string]string `json:"macros"` + Expect vectorExpect `json:"expect"` +} + +type vectorExpect struct { + DecodeError bool `json:"decode_error"` + ParseError *vectorParseError `json:"parse_error"` + Value json.RawMessage `json:"value"` + Error *bool `json:"error"` + MissingFields *[]string `json:"missing_fields"` + Trace *vectorTrace `json:"trace"` + Print *vectorPrint `json:"print"` + ASTJSON json.RawMessage `json:"ast_json"` +} + +func (e vectorExpect) evaluates() bool { + return e.Value != nil || e.Error != nil || e.MissingFields != nil || e.Trace != nil +} + +// vectorParseError is either a bool or a {line, column} position. +type vectorParseError struct { + Fails bool + Line int + Column int +} + +func (p *vectorParseError) UnmarshalJSON(data []byte) error { + if err := json.Unmarshal(data, &p.Fails); err == nil { + return nil + } + var pos struct { + Line int `json:"line"` + Column int `json:"column"` + } + dec := json.NewDecoder(bytes.NewReader(data)) + dec.DisallowUnknownFields() + if err := dec.Decode(&pos); err != nil { + return fmt.Errorf("parse_error must be a bool or {line, column}: %w", err) + } + if pos.Line < 1 || pos.Column < 1 { + return fmt.Errorf("parse_error position must have line and column >= 1") + } + p.Fails, p.Line, p.Column = true, pos.Line, pos.Column + return nil +} + +type vectorPrint struct { + String *string `json:"string"` + Compact *string `json:"compact"` + Source *string `json:"source"` + Multiline2sp *string `json:"multiline_2sp"` + Multiline4sp *string `json:"multiline_4sp"` +} + +type vectorTrace struct { + Kind *string `json:"kind"` + Expr *string `json:"expr"` + Status *string `json:"status"` + Value json.RawMessage `json:"value"` + Active *bool `json:"active"` + Pruned *bool `json:"pruned"` + MissingFields *[]string `json:"missing_fields"` + Diagnostics *[]vectorDiagnostic `json:"diagnostics"` + Children *[]vectorTrace `json:"children"` +} + +type vectorDiagnostic struct { + Code string `json:"code"` + LeftType string `json:"left_type"` + Operator string `json:"operator"` + RightType string `json:"right_type"` +} + +func TestVectors(t *testing.T) { + entries, err := os.ReadDir(vectorDir) + require.NoError(t, err) + + var files []string + for _, entry := range entries { + name := entry.Name() + switch { + case name == "README.md": + case !entry.IsDir() && strings.HasSuffix(name, ".json"): + files = append(files, name) + default: + t.Fatalf("unexpected entry %q in %s", name, vectorDir) + } + } + require.NotEmpty(t, files, "no vector files found") + + for _, name := range files { + t.Run(strings.TrimSuffix(name, ".json"), func(t *testing.T) { + file := loadVectorFile(t, filepath.Join(vectorDir, name)) + require.NotEmpty(t, file.Cases, "vector file has no cases") + seen := map[string]bool{} + for _, tc := range file.Cases { + require.NotEmpty(t, tc.Name, "case without name") + require.False(t, seen[tc.Name], "duplicate case name %q", tc.Name) + seen[tc.Name] = true + mode := tc.InputMode + if mode == "" { + mode = file.InputMode + } + t.Run(tc.Name, func(t *testing.T) { runVectorCase(t, tc, mode) }) + } + }) + } +} + +func loadVectorFile(t *testing.T, path string) vectorFile { + t.Helper() + data, err := os.ReadFile(path) + require.NoError(t, err) + dec := json.NewDecoder(bytes.NewReader(data)) + dec.DisallowUnknownFields() + var file vectorFile + require.NoError(t, dec.Decode(&file), path) + require.False(t, dec.More(), "%s: trailing data", path) + return file +} + +func vectorJSONOptions(t *testing.T, mode string) JSONOptions { + t.Helper() + switch mode { + case "plain": + return JSONOptions{} + case "annotated_keys": + return JSONOptions{AnnotatedKeys: true} + case "typed_document": + return JSONOptions{TypedDocument: true} + default: + t.Fatalf("input_mode must be plain, annotated_keys, or typed_document; got %q", mode) + return JSONOptions{} + } +} + +func runVectorCase(t *testing.T, tc vectorCase, inputMode string) { + want := tc.Expect + require.True(t, want.DecodeError || want.ParseError != nil || want.evaluates() || want.Print != nil || want.ASTJSON != nil, + "case has no expectations") + + var input Input + if tc.Input != nil { + kv, err := DecodeJSON(tc.Input, vectorJSONOptions(t, inputMode)) + if want.DecodeError { + require.Error(t, err, "expected input decode error") + require.Nil(t, tc.Expr, "decode_error cases must not have an expr") + return + } + require.NoError(t, err, "decoding input") + input = FromKV(kv) + } else { + require.False(t, want.DecodeError, "decode_error requires input") + } + + require.NotNil(t, tc.Expr, "case requires expr") + expr := *tc.Expr + + ast, err := ParseAST(expr) + var rule Rule + if err == nil { + rule, err = Compile(ast) + } + if want.ParseError != nil && want.ParseError.Fails { + require.Error(t, err, "expected parse error") + require.False(t, want.evaluates() || want.Print != nil || want.ASTJSON != nil, "parse_error cases have no other expectations") + if want.ParseError.Line > 0 { + var parseErr *ParseError + require.ErrorAs(t, err, &parseErr) + require.Equal(t, want.ParseError.Line, parseErr.Line, "parse error line") + require.Equal(t, want.ParseError.Column, parseErr.Column, "parse error column") + } + return + } + require.NoError(t, err, "parse") + + if want.Print != nil { + checkVectorPrint(t, ast, rule, *want.Print) + } + if want.ASTJSON != nil { + got, err := json.Marshal(ast) + require.NoError(t, err) + require.JSONEq(t, string(want.ASTJSON), string(got)) + } + if !want.evaluates() { + return + } + + var macros MacroSet + for name, source := range tc.Macros { + require.NoError(t, macros.Register(name, source), "macro %q", name) + } + opts := Opts{Macros: macros} + + plain := rule.Eval(nil, input, opts) + require.Nil(t, plain.Trace, "trace must be nil when tracing is off") + checkVectorResult(t, plain, want) + + opts.Trace = true + traced := rule.Eval(nil, input, opts) + checkVectorResult(t, traced, want) + if want.Trace != nil { + require.NotNil(t, traced.Trace, "trace") + checkVectorTrace(t, "trace", traced.Trace, *want.Trace) + } +} + +func checkVectorResult(t *testing.T, got Result, want vectorExpect) { + t.Helper() + wantErr := want.Error != nil && *want.Error + if wantErr { + require.Error(t, got.Error, "expected eval error") + } else { + require.NoError(t, got.Error, "eval error") + } + var wantMissing []string + if want.MissingFields != nil { + wantMissing = *want.MissingFields + } + require.Equal(t, sortedStrings(wantMissing), sortedStrings(got.MissingFields), "missing_fields") + if want.Value != nil { + requireVectorValue(t, want.Value, got.Value, "value") + } +} + +func checkVectorPrint(t *testing.T, ast *AST, rule Rule, want vectorPrint) { + t.Helper() + canonical := rule.String() + require.Equal(t, ast.String(), canonical) + if want.String != nil { + require.Equal(t, *want.String, canonical, "string") + } + check := func(label string, mode PrintMode, want *string, reparse bool) { + if want == nil { + return + } + got := Format(ast, mode) + require.Equal(t, *want, got, label) + require.Equal(t, got, rule.Print(mode), "%s via compiled rule", label) + if reparse { + again, err := Parse(got) + require.NoError(t, err, "%s output must parse", label) + require.Equal(t, canonical, again.String(), "%s output must re-parse to the same expression", label) + } + } + check("source", Source(), want.Source, false) + check("compact", Compact(), want.Compact, true) + check("multiline_2sp", Multiline(" "), want.Multiline2sp, true) + check("multiline_4sp", Multiline(" "), want.Multiline4sp, true) + if want.String != nil { + again, err := Parse(canonical) + require.NoError(t, err, "string output must parse") + require.Equal(t, canonical, again.String(), "string output must re-parse to itself") + } +} + +func checkVectorTrace(t *testing.T, path string, got *Trace, want vectorTrace) { + t.Helper() + require.NotNil(t, got, path) + if want.Kind != nil { + kind := "" + if got.Node != nil { + kind = got.Node.Kind().String() + } + require.Equal(t, *want.Kind, kind, "%s.kind", path) + } + if want.Expr != nil { + require.Equal(t, *want.Expr, got.Expr, "%s.expr", path) + } + if want.Status != nil { + require.Equal(t, *want.Status, string(got.Status), "%s.status", path) + } + if want.Value != nil { + requireVectorValue(t, want.Value, got.Value, path+".value") + } + if want.Active != nil { + require.Equal(t, *want.Active, got.Active, "%s.active", path) + } + if want.Pruned != nil { + require.Equal(t, *want.Pruned, got.Pruned, "%s.pruned", path) + } + if want.MissingFields != nil { + require.Equal(t, sortedStrings(*want.MissingFields), sortedStrings(got.MissingFields), "%s.missing_fields", path) + } + if want.Diagnostics != nil { + require.Len(t, got.Diagnostics, len(*want.Diagnostics), "%s.diagnostics", path) + for i, d := range *want.Diagnostics { + g := got.Diagnostics[i] + require.Equal(t, d, vectorDiagnostic{Code: string(g.Code), LeftType: g.LeftType, Operator: g.Operator, RightType: g.RightType}, + "%s.diagnostics[%d]", path, i) + require.NotEmpty(t, g.Message, "%s.diagnostics[%d].message", path, i) + } + } + if want.Children != nil { + require.Len(t, got.Children, len(*want.Children), "%s.children", path) + for i, child := range *want.Children { + checkVectorTrace(t, fmt.Sprintf("%s.children[%d]", path, i), got.Children[i], child) + } + } +} + +func sortedStrings(s []string) []string { + out := append([]string{}, s...) + slices.Sort(out) + return out +} + +// requireVectorValue compares a result value against an expected value written +// in the vector value notation: JSON scalars, arrays, and objects as shorthand, +// and {"$type": ...} objects as typed JSON nodes. Both sides are reduced to the +// canonical typed form before comparing, so type distinctions are kept. +func requireVectorValue(t *testing.T, want json.RawMessage, got any, label string) { + t.Helper() + wantValue, err := decodeVectorValue(want) + require.NoError(t, err, "%s: decoding expected value", label) + wantJSON, err := canonicalVectorJSON(wantValue) + require.NoError(t, err, "%s: canonicalizing expected value", label) + gotJSON, err := canonicalVectorJSON(got) + require.NoError(t, err, "%s: canonicalizing result value %#v", label, got) + require.Equal(t, wantJSON, gotJSON, label) +} + +func decodeVectorValue(raw json.RawMessage) (any, error) { + dec := json.NewDecoder(bytes.NewReader(raw)) + dec.UseNumber() + var v any + if err := dec.Decode(&v); err != nil { + return nil, err + } + return shorthandVectorValue(v) +} + +func shorthandVectorValue(v any) (any, error) { + switch v := v.(type) { + case map[string]any: + if _, typed := v["$type"]; typed { + doc, err := json.Marshal(map[string]any{"v": v}) + if err != nil { + return nil, err + } + kv, err := DecodeJSON(doc, JSONOptions{TypedDocument: true}) + if err != nil { + return nil, err + } + return kv["v"], nil + } + out := make(map[string]any, len(v)) + for key, child := range v { + decoded, err := shorthandVectorValue(child) + if err != nil { + return nil, err + } + out[key] = decoded + } + return out, nil + case []any: + out := make([]any, len(v)) + for i, child := range v { + decoded, err := shorthandVectorValue(child) + if err != nil { + return nil, err + } + out[i] = decoded + } + return out, nil + case json.Number: + return normalizeJSONNumber(v) + default: + return v, nil + } +} + +func canonicalVectorJSON(v any) (string, error) { + canonical, err := canonicalVectorValue(v) + if err != nil { + return "", err + } + out, err := json.Marshal(canonical) + return string(out), err +} + +func typedVectorNode(typ, value string) map[string]any { + return map[string]any{"$type": typ, "value": value} +} + +func canonicalVectorValue(v any) (any, error) { + switch v := v.(type) { + case nil, bool, string: + return v, nil + case int: + return typedVectorNode("int64", strconv.FormatInt(int64(v), 10)), nil + case int64: + return typedVectorNode("int64", strconv.FormatInt(v, 10)), nil + case uint: + return typedVectorNode("uint64", strconv.FormatUint(uint64(v), 10)), nil + case uint64: + return typedVectorNode("uint64", strconv.FormatUint(v, 10)), nil + case float64: + return typedVectorNode("float64", strconv.FormatFloat(v, 'g', -1, 64)), nil + case net.IP: + return typedVectorNode("ip", v.String()), nil + case *net.IPNet: + return typedVectorNode("cidr", v.String()), nil + case net.HardwareAddr: + return typedVectorNode("mac", v.String()), nil + case *url.URL: + return typedVectorNode("url", v.String()), nil + case []byte: + return map[string]any{"$type": "bytes", "encoding": "hex", "value": hex.EncodeToString(v)}, nil + case HexString: + return map[string]any{"$type": "bytes", "encoding": "hex", "value": hex.EncodeToString(v.Bytes)}, nil + case map[string]any: + out := make(map[string]any, len(v)) + for key, child := range v { + c, err := canonicalVectorValue(child) + if err != nil { + return nil, err + } + out[key] = c + } + return map[string]any{"$type": "object", "value": out}, nil + } + rv := reflect.ValueOf(v) + if rv.Kind() == reflect.Slice { + out := make([]any, rv.Len()) + for i := range out { + c, err := canonicalVectorValue(rv.Index(i).Interface()) + if err != nil { + return nil, err + } + out[i] = c + } + return map[string]any{"$type": "array", "value": out}, nil + } + return nil, errors.New("value has no vector representation: " + fmt.Sprintf("%T", v)) +} From ffaa73f8f44b16771f8708d35df671a0f3711f7f Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:08:30 +0300 Subject: [PATCH 018/106] Compare bytes input and hex literals by value on either side --- compare.go | 8 ++++++++ compare_bytes.go | 27 ++++++++++++++++++++++++++- compare_mac.go | 6 ++++-- compare_string.go | 3 +++ testdata/vectors/literals.json | 9 +++++++++ 5 files changed, 50 insertions(+), 3 deletions(-) diff --git a/compare.go b/compare.go index 72ab0bf..ef444ef 100644 --- a/compare.go +++ b/compare.go @@ -118,6 +118,14 @@ func compareDetailed(left any, op int, right any) compareOutcome { // url ? any return compareURL(lv, op, right) + case []byte: + // bytes ? any + return compareBytes(lv, op, right) + + case HexString: + // hex ? any + return compareBytes(lv.Bytes, op, right) + case []any: // []any ? any return compareSliceDetailed(lv, op, func(lv any, op int) compareOutcome { diff --git a/compare_bytes.go b/compare_bytes.go index 27432b0..8d5f8a8 100644 --- a/compare_bytes.go +++ b/compare_bytes.go @@ -1,6 +1,31 @@ package rulekit -import "bytes" +import ( + "bytes" + "net" +) + +// compareBytes compares a byte sequence (bytes input or a hex literal) by +// value against bytes, hex, strings, and MAC addresses. +func compareBytes(left []byte, op int, right any) compareOutcome { + switch right := right.(type) { + case []byte: + return compareBytesBytes(left, op, right) + case HexString: + return compareBytesBytes(left, op, right.Bytes) + case net.HardwareAddr: + return compareBytesBytes(left, op, right) + case string: + switch op { + case op_EQ: + return comparePass(string(left) == right) + case op_NE: + return comparePass(string(left) != right) + } + return compareBytesBytes(left, op, []byte(right)) + } + return incomparable() +} func compareBytesBytes(left []byte, op int, right []byte) compareOutcome { switch op { diff --git a/compare_mac.go b/compare_mac.go index 412116d..2a3ceda 100644 --- a/compare_mac.go +++ b/compare_mac.go @@ -12,8 +12,10 @@ func compareMac(left net.HardwareAddr, op int, right any) compareOutcome { return compareBytesBytes(left, op, right) case HexString: // mac ? hex - // in this case, treat the hex string as a literal - return compareStringString(strings.ToLower(left.String()), op, strings.ToLower(right.String())) + return compareBytesBytes(left, op, right.Bytes) + case []byte: + // mac ? bytes + return compareBytesBytes(left, op, right) case string: // mac ? string return compareStringString(strings.ToLower(left.String()), op, strings.ToLower(right)) diff --git a/compare_string.go b/compare_string.go index 970846f..5cf5790 100644 --- a/compare_string.go +++ b/compare_string.go @@ -27,6 +27,9 @@ func compareString(left string, op int, right any) compareOutcome { case HexString: // string ? hex return compareBytesBytes([]byte(left), op, right.Bytes) + case []byte: + // string ? bytes + return compareBytesBytes([]byte(left), op, right) } return incomparable() } diff --git a/testdata/vectors/literals.json b/testdata/vectors/literals.json index 003820d..384078d 100644 --- a/testdata/vectors/literals.json +++ b/testdata/vectors/literals.json @@ -141,6 +141,15 @@ {"name": "x-quoted hex: empty is a parse error", "expr": "x == x\"\"", "expect": {"parse_error": true}}, {"name": "x-quoted hex: odd digits is a parse error", "expr": "x == x\"abc\"", "expect": {"parse_error": true}}, {"name": "x-quoted hex: non-hex digit is a parse error", "expr": "x == x\"0g\"", "expect": {"parse_error": true}}, + {"name": "bytes input equals hex literal", "expr": "x == ab:cd", "input": {"x.$hex": "abcd"}, "expect": {"value": true}}, + {"name": "bytes input not equal to other hex", "expr": "x != ab:ce", "input": {"x.$hex": "abcd"}, "expect": {"value": true}}, + {"name": "bytes input equals eight-byte x-quoted hex", "expr": "x == x\"0123456789abcdef\"", "input": {"x.$hex": "0123456789abcdef"}, "expect": {"value": true}}, + {"name": "bytes input contains hex", "expr": "x contains x\"cd\"", "input": {"x.$hex": "abcd"}, "expect": {"value": true}}, + {"name": "bytes input equals string with same bytes", "expr": "x == \"PO\"", "input": {"x.$hex": "504f"}, "expect": {"value": true}}, + {"name": "bytes inputs compare by value", "expr": "x == y", "input": {"x.$hex": "504f", "y.$base64": "UE8="}, "expect": {"value": true}}, + {"name": "hex literal on the left equals bytes input", "expr": "ab:cd == x", "input": {"x.$hex": "abcd"}, "expect": {"value": true}}, + {"name": "hex literal on the left equals string", "expr": "x\"504f\" == s", "input": {"s": "PO"}, "expect": {"value": true}}, + {"name": "hex literal on the left equals mac", "expr": "00:1a:2b:3c:4d:5e == mac", "input": {"mac.$mac": "00:1a:2b:3c:4d:5e"}, "expect": {"value": true}}, { "name": "quoted plain value is a string", "expr": "s == \"just a string\"", From e216e039fbc5417893574777ee912970f1a448b0 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:14:33 +0300 Subject: [PATCH 019/106] Recognize MACs by explicit notation; compare strings with MACs --- compare_string.go | 3 +++ json.go | 6 ++++- mac.go | 41 ++++++++++++++++++++++++++++++++++ parser.go | 2 +- testdata/vectors/literals.json | 5 +++++ 5 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 mac.go diff --git a/compare_string.go b/compare_string.go index 5cf5790..c3c7fab 100644 --- a/compare_string.go +++ b/compare_string.go @@ -30,6 +30,9 @@ func compareString(left string, op int, right any) compareOutcome { case []byte: // string ? bytes return compareBytesBytes([]byte(left), op, right) + case net.HardwareAddr: + // string ? mac + return compareStringString(strings.ToLower(left), op, right.String()) } return incomparable() } diff --git a/json.go b/json.go index a84a6f2..b55ff6e 100644 --- a/json.go +++ b/json.go @@ -223,7 +223,11 @@ func decodeScalarValue(typ string, value any, encoding string) (any, error) { if err != nil { return nil, err } - return net.ParseMAC(s) + mac, ok := parseMAC(s) + if !ok { + return nil, fmt.Errorf("invalid mac %q", s) + } + return mac, nil case "url": s, err := stringScalar(value) if err != nil { diff --git a/mac.go b/mac.go new file mode 100644 index 0000000..ec29f6c --- /dev/null +++ b/mac.go @@ -0,0 +1,41 @@ +package rulekit + +import ( + "encoding/hex" + "net" + "strings" +) + +// parseMAC parses a 6- or 8-byte MAC address written as hex pairs separated +// by colons or hyphens (01:23:45:67:89:ab, 01-23-45-67-89-ab) or as groups +// of four hex digits separated by dots (0123.4567.89ab). Other notations are +// not MAC addresses. +func parseMAC(s string) (net.HardwareAddr, bool) { + var groups []string + var width int + switch { + case strings.Contains(s, ":"): + groups, width = strings.Split(s, ":"), 2 + case strings.Contains(s, "-"): + groups, width = strings.Split(s, "-"), 2 + case strings.Contains(s, "."): + groups, width = strings.Split(s, "."), 4 + default: + return nil, false + } + if size := len(groups) * width / 2; size != 6 && size != 8 { + return nil, false + } + mac := make(net.HardwareAddr, 0, len(groups)*width/2) + for _, group := range groups { + if len(group) != width { + return nil, false + } + b, err := hex.DecodeString(group) + if err != nil { + return nil, false + } + mac = append(mac, b...) + } + return mac, true +} diff --git a/parser.go b/parser.go index 9feb63b..4b855a4 100644 --- a/parser.go +++ b/parser.go @@ -92,7 +92,7 @@ func parseString[T interface{ string | []byte }](data T) (any, error) { return ip, nil } else if _, ipnet, err := net.ParseCIDR(str); err == nil { return ipnet, nil - } else if mac, err := net.ParseMAC(str); err == nil && (len(mac) == 6 || len(mac) == 8) { + } else if mac, ok := parseMAC(str); ok { return mac, nil } if u, ok := parseAbsoluteURL(str); ok { diff --git a/testdata/vectors/literals.json b/testdata/vectors/literals.json index 384078d..c457868 100644 --- a/testdata/vectors/literals.json +++ b/testdata/vectors/literals.json @@ -150,6 +150,11 @@ {"name": "hex literal on the left equals bytes input", "expr": "ab:cd == x", "input": {"x.$hex": "abcd"}, "expect": {"value": true}}, {"name": "hex literal on the left equals string", "expr": "x\"504f\" == s", "input": {"s": "PO"}, "expect": {"value": true}}, {"name": "hex literal on the left equals mac", "expr": "00:1a:2b:3c:4d:5e == mac", "input": {"mac.$mac": "00:1a:2b:3c:4d:5e"}, "expect": {"value": true}}, + {"name": "string field equals quoted MAC text", "expr": "s == \"aa:bb:cc:dd:ee:ff\"", "input": {"s": "aa:bb:cc:dd:ee:ff"}, "expect": {"value": true}}, + {"name": "twelve bare hex digits in quotes stay a string", "expr": "s == \"123456789012\"", "input": {"s": "123456789012"}, "expect": {"value": true}}, + {"name": "mixed MAC separators stay a string", "expr": "s == \"aa:bb-cc:dd:ee:ff\"", "input": {"s": "aa:bb-cc:dd:ee:ff"}, "expect": {"value": true}}, + {"name": "five MAC groups stay a string", "expr": "s == \"aa:bb:cc:dd:ee\"", "input": {"s": "aa:bb:cc:dd:ee"}, "expect": {"value": true}}, + {"name": "quoted dotted 8-byte MAC is a MAC", "expr": "mac == \"0123.4567.89ab.cdef\"", "input": {"mac.$mac": "01:23:45:67:89:ab:cd:ef"}, "expect": {"value": true}}, { "name": "quoted plain value is a string", "expr": "s == \"just a string\"", From 1c58e14a944a54e0272b492ae1efec144712d40c Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:15:27 +0300 Subject: [PATCH 020/106] Define integer and float literal grammar explicitly --- parser.go | 85 ++++++++++++++++++++++++++++------ testdata/vectors/literals.json | 10 ++++ 2 files changed, 81 insertions(+), 14 deletions(-) diff --git a/parser.go b/parser.go index 4b855a4..658b57c 100644 --- a/parser.go +++ b/parser.go @@ -148,23 +148,84 @@ func parseInt[T interface{ string | []byte }](data T) (any, error) { return nil, fmt.Errorf("parsing integer: invalid value %q", raw) } -// parseIntLiteral parses decimal integers and 0x, 0o, and 0b prefixed -// integers, with optional _ separators. Leading zeros are decimal, so 010 is -// ten. Values above the int64 range are returned as uint64. +// parseIntLiteral parses an integer literal: an optional sign, then either +// decimal digits (leading zeros are decimal, so 010 is ten) or a 0x, 0o, or 0b +// prefix followed by digits in that base. Digits may be separated by single +// underscores, and one may follow a base prefix. Values above the int64 range +// are returned as uint64. func parseIntLiteral(s string) (any, bool) { - base := 0 - if digits := strings.TrimPrefix(s, "-"); len(digits) > 1 && digits[0] == '0' && digits[1] >= '0' && digits[1] <= '9' { - base = 10 + sign, digits := splitSign(s) + base := 10 + if len(digits) > 2 && digits[0] == '0' { + switch digits[1] { + case 'x', 'X': + base = 16 + case 'o', 'O': + base = 8 + case 'b', 'B': + base = 2 + } + if base != 10 { + digits = strings.TrimPrefix(digits[2:], "_") + } } - if n, err := strconv.ParseInt(s, base, 64); err == nil { - return n, true + if digits == "" || digits[0] == '_' || digits[len(digits)-1] == '_' || strings.Contains(digits, "__") { + return nil, false } - if n, err := strconv.ParseUint(s, base, 64); err == nil { + digits = strings.ReplaceAll(digits, "_", "") + if n, err := strconv.ParseInt(sign+digits, base, 64); err == nil { return n, true } + if sign != "-" { + if n, err := strconv.ParseUint(digits, base, 64); err == nil { + return n, true + } + } return nil, false } +// isFloatLiteral reports whether s is a decimal float: an optional sign, +// digits, then a fraction (5., 1.5), an exponent (1e3), or both (1.5e-3). +func isFloatLiteral(s string) bool { + _, s = splitSign(s) + i := skipDigits(s, 0) + if i == 0 { + return false + } + fraction, exponent := false, false + if i < len(s) && s[i] == '.' { + fraction = true + i = skipDigits(s, i+1) + } + if i < len(s) && (s[i] == 'e' || s[i] == 'E') { + i++ + if i < len(s) && (s[i] == '+' || s[i] == '-') { + i++ + } + start := i + i = skipDigits(s, i) + if i == start { + return false + } + exponent = true + } + return i == len(s) && (fraction || exponent) +} + +func splitSign(s string) (sign, rest string) { + if s != "" && (s[0] == '+' || s[0] == '-') { + return s[:1], s[1:] + } + return "", s +} + +func skipDigits(s string, i int) int { + for i < len(s) && s[i] >= '0' && s[i] <= '9' { + i++ + } + return i +} + func parseFloat[T interface{ string | []byte }](data T) (float64, error) { return strconv.ParseFloat(string(data), 64) } @@ -569,11 +630,7 @@ func isInteger(s string) bool { } func isFloat(s string) bool { - if !strings.Contains(s, ".") { - return false - } - _, err := strconv.ParseFloat(s, 64) - return err == nil + return isFloatLiteral(s) } func isHexString(s string) bool { diff --git a/testdata/vectors/literals.json b/testdata/vectors/literals.json index c457868..005efb1 100644 --- a/testdata/vectors/literals.json +++ b/testdata/vectors/literals.json @@ -92,6 +92,16 @@ {"name": "integer literal: 1_000", "expr": "x == 1_000", "input": {"x": 1000}, "expect": {"value": true}}, {"name": "integer literal: 0", "expr": "x == 0", "input": {"x": 0}, "expect": {"value": true}}, {"name": "integer literal: 00", "expr": "x == 00", "input": {"x": 0}, "expect": {"value": true}}, + {"name": "integer literal: +010", "expr": "x == +010", "input": {"x": 10}, "expect": {"value": true}}, + {"name": "integer literal: 0_10", "expr": "x == 0_10", "input": {"x": 10}, "expect": {"value": true}}, + {"name": "integer literal: 01_000", "expr": "x == 01_000", "input": {"x": 1000}, "expect": {"value": true}}, + {"name": "integer literal: 0x_1f", "expr": "x == 0x_1f", "input": {"x": 31}, "expect": {"value": true}}, + {"name": "integer literal: double underscore is a parse error", "expr": "x == 1__0", "expect": {"parse_error": true}}, + {"name": "integer literal: trailing underscore is a parse error", "expr": "x == 1_", "expect": {"parse_error": true}}, + {"name": "float literal: exponent without fraction", "expr": "x == 1e3", "input": {"x": 1000}, "expect": {"value": true}}, + {"name": "float literal: trailing dot", "expr": "x == 5.", "input": {"x": 5}, "expect": {"value": true}}, + {"name": "float literal: hex float is a parse error", "expr": "x == 0x1.8p1", "expect": {"parse_error": true}}, + {"name": "float literal: underscore is a parse error", "expr": "x == 1_0.5", "expect": {"parse_error": true}}, { "name": "integer literal: 18446744073709551615", "expr": "x == 18446744073709551615", From c4d38080cc80ed55f98de429db6ea490105f85ef Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:15:35 +0300 Subject: [PATCH 021/106] Inline float literal check --- parser.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/parser.go b/parser.go index 658b57c..b54cd0b 100644 --- a/parser.go +++ b/parser.go @@ -184,9 +184,9 @@ func parseIntLiteral(s string) (any, bool) { return nil, false } -// isFloatLiteral reports whether s is a decimal float: an optional sign, -// digits, then a fraction (5., 1.5), an exponent (1e3), or both (1.5e-3). -func isFloatLiteral(s string) bool { +// isFloat reports whether s is a decimal float: an optional sign, digits, +// then a fraction (5., 1.5), an exponent (1e3), or both (1.5e-3). +func isFloat(s string) bool { _, s = splitSign(s) i := skipDigits(s, 0) if i == 0 { @@ -629,10 +629,6 @@ func isInteger(s string) bool { return ok } -func isFloat(s string) bool { - return isFloatLiteral(s) -} - func isHexString(s string) bool { if !strings.Contains(s, ":") { return false From 3924bebf84cf9108703979ece3aeb3bab2e54d52 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:16:17 +0300 Subject: [PATCH 022/106] Share one unquote for strings and bracket keys; accept \' in double quotes --- parser.go | 17 ++++++----------- testdata/vectors/literals.json | 1 + testdata/vectors/paths.json | 2 ++ values.go | 9 +-------- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/parser.go b/parser.go index b54cd0b..92ac7c5 100644 --- a/parser.go +++ b/parser.go @@ -78,12 +78,7 @@ func operatorToString(op int) string { } func parseString[T interface{ string | []byte }](data T) (any, error) { - str := string(data) - if str[0] == '\'' { - str = singleToDoubleQuoted(str) - } - var err error - str, err = strconv.Unquote(str) + str, err := unquote(string(data)) if err != nil { return nil, err } @@ -101,10 +96,10 @@ func parseString[T interface{ string | []byte }](data T) (any, error) { return str, nil } -// singleToDoubleQuoted rewrites a single-quoted literal as the equivalent -// double-quoted one, so both quote styles accept the same escapes. -func singleToDoubleQuoted(str string) string { - inner := str[1 : len(str)-1] +// unquote decodes a single- or double-quoted literal. Both quote styles accept +// the same backslash escapes, including \' and \". +func unquote(raw string) (string, error) { + inner := raw[1 : len(raw)-1] var b strings.Builder b.Grow(len(inner) + 2) b.WriteByte('"') @@ -124,7 +119,7 @@ func singleToDoubleQuoted(str string) string { } } b.WriteByte('"') - return b.String() + return strconv.Unquote(b.String()) } // parseAbsoluteURL reports whether str is an absolute URL with a scheme and diff --git a/testdata/vectors/literals.json b/testdata/vectors/literals.json index 005efb1..e36ca99 100644 --- a/testdata/vectors/literals.json +++ b/testdata/vectors/literals.json @@ -114,6 +114,7 @@ "expect": {"value": true} }, {"name": "negative less than uint64 max", "expr": "-1 < 18446744073709551615", "expect": {"value": true}}, + {"name": "double-quoted string accepts escaped single quote", "expr": "s == \"it\\'s\"", "input": {"s": "it's"}, "expect": {"value": true}}, { "name": "single hex pair is a field name: number", "expr": "ab == 1", diff --git a/testdata/vectors/paths.json b/testdata/vectors/paths.json index 22e8b57..eaea84d 100644 --- a/testdata/vectors/paths.json +++ b/testdata/vectors/paths.json @@ -7,6 +7,8 @@ "input": {"data": {"field.name": true}}, "expect": {"value": true} }, + {"name": "single-quoted bracket key with escaped double quote", "expr": "x['it\\\"s'] == 1", "input": {"x": {"it\"s": 1}}, "expect": {"value": true}}, + {"name": "double-quoted bracket key with escaped single quote", "expr": "x[\"it\\'s\"] == 1", "input": {"x": {"it's": 1}}, "expect": {"value": true}}, { "name": "dotted path does not match dotted key", "expr": "data.field.name == true", diff --git a/values.go b/values.go index 834414d..7eeb2fd 100644 --- a/values.go +++ b/values.go @@ -106,14 +106,7 @@ func fieldPathSegments(path string) []pathSegment { } func parsePathKey(raw string) (string, error) { - str := raw - if str[0] == '\'' { - str = str[1 : len(str)-1] - str = strings.ReplaceAll(str, `"`, `\"`) - str = strings.ReplaceAll(str, `\'`, `'`) - str = `"` + str + `"` - } - return strconv.Unquote(str) + return unquote(raw) } type LiteralValue[T any] struct { From 54e1c896ecebd58fac9c96a308efb720e61c515a Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:16:47 +0300 Subject: [PATCH 023/106] Lexer decodes UTF-8 when scanning field names --- parser.go | 8 ++++---- testdata/vectors/paths.json | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/parser.go b/parser.go index 92ac7c5..6407a3e 100644 --- a/parser.go +++ b/parser.go @@ -445,7 +445,7 @@ func (l *lexer) next() token { return l.scanRegex(ch, leading) } - if ch == '+' || ch == '-' || ch == ':' || isAtomStart(rune(ch)) || unicode.IsDigit(rune(ch)) { + if r, _ := utf8.DecodeRuneInString(l.input[l.pos:]); ch == '+' || ch == '-' || ch == ':' || isAtomStart(r) || unicode.IsDigit(r) { return l.scanAtom(leading) } @@ -527,11 +527,11 @@ func (l *lexer) scanRegex(delim byte, leading string) token { func (l *lexer) scanAtom(leading string) token { start := l.pos for l.pos < len(l.input) { - ch := l.input[l.pos] - if unicode.IsSpace(rune(ch)) || strings.ContainsRune("()[],<>=!&|\"'", rune(ch)) { + r, size := utf8.DecodeRuneInString(l.input[l.pos:]) + if unicode.IsSpace(r) || strings.ContainsRune("()[],<>=!&|\"'", r) { break } - l.pos++ + l.pos += size } raw := l.input[start:l.pos] lower := strings.ToLower(raw) diff --git a/testdata/vectors/paths.json b/testdata/vectors/paths.json index eaea84d..4db4d00 100644 --- a/testdata/vectors/paths.json +++ b/testdata/vectors/paths.json @@ -9,6 +9,9 @@ }, {"name": "single-quoted bracket key with escaped double quote", "expr": "x['it\\\"s'] == 1", "input": {"x": {"it\"s": 1}}, "expect": {"value": true}}, {"name": "double-quoted bracket key with escaped single quote", "expr": "x[\"it\\'s\"] == 1", "input": {"x": {"it's": 1}}, "expect": {"value": true}}, + {"name": "hebrew field name", "expr": "שלום == 1", "input": {"שלום": 1}, "expect": {"value": true}}, + {"name": "accented field name ending in a", "expr": "voilà == 1", "input": {"voilà": 1}, "expect": {"value": true}}, + {"name": "cyrillic field name", "expr": "имя == 1", "input": {"имя": 1}, "expect": {"value": true}}, { "name": "dotted path does not match dotted key", "expr": "data.field.name == true", From 4410f016294fb3d062cc1f5cb964d49ae42b33a0 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:17:10 +0300 Subject: [PATCH 024/106] Print negated contains, matches, and in as valid syntax --- nodes.go | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/nodes.go b/nodes.go index 07fc685..2db62cd 100644 --- a/nodes.go +++ b/nodes.go @@ -144,23 +144,12 @@ func (n *nodeNot) Eval(ctx context.Context, input Input, opts Opts) Result { func (n *nodeNot) String() string { right := unwrapTracedRule(n.right) - if nn, ok := right.(*nodeCompare); ok { - if nn.op == op_EQ { - // special formatting for != - return nn.lv.String() + " != " + nn.rv.String() - } else if nn.op == op_CONTAINS { - // special formatting for field not contains "item" - return nn.lv.String() + " not contains " + nn.rv.String() - } + if nn, ok := right.(*nodeCompare); ok && nn.op == op_EQ { + // special formatting for != + return nn.lv.String() + " != " + nn.rv.String() } else if nn, ok := right.(FieldValue); ok { // special formatting for !FIELD (no space between ! and field) return "!" + nn.String() - } else if nn, ok := right.(*nodeMatch); ok { - // special formatting for field not =~ /pattern/ - return nn.lv.String() + " not =~ " + nn.rv.String() - } else if nn, ok := right.(*nodeIn); ok { - // special formatting for field not in [1, "str", 3] - return nn.lv.String() + " not in " + nn.rv.String() } return "not (" + right.String() + ")" From 79a4e73c92512a0d8302772f9f4fe29784564e19 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:17:58 +0300 Subject: [PATCH 025/106] Keep lazy memo keys distinct for bracketed keys --- input.go | 21 +-------------------- input_test.go | 11 +++++++++++ values.go | 11 +++++++++-- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/input.go b/input.go index bdb8615..2fe4b0b 100644 --- a/input.go +++ b/input.go @@ -3,8 +3,6 @@ package rulekit import ( "context" "fmt" - "strconv" - "strings" "sync" ) @@ -118,7 +116,7 @@ func (k *kvInput) resolveLazy(ctx context.Context, path []pathSegment, value any // find the per-path entry; the entry lock is held across the lazy call so // each path resolves once and lazy funcs resolving other paths on the same // input do not block on each other. - key := inputPathKey(path) + key := pathString(path, false) k.mu.Lock() entry := k.memo[key] if entry == nil { @@ -150,23 +148,6 @@ func (k *kvInput) resolveLazy(ctx context.Context, path []pathSegment, value any return resolved, nil } -func inputPathKey(path []pathSegment) string { - var raw strings.Builder - for _, segment := range path { - if segment.isIndex { - raw.WriteString("[") - raw.WriteString(strconv.Itoa(segment.index)) - raw.WriteString("]") - continue - } - if raw.Len() > 0 { - raw.WriteString(".") - } - raw.WriteString(segment.key) - } - return raw.String() -} - func inputPathSegments(segments []pathSegment) []PathSegment { out := make([]PathSegment, 0, len(segments)) for _, segment := range segments { diff --git a/input_test.go b/input_test.go index 48d4d2c..ace945c 100644 --- a/input_test.go +++ b/input_test.go @@ -27,6 +27,17 @@ func TestInputFromKVLazyValue(t *testing.T) { require.Equal(t, 1, calls) } +func TestInputFromKVLazyMemoKeepsBracketKeysDistinct(t *testing.T) { + lazy := func(v string) LazyValue { return func() (any, error) { return v, nil } } + input := FromKV(KV{ + "a.b": lazy("flat"), + "a": KV{"b": lazy("nested")}, + }) + result := MustParse(`["a.b"] == "flat" and a.b == "nested" and a["b"] == "nested"`).Eval(nil, input, Opts{}) + require.NoError(t, result.Error) + require.True(t, result.Pass()) +} + func TestInputFromKVLazyContextValue(t *testing.T) { type contextKey string rule := MustParse(`user == "root"`) diff --git a/values.go b/values.go index 7eeb2fd..b050139 100644 --- a/values.go +++ b/values.go @@ -57,8 +57,15 @@ func (p *PathValue) Eval(ctx context.Context, input Input, opts Opts) Result { } func (p *PathValue) String() string { + return pathString(p.segments, true) +} + +// pathString renders path segments in rule syntax. Keys that are not plain +// identifiers are always bracketed; keepBrackets also brackets identifier keys +// that were written with brackets. +func pathString(segments []pathSegment, keepBrackets bool) string { var raw strings.Builder - for i, seg := range p.segments { + for i, seg := range segments { if seg.isIndex { raw.WriteString("[") raw.WriteString(strconv.Itoa(seg.index)) @@ -66,7 +73,7 @@ func (p *PathValue) String() string { continue } - if seg.bracket || !isIdentifierSegment(seg.key) { + if (keepBrackets && seg.bracket) || !isIdentifierSegment(seg.key) { raw.WriteString("[") raw.WriteString(strconv.Quote(seg.key)) raw.WriteString("]") From 250c36bebf6fcf2d7f4313c2f8df4b484b7b70e7 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:19:10 +0300 Subject: [PATCH 026/106] Read single-key fields without allocating; create lazy memo on demand --- input.go | 26 +++++++++++++++++++++++++- values.go | 16 ++++++++++++---- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/input.go b/input.go index 2fe4b0b..5afee0d 100644 --- a/input.go +++ b/input.go @@ -35,7 +35,7 @@ func FromContextFunc(fn func(context.Context, []PathSegment) (any, bool, error)) } func FromKV(kv KV) Input { - return &kvInput{kv: kv, memo: map[string]*lazyEntry{}} + return &kvInput{kv: kv} } // kvInput may be shared by concurrent evals; mu guards memo, and each @@ -104,6 +104,27 @@ func (k *kvInput) GetPath(ctx context.Context, path []pathSegment) (any, bool, e return current, true, nil } +// getField resolves a single top-level key. It is GetPath for one segment +// without building a path slice, which keeps plain field reads allocation-free. +func (k *kvInput) getField(ctx context.Context, key string) (any, bool, error) { + if k == nil || k.kv == nil { + return nil, false, nil + } + value, ok := k.kv[key] + if !ok { + return nil, false, nil + } + switch value.(type) { + case LazyValue, LazyContextValue: + resolved, err := k.resolveLazy(ctx, []pathSegment{{key: key}}, value) + if err != nil { + return nil, false, err + } + return resolved, true, nil + } + return value, true, nil +} + func (k *kvInput) resolveLazy(ctx context.Context, path []pathSegment, value any) (any, error) { // Plain values never touch the memo, so the common path stays lock-free. switch value.(type) { @@ -120,6 +141,9 @@ func (k *kvInput) resolveLazy(ctx context.Context, path []pathSegment, value any k.mu.Lock() entry := k.memo[key] if entry == nil { + if k.memo == nil { + k.memo = map[string]*lazyEntry{} + } entry = &lazyEntry{} k.memo[key] = entry } diff --git a/values.go b/values.go index b050139..0ba8afb 100644 --- a/values.go +++ b/values.go @@ -11,11 +11,19 @@ import ( type FieldValue string func (f FieldValue) Eval(ctx context.Context, input Input, opts Opts) Result { - segments := [1]pathSegment{{key: string(f)}} - val, ok, err := resolveInputPath(ctx, input, segments[:]) + var ( + val any + ok bool + err error + ) + if kv, isKV := input.(*kvInput); isKV { + val, ok, err = kv.getField(ctx, string(f)) + } else { + segments := [1]pathSegment{{key: string(f)}} + val, ok, err = resolveInputPath(ctx, input, segments[:]) + } if err != nil { - res := inputError(string(f), err) - return res + return inputError(string(f), err) } if !ok { return Result{MissingFields: []string{string(f)}} From c91f1b123ffc0b87bbf9d0230b54788cb344462a Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:20:07 +0300 Subject: [PATCH 027/106] Regex: reject duplicate flags and braces that are not repetitions --- parser.go | 5 +++++ regex.go | 17 ++++++++++++++++- testdata/vectors/regex.json | 9 ++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/parser.go b/parser.go index 6407a3e..6e4cd2d 100644 --- a/parser.go +++ b/parser.go @@ -236,6 +236,11 @@ func parseRegex[T interface{ string | []byte }](data T) (*regexp.Regexp, error) end := strings.LastIndexByte(raw, raw[0]) pattern := raw[1:end] if flags := raw[end+1:]; flags != "" { + for _, flag := range "ims" { + if strings.Count(flags, string(flag)) > 1 { + return nil, fmt.Errorf("duplicate regex flag %q", flag) + } + } pattern = "(?" + flags + ")" + pattern } if err := checkRegexDialect(pattern); err != nil { diff --git a/regex.go b/regex.go index 827b547..cb7920e 100644 --- a/regex.go +++ b/regex.go @@ -31,7 +31,7 @@ func checkRegexDialect(pattern string) error { return fmt.Errorf(`\%c{^...} is not supported; use \P{...} to negate a Unicode class`, next) } end := i + 1 - if (next == 'p' || next == 'P') && i+2 < len(pattern) && pattern[i+2] == '{' { + if (next == 'p' || next == 'P' || next == 'x') && i+2 < len(pattern) && pattern[i+2] == '{' { if close := strings.IndexByte(pattern[i+2:], '}'); close >= 0 { end = i + 2 + close } @@ -71,7 +71,22 @@ func checkRegexDialect(pattern string) error { } case c == '{' && i+1 < len(pattern) && pattern[i+1] == ',': return fmt.Errorf(`{,n} is not supported; use {0,n}`) + case c == '{' && !isRepetition(pattern[i:]): + return fmt.Errorf(`{ must start a repetition such as {2} or {1,3}; escape a literal brace as \{`) } } return nil } + +// isRepetition reports whether s starts with a counted repetition: {n}, +// {n,}, or {n,m}. +func isRepetition(s string) bool { + i := skipDigits(s, 1) + if i == 1 { + return false + } + if i < len(s) && s[i] == ',' { + i = skipDigits(s, i+1) + } + return i < len(s) && s[i] == '}' +} diff --git a/testdata/vectors/regex.json b/testdata/vectors/regex.json index a9f50af..004446b 100644 --- a/testdata/vectors/regex.json +++ b/testdata/vectors/regex.json @@ -58,6 +58,13 @@ {"name": "accepted: /[a-]/", "expr": "x matches /[a-]/", "expect": {"parse_error": false}}, {"name": "accepted: /[a&b~c-]/", "expr": "x matches /[a&b~c-]/", "expect": {"parse_error": false}}, {"name": "accepted: /\\{,3\\}/", "expr": "x matches /\\{,3\\}/", "expect": {"parse_error": false}}, - {"name": "accepted: /a{2}/", "expr": "x matches /a{2}/", "expect": {"parse_error": false}} + {"name": "accepted: /a{2}/", "expr": "x matches /a{2}/", "expect": {"parse_error": false}}, + {"name": "accepted: /a{2,}/", "expr": "x matches /a{2,}/", "expect": {"parse_error": false}}, + {"name": "accepted: /a\\{x\\}/", "expr": "x matches /a\\{x\\}/", "expect": {"parse_error": false}}, + {"name": "accepted: /[{]/", "expr": "x matches /[{]/", "expect": {"parse_error": false}}, + {"name": "rejected: duplicate flag", "expr": "x matches /a/ii", "expect": {"parse_error": true}}, + {"name": "rejected: brace without a count", "expr": "x matches /a{x}/", "expect": {"parse_error": true}}, + {"name": "rejected: unterminated count", "expr": "x matches /a{1,2/", "expect": {"parse_error": true}}, + {"name": "rejected: lone brace", "expr": "x matches /{/", "expect": {"parse_error": true}} ] } From 2f3271dc07675c8fd453ea21fe0e2dbab7ff0238 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:21:46 +0300 Subject: [PATCH 028/106] README and package doc: MAC type, regex delimiters and classes, bool case, fixed example --- README.md | 13 ++++---- rule.go | 95 ++++--------------------------------------------------- 2 files changed, 13 insertions(+), 95 deletions(-) diff --git a/README.md b/README.md index a512136..1eb305a 100644 --- a/README.md +++ b/README.md @@ -107,14 +107,15 @@ The Result also provides additional helper methods: | Type | Used As | Example | Description | | ---------------------- | ------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **bool** | VALUE, FIELD | `true` | Valid values: `true`, `false` | +| **bool** | VALUE, FIELD | `true` | Valid values: `true`, `false` (any letter case) | | **number** | VALUE, FIELD | `8080`, `0x1f`, `1_000`, `1.5` | Integer or float. Integers may be decimal (leading zeros are still decimal: `010` is ten) or use a `0x`, `0o`, or `0b` prefix, with optional `_` separators. Parsed as int64, or uint64 if out of range for int64, or float64 if float. | | **string** | VALUE, FIELD | `"domain.com"`, `'domain.com'` | A double- or single-quoted string. Both accept backslash escapes: `"a \"quoted\" word"`, `'it\'s'`. A quoted value that is a valid IP address, CIDR, MAC address, or absolute URL is treated as that type (e.g. `"10.0.0.1"` is an IP). Any other quoted value is a string. | | **IP address** | VALUE, FIELD | `192.168.1.1`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff` | An IPv4, IPv6, or an IPv6 dual address. Maps to Go type: `net.IP` | | **CIDR** | VALUE | `192.168.1.0/24`, `2001:db8:3333:4444:cccc:dddd:eeee:ffff/64` | An IPv4 or IPv6 CIDR block. Maps to Go type: `*net.IPNet` | -| **Hexadecimal string** | VALUE, FIELD | `50:4f:53:54`, `x"504f5354"`, `x"0a"` | Bytes, written either as two or more colon-separated hex pairs or as hex digits in `x"..."`. Equals a string with the same bytes (`x"504f5354" == "POST"`) or a MAC address with the same value. Eight colon-separated pairs read as an IPv6 address; use `x"..."` for 8-byte values. | +| **MAC address** | VALUE, FIELD | `"01:23:45:67:89:ab"`, `"01-23-45-67-89-ab"`, `"0123.4567.89ab"` | A 6- or 8-byte MAC address in quotes, written with colons, hyphens, or dot-separated groups of four. Unquoted pairs such as `01:23:45:67:89:ab` are hexadecimal bytes, which also equal a MAC address with the same value. Maps to Go type: `net.HardwareAddr` | +| **Hexadecimal string** | VALUE, FIELD | `50:4f:53:54`, `x"504f5354"`, `x"0a"` | Bytes, written either as two or more colon-separated hex pairs or as hex digits in `x"..."` (`X` and single quotes also work). Equals a string with the same bytes (`x"504f5354" == "POST"`) or a MAC address with the same value. Eight colon-separated pairs read as an IPv6 address; use `x"..."` for 8-byte values. | | **URL** | VALUE, FIELD | `"https://example.com/api"` | An absolute URL in quotes. Compares against strings and other URLs by its text. Maps to Go type: `*url.URL` | -| **Regex** | VALUE | `/example\.com$/`, `/curl/i` | A regular expression in [RE2 syntax](https://github.com/google/re2/wiki/Syntax), surrounded by forward slashes. May not be quoted with double quotes (otherwise it will be parsed as a string). Flags may follow the closing slash: `i` (ignore case), `m` (`^` and `$` match at line breaks), `s` (`.` matches newlines). `\d`, `\w`, `\s`, and `\b` match ASCII only. Not supported: `\Q...\E`, `\<` and `\>`, numeric escapes such as `\0` (use `\x{...}`), `{,n}` (use `{0,n}`), `\p{^...}` (use `\P{...}`), nested classes, and `&&`, `--`, or `~~` inside a class. | +| **Regex** | VALUE | `/example\.com$/`, `/curl/i`, `\|a/b\|` | A regular expression in [RE2 syntax](https://github.com/google/re2/wiki/Syntax), surrounded by forward slashes or by `\|` (handy when the pattern contains `/`). May not be quoted with double quotes (otherwise it will be parsed as a string). Lowercase flags may follow the closing delimiter: `i` (ignore case), `m` (`^` and `$` match at line breaks), `s` (`.` matches newlines). `\d`, `\w`, and `\b` match ASCII only, and `\s` matches space, `\t`, `\n`, `\f`, and `\r`. Repetition counts go up to 1000. Not supported: `\Q...\E`, `\<` and `\>`, numeric escapes such as `\0` (use `\x{...}`), `{,n}` (use `{0,n}`), a `{` that does not start a repetition (use `\{`), `\p{^...}` (use `\P{...}`), nested classes, and `&&`, `--`, or `~~` inside a class. | ### Constructs @@ -161,7 +162,7 @@ device.mac.oui == 00:1a:2b | URL | `host` | Lowercase host name without the port | | URL | `port` | Port number, if the URL has one | | URL | `path` | Path, e.g. `"/api/v1"` (`""` if empty) | -| URL | `query["name"]` | Query parameter value; a parameter given more than once is a list | +| URL | `query["name"]` or `query.name` | Query parameter value; a parameter given more than once is a list | | URL | `fragment` | Text after `#` | | URL | `user` | User name | | IP address | `version` | `"v4"` or `"v6"` | @@ -357,8 +358,8 @@ customFuncs := map[string]*rulekit.Function{ return rulekit.Result{Error: err} } - num := rand.IntN(max-min) + min - return rulekit.Result{ + num := rand.Int64N(max-min) + min + return rulekit.Result{ Value: num, } }, diff --git a/rule.go b/rule.go index e34baf2..9c86312 100644 --- a/rule.go +++ b/rule.go @@ -1,96 +1,13 @@ +// Package rulekit parses and evaluates rule expressions such as +// +// domain matches /example\.com$/ and port == 8080 +// +// against input values. See the README for the language reference: +// https://github.com/qpoint-io/rulekit#readme package rulekit //go:generate bash gen.sh -/* - - This package implements an expression-based rules engine. - - An expression is evaluated against a KV map of values returning a true/false result. - For example, with the expression: - domain matches /example\.com$/ - - And the following KV maps: - map[string]any{"domain": "example.com"} -> true - map[string]any{"domain": "qpoint.io"} -> false - - In this example, - domain is a FIELD, - matches is the OPERATOR, - /example\.com$/ is the VALUE. - - A FIELD or VALUE may appear on either side of an operator. - For example, all of the following expressions are valid: - - port == 8080 - - 8080 == port - - src.port == dst.port - - 500 > 2 - - A FIELD or VALUE on its own without an operator will check if the field contains a non-zero value. - For example: `bool_field && string_field` - - Supported operators: - == (eq), != (ne), > (gt), >= (ge), < (lt), <= (le), contains, matches, in - or (||), and (&&), not (!) - () parentheses for grouping - - Supported types: - - bool: VALUE, FIELD - e.g. true - - valid values: true, false - - number: VALUE, FIELD - e.g. 8080, 1.35 - - numbers are parsed as either int64 or uint64 if out of range for int64 - floats are parsed as float64 - - Go type: int64, uint64, float64 - - string: VALUE, FIELD - e.g. "domain.com" - - a double-quoted string. quotes may be escaped with a backslash, e.g. "a string \"with\" quotes" - any quoted value is parsed as a string - - IP address: VALUE, FIELD - e.g. 192.168.1.1 - e.g. 2001:db8:3333:4444:cccc:dddd:eeee:ffff - e.g. 2001:db8:3333:4444:5555:6666:1.2.3.4 - - An IPv4, IPv6 or an IPv6 dual address. - - Go type: net.IP - - CIDR: VALUE - e.g. 192.168.1.0/24 - e.g. 2001:db8:3333:4444:cccc:dddd:eeee:ffff/64 - - An IPv4 or IPv6 CIDR block. - - Go type: *net.IPNet - - Hexadecimal string: VALUE, FIELD - e.g. 12:34:56:78:ab (MAC address) - e.g. 504f5354 (hex string "POST") - - a hexadecimal string, optionally separated by colons. - - Go type: - - FIELD: []byte - - VALUE: rule.HexString (hexstring.go) - - Regex: VALUE - e.g. /example\.com$/ - - a Go-style regular expression. Must be surrounded by forward slashes. May not be quoted with double quotes (otherwise it will be parsed as a string). - - Go type: *regexp.Regexp - -*/ - import ( "context" "fmt" From 7439c05d55fbe494f8d1d1ec3a63d8089ba86935 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:44:34 +0300 Subject: [PATCH 029/106] Revert "Lexer decodes UTF-8 when scanning field names" This reverts commit 54e1c896ecebd58fac9c96a308efb720e61c515a. --- parser.go | 8 ++++---- testdata/vectors/paths.json | 3 --- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/parser.go b/parser.go index 6e4cd2d..2d54cbc 100644 --- a/parser.go +++ b/parser.go @@ -450,7 +450,7 @@ func (l *lexer) next() token { return l.scanRegex(ch, leading) } - if r, _ := utf8.DecodeRuneInString(l.input[l.pos:]); ch == '+' || ch == '-' || ch == ':' || isAtomStart(r) || unicode.IsDigit(r) { + if ch == '+' || ch == '-' || ch == ':' || isAtomStart(rune(ch)) || unicode.IsDigit(rune(ch)) { return l.scanAtom(leading) } @@ -532,11 +532,11 @@ func (l *lexer) scanRegex(delim byte, leading string) token { func (l *lexer) scanAtom(leading string) token { start := l.pos for l.pos < len(l.input) { - r, size := utf8.DecodeRuneInString(l.input[l.pos:]) - if unicode.IsSpace(r) || strings.ContainsRune("()[],<>=!&|\"'", r) { + ch := l.input[l.pos] + if unicode.IsSpace(rune(ch)) || strings.ContainsRune("()[],<>=!&|\"'", rune(ch)) { break } - l.pos += size + l.pos++ } raw := l.input[start:l.pos] lower := strings.ToLower(raw) diff --git a/testdata/vectors/paths.json b/testdata/vectors/paths.json index 4db4d00..eaea84d 100644 --- a/testdata/vectors/paths.json +++ b/testdata/vectors/paths.json @@ -9,9 +9,6 @@ }, {"name": "single-quoted bracket key with escaped double quote", "expr": "x['it\\\"s'] == 1", "input": {"x": {"it\"s": 1}}, "expect": {"value": true}}, {"name": "double-quoted bracket key with escaped single quote", "expr": "x[\"it\\'s\"] == 1", "input": {"x": {"it's": 1}}, "expect": {"value": true}}, - {"name": "hebrew field name", "expr": "שלום == 1", "input": {"שלום": 1}, "expect": {"value": true}}, - {"name": "accented field name ending in a", "expr": "voilà == 1", "input": {"voilà": 1}, "expect": {"value": true}}, - {"name": "cyrillic field name", "expr": "имя == 1", "input": {"имя": 1}, "expect": {"value": true}}, { "name": "dotted path does not match dotted key", "expr": "data.field.name == true", From bfef41232d6320b809357d20f9447274b2bc3e7e Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:45:39 +0300 Subject: [PATCH 030/106] Remove v1 build leftovers, dead code, set package, and old plan docs --- .gitignore | 2 - 2026-05-15-v2-plan.md | 671 --------------------- 2026-05-16-demo-app-plan.md | 280 --------- Makefile | 4 - compare.go | 10 - errors.go | 3 - functions.go | 9 - gen.sh | 50 -- go.mod | 1 - go.sum | 2 - nodes.go | 4 - old_demo_screenshots/SCR-20260516-qbwg.png | Bin 831555 -> 0 bytes old_demo_screenshots/SCR-20260516-qcce.png | Bin 669851 -> 0 bytes parser.go | 8 - rule.go | 40 +- set/set.go | 61 -- set/set_test.go | 184 ------ values.go | 11 - 18 files changed, 1 insertion(+), 1339 deletions(-) delete mode 100644 2026-05-15-v2-plan.md delete mode 100644 2026-05-16-demo-app-plan.md delete mode 100755 gen.sh delete mode 100644 old_demo_screenshots/SCR-20260516-qbwg.png delete mode 100644 old_demo_screenshots/SCR-20260516-qcce.png delete mode 100644 set/set.go delete mode 100644 set/set_test.go diff --git a/.gitignore b/.gitignore index 0c8d865..e43b0f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1 @@ -y.output -*.bak .DS_Store diff --git a/2026-05-15-v2-plan.md b/2026-05-15-v2-plan.md deleted file mode 100644 index 0cc92a8..0000000 --- a/2026-05-15-v2-plan.md +++ /dev/null @@ -1,671 +0,0 @@ -# Expression Language V2 Plan - -This note proposes a v2 implementation strategy for the expression language: replace the current parser with an explicit lexer/parser/AST architecture, preserve v1 behavior first, then add editor-oriented features such as bracket indexing, round-tripping, formatting, and optional source preservation. - -## Current Parser Rationale - -The current Ragel + goyacc implementation is a good compact evaluator-oriented parser, but it is not a good long-term fit for a hybrid freeform + GUI expression editor. - -The current implementation: - -- uses Ragel to recognize rich tokens such as strings, IPs, CIDRs, regexes, comments, operators, fields, and functions -- uses goyacc grammar actions to build runtime evaluator nodes directly -- skips whitespace and comments during lexing -- does not attach source spans or token ranges to expression nodes -- uses the same node types for parsing, evaluation, and compact `String()` output - -That design works for parsing and evaluating rules, but it makes AST-to-expression round-tripping, localized GUI edits, trivia preservation, and source-aware diagnostics harder than they need to be. - -The v2 implementation should separate these concerns: - -```text -source text - -> lossless token stream with spans/trivia - -> explicit editable AST - -> formatter / source rewriter - -> evaluator or optional compiled runtime plan -``` - -The main goal is not just replacing goyacc with Pratt parsing. The main goal is to make the AST the stable source of truth for both freeform text and GUI editing. - -## Motivation - -Dot-separated field paths are convenient for common cases: - -```text -request.headers.user_agent == "curl" -destination.ip in 192.168.0.0/16 -``` - -They are less flexible when map keys contain dots, hyphens, spaces, slashes, reserved words, or other punctuation: - -```text -labels["app.kubernetes.io/name"] == "api" -request.headers["user-agent"] == "curl" -payload["tls.version"] == "1.3" -``` - -Bracket indexing gives users an explicit escape hatch without weakening the identifier grammar. - -## Proposed Syntax - -Keep the existing array literal syntax: - -```text -[1, "str", true] -field in [1, "str", 3] -``` - -Add bracket indexing as a postfix path operation: - -```text -request.headers["user-agent"] -labels["app.kubernetes.io/name"] -items[0].name -``` - -Support root-level bracket paths for keys that cannot be written as identifiers: - -```text -["top.level.key"] == 1 -["weird key"] contains "value" -``` - -## Grammar Sketch - -```text -primary = literal | field_path | call | array | "(" expr ")" -array = "[" [expr {"," expr}] "]" -field_path = path_start {path_part} -path_start = identifier | bracket_key -path_part = "." identifier | bracket_key -bracket_key = "[" (quoted_string | unsigned_integer) "]" -``` - -In a Pratt parser, `[` at the start of a primary remains an array literal. `[` after a field/path primary is parsed as postfix indexing. - -## Parser Architecture - -Use a Pike-style state-function lexer for tokenization, then feed those tokens into a Pratt parser for expression parsing. - -```text -input string - -> state-function lexer - -> token stream - -> Pratt parser - -> AST - -> semantic validation / compile step - -> evaluator -``` - -The lexer should handle raw input concerns: - -- whitespace -- `--` line comments -- `/* ... */` block comments -- quoted strings -- regex literals such as `/.../` and `|...|` -- operators and punctuation -- unquoted atoms - -The Pratt parser should handle expression structure: - -- operator precedence for `or`, `and`, comparisons, and prefix `not` -- grouping with parentheses -- array literals -- function and macro calls -- postfix bracket indexing - -Prefer a pull-style lexer API such as `Next()` over a goroutine/channel lexer. The state-function pattern is still useful, but a pull API keeps parser control flow simple and avoids unnecessary channel overhead for short rule expressions. - -## Migration Strategy - -Rewrite the existing v1 feature set using the new lexer/parser/AST architecture before adding new language features. - -This keeps parser architecture risk separate from language-design risk. The existing behavior should become the migration contract, and new syntax should only be added after the new implementation has strong parity with the current parser. - -Suggested sequence: - -1. Implement lexer parity for the current token set and accepted syntax. -2. Implement Pratt parser parity for existing expressions: literals, fields, arrays, calls, `not`, `and`, `or`, comparisons, `matches`, and `in`. -3. Build the explicit AST for the v1 grammar only. -4. Evaluate the AST directly or lower it to a current-style runtime representation. -5. Match current compact `String()` output where tests and public behavior depend on it. -6. Add parity tests that compare old and new parser behavior for parse success, compact output, eval result, missing-field behavior, and representative syntax errors. -7. Switch the existing `Parse()` API to the new parser once parity is strong. -8. Add v2 language/editor features after the replacement parser is stable. - -Do not require exact yacc parse-error wording during the migration. Preserve useful line/column diagnostics and clear messages, but avoid coupling the new parser to generated-parser phrasing. - -## First Milestone Non-Goals - -The first milestone is a replacement parser for the v1 feature set. Keep new language and editor features out of that milestone. - -Non-goals for the first milestone: - -- bracket indexing -- dynamic bracket expressions -- exact whitespace/comment preservation -- compact vs multiline formatter options -- exact yacc parse-error message compatibility -- evaluator optimization or compiled runtime planning -- new natural-language negated operators such as `not in`, `not contains`, or `not matches` - -It is fine for the v1 replacement parser to record source spans and token trivia early, but behaviorally visible preservation and formatting should wait until parser/evaluator parity is solid. - -## AST and Round-Tripping - -The AST should be designed as the shared model for both freeform text editing and a GUI expression editor. That means it should support both directions: - -```text -expression -> lexer/parser -> AST -AST -> printer -> expression -``` - -The minimum invariant should be semantic round-tripping: - -```text -Parse(Print(Parse(expr))) == Parse(expr) -``` - -Exact whitespace/comment preservation is a separate, stricter goal. If the editor needs to preserve comments and hand-formatted text, keep token trivia or a lightweight concrete syntax tree alongside the AST. If canonical formatting is acceptable after GUI edits, a normal AST plus a deterministic printer is enough. - -AST nodes should carry: - -- node kind -- source span for diagnostics and editor selection -- child nodes / operands -- normalized operator enum -- original operator spelling when useful for round-tripping or display -- literal value plus original raw token when useful - -Prefer a small, explicit AST over evaluator-specific nodes. The evaluator can consume the AST directly by default. Performance-sensitive applications can add an optional second layer that compiles the AST into a runtime plan with precomputed lookups, compiled regexes, normalized operators, and other evaluation shortcuts. The editor should not have to reason about that optimized runtime representation. - -## Printing and Formatting - -Keep printing and formatting as explicit layers: - -```text -Parse(expr) -> AST -AST.String() -> compact canonical expression -Format(AST, options) -> formatted expression -Rewrite(original, AST edits) -> preserve unchanged whitespace/comments -``` - -`String()` can continue to act as a compact canonical formatter for tests, logs, `EvaluatedRule`, snapshots, and debugging. - -Add a formatter as an optional AST printer for editor and user-facing display: - -- compact format: single-line, stable canonical expression -- multiline format: line-broken, indented expression for larger rules - -The hybrid GUI/freeform editor should support three output modes: - -- preserve: keep original whitespace/comments for unchanged source ranges and print only changed subtrees -- compact: canonical single-line output -- multiline: canonical formatted output with indentation - -Formatting should be an explicit action or option. GUI edits should not automatically rewrite a user's whole expression unless that is the selected output mode. - -For negated natural-language operators such as: - -```text -field not contains "x" -domain not matches /example/ -ip not in 10.0.0.0/8 -``` - -represent them in the editable AST as a comparison with a negation flag or a distinct operator enum. A later semantic lowering step can convert them to `not (field contains "x")` if that is simpler for evaluation. This keeps GUI editing and expression printing straightforward. - -## Initial Scope - -Start with a deliberately small feature: - -- quoted string keys for map/object access -- unsigned integer indexes for arrays/slices -- no dynamic expressions inside brackets - -Do not initially support: - -```text -headers[some_field] -headers[starts_with(name, "x")] -headers[1 + 2] -``` - -Dynamic indexing can be added later if there is a clear need, but the static form covers the main usability problem while keeping parsing, validation, and missing-field behavior straightforward. - -## Semantics - -In v2, dot syntax should be explicit object/path traversal. It should not fall back to matching exact keys that contain dots. - -For example: - -```json -{ - "data": { - "field.name": true - } -} -``` - -should be accessed as: - -```text -data["field.name"] -``` - -and not as: - -```text -data.field.name -``` - -Nested objects remain accessible with dot traversal: - -```json -{ - "data": { - "field": { - "name": true - } - } -} -``` - -```text -data.field.name -``` - -This is a v2 behavior change from the current fallback behavior. If legacy compatibility is needed, keep it behind an explicit v1/legacy lookup mode. - -Quoted bracket keys are exact map-key segments: - -```text -obj["1"] -``` - -means the string key `"1"`, while: - -```text -obj[1] -``` - -means numeric index `1` into an array or slice. - -Existing dot-path behavior should remain compatible. If current lookup supports both flat keys like `"destination.ip"` and nested maps like `destination: {ip: ...}`, bracket indexing should act as the explicit form for exact path segments: - -```text -destination.ip -destination["ip"] -["destination.ip"] -``` - -The last form should refer to the exact top-level key `"destination.ip"`. - -## Input Normalization - -Skip schema support initially. Keep input dynamic and easy to provide. - -Support two portable JSON-oriented input styles: - -- plain JSON key/value documents -- fully typed JSON values - -Plain JSON may optionally enable annotated key suffixes for convenient type hints: - -```json -{ - "name": "hello", - "src.$ip": "1.2.3.4", - "dst.$cidr": "10.0.0.0/8", - "payload.$bytes_hex": "474554", - "max.$uint64": "18446744073709551615" -} -``` - -When annotated-key decoding is enabled, the annotation suffix is input metadata and is not part of the field path. For example, `src.$ip` normalizes to field `src` with Rulekit type `ip`. - -Potential initial suffixes: - -- `.$ip` -- `.$cidr` -- `.$mac` -- `.$bytes_hex` -- `.$bytes_base64` -- `.$int64` -- `.$uint64` -- `.$float64` - -Annotated-key decoding must be opt-in because JSON object keys can contain arbitrary strings. If a caller needs an exact key that collides with an annotation suffix, they can disable annotated-key decoding or use fully typed JSON. - -Fully typed JSON is the collision-free exact mode: - -```json -{ - "src": { "$type": "ip", "value": "1.2.3.4" }, - "payload": { "$type": "bytes", "encoding": "hex", "value": "474554" }, - "u64": { "$type": "uint64", "value": "18446744073709551615" } -} -``` - -The evaluator should consume a normalized Rulekit value model rather than host-language-specific values. Host-specific inputs such as Go `KV`, plain JSON, annotated-key JSON, TypeScript values, and Rust values should be adapters into that model. - -## Reliability Notes - -- Keep tokenization and semantic validation separate. -- Preserve source spans for useful syntax errors. -- Reject malformed brackets early: missing closing bracket, empty key, unsupported index expression. -- Add parser tests that distinguish array literals from postfix indexing. -- Add evaluation tests for flat keys, nested maps, string keys with dots, and numeric indexes. - -## Go-Only Implementation Phases - -The immediate roadmap should stay focused on the Go implementation before adding other host-language adapters or editor integrations. - -### Phase 1: Parser Replacement and V2 Path Semantics - -Status: complete. - -Scope: - -- replace Ragel/goyacc with the hand-written lexer and Pratt parser -- preserve the root `Parse()` API and current evaluator behavior where v2 semantics do not intentionally differ -- add bracket path indexing for quoted keys and unsigned numeric indexes -- add root bracket paths such as `["destination.ip"]` -- change dot paths to explicit nested traversal with no flat dotted-key fallback -- add opt-in JSON input normalization for annotated keys and fully typed values -- keep dynamic bracket expressions out of scope - -### Phase 2: Real AST Boundary - -Add an internal AST boundary while keeping public `Parse()` returning `Rule`. - -Scope: - -- define explicit AST node types for binary expressions, unary expressions, literals, paths, arrays, and calls -- include normalized operator enum, raw operator spelling, and source spans -- make the parser produce AST first -- add lowering from AST to the current evaluator `Rule` nodes -- keep existing `String()` behavior unchanged through the current evaluator nodes - -This gives the Go implementation an editor/compiler architecture without another runtime behavior change. - -### Phase 3: Canonical AST Printer - -Add semantic round-tripping from AST. - -Scope: - -- implement compact canonical AST printing -- add invariant tests for `Parse(Print(Parse(expr))) == Parse(expr)` -- start moving root string expectations toward the AST printer where safe -- preserve current evaluated-rule formatting unless intentionally changed - -### Phase 4: Public Go AST API - -Expose AST deliberately for Go callers. - -Scope: - -- add a public `ParseAST`-style API -- add a `Compile` API that lowers AST to `Rule` -- keep `Parse(expr)` as `Compile(ParseAST(expr))` -- document AST mutability and editing expectations - -This lets Go tools build GUI/freeform editors without depending on evaluator internals. - -### Phase 5: Formatter - -Add explicit formatting modes. - -Scope: - -- add `Format` with compact and multiline modes -- support indentation options -- add deterministic formatting tests -- do not preserve exact original whitespace or comments yet - -Canonical formatting should land before source preservation because it is simpler and gives changed subtrees a stable printer. - -### Phase 6: Trivia-Aware Tokens - -Keep comments and whitespace in the token stream. - -Scope: - -- have the lexer emit or store leading/trailing trivia -- have AST nodes carry token spans/ranges -- keep parser semantics trivia-insensitive -- use node spans for better diagnostics where possible - -This is the foundation for source-aware editing and later preservation. - -### Phase 7: Source-Preserving Rewrite - -Preserve unchanged source while printing edited subtrees. - -Scope: - -- represent edits against AST nodes -- reuse original text for unchanged source ranges -- print only changed subtrees -- preserve comments and whitespace around unchanged regions - -This is the editor-grade round-trip layer and should come after AST and formatter stability. - -### Phase 8: Optional Runtime Compile Plan (Removed) - -Optimize evaluation without changing the AST contract. - -Scope: - -- compile AST to an optimized runtime plan -- precompute path lookups, regexes, normalized operators, and other stable evaluation details -- keep current evaluator behavior as the semantic contract -- add benchmarks before and after optimizer work - -This phase was removed from v2 because the temporary `Plan` wrapper did not provide a distinct runtime representation; it only delegated to `Rule`. Future optimizer work should add a real evaluator representation only when profiles justify it. - -## Follow-Up V2 Design Phases - -The first eight phases establish the parser, AST, printer, formatter, rewrite, and initial compile-plan boundaries. The next phases should refine the public v2 API around explanation, input, printing, functions, and performance. Backward compatibility with the current v1-style API is not a design constraint for these phases. - -### Phase 9: Rule Print API - -Replace loose formatter options with a typed print API. - -Scope: - -- make `String()` return compact canonical output -- add `Print(mode)` with typed modes rather than a broad options bag -- support exact original source through a source print mode -- support compact canonical output through a compact print mode -- support multiline canonical output through a multiline print mode with indentation attached only to multiline mode -- keep source-preserving rewrite as a separate operation, not as `String()` behavior - -Sketch: - -```go -type PrintMode interface{ printMode() } - -func Source() PrintMode -func Compact() PrintMode -func Multiline(indent string) PrintMode - -type Rule interface { - String() string // compact canonical - Print(PrintMode) string -} -``` - -`Print` should not return an error for parser-produced rules. Invalid manually constructed ASTs can be handled by construction-time validation instead of print-time errors. - -### Phase 10: Trace-Based Evaluation Explanation - -Replace `EvaluatedRule` as the primary explanation mechanism with an explicit trace tree. - -Scope: - -- keep short-circuit visibility as the primary goal -- attach evaluated values and errors to AST/evaluation branches -- mark branches as active, pruned, passed, failed, or missing -- make trace output suitable for GUI visualization -- treat progressive residual-rule evaluation as out of scope unless a concrete need returns -- stop using runtime evaluator-node rewriting as the explanation model - -Sketch: - -```go -type Trace struct { - Node ASTNode - Expr string - Value any - Error error - MissingFields []string - Status TraceStatus - Active bool - Pruned bool - Children []*Trace -} - -type Result struct { - Value any - Error error - MissingFields []string - Trace *Trace -} -``` - -The old `EvaluatedRule` behavior was useful for v1, but v2 should favor explicit explanation data over serialized evaluator-node fragments. - -### Phase 11: Context-Aware Input API - -Rename the evaluation data model around a single `Input` abstraction and make eval context-aware. - -Scope: - -- replace `Ctx` as the primary eval argument with `Input` -- make eval accept `context.Context` -- keep trace/functions/macros in explicit eval options rather than in `Input` -- avoid a design with both `KV` and `Resolver` fields competing as parallel input sources -- allow `KV` to be adapted into `Input` -- allow lazy leaf values inside `KV` -- allow nested `Input` values inside `KV` so a subtree can take over path resolution -- allow custom path-based `Input` implementations for callers that want to avoid building nested objects - -Sketch: - -```go -type Input interface { - Get(context.Context, []PathSegment) (any, bool, error) -} - -func FromKV(KV) Input -func FromFunc(func([]PathSegment) (any, bool, error)) Input -func FromContextFunc(func(context.Context, []PathSegment) (any, bool, error)) Input - -type LazyValue func() (any, error) -type LazyContextValue func(context.Context) (any, error) - -type Opts struct { - Trace bool - Functions map[string]*Function - Macros MacroSet -} - -type Rule interface { - Eval(context.Context, Input, Opts) Result -} -``` - -Resolution policy for `FromKV`: - -- traverse explicit path segments -- if a resolved value is `LazyValue`, call it and memoize it for that eval/input instance -- if a resolved value is `LazyContextValue`, call it with the eval context and memoize it -- if a resolved value implements `Input`, delegate the remaining path segments to it -- populate `Result.MissingFields` only after the active input source cannot resolve the path - -This supports both simple Go `KV` use and expensive lazy materialization for large per-request input contexts. - -### Phase 12: Macro Contract - -Define macros as zero-argument inline expansion of named rule expressions. - -Scope: - -- macros are reusable rule-language snippets, not Go code -- macros are serializable as source/AST -- macros remain zero-argument unless a strong need for parameterized macros appears -- functions remain the mechanism for runtime Go behavior -- GUI/editor tooling should be able to show macro source, docs, and expanded trace context - -Sketch: - -```go -type Macro struct { - Source string - AST *AST - Rule Rule - Doc string -} -``` - -Macro expansion should preserve clear trace information so users can see both the macro call and the expression that made it pass or fail. - -### Phase 13: Function API Overhaul - -Redesign functions around explicit schemas and ergonomic Go registration. - -Scope: - -- keep function arguments positional in expression syntax -- name positional arguments for UX, docs, validation, and editor forms -- make return type optional initially, but supported for editor validation and docs -- rename call argument access to `FunctionArgs` -- support both named and indexed argument access -- add reflection-based registration helpers for one-time setup ergonomics -- keep a manual non-reflective registration path for callers that want full control - -Sketch: - -```go -type Function struct { - Args []ArgSpec - Return Type - Doc string - Eval func(context.Context, FunctionArgs) (any, error) -} - -type FunctionArgs struct { - // implementation-owned positional values and name indexes -} - -func (a FunctionArgs) Index[T any](int) (T, error) -func (a FunctionArgs) Named[T any](string) (T, error) - -func Func(name string, args []ArgSpec, impl any) Function -``` - -The reflection-based `Func` builder may inspect the implementation signature once at registration time. Runtime eval should still use the compiled schema and avoid reflection in hot paths where possible. - -### Phase 14: Eval Performance Hardening - -Optimize hot-path eval after the new input and trace APIs are shaped. - -Scope: - -- keep reflection out of runtime eval paths -- compile paths once and avoid per-eval path parsing or splitting -- avoid debug `defer` costs when debug output is disabled -- benchmark happy-path eval, missing-field eval, path lookup, lazy input, and trace-enabled eval separately -- optimize trace collection so callers can choose whether to pay for it -- keep missing-field allocation improvements medium priority unless profiles show real production impact - -Known findings: - -- per-eval `strings.Split` in top-level field lookup caused avoidable allocation and slowdown -- unconditional debug `defer` closures in comparison functions were a major happy-path cost -- missing-field paths allocate sets and path strings, but this is acceptable unless missing-field eval is hot -- source/editor features should not impose cost on eval when trace/source preservation is not requested diff --git a/2026-05-16-demo-app-plan.md b/2026-05-16-demo-app-plan.md deleted file mode 100644 index c9d0b64..0000000 --- a/2026-05-16-demo-app-plan.md +++ /dev/null @@ -1,280 +0,0 @@ -# Rulekit V2 Demo App Plan - -This plan describes a Vue demo app that showcases Rulekit v2 as a hybrid text and visual rule editor. The demo should use the Go implementation through WASM so the browser experience exercises the same parser, formatter, rewriter, evaluator, and trace model as the Go package. - -## Goals - -- Show v2's editor-oriented architecture: text source, AST, formatting, source-preserving rewrite, and evaluation trace. -- Provide a two-pane editor where the text expression and visual AST stay synchronized. -- Preserve the retro CRT/pixel aesthetic from the `rulekit-js` branch and the shared screenshots. -- Keep all demo-specific WASM build code, generated WASM artifacts, JS glue, assets, and app code contained inside the demo directory. -- Build a focused initial GUI editor: rewrite and delete existing rule parts, but do not support adding new nodes yet. -- Render evaluation results as an annotated visual AST near the result card, color-coded per branch status. - -## Non-Goals For Initial Demo - -- No macro UI or macro examples. -- No add-node workflow in the visual editor. -- No full schema-aware field picker. -- No syntax highlighting until the base editor and rewrite loop work. -- No production WASM packaging story outside the demo directory. -- No attempt to port the old `rulekit-js` app directly; reuse its styling/assets as inspiration and source material. - -## Directory Shape - -Use a new demo directory, tentatively: - -```text -demo/vue/ - README.md - package.json - vite.config.ts - tsconfig.json - index.html - wasm/ - main.go - build.sh - wasm_exec.js - public/ - rulekit.wasm - wasm_exec.js - assets copied/adapted from rulekit-js - src/ - main.ts - App.vue - components/ - lib/ - styles/ -``` - -All WASM-specific files should live under `demo/vue/wasm` or `demo/vue/public`. Do not add root-level `cmd/wasm`, root `Makefile` targets, or root WASM docs unless we later decide the WASM API is part of the product. - -## Visual Direction - -Reuse the visual language from `rulekit-js`: - -- dark blue/black CRT background -- scanline/noise texture -- pixel/terminal font, especially `DepartureMono-Regular.woff2` -- layered beveled panels -- blue headers for neutral editor panels -- green result panels for pass -- red result panels for fail -- yellow/orange for missing input -- purple/red for errors -- dim gray for pruned branches -- optional bird/retro sprite assets if they do not distract from the editor - -The old visual rule tree prototype is not binding. Keep the core idea of rule expressions as structured visual tokens, but redesign freely for clarity. - -## Initial Layout - -```text -┌─────────────────────────────┬─────────────────────────────┐ -│ Rule Text │ Visual Rule Editor │ -│ [Format Compact] [Format ML]│ editable AST representation │ -└─────────────────────────────┴─────────────────────────────┘ - -┌─────────────────────────────┬─────────────────────────────┐ -│ Input JSON │ Result + Annotated Trace │ -│ example data buttons │ read-only colored AST tree │ -└─────────────────────────────┴─────────────────────────────┘ -``` - -For milestone 1, the bottom evaluation row can be stubbed or hidden. The first priority is the text/visual editor sync. - -## WASM API Surface - -Expose a small browser API from Go. Keep it demo-local. - -```ts -parse(source: string): ParseResponse -format(source: string, mode: "compact" | "multiline"): SourceResponse -rewrite(source: string, edit: EditRequest): ParseResponse -deleteNode(source: string, target: NodeRef): ParseResponse -evalRule(source: string, inputJSON: string): EvalResponse -``` - -Use source text as the unit of exchange initially. Avoid rule handles for the first version. Reparse on each operation; this keeps lifecycle and memory management simple and is fast enough for a demo. - -Example DTOs: - -```ts -type ParseResponse = { - ok: boolean - source?: string - compact?: string - multiline?: string - ast?: AstNode - tokens?: Token[] - error?: string -} - -type EvalResponse = { - ok: boolean - value?: unknown - error?: string - missingFields?: string[] - trace?: TraceNode -} -``` - -Node references should use parser-produced spans or stable path indexes in the returned AST. Prefer source spans for text selection and rewrite targeting. - -## Editor Sync Model - -Text edit flow: - -1. User edits source text. -2. Debounce parse. -3. If parse succeeds, update visual AST and clear parse error. -4. If parse fails, keep the last valid visual AST and show parse error near the text editor. - -Visual edit flow: - -1. User selects a visual AST node. -2. User changes an editable field/operator/literal or deletes a safe node. -3. Browser sends `rewrite` or `deleteNode` request to WASM with the current source and target node reference. -4. WASM returns updated source and AST. -5. Text editor updates from returned source. -6. Visual editor updates from returned AST. - -Formatting flow: - -1. User clicks `Format Compact` or `Format Multiline`. -2. Browser calls `format`. -3. Text editor updates from returned source. -4. Visual editor reparses or uses returned AST if provided. - -## Selection Sync - -This is central to the demo. - -- Clicking a visual node highlights its source range in the text editor. -- Selecting text highlights the smallest AST node whose span contains that selection. -- Delete applies to the selected visual node. -- Format should preserve selection where practical, but this can be a later polish item. - -## Visual Editor Scope - -Initial editable operations: - -- Rewrite a field/path string. -- Rewrite a literal value. -- Rewrite a comparison/operator from a constrained list. -- Rewrite an array literal element value. -- Delete safe nodes. - -Initial delete semantics: - -- Deleting one side of `and` / `or` collapses the expression to the remaining side. -- Deleting a predicate from a larger same-operator chain preserves the remaining chain. -- Deleting an array element removes only that element. -- Deleting the only element of an array is allowed only if empty arrays are valid for that expression; otherwise disable delete. -- Do not allow deleting just a field/operator/value from a comparison. Require rewrite instead. -- Do not allow deleting function names or partial function syntax in the first version. - -No add-node workflow yet. - -## Evaluation And Trace UI - -After the editor loop works, add evaluation: - -- JSON input editor with pass/fail preset buttons. -- Evaluate current valid source against JSON input. -- Show result state: - - pass - - fail - - missing - - error -- Render a separate read-only annotated visual AST from `Result.Trace`. - -Trace tree styling: - -- `passed`: green -- `failed`: red -- `missing`: yellow/orange -- `error`: purple/red -- `pruned`: dim gray -- `unknown`: neutral - -Trace nodes should use the same visual grammar as the editor tree, but annotated with status, value, missing fields, and pruning state. - -## Example Rules - -Use examples that show v2 capabilities: - -```text --- exact key with punctuation -request.headers["user-agent"] contains "curl" -``` - -```text --- exact top-level dotted key -["destination.ip"] == 192.168.1.1 -``` - -```text --- multiline boolean tree -( - dst.port in [3306, 5432, 27017, 6379] - and src.pod.namespace in ["api", "backend"] -) -or dst.domain in ["registry.k8s.io", "docker.io"] -``` - -Include comments in examples so source-preserving rewrite is visible. - -## Milestones - -### Milestone 1: WASM Skeleton - -- Create demo directory and Vite/Vue skeleton. -- Copy/adapt font, base CSS, and useful visual assets from `rulekit-js`. -- Build demo-local WASM bridge. -- Implement `parse` and `format` WASM functions. -- Render parse errors and canonical source output. - -### Milestone 2: Text + Visual AST Sync - -- Render AST as a sideways visual tree. -- Keep text and visual tree synced on valid text edits. -- Keep last valid tree visible on parse errors. -- Implement visual node selection and source-range highlight. - -### Milestone 3: Visual Rewrite/Delete - -- Implement rewrite for fields, literals, operators, and array elements. -- Implement safe delete semantics. -- Call Go `Rewrite` through WASM and update text from returned source. -- Add compact/multiline format buttons. - -### Milestone 4: Evaluation + Annotated Trace - -- Add JSON input panel and preset data buttons. -- Add `evalRule` WASM function. -- Render result card. -- Render annotated trace tree as read-only visual AST. - -### Milestone 5: Syntax Highlighting - -- Add CodeMirror rule syntax highlighting. -- Keep highlighting separate from parser correctness. -- Highlight parse errors and selected AST ranges. - -## Open Questions - -- Should the first version use CodeMirror, Monaco, or a lightweight textarea? -- Should visual AST nodes be rendered as nested rows, a true sideways graph, or a form-like tree similar to the prototype? -- What exact edit request format should identify a target: source span, AST path, or generated node ID? -- Should JSON input support annotated/typed modes in the first evaluation milestone, or plain JSON only? -- Should demo-local WASM expose raw AST JSON, UI-specific AST JSON, or both? - -## Success Criteria - -- A user can type a rule and see the visual AST update live. -- A user can edit/delete existing visual nodes and see source update through Go rewrite logic. -- Formatting uses the Go formatter, not a TypeScript formatter. -- Invalid text does not corrupt the visual editor state. -- Evaluation shows a result and a color-coded trace tree. -- The app visibly demonstrates v2 capabilities that v1 did not support well: source spans, formatting, rewrite, bracket paths, and trace explanation. diff --git a/Makefile b/Makefile index e1dd33e..830a30f 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,3 @@ -.PHONY: default -default: - ./gen.sh - .PHONY: test test: go test ./... diff --git a/compare.go b/compare.go index ef444ef..9505415 100644 --- a/compare.go +++ b/compare.go @@ -21,10 +21,6 @@ type compareOutcome struct { diagnostic compareDiagnostic } -func compare(left any, op int, right any) (ret bool) { - return compareDetailed(left, op, right).pass -} - func compareDetailed(left any, op int, right any) compareOutcome { // any ? []any // -> run the comparison for each element in the right array. @@ -250,12 +246,6 @@ func diagnosticType(value any) string { return "unknown" } -func compareSlice[T any](slice []T, op int, fn func(el T, op int) bool) bool { - return compareSliceDetailed(slice, op, func(el T, op int) compareOutcome { - return comparePass(fn(el, op)) - }).pass -} - func compareSliceDetailed[T any](slice []T, op int, fn func(el T, op int) compareOutcome) compareOutcome { if op == op_NE { // []T != any diff --git a/errors.go b/errors.go index ace25d6..3d6186f 100644 --- a/errors.go +++ b/errors.go @@ -1,7 +1,6 @@ package rulekit import ( - "errors" "fmt" "github.com/hashicorp/go-multierror" @@ -44,8 +43,6 @@ func coalesceMissingFields(left, right []string) []string { return unionUnique(left, right) } -var ErrInvalidOperation = errors.New("invalid operation") - type ErrInvalidFunctionArg struct { Name string Expected string diff --git a/functions.go b/functions.go index ae5f5b0..355f3cb 100644 --- a/functions.go +++ b/functions.go @@ -78,15 +78,6 @@ func newFunctionValue(fn string, args []Rule) *FunctionValue { } } -func (f *FunctionValue) ValidateStdlibFnArgs() error { - if stdlibFn, ok := StdlibFuncs[f.fn]; ok { - if len(stdlibFn.Args) != len(f.args.vals) { - return fmt.Errorf("function %q expects %d arguments, got %d", f.fn, len(stdlibFn.Args), len(f.args.vals)) - } - } - return nil -} - type Function struct { // Args is an optional list of arguments that the function expects. // If set, rulekit will ensure validity of the arguments and pass them as a named map to the Eval function. diff --git a/gen.sh b/gen.sh deleted file mode 100755 index b740efd..0000000 --- a/gen.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -cd "$(dirname "${BASH_SOURCE[0]}")" - -if ! command -v goyacc &>/dev/null; then - echo "installing goyacc" - if ! go install -v -mod=readonly golang.org/x/tools/cmd/goyacc@v0.30.0; then - echo "failed to install goyacc" >&2 - exit 1 - fi -fi - -if ! command -v ragel &>/dev/null; then - install_cmd=() - if command -v apt &>/dev/null; then - install_cmd=(sudo apt-get install ragel) - elif command -v brew &>/dev/null; then - install_cmd=(env HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install ragel) - fi - - installed=0 - if ((${#install_cmd[@]} > 0)); then - echo "installing ragel: ${install_cmd[*]}" - "${install_cmd[@]}" - # shellcheck disable=SC2181 - if [[ $? -eq 0 ]]; then - installed=1 - fi - fi - if [[ $installed -eq 0 ]]; then - echo "please install ragel using your package manager" >&2 - exit 1 - fi -fi - -echo "⚙️ generating lexer" -ragel -Z lexer.rl -# add autogenerated comment -sed -i.bak '1s#^#// Code generated by ragel. DO NOT EDIT.\n#' lexer.go -gofmt -w lexer.go -rm lexer.go.bak - -echo "⚙️ generating parser" -goyacc -v y.output -o parser.gen.go -p rule parser.y -# add a new method to the interface generated by goyacc -sed -i.bak '/type ruleLexer interface {/a Result(n Rule)' parser.gen.go -gofmt -w parser.gen.go -rm parser.gen.go.bak - -echo "✅ done!" diff --git a/go.mod b/go.mod index d2bddbc..6282750 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,6 @@ go 1.26.2 require ( github.com/hashicorp/go-multierror v1.1.1 github.com/stretchr/testify v1.10.0 - golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa ) require ( diff --git a/go.sum b/go.sum index ff5a407..9a03c1b 100644 --- a/go.sum +++ b/go.sum @@ -9,8 +9,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa h1:QSyA8ishJCyT21kER9KwNt0b7BM3iRK4x9QXhjN5Fdk= -golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa/go.mod h1:zeBbvyFKDaLwa7CH/zI8KXt7gTl14SF7sO08Pl5jBCM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/nodes.go b/nodes.go index 2db62cd..5eeba74 100644 --- a/nodes.go +++ b/nodes.go @@ -215,10 +215,6 @@ func (n *nodeMatch) apply(lv any, rv any) bool { return false } -func (n *nodeMatch) FieldName() string { - return n.lv.String() -} - func (n *nodeMatch) String() string { return n.lv.String() + " =~ " + n.rv.String() } diff --git a/old_demo_screenshots/SCR-20260516-qbwg.png b/old_demo_screenshots/SCR-20260516-qbwg.png deleted file mode 100644 index a47ff4e25dbdce126ad16be54b2d55d5cfe76c66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831555 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᱖mT$Nbi-y<(3O)~9km$8l84XaT%1?CqmZ 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�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

8h57)e7*jley;_Kg3S`nLv;VsL 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⪚=gvDTlg32CVHq@?%?oE9jyRz;5=nb4DfrNmDU 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 z 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

$@j|M7Sn(42&kcC^w_| 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 z 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 z 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

5KMD9HAqP>_m$F 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�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 z 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
N?`#NV*;S9lxs;~-HKQPfj{Ni`ZnY{q; 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 z zwKzwQTW7`C5jpL~4N}sd63=HQ|H_h>Z-`&M+?AFT%g}b=TnyWaxWT8^)T2Uuo%*|{ z4lh3Y)JR=4XW50ALtZKxLUwC;P(eP@_|Hv<6#HFxjuwIx4%n5&(i7z;cYp1E1c~o_ zWPILH5#587N_d*KePIrP9{?|zFLs=`V9Bieqd>}Z(q$S~bgOuPYtM4veY3)ZXMjmQ zLeCuNtb}yVF$Rf_Mh1Nc*~io`le+77ro^)!pYZF9em6lOX63>1;{(hB$?PQh8=BAi zI#hsSB2Mka?NnCtRvA^Fo-VB=a#VS)quY>&xA1+l?3vSKHs9`cDr?qWr7~;&c0*{E z#sD_GU7HtW>N=+1fc*Jn>QFdKM)TrS2~vFyb_DbTwwpZ<3$gKzU1p|#ky4$de+w$c zEnc8fZ#Ap#ie|fd164p?-=Ir#hiU9an6PVeq`kz>ufNlmDs}V$4(4EcDVJs9O~GWL z-oNw4pK1fG0`*v%{D=z*HIbZp%&MvaNGADa<{}5b$;Kx88iwwH83n%T`gd^Ua!j1N zhj)OSxPDr1QOL0E@9L%Vk{kZ}mtdMh$;oP?olm5uP_!p9zNW*JFmApTscgUJh}hxYea3N%WeAVI%fj>M4#ljik3ABqXOFnnvy3U_OT4q;Ncp zijtiO)xY<~V(I3JUFC2U)&X^p?AsOTzdiPL^{Q*W&}WZF%b$j}EISMl?v4dQvsW$O ziOpEIm)owo_R)I=c=!}ts#;iagumIth&U!R9sI&ZIIbO^ExLbVYjSD-`*e0Vv&N`@ zfos>gxG4`K<39UWP2~=KQd@(#(!7 zJ>G5aGQVHZaqVU_>ylhhK?7;If8-6)1GYCZ_=nJ5`tW12@=zvG`0MjaP^MGCuFO%Z z7gMlFx`kE$7 z710L2LTp_Otv4#XD&!8a-^*JK;wVIz$b8S&^yskPiOC8;%Rq7uMUf9?cRoQL_m-Z=|(~t>24_z0g;sMlx7GCkra?_ z5s>aqrMo+Z?(XK>gU55u`~KeVKQ3lp` zR^VC=8ZV4ixV_$-f?{lQWpN&he!e`L8!IxY%6nrGQD72S6HNE(RZOW?pvyr*eU}u6 zyiVKKh8olQRGFYTvYpq(6NP54;yN*{(H?!zO)7A6v zZRUz%`Uqizcf5|oSWM*v$y;A$`dC|Lp)-S%<-GV#I}vF&y^`1mTZAB!7D-v`En<=2 ziA#NHLUnvG+yHnGdMt}Kl7RoGJL_TJquwEMfV@w^FgH&+YKRv5)Cf90SQXvmyugzC7^hPh#k(9l zacF*!$}bDrzATkv2zsaBwbPK;?VWMe)^Miwnf{ZQy@_FdV9OhGs;w&s<#VwFy~gN1 zvToItER>X9f3D94hO;9riGV$PFpFvk9&$9=H;kmMWOn4C86C>cQ9eApd}ov!*0x!k zr!7qwAN1lEzrt60wAkv<*_y{UtqIkkHd%P@NX`odm?|pSw29HCR^!V&5e z|7|9K@fZtx3AOV0Pyq@9%#@r7ypbSJH}?jeE^CjoFpM~0Z^8#FcIL=Z6sq+I$}jiZ z(Bv`abBj95Fkqkmw-H8CHKi=evF$JtfY2vCHsSVnK9^(nI@v?&<#T`4o&H*__e1YV zFp{RjS*85*y}x0jo>46-qgdhYGO@C|XehZfzdcHA_mCz$$t}>oUx{kez>1^ru@bX# zdeyV>?OsAA=^(qw)-9zt3dx?3ge^wG+9Zqq-ERS7j^w)aXrOAt(}l;R=q4ZG5*j{p zU@U7R7EPah#GrkSVd62&)#w%N__$aUcwlY}_~a8>5cIapBI(q=1KE+HX$*=qo%|@= zPvAi-G3@bY5#_dR`L8__9h+O9!QN69P0_7ky|R>(*TvZlXb@hsg&KC9Df+y(`zC*+ zx3aOY_B>>Qnpg8VNfaANZJL=vf zLD%gT61GG6*-*T9bCTAzFwiq*G?;bLOo7onEo7yP;^rnR{BDG;KL`oeft~AR_QtH_ z7%Oj|;1u;{ZQipIVmm%HJ5IGxIu|E3RQ! z6!VEl`=y;c#xdp3shcu&0w0q9dmrCXH-(+&8--Tg1B~t-nC3JC|4uC7^K;j|1cXn( zlh7f`9bU99U1Dp5@ch2W7kvJb=>2O%q<_PaB6$c@L`51&CU%O4vd2 zRe2TY z$NI)xFa;4R<-K-<{IA3PSPi`KVRp{#{aG;L)14>Q)%|{QBQZjt#))aWTse?N?lS25 zJ_6tix_V&eXDPf32J<6Nb#Egv=MlK+ZYyYwkIIr7hsFB~cu<{;{D2O5f(CQKCy+CD zR=X|$HGpN`jQ16!n61**T2)-jyl%AKcJs9SVaLr;TF!qtLNm|+<$9eSi05OY8t-E; zFwPe8WEwxI=4*9BB@*dShE`#WyyHtM)3xMoIIUxKm8|8Jlk&PeK?1-GT*)m>n5Gcz zyPw5C%{6#kYAzO<-?BAh4l1jb7&|E<`4uZt3$vxX{BrPrLJ157WzYRnSv07c#?+}q zVR-V}hU6l>JeU&a`~B$|Stl1Uhi5kO2td8)vD-(c-=I>x7IL6_7`+FFb}E*iLRs82 zb4STRz4mh#h7N!3@+W+;5P+_c1>@iFbAGAMvdeDH_?6{97bcW<<`Lgcn2xl3@TwRe z5r!CIh2CQ^)^kiDhs{}po{t93-cJVKY}tt#bb%j7bb&!bwC?6zHzo^KkS&`rBp;;AdY~WzWefl z>qH*+1-0KjYNTVt?x$DZ3W*bkaAAo6_VNR9nNK{*gtu3$o`ZwpKY*bQR%!|nyg=oI6nha42&W_<6ghaU1mIpxOV`(x3B8hlcLq+uu< zX+cZ~QQMaW;u;bBn*t5MOlEsS{?kk%pM}ZmmbQ;tDG?8ySz)jOUxHf^#BbThUYG~_ zLjQ+s{Jn?dpv$e$&$m%h*J#!>HRni{w$aGmteCOKN5;RPeEKs%E#Uu-75{O&rULMJ z?W$HM>k}YwBsP(!aC|zhzd$bbZ8`v=MQQg^|E2HKM&}!|jrBFP@!Po+XwOP$DBkOB zi15~@X9Q+zv`H?|QL|C~x;4RXoaYhH%MPns($tc@r5uILt>TLzJ)p$bdOH(4v|)MK z#+KV_=w?^y`0F*hc|K~_19Z4+_|!$a8SupMQXksj4gky^Q1JsU*WV0-^k$4q7;!rR z&S|^hvqC3nt?|prxvh7Tyl$;`1D;i5~A!Gf+!-O zHiDxYx{nMBLwLB`9*c#LlWW2P$r5>!*yTty*@LV;xTBP>a9m9?2bBUm30XVWNldPe zeH#<(>|jUAfqkuMoAuh2KqY0`rs$N*C$Wo{lPAhOm*0WXfRM~(m^Z}Qx(iz>;asC^ z;|ikRq}ABXo_jng2RXGjnDBq$Ko=Qeu%W1GmZeq5?3nhfAyDi1R})0t9^jWTAmsy=mloiY7|| zi!epNh$>#a|zvE`NUZ z|EIFR3RkrI6HrWxD}wNAOFpB!T-TiTqqnWfbctK%xx2R&+2xRn)tw<{A@`aCwb$1) zOim@*uR8%fxHoE!smwMgQ&7jEn%R*xPA15kX)ux9rc_Vwa_(CgXS?i|OYNtkdzoQ8 zv+;e2H=4#5si<<%Xfvf{H;c`l4!WC=AapM7oyeNqY0<}uO3Bg)7xeo}C0{=hq7c>>}u*zqGG z3)W}HdkHbib*I@JUg|w7tIMM3 z7qF=D0TmUAnIJIg)i?%zHnuy#Z;{e<%)emL+Y6K!I|vYD0Q6YFV#(6YhOtF zwM89Zt`J4lkZQ(NyA}&^wLx$?_5G*go-34|d1S|xJ2i68c){&+dHHr;pzAiLC^D&c z(tsxp5?=jU-A3f7KS+3TyIq0#_#?pZs`N=IeLXng9sA8*n2cfSZsoQ599|>YJPsyr zH+YYtPKE$`C4^Y>#k1*McU#KLslYSIB{vP7eaL)i*nAe08TiQoMw9SK;Ynt)`jDP- zJ0Qf~ErY9&6p}wWKF~cXOQ;=|?Caxs?rHR?>GUreamCLH0*QE8_AA7a0HNX7PH+LI zbXGC?x;PbjUY@3R9((hxVec#i-sL8_FK@`0{baH~{5|2+NQT^thzue1>?B9}o`n)U zyuiiW2?=JDnV5Sj=>oBw;*ufLgJr5EIemprp5^`y^ zN7>>L-N^qs1=6T`yS5zm!L<^ie?$9@w(ZYZ0A8rQV|%sY%>AOVTi)v`mZT}2^MBg@UBHEs+MxXTY2Y)6YIjM zbHlySyw5@S;Ypxq_{xZD@R(q9ZViwuw3BCg)T*k8wVtu;eMc;eK6rT{?!yV42>ul; z{uee-5A3ry0@%=td5Vq>U%`K+>k5O0?u!;RAWn25;A5SJ=-|-%6Heom)I*^7U&i;A z{|8ABBRxC4L(FZ%edJLb8P6|=ZpL=e+2%V z4@O)MrD4yt^u@Pn&G^e)MI(VFf@!lpB5TwrKA9;q>e&!U>eGb1nQSSVzfVyc{J?PPjE65_{#C;%H0NDNF@3C^h z)L1PrGy@!ozfDaq9l!4-$1^e(S77h!pF&2YkZt6c9}$~&-aq(!9pXM2shD8rFZ>c= z6k6&gd7IbQJBob>Ww{;!6ET#?p&)+-4JbdT`C;pJ??@6eD!+5Dm`TQ<&uO4hUFwFX-~!#r?cdktpCQ!G6M!{!r>nrPlENE2W1LEWf?_ zubpoyL);JQEIX`k94)awZO2sn&re$r_aBe8VD{OO+uVW+YOba;RWDW&DrJ{$_BYx# zIkU}_lfQjbKD}D2gaH$X8-5*|)y z*qGOV^0c43D=eA?ESCk!ySg?znk@jDaidl91kKO+*EM$TSJXX1gE;A>8 zJ^^vUSGddjoN^!*ZDoZUt4?C+cAq^9oyEtx4AFUb@BBYt&TlflH}QX+UuQ>b5520d z&o=74^GQ&Ws32lG)FF5CYh7*iM)SKV7*8DHh1pElTh@#xQLp0$p-P#A$&l3Eph^#2vj+( ztu3>ptgV&NjNOx~A+U2%82QaV(ewAldmmuU)2;Ps|c8>usa4zr)b)JWu zU5u8Gnr~iX(Uvbo#kwiC6pjr_*N$xYamG}?dtQ20!8Ll+&|Q!Bd~!s}QGYCvozZN1 zWL#g?%Vk4lqZE&k!xaL3%kp;J%A|s2(?)A9o1bX9JQ=lswq>bJ+CBl6o`Mh zlc_xV0QO&J`Uow_w+@jN#lt!603?8fvT4^P82yqHJRxX4pBfK>A%H>LKL}6=cCNGb zi~Pu~vG5BY(5T;DlJrVa(wcEp#CX!gBSfRZ-02SN+_aanaZ1wp3*bSvMgSk^V+4K| z_X*+pL`%P+pkrUPL4<=`kZ`k;Rdbr6d06oj1XFiz*gmXQ@j8r#D<1V+?I*L#&H(%2bb`GWFjYP}s;Z-S==&glp z$C{=J}Gjk7Rsn39Ae`nmO$@XzruX~hF89> zHzwjrkJf2d=0P2f{*9(VnoPCESw($8NiWZ9H9|Eb`%RUkxd!XJ5|oR3&sXZ^`|9Rf z9m3FLE%tc2lnmJTAdZrNe89;nfB7Bop#N4C?I$Gi0EOAB2?KGzP6)Jol=N}OzMllVSa+d3}f+8;%QWmAC zHmF--t9msTBL(lslpf>?w%X`lfhvHM;K9MAR^0zh31mqxhC{ZtJ#(L`J@r>>oS<9w zVY$?TL4R#Rf?!@o2p~H%YKe*c%JtWyegoK~4*0nDUGnsm-Dgt7-~_k?kC_W{-hW4A zIX}3@1Uc&AN9wfGYh-VM$AGu;sW_AqHjQ<2n9WVo zi4WSuElZF-F>Wn*>u(y@%_v56tI69Ds1!$e{ZiH6*J1SY54$(js<-CyoO!rsJK9h# z*U_Oie1ns4tUhKcJE7xDF^B{eSC zTOQG7+)5NFVFf%P&|OV78vr+LOeu$-#09(>)|D8GU^>G4oN_)D?7X~(%KXsw)E`rd zk_xboSd6wwacOMSG^FcR=mV4iW@9>K%L8ZC$3E`wx4nTYLq6+SK=3 zY8*!7a9?{tbUAF-woV7*1w2>ET70!0IdLi5HIs+5vNsb0*4JkL;DJ|z2j2g}gKxyk zTD0oLN0O)Vv91?Nv^%PR+Ux?^$z)K3!9jJXB(_>ei%cvZ<^XDSw{6~|!qrL6Hm$K% z{C^w8ABVMh2f8-xFumXsWO&!3&nt?a0%ZYo7;&s^)XFAGUxZa8{7)8!<+C373vqNs ziZM?cGzQEF@0^bmF11X%(p7W$cm!X6RR~r_v`4@^KCMTKX`^fZG&^6-m3@6yf=WjZ+_x5dM2F)N}QCz$cGFZ$8KZWs&RCSR1Ln1~8 z>{cH9cSJ(o!VQm(z<4NH67#Q^m-6D#c<%ioH~>xuq%VzdU;TQI4X%1B8Sd}sqx+yd zfsf)70Gvh7z1vbQLOwNGRup}L(?}Lzkq2#Go328B<-$ngg?>xJfjK`6JVdKt;Bk2= z5c9vlL%p}zK~7aeQT1S(7<#t(8wjhyw^o}9-DXq7mn@wW)3lbGUDMB5D zh5KRzOmn1|h$317tnC5%eE0{rA6348hm*g|WC?2?Z)S#jc3={6@V*R-scUB7G~pS&jYKdRSjTsM*Nw4JMtRconf z>6QG}iqA#hJLrK3=P5*VFoX`&GsHS6Mg)L*#vVKc(-h^vaT`$2I6Xzi5Yt5iSDBx| z*$y#Hh(s#fDdY8@x&Xv01qdI0tkeXR%*O|sK{1XQT4D-7{h&Fw#z|PaR(IHGmMNOL zz*o62kX2IqcI_6aXy>dSJ4~OpseshYKft;lC~~+V)Ku59eghPVq`wsjZ?&7-uK%G( z^cp>I8IQ^#5UfbFliP$aZHYH-{eSQV2Y%MT0UxV;X|HMYl_M-rq$$d=k-2fYQcMOvG8WSv_25Z( z7z!ajVYk~Z#{6xyM6qx>$d3?$-2kK20P#mxQ2Pr2P6woY9;aYTE_7~s_}!WGMI*NV z!bmLY-%RHCZzhxE5p}AQ)x9_3>P>qkv5a8WZhU}~q8_@w+nY*CX}ZzE?Z;wFCSskU z{plbxmpA)N#D)H{i;=Ut@G&!L-|i#tO8?!%gD~kU?!3XuT-FA5cqO4HOyZz}?pJ*Qc33^>Sa&_UC?mp))`WkjMVxZ2wvRdE(5;CSe9 zFS9O6t=D~Jj6>XO%|on{K<9@=%E5|nfP$!(#sbxZn%v75s$L=}FpsSPpPS*U?9v6Z z=X@YyjJ?$g_38Cm%17M))dJ`y_ZlfG$ekycy5B&LF^()W5^LUw+XZ>*i5KdK<81&5 zj8;_u71Ujzf?6^8iv(oha@xd!RCJUTcZO6L|J*ZTISl8jt#BQ?Ib`SY3c%h_&bQ8# zjG_b+vim)Rh90KLYXyfT_iZreAzT)0ui5@P08K+U&?18O!zjz$a&x{G3NDlSk1VH1RKmAmy`Oq-7_p-!Keh`v*neDPT7yQO+34HzJ3r0S zKBkF$-csF(UODNQEYUt%cV);<`j)eIW=;boYj<4Vta|Eb4zK+9@8qTF3HbOyTMenO zqfICJ-^Rf55_CPo-c^P^a)4yRK$LQ^`LweQ$SPp$Q0}W&1Hs{Z|8_)6X93zRQ(d4z zqi4G&Po@hxXv@y!3zBUOvG?U<<*anx{VMa@Nc+^R(b$oniw!<1gYk67gmk+)zSpq+?td^mDFUIq;LYsY;D2YC;)%BG2^8So7SIs2be8k-l=qC&}F^ ztV4D7rz&LKi<-yPd5spyhK}|nQmgqR_RTLgdh!cNi!`TlQzp3c&S(+Z_t`1;zt%4G zyedkR0f17GqLHdB48hi$Ry=gY#V7HKG(Ac2Qj+K(%!PioZhD&E41lP-exR zWEaM137rtLbe@#%C`OzX>p{;Q68{ECc+VS!&t@9S;k_fqjpMasW!XUogTp*Gon|ix z*J~BnCOh8qxIh&=P}7{g{m$3x8lq!HValy4^LNx<6~gx<3|;S+NX^^iR|n-eXY@B! zY-@%_RO{NU8@AWJ)RmT6s}Z;6mA+pI@b5bmEDaPGT9KolU&3u|vK$)YxCKQ6?b#iy ztp}%gDbhz#k_RkMhJ){C5{6ylTI1mOoM4fyEv5L^mXqHbfS-PQMRINnrT%Ca-aoXB z*T8+YSZ9Aztw3x!x=Z`RAmeGy`?ek@1nS=S1vKIs0}pY3Ze}f3?0;xHpnzVQKJ#Sb zot7wJxwp=Br2UyarGbeMI1Ljnt6*Lr0wL?m(mj2uAsO%p1`IzC*Uc%=Zt)pqf^RoH zh3ejaZHCfYbL&zVO|v8-MjX90x{>1x!zo6-za2Lsd;`mqj}B5<2KrJqD11UdKwFC$ zPA?3Q|L|d14iVV!`R`!o-4tx0$iG?^0D2$+x^}LR_PqrZmEjafVD3Y0pdPK_blrQ8 z(91xssqNKVX+7EO>iz8MrlP`s>cHhZP-!ZAUbbTNwazD|!7}^s>TfZ%CBDkh<-y7yIKGYtT=xX|hZ&*#LXgAv@8e$PqEM9Q>7Mw1r z8m`Z$RlJ>JO7kD$-TLM*&8BNLV>eDHd*z%zSQ!)2x2fxtYrMw^(T}5yjQTv*OPje% zW0_ydm*N25D>ZnQm*yDy!DZuFDDN7BYIRyw%HYnL8(~co3Q&^hAg(`vLm?mFhj)Y= z(HX$kqW{iYm?rg5V2t!L)_k?l0qXwoN~vFRA3B<`nAh}sxoj#z{Vs%JSUd%qZFGp` zzi$kP6kOHri}lxkzH_$M!;-b=i-%+8NOW*jCxYFl8GXKciAA&W>?KWwaa#a8O%tkZ zTc^O-(1dt9MK3=LcG^Tz7uGzQ)50jv#0P;IHzY`%ay1J}cTFgXoFty2DOyOqrY+E8 zY1}Gsq3zV~gEf@PAA4la6{Vcne+r!K$ujZ}+Mn>`ZoO=MIF93Eku|rIkM*bQEnlPU zVF~D2KsriUZ$>+^A(4~NN$TsNpN;paQZv(|x_CGv!s=+%DiWzPXa+ z=qniR)mq19YI}8#o^YCdIVr^rt?`hK-nqSeg_#5DhdDG$oNUjW9K_L*Nxaw&YvH25q~BsV!!1QXKt z2eJPlH%FAIP>&<7g(D4O23`<+#lUa%p-2FpL}8j;AN+e?f86PP(Fv!ieR`PW*9p>H zSfYL29e!VUXnF>O4K^SIVS_UjyrhOloSI0+`e~*fh-?165a2O?=`aKM@VDaM zi+wSyN&y*m(op%Q=fUOZkaLQTmRm83r}J0Z0PWD%!$Fnj&$e0{TODstvVRtkqq9ux-a3DcUvLr6BrHKHK~y zXTvq)u<)Q@iO~0j8kA!&;M>Fjr2Pt%{hu_b`POYLXcyz2bA*eR_5f-CpM~f~>hr7O!4S?ab-YImxqYx)t~^+ESuG#T zTh876{KRJRMqU;Ab*v(5Rl-yMUE_q-+w?OP0!X9t*`oqqRa1!_KF+JKsM3uUny97M zPpKb&H~DB$%S@QttR-oGqAuxZ@HJz)opg$OE&f+SqNQ-C%yjE*PVBc#S?uEjL!3wU z=5&1}x7~?*+laD~;is)?@dg$yz29C0_F4v#UG5G<4r~Q^PR?ntkSOlerOYPDXlDC6 zKCg5nVU-GgH62-~Y>SDPbb{p4-z-j$Uauyd86~rZHtARRvl1aobDX=2f9&bI?4|!I zX6Yt^51kThC8gdh(KbCH@C=nCA=fZjMxvSSm zobs)ZKQk#X)j;FhgKM=$?GM#8XF8HTUX-!e+j;@(Gu6AdIVSS9#wBfl?>U)V4MVbJ-#eVxyp&V9z}1OS zaHvv0r!g?nVpu6f#BCk@Fn4TI7VAg3jM-;Q!?-ev+_#=6cJ(>1kEt}zgp!MwDrl_h zh^5ddAU)cJ|4?5>u0C&hJZS#MYo)%|t4BPt8t;h7kL(dulPn`#Nw^qXaF;x8(DLY^ zIl)Iwo!7n_w5GKeL+^dk(>V8nNWhM?uXd(qlUOieeZb?eKHynA?@TU_;h%d9KIgES z0}CsN|B5zx|Asl{d6{RXvqdyqW%I;qDap2Ij78W5Hn`w(R~|sSMMMn#2**qnOo0l9 z<#qGdi2D!OGZQ0zGdBe@Av4`IMs0hCuu|CCpO){85k_2M0P;$paq zD;KiexZppqfEavXT6$p40TW9;mcqo6wQ63Be$SQ~Lvp0r-A6x0{xUf!q(T%G+gaM5?G?SNSLDWhrPP%DW<(v{DQ~hKpM4#)9ZTcZqhlj;`p*Y^VRf~VaSG^D(={Hre5#p zFLqwW!)U`E!*Mn_ z_0!Cx>vx$-?VJ+3ycbLm>w*R4x~`t_6;#44^HYUH?Ed--TeUHgXe@sIK(=S?mn!h; z>Dxn#O7Uz`2#JrQY=tsouQCwx1EdSU$nN1(~nl{&7o6Ot?<_O-8z|N;a!XI_{ zKo)5`&hH^(;40#_Xl*vOieU76ZLpLqwJ?VNaF4XKAJ*Ou^j>Tlcj#BF|CLZ_V9f^^ znHxMJ5`OUn5pR44W8U9{**HBYR-U8gD>^!C2_LNaNl%-Wzgn9A6+G=>k!vMUcRLBD z785MO)Z+Pt#&3cp$KpYQIMd@?i>r8LE78d(DJ2w0 zFZi)jLVLX1i73z-e&|QcRd5yg%hObA=}lR@t;UNqeoqpDSpUvUig_)HaqTeoVWxT6 z(mPJ$SU^SRA0I@?M3BGFd6DV!&a>+T3sd zG$IoLOp+In)N>U}iWzv?lAgm`1(wS19N@Om@RDpDC48Q>_uw&o5`@Hg{Q&v0OD6~4`Ewyn$F0uagWy?Yex>uv(@KRe_=hIG(JuH=ao{n>& z!r-ky-)ASZ62C;#oghE-%)?%3cdF*R*YBxp0c%W6jq& zk;k88iTrTpNHMA%r`Qg#Z+Qm60P85f{Gikcp}}%~8->wz2&3Q*D`Y z-i)1vB!(ZIWzkw4%CYQ@xXeqb_au>Vc`qVm3S`_l+twn(D{->8=$$0!8s8fkKe_kU z2|usoX4hytVcpl@iSx*pTtR!0i&`GJTYp!wYy~o*Lg4{0>!F-WGGeH8zJVyCb+Ppt;ked{AeQhsTZ9q*3)Ge%o zk;VRo3pn7HuYtiMmAUUpOEAG60XBJbcSd~c<9cDL)yfG}`{1mBwy)us^L0q37A`H4 z-z1Ji=yTxM9$T|xeOZR9f?QrS<9vkf37ubrb1gxO)JiBcDmgrh5|(lsmV_TnUv8+J zFALp`3Na`u3f^88-aI(7H9rXYnUvpK=y+IRx|g57B9lCxIKhcIl_uM^=cl1bz?QEh zm8UXZRK=jC6BDBPKAMOSMQ?`2xHYR;KRC1e(ff*eZrMTc9$O}{%OJh3w`{xGPZ^%C ziNxo#eI{lc}8Cr>0PVpSP)qHF(A4>10=Gd!=Q;h*tz`PT`*6mHIcQ_ zw^Oul#IZglV}yuCIUt$Td|gLg?^7QEhJf00rk_^}%5ANUwc#TYJPEE$_AbzG@ZJ#g z4y_tAopUc?LZB-M)^vF$_nV-eCcc`1ZBr}=KKVwu<4|P01DE%ic4DOz;IP3wlnnYk z$gKAlpujiy(?pu#@``|(b01=9^2^?{7VlvIY}b!@V#BI&;hf%w&( z!0q=bJSvvS^(55!9MzggREQkD;s$Af{R9b6?-UVJvK2+Vo_iv13a$ZXG+y({vCd31 zpzrNmwS5W9D<_koX8JEAHxS}O2lIz7-)Kr@ zL>Oh9e>U2$xC@cSmKjXsIhyg&{KezVxMXw1CjCA)uGRW5=NnTRA&FkKIL_7NamPD0 z9`T2oyKH(4>lAw)rym&yBlp}GSl<+~=#~BK6J^b6576;*dCg%$MHJeS2IA5lXhUJn zIE~FC3x3XG>3)E$+K22JmuU^NrASFg@rEU4EW%V;f#xcPqf&rm315Pg8RVB|nS00l zn@q=8vfJlJ86qb3!3FU@V3zFLX4!f@!yi{xI>1iz3Oa0DCl~#@+6w6QctaCx;`hXfhX=sl z$Sg0oKaTl7*3)GNsm=CuTUi(hfO7A{W-Aaj3u6{MC3S97=YlL_%gxMvfiCU#c3I2g zTZCHI;1Q)V%6C4@ljBm3!{&dtUcJ>W3F6whwxGo!Q&Pe?N#B<*Q%P(KnvWG#f1|+$ zQMHXvu=nZf-ZEB2S(yu(Uw1X$sw!73%V&PEDh1JM{oY`PJTCqANxq0w9&N#<)KA=e znXb3?xQ&BTiQZaUwsT{;k+_v}!!pG!N_tyvVu@^r&hmKA8Lss{x+N`Zc3o}?V*5mO z(P0^BvW2emyOaJ%>wZ#w@{}{?-BT$~hkVmFWVCr=m?RDg&`xO(4z*pVKvuvHCVzb~ zQlfZ~>d|m>H6465Ol$L@G$mCFNhUS8lJT^kkoGG(PWRvnIjYjgK)8##j6%(0*GRt% zE_b;yZZTa_@Ft`N&GX!=sS2rRsXdAG8y^`!Y(0m6lCor1`2+v8SqtS8vJ`J;GNV+a z42^isvAB#rMTcl3oA~ik-##L$9Wf17%!BjBLZ9E-01w1rf;2D(WD$sd8-({D#{6S5 z3p#R2{cgmAM4)@H73eJXfV22^YVSOSQ{nR7!U1HMhf7tx#p%%VsF=T{NpH_F)i2)*PQGLUDtjo(^gt$);co6B?aepq zkPj{d#!z4K@yXBzXntPf!QmyZ#Xpltg}`KznQdDLPNTDdhLcf6>3)cnDvoaFBA52F z%m$wnM1|H59}If2aA*eIU0=B|sxFJONo3}R;xF`4e6C1g$OvQ3LE$NEpmE_$uQ`{; zwd?%GzS|5zNJ#9YWOcz-QL->ZrG7bTWE&@ydp_D|<7RzDk#DGW_8zMroCf|eIr8S` zQ`FN6gImQ@_V^XG-c3Ip_uT-g=!oof`LEZ-JdgF|4U{i1o|hJX7E?tAtJkTcOT{mb zhHdRME82WMkrE-r;bhZh9}GzB$`mxnKY4=D#$R$^qKStBo?K%I*{UbyTkTu5$;f8P z+c>Iel3!swW-Zype!z6UB}LES1tOO|*X>Ae10^P)8Kh4DmIMNWK~?rn#_d3}tF9u@ zHoJpFW!2{gSJ{HkE~DBOi=zi?i)3*DUApF=-3r%diV%Xb$cvnHl4+2Q{tCi*B`=39#SdAp;}L6dscm|xU6qDjCIU$h_I|=B-Z+7x<=8x zF!{W+FT37Lj#Um4dX$TB_4va9Zc-mT+cz;kkvCxyARLZ^u+BF{;&vy7_U0kayoMce zxjTDbw6{+u?2dhGtgSuE{Z&^U>9C`32bp=-rY&Rt`d{fJB@NJdU?;|L|H}%e@2QwU4QPf*XV9lQMJY@s`?WxkCImGc@|)=V)`DA4uY-h*!K8 znNNksZyraduSKU{N-KA^9G@kb=E?YZ=*U z!VwrNx(3FI98ZzLLq7vlS#FXndI>{!jWmptJ>(;t#;t*=3H(i4Vd;H6?F3d&+lb9| zes$j`c1Ed%J~fiCzk>2DCBnmCeVg&fOd9&6+I)r#=nR26JK3{y>x`KJ5^D){ z8C9(r-Gpfy@64D>Y1DMDwP+N=uth$lRPk1uLz=y{a@tCgIi|{C z9}2qMUxRRbm!HDU^y}&EBkg4i9c~glFZpH-QFyv8JkMuI9q+pLZr(G>u}@J5s0K-- zT}shPn5p5AUM{Knu0qe1Jw<TiTwEgB?&AU2R z#vWsV^X^Owkxz8`FwySzvvi#9T7}NL^tU6mwvj=5H!9uX$oToZx9!l2_h-$d*BxWj z32qwcfg~3c`cUrC^}<7MqI;PK79K6+g@v^9ZZQnaolyP>lk({E#;G(z;$PaSn=EZL z=Ms7)RbMRm;s84V^u79fHPmeS2s!1M4)_D36S#X>JCgdawm%qmW`%F)P)PK8G#nZJ zNE-M-BJEv&*oe{ZPh$z-J$Pc@wW%}z{V&*}Krbec!LrH*@+Zx~x*#16fsu$UyYs#5 zm6%bt$RF7s8UK{*xF<&SzjJom%zF%}bzL50V3e*VlIK|}rz~C5XWiOqVtdiaV;RE7 z$KiP@*@nw1=S&0^Z0fj7Z`Tpms3fkg&ZHh)oH(3y>eZG$oSB0&%{x;daOVfjIN`Jr{!$q+bVBZsq7q4teA@2b^J9G-QJafL@K zW^qgvP8plNpN5fYhXiYvWVQ3nwffmCj@!tm=RA<5*3#Y51Px~Wb)03dZNE(K&vsB zw)pgmrrF-IYrW-b%m{zeffRh0gw-!)w zQ<8=F<-!5q3{*GnJ@K?fMn#nKheNxL%&2*IOxT$7`tO|fd-E2`S1T<&GI?O)kLYOy zQ0wk8pj5xiovvr1C#up)9_lM3-!>TpXu?y=|tY!AOm|eTRJoE6Y8PxaX_`8cfoBKBr0xm z^_3*P9SDwx8u#UPzFDXF(DljuCf@IJMF`{Ln~q3C$%UBM{emxc6>V?*{P`CgPvUmI zFN(BtQvg5lN0Gm(3hva?Vk}X%DsOw7KRSg+??LGoy&AK?sB?n*I_1INo_PPtg&Dxd zSHT|53x9l3mmhrYL88dCN=eRs#J_$Y_=JbS(KioiJ%tB8yhQSl1$FOwKiAUzeI5cj zJ~Mp7dRr`E30qqpI@Z0L$tA%-`<0>adH;;V-Y?eVf$ZVsZXg@Z$MP;r)T5)kM&vDSA<-(zP^s>Qs=TqD7>Cj==0anrN0xuupa zFoZd^4F*BqQdQ#ie1nE%Hge(zF7zqTcYM>MiMSAwpw)gCRM4Cj`cS2>L2|3jRj*uo zU(&oT;bd!=fGHn2RImDYu$|{7(rK@TP^0ik*t_fQkuD!!W+tZE#`FAfrO37qP>+MW ztGPgdcm9G^*S~VtX1NL(&-_NAHwOv3OFLPw5!=tJX4Y{b8_^(+gDT`}h%AzW95f~iuYNA5iCuaG~LFyWAkuHYS=IH~j zdfpb#!Nxw;gANOHzyyvLoQ~TgufXnfEc{!xyLDyuzoy;i&%x)5e1b>q##9Vp?7#Fr zf~#0*Vvofb<3c_l=A6UYzy=V!{Tm+;JgE<<7x}7B-84pOZWORp1jxRhR)Wq3F?73A z7^(At87rKxdR4^`a_IC~2syP9D&?iRn{fSKSu3LDrk?xp2L;dU{^EioXE z8FM>Vx6L(AH}+=bM6wN=low$N;Oo<+U0tLw(2mCxw3e~6h)JpODq{UbYl zVC0J+tIgZH>nqQRn-tG|DVo=G$%xHs6_Ln!(wlaCZr(VkFGO(P%V^-yBWswnQ4I$( zAlLoC@2khFyBKdg=gC$hxjV7GRycdKCs=d4rY*R2n=f=kyJm5B*bgx;xC0`q6ZCF# zY&@U4{I*t9nBf%>@1mIjW8dBC-3@VNqDNzvK283uaHy**8B8St)lQ$4l!h*FE^*Y?{+JgF_R2E z$6$^hyiaxRBcQRQun@fECDwS{^Q4u(K=wX3&clJvk*?rgoh?T6Y(J#@-A)a(apc|( zMG7HUP@I5uxOfM7Vsk#|0dagMOc#rI3dHzB%yErta;Dh2L!!= zvkN9i=o^56WYfC-!h$P3Vs&D%6~5!#%0QEr!uk7-;*=+kfK0c{=;@Og#mkrKLJb^x zz>I-!x#gz4rgmvZ(44U{@zaxZ%ZH+QX?k4rR^KX0RxP*IYdThrwv1a()0oyY93h5F zyB6M+xJAfmjF*u2i7H=LA|W$0mi44^88K+YW5Kyo^v{%Y5?d}`+7jk>9@7WgDUGFb zYMJ%Y)Uw5m6}%nW8B4iIFRblPfvoTheW#!Lc2R#GqEk+z=Iq|(v-mYcZ@6ioyW>d$ z^p;oa;WuNbEY{YFdUDlXp#DV)Wf74CsHu71 zpuerRK3gJXhD}B~-kjTsic66VT(?dU)kgh2fIjF9=Na z5VuCaRh$Y*-YQ3taViF1e)oL(BJH1WFD#SVZZzxkklMb^yq`4#h*%Pw&KLb2^!w;+ z3iQhI0KKxOKDw0UDb2$LUc?{X-S#~3&cZOceqzOcowX7=s7&2d0i4;8)nMg#3)ID_ z#``OT)TcB=8V?w#|EaOQ{5B+VyoLF|H2!|Vf_RfkI+@M-?B<7I(YglZ%J5Be1y_?Nc0) z$yMnTdXoqVi_HVTcqph@3wyN$s;P5pPKqAw@aCCJBj=|%9&<`z+Yah(knkCNJID43 zENdYnU^F&LPsIva6-SOYj2df=4Jz;;hu+K zq3tb_C%ewu1H;3ioi(=bHC45cVRG!hBniOlboD_iYd=DESpVs`T?3lX{QBq;@*aYK zVQ4XPkc`pidw&DklpQ>I;yt}<@)ftUWOQe><7qHd|02n6#k`pNIBi}5(OjRhiPGHS zDLKg>sW?;yxMQeHLiHccd>=C?SE+`2D5RueUEjp--{y*49`;UWbio2OzQ2%M7nTII z0uZPT{tndi4dIsMCHPXo!(KcO&c2*(a9&wyIlSKU$x)8RInbj}T@>>Z{qUoxBMI^b zJA;`-kGZJ2hkizLrWY2Z1tA<)LAyiSxDE>r7Z+P$q_up?vr`{c){SiQxMiKpM{Re5 zf9B`Q`q>$5ks4DcVX##*Yp8iHFcDNENTh-Uw8`4W%)9qblg6wh4{ftgOo_*o7-I;^ z7SEf3Snb3`3Q_1yILgHj)eH7$$?U+cU85*8l&h-L&EpRJ)mQhUtGl~9XqWl6c$}Pb zr7}gxt*N6u!IDJC<*vca`eNW9@~m{%jp5X0>JAptw{r0dV?A%$t!u(6Q!WM0Q(3~} z0<$FpvQE2ubaQM%f4wSBCUpl`|MsuMd~T2Z(c0Y``DN8y+?bAR1gcWDw^kgAnwqgk z^io^M3)knfpP2Sk^2OX_E;==T41|plT^w$U*LF~Td`~RKz>x^ZPVhS>PY~sTfL8c- z7e?hc0Oj^Pdi*0o1UCK#R9-2YoSGc#inL#PS(afx7Dco%4|YNO0-PiJY2toUQ^`T@ z885!(3HWyDe1~;I|FzZskFKwds_K2drc@B6yBh?gyAkPDxaXwMG zUmMD~$(d?B(O5hLUEceIVjB&fhx57b-AA`xgu5sAHr^g#(tl|^m*nT)+|;>humVzx zi(SNp!{+9*OSJHyfvv(J1|ftf!tJ91X7RkV7L9%c08&tY0&oZ@ zS&}w-DA{jaODE)QC5#*MQU5y0YY8oIhzMUOfj5xdIbEBB@VEeEY1eWyMHSQCOPGRjr$i#YN%O zgW(Bm>mj9CyLOO^5P?npYfHz#=5g*gLyiqMpJWUeHp+6>L(2nbN!V&(;1Vde1UQBR zUE@Hzq;7amJ37oPN!!Ala!V)n>&6esE+(|pwQ>eB!p*+J3)6pMo-LQ1u}m~A_>wYwn0V=-L*_e{ zGX!fg&l}I@khS*;Ta2|@z=#W2Q-d3*D;|a%6hLddX+0{!`wOz67m728#Q&X7&&S8) zS^d!hP+6C~7GA{JK4uyG(;=myM!J$S!Kdm5o{`>H$9bpCinN;jhPF<=bz^Tgx4)J~ zl0UfW6k1}H|7L;kVAHy-= zUExtJNt+73t`81q3gd6;xV)KZ#)MEm9C#B6&0Sy}@kSx_8mVvTi_XwR{9%qOXM_-U zp%HAM9dG!oLo1WpFj^XSRZF?}fq6uD&DE&rLHbr-+vgksIj-QJhH_9flkW7d8-APR zU#JSMK0w0uBM%eiZ6V5YJhpJu^AZqY2YU5~kRg8pci8}z3=8#LXT(y}kh;}>uh*D6 zQT0!Qt@S%7_Y6X`!?3}gUO?K2?IqMa(O5Tg(ciJbKU@eB2M*+Y_x^|c1Xw7-BWgzk^4;zR{s}&urPYlFmHOdD&1+O%j)zq@`(Js9zlv?A~;D zX;TU@m|1elg?5oSh(5913|M!^{LJRqLJB%lg+7Jjmzs*Gg_+Sc$~nGqL$$599uv$* ztY%v3d0NdxL9CVoKS!_Y&KpK&Exx8nQE+$U)|7GaF|X4%yXsYSWpK1>dC=ozh2a;d zgcQWx)-5(2-uK*Gm{J$k&)%A91=MJ@GAV~MUibJTE=;krdyrTBTsye^e6o9us)aqG@y-3%cZ}eKbDt~) zVgI$sYM~=R#!zZ0B6&?L8;mltYLkY_46%Qk3qT{M0a_0O7{8MBR^cdyN2B##hq)wB z9elD4$aY9*kQ#v7BF#cLhYXGTXNcMUL~MUuDKMWhP*t%J`A?t!^$MoVhzl67d>r}% znv^fy(wB#wde97rA^-#z|G0Y!TYi%lcM@0@|Jt+iI2?oLHV8$Hl0HFt40amJx&p!ZiOUNHL# zkCb?cJ*FdS>IIFJ`I%PSQg`8VMf8EY4ZAFcNJuAF z*A}sSC+0ti5)_4pDuQbd(kXRKNsqwPOglW!;N;HsBwHE=w(;NfJJ z#$EHWeP3&8Vdm@`U(~`)O|i!GYoIh|l5xZ3&|H0{J?&auDtYFiHF@x!Ieb5&@l1pM zhvQJ`e(XD1458!WdRpi8m9whNaHi{xlg)*x&hMJ1qO}HxpHwYoKu#U0gI~*D^V9SH zz`kfa7`!!oz`B0sUvDxQFqP>PJITHcq`mzcSGQl|(dJb@YHN#HT0Bq6TVvd0R+C9E zi_}TV>_=@FzaL4}ba1~}S6MJl>`FFiosaccQQ3cWMw7s5F`-A3wsUb&Qs-Zmg%KSL%6;GX=foiSz0n}|plJ2pO#L|uA{?ebCmdHBG% zd~GKVP2-2+1Y$Z^^EW_aasAOx_8ufQBvlbWS~ui*-=3%~9d?TS^Hy_z@$O_N_2 z?S9Db{5G3a;Yw>ZHR>hLO3RT*^v<#pW!L@C8NM5LzO3;n<4)c^?ek*Q5bOAknYrB9xI)kAixU^Slw@64tMeqOMnSOr$ays4wx98P638X7iJib z_u#DELO47A4@V{726I{ESFsWD=%`qq1JIQv1}zA@X+bYh6mCeU*FgIVm@|lVLa0cK zh0u7YzD>Y?3~L9|AQo#j(+re3EP)1!yZw4n&42@-?21V?0#+`854jY|;ZZwi{v5bn zvdC{Pp>e0J<091vs29ZSjRN9DCcU=K{Iyh-hm%TOck4u2CGuT+E!1}Ucfs;4LQez_ z_U!Zs-|vjtr|sFf=~XsH=p?$MV>Wo+9A$-0u{c&5j3~R}Kev(F4B9yzjsr8FofVoR+abS=+OIAyAWHhzqr-rMhzjhxK1@!)hs5qb|;mx zDe&qHMym`MTdY&X;&L97uyq(69s3{Zr%n^jQpOtZ$JjbF)Oc9p(xx~p$kettw)WbE z#DVVPM3k>QaD@>T+)lngBu`{Qg^^!9AQqQo$WriuABj!jPwQ|hU_6K3 zo!>nrHn6w>S>-#EP0uey#+$P27pU5tbKpD^`L5GS0Rxy^l*DkoX<^K!q-K1pQ-kme zq^_wVkY=@wLudK!&aRnMJ!U#4xJzxgxpVk@0coBvKU3ObUa(}FcrP6 zHK3jv@da&uQ((1`oumfA(e6t^m{^?`XRLFGAv9kfuEBILA^&ZbJOg=9Vg84ppaN$> z^cwQ=`x33|kJK@UzJ*;W&nxEV6c~fgK8)w~T~4IkZ7eaS75l82lzgnw#BjI3S^if3 zx=}ylBRiL40;54$*|*Ovw>wWV6a%^`kI ztj$w{ugkY0*8o+Q20w}8gjK{#!>}Jt!O{LQjaoFC`F~zF06EhE0{0EyL^`qX6Ch?d znXGfo!Xenj-8gYA+RbxEa{b!=iXeUkrGGpggB)ODdzA$_e~+X@zIZU0J~pmU{zhgv zi73Yc=!0yH>7l(1{Gq8aiK8nTrX1TX5Jl+c?8af2oI3vu`V>J>61X zNO;x2(vfp^=bB*#`eKQWIdD|>kfW38c6VcSe{FT<(Q#RKKbjUdBhqC&HMKyg(O<&n zbg_`5HBpy)p`^P}TMl%s*e283HxG;NR);??=&wdVJ>6wlj_GM%s#MRLthcPY?Y4lv4x%MMw?g6R%GvNg#pcFPU)H=F?d4JitMa96dA zS7Y7Ti!gGKJy7gTR}&aZwhu-3|Vwa2lxqrOIG z3tXWn=-D-WUKzgf%E(~DgE5Yz48GXe29sGqFOKR9ips#~kRhb&GA8O<+FYKVNaT(h zz9Ii;N1-Ocku@Jvkl6WrHkMNDOut#;ChNKbWa4;9^Nt3^eP|}H(Yz;d!u$?F0uh*w%;zpD1sOfCWg!oRJ0hD7WS0D=y9kBV*(%5kHjj4_r z!63$fZ`)MHav$}Hks?bcY`#t@PM*u@h)sqF+}2>Jy8nH{>wQTx&FM@-+nlp)gI%TM zINS1-%aN(W#xlNHzV3zr8Ahs7w}-bOiG08kw<2nSv*yd7(sN`_##&F_ur&9k`JlMl zD_yHSM^}R@*Ng2eW(?typ{dn_x7$C|UWs(jh%-4jPCk59(Qz8WYeICjzW%CmNK&_A zNMNrV#u|4Utm5$j!NdMib8;kADGcp<;i@QrZ%aD+=t*Lg$;`p%ufn=j+B2QUht7<3 zMl({X+W793%}%_^}!LuD^w|j+SCM@>gfW z-Fatt^m{fs)Dw|~0EFxIiKv@YdeshD;*~XWp{QDd#2E1hW$*( z+mbK(+}+&O#W)QW`W33racVi=sGxsWKa(po`sygozMoUrHRaJGlt)h( zvlf`iBm6;PY!-;ZB#%CSm6%xa{K;2s*!_zG>4V+6D%d1{_BXT%n893%m)3-Ya%tC& z<&Ozj=TWx3w!OyVA%IkKO-9D}hiU!#==}<1I1Sr6Bmn{&2k7my0BTj@K&|Qo?&C`b zaKHSY2c!Za_&cQk+5iDQS*bYiIKR2+nNAa^hUEvKq^y1U%`<|Yf54a+4gCom7z2mg zd&0gBp6cz`HN-rfjx?BvlJ+oUZ#L3l0}7Wn73VrhL&cc^52BlgJ`6pf+VSi~oi@R@XzdK_0ysK*}aem0sx$4kvDL(qf zu{b-+uf`hBU4&p~0)Jyji0R=d#+U*KPw0RO|wt4lTB~3@iY3ix44JY&Zm@!V!k{BiQK!(tjoWhknK@91Uy2EXM zU)h(qDXY*1_b#4Zp}nN;o{}yk&SS@lGuFlu|0O=O@Xp;ryV@*5CY1&@4Nc;5IPZxY z=jf4Xu$I%_tunLdye!4=?FLZQl$9YyAR1)L&#<}bLMl^zkd{O^VJEk_-U~^yU)*SL zHh%D=J%aHbL;7$_2V^E=YsqRu08BpMRd(Yz0-AM;p}1Lz6ky}M1{*JK^k3wtP*5g` z&_C*#FD=TdL@d(ovxjOs-C9+zr)?z~$8R(z13`6_BJGkz73F_*8&#VU<7JVgQ)V4x zvWnjQES@v-!+To;I*`y{Wkw3DmTH}S6}&1|wn8=P`W4j;rvUT4TDF!)etHn5as{N^ zPl}*?XGY91;St;m(+-tyo*e861loz+#+4*I)NBS!52`$MlP%R@8_s*(D~xwgtVC&r zeE!$x6^_M9Pm2&c_G7f{3-~zSFga0rPQKHy(U#B?E#{al8a${|3=eedCwD6mU0zJE zOY6!CsNIl5PHyT2EiAVTv<$iON?xu1DqHF*p_wCLo0}cH;jG z4A=^!Z9bl+*v8EwUKXB}77*9b8OHhm9Sh#hvk7Bx_{fbSfi<#?zwm4JqUO@y>fPOE zD9r9$T=yEx#;6mOMrv^d*q|U*;{6DJ-8tj5Tex~}8&Rrkpr;%Z>^yaispkB(&`oo8 z^BZ69xUc;=V5m4zkLl!<8vwMJua2U~*&P3yPnIaXZ(tQWlC$|t^*OWU!9WFF*e2}# zKJ{ScclZHS4J~+n{gX2jUiCCBX_|$ckUb=5fDSF?y8pR*v7o|U8;cT**>v=QiLZbJ zD}|SBSM*g}K$pkO?N_xi8ibCldeHUq_pA`m_1Be4XJ$epwXUY}UC?pHZc80t(Ip%1 zP6jt~9}&J}jNq&(Px0S{4t+`UxNlnHL<{211M=&!S(oewyG3^s=*s>@XbR2~isaBsfNVFP@p82F$uA6f7%SiA-55 zrFlAoa76?tY;fTeuKsP*KntPB8+#~M^H|&g^*r|gQ_BZn=XYq$dcJDl^VJXUwcFac z4m6m|@-KseRt)9Pc1w9Om%`A0M9SLjc~ni}c`)K_-=-xqUXLi?T~j_UomZnx)bJ0g z-hvHfS4maO->RLy5MgXOG!kO8w0&_xGpdjIp_UN{(w=hNy)ov$CIbpR2ubA6)wM)NCQw&y9T83>Py z4Z4h5l6!Pj!Xqt0#@ab2b9NLTCuZK0EV^X#-4yCFRq4}E(`E`y^2NUP&6`c2aBRLkN${ z5$>TVBp#dsC3g`!S)OH4v{Q-ACbP&0e#hD!lkyWC^X@GFpnd1BDe;+ggp;NxF@uy( zuDdhd(97+0;IPTabx|FPA*G4l@(A<(B#h?_mR}b;T2D-6LNxdfbp zKoUsr{aRl2H?8!HqK#hrm*`sh6ELl60dI582)f#^SS-Z_(#{tS0=>{J^l18b_X#?W z2nfjZ)Qc`E7unkfZV>e?ceI~23m0xY&&zI6*=e<|BBnlHd8kNAp}RispPg)tcc`PN zl5{e;lci{?4kE?G#QdStA#4X!21h(DU$B9|AV`f=^;np&N^WlJTS(DSYF(e?!*Sd6 z)iK1|FWzS=KNU`#RoONh$b6+9_q<;$tLmbtXsz{btZsq%l`MBZ_mK4KqcuNmUojup9b`<~3^er9=g@+OU3xHqkxdBRnz6JB8+#p+*5f3Y%NMVzB zayK9fUjnn`ousUS*t84U+y_Wlm7Hkk3+FqnlLu|{B2EuBZsEyH)e-*M8qN3e7aX2n zu19X176$eyThq`aFg5~tF&dQIIQ#~OajL6{esXw!Ur-4j3Vi}2BkGmn$#ve(0|hm( z2mv@um?SSGuyad>hHOC`Bo59}gPt>CDIkgfTIL6Y>Yb zT=K*=ZOdXzyxJX6)Zn_ z-}F3a_DI}^iiZg;etUgJ)$Yup&%2~!b9lu_S*(kYPfl~)>UP#jtob}5n7b~3BQwon zK;Iv3BIqO2iiHQ}w9jBd;%F)LjsdYVV`j+uMa%W@UE{+Ae*|V-$@hXe%ksVIa<9Wy zx5c|N9eB?mK|VBzWb}l@jGvnROfP~HH1FeDk8;8%dI+Z+m6pk_#xl$>&TRx8q9iZ0 z41YLLuzBi{E6Jq1JX=>`QHm3*bqH$;h}@LRiX#Lsmz<&%x5YnKTAagVCLQvE)iZW9 zR>@G~{w63$yhl=R5A-!jnPx2=fSSc|9jO2rCxV*2dFes#Ly|TqbpMIA&0n2}ix`eu* zYxrV|qRn>4$mc24ODOZWrxAvYiqtcsz@EN;-Z?O2FOfkVH}a|Mz~syCpp&#@!vG+KCOOqP;Yp`bC_>l>Hd) zw?ftTRnqR|ey9m57dlqE2tVHWA21+H&6({I9jbe5yWr_HS>>x3tK1ar>xW9L2Rw1= z{)qR1#DcT!t-5VQw=c4GA|dCv2sOpNWLCM;n5FHNn~F}wYI|-0xBchuo<}i7JDtgF zB>v&^@i0jShd6^}p~oBgDq1*qW+w&~1AV@nuQxi&QRr-)Ll`TP&q{qG=RbM1>%FOS z8mm4E8tl=$pH*(WM8X^pa_=E`;{4QM%Zwi=XgG@5z>C#2Uy>5p)6a%NI*py>YFWhO zflVXt6z5k>{`BY-BWK{eM_;d|=Wr2BjZ>g5s(x&sZ_({EQMQF4Q%aKjWFR+{*u1LD zD7#4SVDEa4O`v4Mn&sxtc})$&R5g~mwDB<1H(Yh09UpBf>RURuNgV7N)OIWY$U!yL8SKzut(}|OnCfQ z4&i-$qX#cF_?Z{(T~2B`gO3-m(WM+ggt9FY2Y>rHer1rds=Yj2gun(j=gCia&3D-> zq>!->A>|3wj8Mh*?a$wE*dgi83<)+kgrN*y+_Pn~^B66T`-47=Q!R+UC_Nn1{%K*A zdA;$DH&1X)&={wp`MQejYd&9HTkm^jS-N!#Go|>Y&~MVK5vdujIslZcL=UFGt&us!N|!r6LfofY{UcK z2eSong(_-*t!_W!p@Ydt=1!apEG%}}&EX^)#5FcinCIAD?kXHawW`!7PC$S1ou0wg z*uW^^brz#wjH|Tey)fOhs}kAm9kPsfL2?n-95AZ#tJdxCFhmhZkUyqTsGny1vCUtBH~3g(h}zgYWxP58*-WDMP)#K{ znkiBS26FG!Illc{Rp~D$&}Ir}UbG;s+{5p2-o*MtrL1fp66-w82KOr`Pvf=0+JfkrFZZ|G4cL^%t=(TK**Eey&wZEOPec$j zBB4z~Qd}AsuY&GygR?FBcto1IItY^WDV&~V2KbuH-Gej`Qbw?H&}Ty{EI+%wJY&-e zl$NctVdU5uJ!mpS$%;$rB(s_Bn_m~eY*<6WYfya8Jv!By?_`%9ia1L!YcR(YO(s7? zwfj{oLvOW)_at+a%P5iqtM{$zZ0+qgJQ0HjGpwi24$|?lvo!7R8RC$qYcccZXSVlB zDNlmvuL5;)tPq!v!cvhx?Pf*L@dcO&vc>Q029;om(* zzHRtzrIt?~RjMJNVj+g0F}`&J2T2Ouq16L3O~RF;%(UkPDJnLs=dM}kU5CZS)Hk0yMtXN&YujoDwm{A_ND)L8)z%PON$JzH zbZDP$)I43K9B>`|tbllo-d2L(|g9@P0c z7`v?_4ltNLSdw;q6071{`hGg^nKHjSp=W^^9!U&}aC*&GGR|r~B(6C&V47Fx5LvS0 zGm7}5+k|AJvTS4hTeYT}f_ThZPZJOw9raw?`MPg3Yr}lw7hs?;w*cNwEX(Guxu`7u zyQ1TS*$L^z#&j9hAp1sjjO6$BnRw`TQUHS^NZXl)hhevT!YZAy3Chlj6PH2^i^S7P zy{GdiQfW}%S(+`4t&bff7oMt>GK-k$>+KKjr?gfI~AQ`n0~0Tc8$xzeO<=JHD;~;vT#s{tdwk}Uu#r8L83(Jr9B^V zBHV>XQj0H{Kkn7lU45>W^(O9(UBYZZ+g8qNts4WbLivUd$%C8<&A20<8~DnQuw<5| zsR<4uk&(K+0Xy`kMqV|937UowCSz0!w0Yr;2cV^0zC0acWuk3?BAZQRcI7K{Z#r48 z{Yv+je!>DBen;Q_)ua7*Cm1Nbuaorb275L0kki%kYz)RFfRj~LzkD@jBquHIB;BGW zZdSUneq??ye^X>;q<*30l2 z_OlE^9M+lZ>L;AWM6r#vJESp692$8qxyAzaC(^cRUi(-qYRm$y*87Tw6!JGalMUF) zR@!TtVLmEGn-zHdePrvW=5-|s*Y&S7t*jfh@B%}I7Rh&T* zS9I10)88k?g)nZ;Oz%o7m|SxQcHD|?)IP*Ol3ef~^^jBBVN4c-7{8^!X;;cOuaUUS z@Z?w&uMdbJj8|BM)+5(%jR#iQYY`@@{#hhx_>Mi**^o=Fd1m!Dt{b#{jx z)gXC?*n#%C<+RWBk;COkO1F*B=?-l17B4x-Z_3p}0t0s0-QxTSKUmdZ=4>_>damkH z`Z9thlxfYIlM7P5w_Gv~4mMLua(Aj-%iRz-aLLU^ZU`Tocfs#T8|E(0(ox_SxlTOQ z8D09=rUql^FeB|4i}_TDh#jiUcN|R{-hH?~q9VzY~bzSH3~icAVzJ zWS1@OHIZhd74UlvC-C;XQ5*oH-}SKX4PV%uJadd6;#oEbx02-F zA`LfHAuM0s8~4Vggl@{Jt@xqpp|+d9niV9%<>VR^z+2wlG~MV@BT5&q@Rn|U34N@A zVFPoN-Dz7#+q{q>j{f1`FgbLD-GQs(tO(!J^WLef5Er!-?<1-I0!vp5OR`mn=IMFY ztm{qw>jSd&Yh4tZEsDsbl(}c={#60W>jTqdL+MTf8f8B`;uT&N&o||3uPc+hNvT#= zjT|h{-#0UNy+9Z@|J-RlmwRMc(|v|(CX`;$&U1Rlb>26?HWyf#QSm0r@+wq5ES24t<28}Ud5a^0ts7e>aj z4h&q%Z>cRh)2$M}XO6~C6rF1vpnQrKh7(gkAYfXaJ=2>gWXF%}dv8@+CP9gMv!SHH z5xOt>X28vA9(Sy2@Wnv+JKv0kZ>n%@XFg)5qNT3)?_P1gS+NFXP7wvCa5anVC>Q7b z8Y>fm?RG2h@FZk{)qwr{hUn&Hga=ekG1)OVr-*=sOob0b%S>iam0ur^k}@K0i%ocP z5)l2a0$C53SN>x|e=N@WDdZJ?3JoTdB2AnGvN03PG)vFt%wz#oMex($&?iKY=w$QF z#&WovpnGu~;6$5iDD56CHa-qwXx_zz85idI5h+`0#iw~)tXo;bxaVlxrhPrCjt)6& z-ThcD5C$2bXiyubioVa%5v=a*5pj2h*2(kBVjbeTnu`{PAtK8)hgCTNZ3F6}) z=8OCBLktk!Bgb}%3<@KsWRr6CY0)Lwjbp0CFS4IP;Kb}|y%5rPO3<*E9NKWc5^+Qw z;4$N}lTiKsP#F_9ZE@1wK-NYT_oX~E^79Js7caQRFjCsL2NZLh7#FMRpiWS(#&du8 z&^e-fuHZ*b44L1b`}P@>F$za@*pU5z zH7uEwS4^6<4XlML)Qpwa9%_6`XFr7Z3)u2#W-56$;>yIzS4uM8mBqG&7!?$6yey){ zh+X{!J6yBAA^p#ZG2lS9T(RQxV&ln`U=uM5yTD9ytWU56hN!BFf6nkCQWbxK7Kuir z3uoAp#Eh6G4C`$NTYftPY&&m)E5AM|B^*hU^2+gK`eOGi_EXD69bWS?<4rE#sZdrf zVOreMV5c<~t5Wm1Lw1$JY&vu3wDw(~_8ilX^X44~wXwlC zAVu8nCq?aGi{?OJOp{dIh=xov$Y z_g3eCNg?I}f3zMk!pO@w|XW+hFrdqX20?F56n-g}FHF zdS-~TP`TS~`^mH|_eF$|m4HNL^w#N$inh9xMaL3}efML1Q1;~L@N^R{=I7wyp!U5` zM#p>UE|&2$tm!l2(5;{|<-I2d6m~d-U&UNU-mhXsA6yw6#}}9PwlD}Uq%|G=B~JP^RHXf`0Ft2ZbHaYU1}b&40_t;2l( zMx7ViXY@@%J(j;pNS6mH;c%n>J7HOv^Y01ZKYvF#AJm+wQ?$~gY#Ogs=*7gYnH!bg z9sblq=5Cl7<3=ta=;F*``4r|B`O&7S$9#U?Lm zJvDa`7%Gf|;^W{?FzamFLX*izD&Zr==RV6EWHz!@N}2@E-`d-tupg1%BWOJ=p4IT) zZft}Sd?I~T-2Ii?l`3p=>wTgzZfk7u{y6c|MQb&JAk%o6-H~FIytu%Xt>nXiH&^vS z)@z4lDQ}M}Un45d>aSMsjGvvqFPv+gIy0%>DRrP*sKqiwFf+xe+q8?Cv&9tR5w zOJSd`3tnBE+Pl!_o<+j)5tx!7_|DEp6hQ~64Ej<-T!{^9*a}%GtLsPdYhxLJRx|%Z zD+RdC&L0~^un&OHh7BKwJG44 z%j!E!Zt+f?Yl@sZ;tLLnvjwxJH0@OmNC7l|=S+Rfey)ZH za$POiRZ~+(+FR3NT_ssYuD1DKmUamOB|3_UdVj& zco!dNSh#!1p8lR6HP(@bg|Lv3o+4~ zBj28Y2gxRDOHNGm%ftj+V3;1-B3&-mODLKCbLSc8fpD%N*{PG+*zI@;ROAmv7hV55 z-l>O5nrG<%BWqD1>WbwZ6Zkt9vvG8cz+dguC`h9Wxp>LzOs*Vk)vQ?N;ilqo`F(b4 z8lAL}!PCZ#*l%Mv2_CiIcYYxJs>}>GW?J(agh|P*vPv#B6CruAW2>;rpHs1o%9;gnL zZTk8h(xYa~FRtphzmOptzSk;8O<^>D3Z-cNv|CD!0(k8S4q7}k7?UgHR8$bk3W6PE zF)^s!?(D_{_q~{e+iBun>z)(>e#SCh_z^CUa1V-5w08yzKsMnFY4h&5zNrGkViJSMIp&dXSPsN~_J`PH&=Pi=iWd zq%lDPRc%6hLn^~MzJg<9!|8y+m(f~kyD$BNu#Ow|o!#>kjy`O-oY^8Jp|+nS5n3Z3 zx&flFd;oX*rgltBlc}{aJBOb-cwBIN;+-skw;cxdp;TCjihuotV}AMa+y*Wb-i~>? z2TL8Bg>RNjzs{sj;j9r?wpkUX+TP-MXmkYVLwjlpL#+K30mb3@bO|;a^d!=jsDQGj z>g}DM?vq~$iE1*$P+5nh00a`2Hw3o}OhA1AYw1=dPOxz#w7yLo~YJ zg*iX6jovPBKW`J`*sI8eymDGqUkS8gxl;HE(1Tt6SRVs=R^Cu*o!{}!nS;mAAkWQ6 zA8zxprcdmoi?N_#QG$sC8QRj!uRkcz zd9?nRRot%(gYY@Z==m6FaauP|D2fQRio{VH+m-Ny9!V?|AOvcHkcRdEVh(18lEJMf z0UYfJT){ZAeb!m^Wim8*4U=kON7**nQ}I#pbyp$s|8(7Fzwxs2%8?Ijv3Xa~l3ng2 z-~*AA2l?s18AerewW1vroXp6>8s3|C^W4fSBfHRwdc7{kb2HLTgedade$Mdl21fN7 z-kblS-=_nLpTXwPiV5u4L4&%4I1UU)*iT)j$|D{4*0?AnNG znQmyr+!}yYvU*#a<*2p!xv9RTHaCSnA*E|HL6joMg2JYhroVZ??IzUTAUt+v+UEnC z(Ppn8tL^0gZWaDI5e_HJ=C^sBq%e!Q&@WYUs)&UZ+$#CKn)ej`GeFW%AK7S@)Myg$ z_Mor|g~sW6NeJhNTt=iGp&^nTpH3EV&P7`+pA!`bN=3)McuM7k@9{s2ee}uJ@m@`s zgrGEj9)j0^NIwgt{!$6I`zw@;27&eb9OMlY;#fM*ZE+o_4NDiJaB< z#}h`24(D=?ExL2ewFIctHmDW{4dl zV?}F3cxD!dlWxwD1>cF;N7)`+3_hK=;f~e$|A@c$jqCH~whU?P)8n>%#b1O9AH#iS zSoY1!Ob`l9SMXA*nHCb`q4GAt;}wt&=X5h$G5xxc5&iN+NU*fhUJFh3Pb8Ak(3RAM zqr3gz$GpXcC6NUdXY&9e*&Gd%q4odGiFLK1?j?OsWO~hwQPNF~p$sp-z?FMXYCZH+ z8tX~>Ir@gFNz>4By~30tI>AqIxqL!TE1whyp`lALEEP=zsqFbtm^hmgw)}K6eV$V^ z@Y2oma2%JQ%4$c5pT)H4pc;NE?&S69Xzor9{hrS}Te9-|%#dFc)%{--6@Bes9`2Zf zOiyzWjoIu~)Qk&lii=_9v=NH&v7XGGQ6BCrKIf{nd4C`?ca_Gv7Y-*@7rsq zht7B{bH_^h{bd%%&xnfb4S4DX^af-t--+2oED^sRF}cBpF`5&AvR1!y99j-0RVLWU zZ2U&;;uwgbg&O75ras~}I=Z}ALvV99a4W=;Aqcrq=#iFl0KPWb)&ZeIWF28d@Y&yY z=C|X7eF%3=?+)_14St3RCeU8J-2cQH3_(T`^M~N(NKr?Ed%TOE zWxX~JY+3#8Z1?PvTr~FA;y=5Wg8k*wn;jr_J?o(ZwLnU8;p8D_|=R3Nl z2jd<*<5c-E)k15lclX7nMiDW{#x^Bq(#)$cQpjv=Ho-4dk=%o`-pC+Cn1XFm=9AHq zZ-Yj{y!7|l6yG{jL{Ny?tV)W4yV%^_mL7*IX2WgQyfo9nL2|oAq-qJQ#oR(3C`PjZ zg9PH%7uYL#45ND6H{}HzOVYNZ6U1{uAw+Z|4P@^6 z-r172o%fXJ+cYWCgB4Z(W1*8WZJr6%`&dlDL_L*U9oeQx=q1wfUej)n;r zTvQ(w^|)6+4se9-fFqQX2#8if)rBwqa!Y3QAdme5NtGD#$1Ns}Yr&SAr@;vBdF@5a z^YaY3xZxDb+~GN-!RGCA<|JBb>Bmn^+0~e>vLb|R*5a`%%F8wcaAq>C*692fyBDa; z=Ty6se5bFxM@^gOE7&^wu_Wh!g#T$kxPkv-d)R(*g_mOjO!ja|a818`&vRglIELrI z$H`gP^6M#Oo8#Bv5RLUsiBZU4N6!fR(;dr)gijr|yjne-=%WBXV56Yq(dtZBlS$wF zzlvX@5JB@8BC69DiHLttxf)GJ{Z@A7(Z#TFb)VfjD|`7=_jKto9)>pr6w zPIVb0YC{mqLU_x_4Wt5l-C)4#4sNTR)igpsihg#XvD#eKZ2PP_V6ydUPDnG`>{@0G zT(5Io3w{x_k7H303#q^AnN1E_KW3k*@SqG_H{IPc2qoMQt`HeStMC{b9xH60C2%u% zUrOnCAgb-5f$;6f!lZq*&# zJ-{uK9QotVc1+uiRpVD*f6EzArSB!G3*F**QKsl7SJYZx!q-07tCa3RYH#bps1H9!O_7P6mQ^QngK6}n5{-vz?{KOFr9BNSK7HmS z=}MMbWy{;06SB*GrDDDJ<(gXmLIJlL-<|Y)axkf&hL<3ZSYdGPhCxUJ#ve4x3QU_VKzwH!cqZM+sC-QtschNFSHNU z>X(sw+rmB;f@gUC6oT)TUyJPX-*kJ^)|zO4>mvRW_2J*HpbhwFC5JjG%3?NM0xb+3 zBKR6N`B_;_`NFHTw^z>(XbZa~*10_;V$KJsrcR+!Hm4WjH4Z6s8+N7Kj&L)2CsHK|3Vc~10z3|k&5;#D6HUswl@TK^qNKzL)r(Vp#p#a5uTr>0ifb~J@O|7l9XXmtcJ>TWh-9yjRb*#mW{2!`P(~=e$a z?47;I%qC>>d%kGA-|x@o`*?i6kKeyNR9??<-`9Oz*L^=Dt=CSu)O>B6zVcDw+{*|h zQm#W=4hO68^PdZBKGG-oKC=itXS?1$)zDkWhBx5CjOoT79ojf^qq%W9X#H^pADnrrupK_vP;(gh z?fS}pUU$NQn-aEQLZe+E9w)VJLGyB__o_JYwUaw( z4N_F{matnfpJ+}qPD{h9c8%sm^D7fIb@yxsUGt73yLN40boWN_>;r@K(%~zQ+(jlD z`?g?~)8>^<&4PC7TJ4Imo)2@a{?$4@C5%9GUpl2vS>DkAU+-t!BKv- zI`}3Sd_dXcay+k~Z@-129)61Z4FrTctZ$6R?BSgG6QOAEIz8O_4I?U2Q|;5Ff;8$s z*^cfCN_;QuGwjP1B|n^Qh1X{g5kfG2)g=-|VQ*5caok3BVGT8nDF!X%I$ij7UaRmP z4en_q=%PUK}C}g9u&pNq8=lZQ`x<}KT}CRKHD>jl+r1t?TNJjXy>u0IsN*m#V0$7GDw+bRBnDVktdV-qB?Y*3 zI%iXiN;@ao(^BRwv~V%tq&PCHt;D{&?ieG3x_lehIn3BV#JO$MM<$J$!f0LXMFEbS zpz^+*hd~Kc6bcG_JtQ1s>9FGMX=0217|>bEQ$iNMbJ|@jx0?cQNnfbMd0J+pM|eFu zYd$d&2vj4E6X_wWMQd7=+9tijW@J}ky@*GheZ#K0oRK2YVDMdu6Q*b6mB>g#X4Oth zka`TltTR-&0?YBQLj|_>t&+IUb0wi$ujg6BaXjY>nS{86En(-EI!*kxfszwKj&mnk5yW;~>cIN1+gpug8Ki(1FQI~K)p-KN%^f@HGvTQNIv+CYfnevQory|YFhd{LLSg!ZcH z$2`YdKs5=D-RIE14tRpX6glro8*h4IdqqRLU z;A3vRIiT?PQzF>-IpoSx(TB(v59zRT=h+^J(-{K=A~ZzyJHdPK3woW#_bb9jXSLo8 z@&__&zAbo-`ARs>pamV8sU_{H!z#w%`nih#nqI^y5$l`Xe6Q)Bb|P=rbiTiO3Z9GT zyPc~=@Jt4r4O02N>+l>l4LIT!BQ}pK_w{6vD12cYBE`Xfj)GQF+>i!dvDW-0UK=9M zLFl099G$F!V#kd-D0VD>ac+~NVa_*S@2{LRh2XG0t=nB8!9(Wav?(D6#}+T`$Y zWeDnK8s3SrrF{$dZlmJ#ZX)o>s?y-J=39TSPW0Dht6uUL#jY?2TQ6oV z!#NLhD0GD$ujpeHpDBF?1hxzWt_oJX{cmXcVar0Bq3lQ`3ow?-bAA*-gJMr5i zFG@1M;5;qy&-4iZofft45Jvv}2fq>)MH1Zty2n@xun@pqa#sb;iH1CxAoZe+;PGM{ zJm-CCPCxIGWy1246SCy-00N{Q{ot|iNl+D#Ur_m3K)P3nvH5=1W64mAombz&Eg&<-}vdtedBZ4rdWs`x!;XOo$G8tg>yN+mr~8256O1TCPyQjZ!)wbx!E)HqIn`bD%~Ll zsI^rHEwI7-(_uSdzOPCL5fLWg!NtC~?U9imp!bGq`dnCm#GAp+oU80@Tn0-9Xj`lS zfv6g{3hFG{^K6hIU~Uc|=0^4S2!wYz(2*nGilg+BBuQ?C_^Lz9O;aFq%sqJ|n;qOb zvtnLTR)yJ$wD_Od_b3Ot!>x8=zOD1czVv110u^5fGd7*Qw0M@OmO&wd)KvQOQ}#E{ zOu(~MK%-k|{xX`6D}qb}y^Rkk1#U)5qNs1*Vs4l~0Nsc=H7T%-_hE9O;gB&CH)Z0vR_VgmuZ> z0+hM{J=%eIX}2Jcr||G7OkW{|jU3c51k)lp9#d{q|)>xH0r@GB_Q73%oP**yR+d2Wi$#7>2j^sEwK;aT3^@3a3c; zLOAo?2?39YVTgl69bG#P*Vuj0ddMz<3jjnhYj;-RgeyDWiq*e{icTY zn?wSF2o${m03w_^f(V}=h+rY0etD>?g)VG^hdr+E-v~kFe?tgGm}_LWK}Ea3`odtD z0TUif4rm2G@wFC_kW_py?Fn4YR%YzrVL9TLbrt#(2YM_k<{o>rO(JK3wSw%J1yT6r zn$lZE{9oR@e)%Q-D*Wj0{bQd$;IDX?2_#hT-Q@vWYQuuqlI>PJ73~GqKL^n2=pFpt7_cL+@hb<@dZ4o7WVYo)2GM7I#1n(*n3UWlg90eeN+ivjM6j@KJ z+}m;N{Y>I^nX{Pi*pw{B zGDgp!P&WvN%8Gu)Dk0`cY3b9p2<~jlbB)a~UqSo}=a=j;#} z;;l13(ep)U9fXiN*?{UZMP!7+pL1RGbBB7exIQi8%zcFLKaunty2V^{e2-bh{v`)ZV27{ zm8R1fuxoDYg;twQjiAboWA=&Z=ZuRt(L?lUq;)4ejnTOC<3C3AD;jPu|-t z+giMxPm$;Xjk^oXYNoF)%VWCAwbj!!Vk(Y~1)VuuIK?p!U}Pu|i02_(52kel#{*D| z&^^{Ja0TW$tBQPm1I-@+CZkb%LY=Ma#mh21;sZ-{^T0e;#v9fi6SG|3a&6Nz;`E#I zq!OG5>#CJM7l-E=i$t6>Aum^K+KWv-p#>)1+{DJ35<1u^G@WOkW}_t%-9)Jk$>zMMRoEOG;mE6jaL?*50JaktB0U#&9v+?WcO#&3(TmyN>p>Uu$la2MY6AXzJx%Wnji{8Vn!2EE{k~tU zVJ=+mvDh^bPu8uw)}EgQAf5g_1EDs(BZx1YZf!@_e^Ytv_%ivv#ed}0A%Ek6pFj2i zq7U}wRrQ@#L?2R6^LgKK!wvzA#@+wneNReQOuxktIj%1w_)=LM(~Ov>s@)5XH?e$HNp43G)gaR%%Mv| z>aGhdV@JAT`@++qI3?kjT7RdJQ-%IQdIkH@8i$vyge`( z^~BhWw!mweU>qt#rttR-QGovI{7m@sJ@EY^f$!H=Z}p^aGd?<-m)o%88-TN1DwjSL zG(&Nf2?(muS`s($1GAp_5wia0+Y4FIJ$7fz4BodQ-aTLibA7Hq$4QtM_6}W=M?L8w zzF>9&A6*FQqKj~C0yaZ)vT#XKg(q|`Sg`zZAA}JCr(w>Yz};a|0=cpb%fB$x&!;P%TE>Cd3AYL%Pj(uyWGXeX%|bdnhlwLAM}-va66n$ z1PYL^A~I*AQ<7zhzBv;g4NGSUJuJpYpXkUt|FuOL6?TRAK{~jq0R&^Y7Rbxi;O8fi zD=ZKod3Oe0Skk9&+Ev)hx5$4U!nLBs4xcF(LiYj8O?(5q|i7OyAU4d6T zIXm&>8ZfO8!$uO#;4OTYhz+Tr{G9-FWkZ_Q=13-3j8CK~JsW_6v`5wz)^a-6#ERMvkX z**;%L6E?=rckcY0g>#>LfR12%$R8a|7{-tNagEN88GLul+qR(w0yZPY3lY*h3V!0y zeT`B=ncwW+P+}8`(UGj7i|Rn4D{p1Lo0c+-M!5VFjsRq0N~|?6fXKA$N7SE#6BCWu zI7+^MKf;PN8k~_hZh`-Re_^GWjqb_PPO2|N_4|7#qS@ndKBi92MGg{zU1mh3tLKyW zEZgB7nRV_#Nc_g%h<*1;!M}lc@;`vMON!c$@tvKYzVzN)9!-GfxxRjJkWBETQZoVh zEyLXNIj<5~iZXCsysEK3hv>r*ycuhk1hNWo(gtf3+ z0E?IbEVAWP!w4m3V0^j{j88A@098TzDGq~wupJM2B12d+Rc*lySA|iZo^J5p&1C`D zJ38m`$ErPs!T99pcrsRpvm8aG%K7J9KDGAM*-%{eZ)O(gm&-myML|n?+uL`;vvsn9?fCvu`{>@WCjn5E70{>YCB6{?+ z9WINiAO7dmEMoB*W`q&kx-jnKqC7sjkEQ0L(M(Pb30X?lY1Z4=B`&%rpUEg@Tf|W| zS5BCu1Cj9~-71`LBnqT!wGNRvj~0-y8UH412kZZ*g#E|>lJk?~XkLa0e`dOcOjI#! zIiI&S`wjLNV2p9XWjx6*GXxhk)*B+DcvQ>2JnzGAbtEqPEa=H>k=2!dx>ji&B> z?1C=&$a_VpqwH;NS+?f;dj6dw zT)VJ~hz(93rHHz$;o!t9z<$sDNyERUR}ip;VFxg{S~?<|Yp*`+f>*B$AA!C88ZnLz z!3oI?Ipc5?6uvXu#umLnUHFjYe-ZA5k3PE-`8n?%e8JDbO2JGPAHDaS;bn*6BG~B@ z?T~gUa~f!unvTR?hYyKoODF&~Yt;K^~12q6tzSKz7|K5R%%-Fi9H$hiWSV4qI zNI^?0ecX;#R)YJJpnrcXN?Zvw`puHmv}9{Dws20KKbUCjGT+zF1f;*gpUhrVpQJ=3%(P5ujXpe$Id2hj}bhcg3sC7vYo zVFu&vYBR9CvzDReNRwNrq$G=Pg~){NXqot1_>of@pxkA=54SFQ9Kw6+!Clu2q1XQl zNN)hYvcQdw#}`$HA3v2~n<6rN6RkVQ#B2PCSvv;qXJkrpTUr$*&fyDpc7a_gjyXw> zI7wv4aRw3K=8NdV#U+i70w{cYllfXO^;ULIk$}$q-F!Tn-5A3o=H6pey2uW63m8|1 zo^lv`s1qHmx+s%=FkZStAjF~R`!o0Xz;p7;xC8xhOK6=cort)=zmNo}Ff98LQII!PWPQwl=O-Y;mS^G6UCVcXb zxwx|4?IMVZUOE=5%}*4xp*t)IAE=T&F~dwfYVu+NMROBx4r z*u9YIa?jnTsSUcxeGnMm==;9}apf8a;U0ldY4 zT(Ni!`n3`N-Y!V^xDGqGV|bnSW}+f$%9-cJNl8N_tl!eQjK12TIIU4oBP{L+t{-D? zka!b8DXrDoJx?q|vLuC1g$$KO`BYp4PvY(n8h+aN{eI@r!u-0%saN28FU0TTGE;;9 z&H}_~$MQ#K{HJ{YH-;|DxUxM0-RH;>FXgSkn*TqwbaZc6ud-XeX*eNneX88!>z85t zpNc(KlW)MB#i4lu{h-pKcq(U98p%tDaA3eLwPxxF);6AMDzNOYZFXoXeS}D+g_Y`h zUlY1)#O?)1j{m^X>o-w$KdBk-`X#f+-j;Ew55S?~N>Gg^WILS~dLum^H=Cp70|5!5 zmi{*O95>w)d&}V15->tH#|t<7a1nzJz(;7@MB#mUjf;o*GPsLw+t%I~pUN)Ue>*ldB2uR?lJg-iWpC2FyNS$naxi-0 zwSyb`MRx4#PiGVMmWDreyHxGw`umG+hhTE_t32J>Z$=yMs$mp{cPBeTZIJoXTA&|Q zoCa~q{mdjRk&XV!C7AR2TUYyYzPR}4k7SQAPcyaeXR|r7%NGu*W+Lo!P&k7&xH6@e zRA(U-_uuD75VQg4+)E=)ZA{aQ+lyqt1}K0w0K6}L9GKcB)A~7`XCk~(hVJl%m1Cm- zJ=Qikkhkb4CdJ^K_mfdLaUiqG3tmq@D%D>IrhH!QG;iA+nxmjRs@HFtj^^wM_58op z>#_@&9bJR`g9bdzuqn^ey-tI@LidCI*f(1`0}Us>%qP(9F*?r0<|Pjj?hj4wPOb6$ zs7%shh_u}cM)Yxq=6f%CZ?v4p*tc)Zq#USkOquU4>*<}S{n>l1?Vdx!j6b92%YrlC zx-TYZV#1Ze$sWB{3Ic)Wl@UQ>;c?(8Sh!*645i#`ChVGVw5b7)Ma)p-dc4OIM4yAz zr5n-uKq!P*xxcwF?kTq2?zA$P*Pp>89-Z+v#12^uTF^?wCHOAGNQc4EhY0S}yMO`^ zJ0_tMcb+19=w!aw)^1*89<)`B5!r5?!j3Fye-L+J zaFjUx6&_zbPxi0%RrbG~ZrJ(o`J1Y!~*PzeNBpTa}urz%d7Q(D) zZ6VL81h+2do9FSqt7?%YBC09;@02k`Jhqwn!)k$NvTPbUVlU{i=?du==J6lPlqKuD zfU=VBRZt`Cfg0&5$J6``@ZC9OKTVDq|0d!w!3sc~g9&|v5L2J&sWQF^iUkkv{eFdR zC>lM@_4@K-Sx1O5B0bS@TsrT*DZ{2aung1~CnmWV+RZ7nsn~mMj4$RM%8^o(zq3rT zaq}`E4WX)a(p*>`Dc2QoUq_QFw?_(cahDOhCXbpnTfLF>x%Qdu(&$Y~3n!-&86@4Q z4@`0^yi5+yYO5IUQbjc*YWY*j0xQMNe!C`7&-;PX@I4?{M;J7So!7Y!nDP!6%pGhBZBsLfQ7k~qusV#PR z)1+dnKbghTb|XKZgEJBtPK1FstoM=V?>qLN=Ptl=^3>j4JqZ^iWHXEf9D*`OfL13n zRzt3gUz(p4=KMLaIG*Dws4itr!wtkSo&7)2fzWB$ zaD)iKzxBm}3SR^+OUN@T9XPGmddpnHi_OnWV*4Omg~aAdrksQ}lOJwpJ5n4Rp$!-Q zq=h6fBtxI18^b?}=b+?_s!jHAOBK`V2nb4cGHeEKyf$_| zMB|&bEMGr`$+Y4_8qWf>#EeLq#R`J`1`ENe%e{} zSiUQ^^=Uc4Th|zwU%Kknz%z>D_K9Uc8XtX{=<=ESEh?#TEw>dJ*79Ly&@e-^J6u>w z1A~}8iH%GERhtBs$Z$T_hW_?yiF%^vzau`2@2k<1*3U9hh+$btpdp}y4Q^fax-njs zhx3E*ob*wrjVjaadfvC;e5&{8tE0$ZrIPv^33%_*T&&^do|#~ zXMix8_zXwE_C~2|02T%>-01Vh!y(CdJzf(X_4pSl`wIsrBeuNWvA$zye&D;>++ z*T3KY=o|aAWoqiDMvjetz?KzN%7>iGm@pbx&selOS55WI`8!QlQ$8A$>sAgs9&R+K z^vuK^>@*8zgtaU$dM|4_)|M>Xqp(Ane!A)*0Tn4EFYdOo-mVS+mC~A3Fdp&(@Hpu| zxc}l-hrglkqN?CS&quDr7_4e}-&cpC9>XqwFq-2+^&a~$vx0#|iXxPw!WjS&b< z!7y6q^9RnNm6-VB;50B=5;}S}D>rNF{mJNB_h8X_n=cmXEWjrhzY{VzC$*4s4|kwU z)Kbjot@9yzA~DiKQ*%6Rw-NAOOVU5ut=Et**c=%iE{`1HtLv8aV*3qkS!CS$8$aBv z56Wn~_ur*F7duFGKWy+wau&O~TCu)5bZy&vSFWnSD?=^+dT$E#VUitn;xuc@-jw&A z>_S3oEA{9)>-lF=y{swZBisfwJQ6ebLzNz7JFPC~dwtk)R1QAp#7b{lRR#8hS0BDM z-`jLw5t__z+tN7Lxs)Tb-QctJoaMlK+2`^XLJ7Ll@E;*Fue=gvh#>1K5Uslj&%7jH zdxj%a@jj9zjv$-!)9WZ|B89w#ok+b7gvoA04F>=Exp~*Lx%qdz+W*X~hGD=Fk#udk zsx>il>&Cot4?dwGG0WZ1lE

nfzhHohP!z2G+e1bYwBH{}>%MuTjYKv9d}nSv)z zafImiDG7hQ<4k98#JH-j|83TsE7|`(DJBL^?(R3n=>J^~O)1UQ?~W~bb|Y(3e^SGS z;ZUP}O(vkybE9x)JY@9Z#iM|BZSqa2*M5nh`wBp8RokD$EY*@Ych|`(;hEG`*Z{ z@X>D0$5o^>Z2nnQmN(b@RFVDG;GXF6rgt}~xf;v1H{CY>&xh8mt76L(n5oTNpNr=) z-J;Mo>YfW5qdQDd*xMgD9PniH7w1BpTlBx@K&Olhy_p(x_Kq~so9GL&N3rDLDOfUd z#%<$f3WSz}Io6mB(aMS?6;8RIO!Lk&*@@BeUuiy-g~00)nzVyG5l5Z70{b>r6vlsl z=NdbgB&nV~Gc!H(!$rhwW7?|Xr;1{e@PWkd%vM^=#1G);eFCn~CPpl&R&n~69k2){ zxQ?L9DpQmfT`o^dVDg_IcInntyW3|RH3OwX^@#*+4Wn}pivwigcrlm^MreU{H;6p` z4;U<75qJBdSBe!9Tn(}kgs&I?jL#~8a!G|oTbw2~q~*Maldcj1q|VntOdUF8(va3= z=!9^M$;q2kVC7VJW?J@$B+jP>(dTD%Sv1Xd5?ppXSgOgJH8H4qT102s1Dz|a<0B}w&=V+I$*42twg z53|fh0Wi!V@&-k!RR!RXohSMPxDU^j0=}uSpYneZd)J%K^=fjDjO;u&iHHbkob~JD zn_Pd_zA2TkKVU3!u$1(%`;F}RgsjS{zI*z%cH5)8Ka%JVl&MGgm%C#q2uIVDB~qS-8~r=vpr!mfpv! z*5&<%`Pq>knwQI^*NBjlO4yXlco!n@Nr6k<=35lv)2MQ|z$6Z*5t6tY)h$0{tM=f5#Ax+06He|hU@1E+s6zXz&V226+ z*z(Q6-2|7TTAACc31jNHx4E&J;+Fkfi<<&bZgc(rP%P&G3*!F><&M;MxHf7%mZ4&K z*^`_Ov(Ynpeo-_`cY@ZtvJEZ4PwTZOu`$`;alcu`=SLBEVq5bSt-#38Q1$T0Vv^w3 zcgytG?M5nQ7X@U#Jg?fnzcIP*V<_dZIb4Pp=*lZ|;P5(1G?zZc_=Id{ zNpHT~@L2C@*mlW%WtXryvw5gcW>B-udiYIDgIm88bC@J7c!C~Gz1Zet!YDojWJSR7 z4blSq6u>77KTbTn9VU%Z=O>aII>U_Zpt^O&0~vZtycBpPseC8Ud74?6Jogun!v);8 zV}{3pAr+H9d4ad!nFOlwxdb6C!Sxq7RI7@pGh#_NAk_Bt3yd`~>w$;xM5~ z)CC6vnd+2tuu`cTC3KNM|00I;FMI;S)0{ep74D~_)ZRtb$mS{rC?gEqr&qWNO{SUe zf>^y4<5BG1$GD3usrxInW`F&0A&md=$AySh-sRq>J9oBZ&L#H#A5e@J)Y8&2?_O2E z^QpH=fB(gKZ=uM$mHQ2;t`#&m9icOIVh5YuquxKaM=t6m)h$=*c`bV!E++4+P6S5p zeczbn_SP2hIY@KfTmoP?W6ogz+hH+lh>*>JdOqIR-gj9ajr|Yi6;fOC!huUOJ1dWS9Lw3yxcNs_ul&FGQC&)M~90(sR15&^-(5kPY|bXiF*u(%>R#XrqA0%L%N#={N~ zMbugQxbr$k7eI>;M)Q<|-B~BIaJ?f7?`sZt7tX#UZ8Ny(lp#ru7fHC-Kkv#kGj^GN z?T4}*zxQdSd=}|qRq)l(q@quXwLLH0^(8;LR&+49FcC2jgFwITV)!lQAY*O#!ei5I z-raFTA3P)$g#%V_g8pt)yf#*P(LKC4xYvC*#9NY4^+8-Y)Y;Ir+~xCv~)me{n) zbV_GR^TyAJjrLmUp1Mn#Dcb?lKAZ<2Ni|s1$C(}2%wuM`pJ4>6ECzd?*Okq-MfAIl zENyx_GzuH<+HGXW?rh@(u2^pL%JKaa=&JfQr_sCZ@koK@^!T>1pbawWCN{ZLTSs;B zgs&Q?+(C*N?>fbE4xUYi8&7Fje3KUfY*9VmeBsk~TAtZ#YoFx{8%eovI;9Lrk26eM zT9;zsDUk8iqvDx72n_|+KR>=x4lREV>0aIH=7B~MG%_^Pj)L}3&uedHc#g40f#v_g zq&QmzHT(%h2=iqmxkkv^N>dPSWzc#R?F6cfgfKa+<(3_I56||0C@-J2m~9r_+47&0 zuiI0SwG-KMSCjTJf(zJTc)fQv-Cr#e%Ng-Gq}AHEG{4{C zyYI5OG(0CXy06jOB|DW-?btQjcvkeFwM??|`777?uexTq)CN*@d#O;147k8=WyM7& z8pOz;q>u(uc&tu;*AJt#G>wSvYLLQ}GUfTa;Dyvv<7KDo?kDBv_&N0?<@~d1zrqaL z7cp)WTuI`AX^1y=)0e6f8LH(KE?6+Nj4Ql3XDa)No#SJb2_6hgoo>B##7g=S;jegd z6l6{Ep+Gw?4yPjY4+7a(ck$ZXmTadT*%9!a;sAh`-!ETXmlnCtOA|s}6TD zR690db<3hzld}27+XvrO4!XMLdjUyv(49XF>X2^&=LRmSc^_0a9leIPq?0SS8x(6;C1RkJRlQG>eN#q6Tv37knHYHWa$suDM#1Q#i zlRM`qb{HDLh1FP2hVDusw7dhqr}|@a5Pi>z#+6-pG$cRQ(DVJy+R#rkDUVfiFEA&Q zd^^jCWhbvaZ3QeDsI!8X^b=`;gIV|{Qsn4ttTW%n@}{9K>}Z@8LS6(l^!1y_eRm|9 zsz=R=$A%e8`k;m}D|_op2P|M0=?w9mUK z{unz8y{iM~k6IOveB94;p;kqch_Ee&1UdW*fV>uGL5xe~@!-30D~b{rp>S2g~j1FTm;8q0cG}@x_MM5U!wGu15j75#uqJDj%d9L~ckw)xwd@11n-s@D(iq@9D$BB);@RAQYj?LmghPws3)O`Cv zI&^43cZu*tC=L7?SH!6dQ7&ZXjpT4tXol>rVL$_!!K0YxY9CkP8>yw}y?}kh;$zCb zF}tPE%$G1iT>)j5o&t@zvt7#T4w=1L`gM2blX9uYFYcOohImyw*o6E>{_1>LU7g;cjm&TLv5j{J z#K;G4#*Re{Jz5elzK!>x8W_Wf!aJ{(gM$K?yt8){890@|z-?eC-2p=7O(yIuDq!Xh z09x}|<^T}{@YWDA%LF&PTF2s`|4==5xU3y-_bpR4(;z&G>UdFNON#uaC@+m^e|GEOInb@ z_qphf8HC|KP5c(Z+6_LePEVW762#Gh4iDRr_a&F`?$1hdnUyzbGXu@cW?C@t=PdTrfhBb?7erL zBz6~{^$iVGJd;UU?Alwb>0BLNqThC6St1#qUpqRu9tSs+4JpQ#wf2nXeKywZvV69` zh@G>g#cV2X?9=Yqe&4j%gQDm{tik5h+^XLgIN7F%MryBS)tQraH@VZrX93sjMrlPy`ifegW<=hZ77f0pBOGKERjUc(oVao#bx*UfT z5U_|4%6mNeL6$Wh?@-9X-M!^hN3EXk?ZJ(Q$aD*77bT@kbhPcYKpjQ z4>d)|p@wf8sW({Q0GSO(t20j3@8F(?k5nrV`0WDPc|=837(_|MXM#4ym8bH)6&EN% z_6@(0I%B6=-;ce@xk+vXE?yg65&tWz5+z>5NI<*(LT`n|kR}vT>g$-WG~_R)GppWx z&YUFIB!xLkYHu)6ff3FN)}W0E`b9(KQ8SHke5=>OQJi8iW8x3uAhFfDWtL**ntvX0 z1ih9;_4Qx(oed_sd!AY2LuFo2#~PCu(nJ>360g_LcskC9l`}ux1OWwWdAP79RQ3_X z`QdzYKb5uB`~v4AecK1ZYlueB`+Zxmgozk=h8Yb!^ip-4mWPv{_ItLMt@9T~De9>P zxGJ*C8MWRnOXmR_W|5Dyg3XNQ`#+OWDt!ln^|>}Eo95#z!JETUiGZ!MD|oJzXY+OR zn9_drRA<@9(XG5>b+f?k#@AJ)^7ZrEooc1$!tB-r(-v-5+{mw;SKd;!*!2p+IG^9` zaNMt%*f1&Dr?}T*A`)uf;Ayvc&&O-}<5WH~egOr?f#}sFV@Hk@n%02H-nv7<1D%yY z5g&FRs^!7`k$m^m!h(v*R7}B|MO%5B(4Aemw*+j#I6|-9T1Gap0bTO~@R8gSw1@k4 z;G+i>@*m#XE*MbFs%1C6j}H(OQxYDm)SSlYrNAwXnu?0}v;P!z)rhYDJp1v|Os&gP zgcji?jVEzH=0Zzop9B;?Zfi$-8?>B_&7Cx*v>;=2lUK`WGi9P~gMDZbolOaMy` zO&jP3$kv=uxEIDueiOY}_N@X;IaKy)aurdKWO#PSqUTlZZZ)CiSgM>|8g23J-#s{l zk9z`toAyus)#&V%vGt6auh$W_wzemWw!Xiy(@;sSAgkS9f03fjtzT8RFLf|^h0bkv z>-)rc(B~>ELM65z9KZY|A%79zeSnRdt8!SPnNCy#r5HY^=-&cKJVY zSc$AEKTjF7`T#MKh#n0Hoi*P54S?4hGs_PG@?L#(S=JccUMjmW>G@Ss$X$-oO^)5++M)j_VivE)C&b(6#r zu^Fjdh(MeMy(QlzP{Si9h*%g24NJm+8#9B*5I_0WGkb!#M4UlKhiVFCx@^gO<3ok; z0sCLT`WNKrpeOK2S7Bvm&`!qTFb1O!VTc=Gn}oim#sT-;MUV@DRbC}zJLzzBBhwu^tsJkC;$2&1|AlJd&aQ<>$YIff9)JMpq`~m2O z0~bqF%TrcbS?cny-)G8NROG0y)Ld+Ob^g`m%cBtqR!dEL4?WcKy@OuJ0M8Rckkpr# zo8A$B>5)2!9AAT3yx-p|-*~lVTWsHo_fYJR)^FY=tqOBE`lO2Q*;JAF zP)CI4#(t?x7!sb%(C#UwqyB^GG|-i6te+YYS!5IO91{SKaoS>J(7YB(C}ypqR9s&K zK3ayD^A-<%!HvjExJNF}-xiG27uaBf!uj>U*FZTBRb`i_sUb3aL8?38Nn}ho4NPVb zrVKyrE17)x$=isgEc(`Ud^B@MJ|SVN3~KlanZ>kx6eyHdKi~HI#{7N1MF1$9RTQ_H zTm@w%^S7?!0JW+>t=#Im4X2t%L?$M6lUO^+er%~k4a}Wc&@=EdFgYIT@H1J+7V_#w z$ncMcSTiuUTjN*b9Zbea|2*HgKwNL%9Yw;c!1lyl^~r@S@iR?;VC6J8!5|kZel_8B zoHUW{@sllvEeO}robny{$yOpoFkt}Z%LOl#=}*^t)Wc=&1bLYL!F`A~BDN}$9h_o9 z!=ekI#yfEp_@41SmD_PjvM8DB)VjhDVA0|@{`P_%b-9rVVnc<{whPb8!3>s3sMSXN z62g^?JuPw)=GzHgerTDReM3gR4J8I`C^3-5OoiEyjSLTc<>+u>=nXI3?H7BQR_Z7^ zL|))DVPZsWl{O;2D9s(~9yaBqSTfQ-K;K$mS6kL6%h_A{{g(;jwhS0JP+l=Ku$6Gq ztF|nR(8oqIK}^IZyQS*6;>5DCM|1k+s_D3C&!xBd>FOSs=Z8Nd_S0In#v^Rj=JCxf zT^>{ntXGEQmwDu2L`8-6W#mICd{W|Si!GY$nmq^ho)h{!9<7?WIB;l(@!Hz|KID3C zwQ$>|g_hO+CIM@k&v@d7r_@NWa$@Lxf_fBC$ov@y$M-;rAO|VJXEB}-PC;Z?X0BD7 zBV|@&s#m4zXHF5LD*uBm4rj1Y^7Lv#4|6)C8mrs?2mD>--Js>-URXf zooTN?!h%*%e^eIe1hhFCgA4e!qZHvDds+&)4&MCzj(@6%guqZBC$;{qYY-SwLy)BX zC~Azaxe_xq4V)Y8dMjd#UM@IhR0z$JTQ;%SG{7@b`nJX)H@kbF-?xIITY1d`JR+ToDd?s zKu@p|)Duic0$&J##@2x@6f?C8FXVU>{Exa&#Kpm!sQc7R;waNNaY7^vUWboXf6n_^ z5{XvT!uu!3MxKHVw<`$~6QWt8!?HKLQI^K{-3j@MMqwinu9lGb9ja`i6jH-y6zDCY zKDO3d+rq7b%Y%6h1`vIO7QKPrK@mwBcX71E)m(Fbdw%Pc{yG;~yYG$W*~ zyj{?!^8LRe+^W`pBAn0Os-4IA-7>MACWEEZl$9z6DTihBuY{O=7o%ENMMPl3@70>S z)UjW~j{SWbkibhBT){1IHI(}WANIp*HG zV_$S8gq^h^N)zh!#0jhw8BF6A8O7wkRzq1_%-}q2L(m3+VRTMLkBJVj_*%nc zIO%aojquf(j-GoZhzr7b-Vlr(Cxw^}e1xl96mW_D$`(=L5V26yH~}@Ktd4;0(Zf!h z?KpMXmxYczjKvOXAMkA=1S@Yu*&DI;>g&GMr$25=p`JA8%GT7)9JnRBk!RCA*99)= zf>hcnj7Nf&(z4ro*`i0ZPhsNTIZ8^?i}P0pt9IzuHaGfvpK(_L*Z3=HnK)pc09(jX z54KPc59a*kVpKdM$8p+gu-qo#M1YBG&kUaK>CBkcWAv<>INg zBQ`7%_?Jpw%x1V2@=7b1}3n z`ZjHWe&Lz_VQUxgOQOwicIb_-4veOfKaN8SLH`=Yjo(SouJnQLOxQ%b1fM0ZOpelM z;CP&ow=6Q7*KYm@xnTqvD)S5MCq9@Km0uoLN$wKrRADNVFy^>LM{m-sGHF zG?l{DYzM-H5BT-Y(IGxzju%};q{THu`p`z_A|!wN8X+P{1HNiLUBW}RT!qlO>?MC6 z&sQ3WwjjQQxc}$?^VRPpoEWsf*}>nve+=5#PxWsANU*L-e;tZD{X}E*5jL~PU!IuT zbkHP;2KL7!@ zWdZBx(wa!W)C6O!NXu)&x`dayYlbf;80(7K$!pj87Bf`@KghljOu)gtPDOw27CqLC z4J2ZF8sPDB+auRw^EKkXc{TXLhjzK6M)y{PYwhH{%GXBbmq^u>Beg*Rvv^}pSU)Bw zZdGd>|L@5FwhuK=-OC1)(%x}6*;7|&iwWc+ai|0u3UhebNGBji33RQd>44iSJ)CbE z%$~^!#2GXaDPid}M)aMnL%uQqMA7HhPfi|ggQga>mZM6!hsT?EpSHHfT~$@3;X8^2 z;S?~M(@8Rj4VlcE#(WU;+zH?6_u4r95P3AxQ z=WpO3%$Ny$NRyq6Sel}6I9Qj>{kn9TG?4 zu}@b7?5F*)?+|^T-;67M?gz8?SP11t=^%HQrMtO@dIP*f?0(vk#ORkC_ zxy-JIO@#ZCp?jTM&rIxZ+iH|JQkFy~&*=@$c4L+|4rp@D)1MLQA-CkVr@nzq&kR`$ zHJ**E}{CWM&hF{-^$}E2VA!; z;JW9H@X;ismoEdp9?Z6~_!~;*l|}L;3RP(fyj5(^CTiH2hX0vP(_(KqGkMTGlrwZ@ z;dto8`^7(c&YaU0j)Ood)^8-hp)+ROb~Iwqm|#qv=VZ;b9mA=dg1O1R zV`dwfQ&a4kTEd$_lSvi@)MRpn3dX-;{Vx7HIgE4yEa%ag8@mU8B5ZX^eqzXyhX#HX zRw|?D&woS&@g3UIFc4_b!nPk(yUg}#ZWi;7fXSU1<)9G(2velTW{Z_%(JF%DnCVI0o)>F#H#!@SH?awjjE2Vi>=@ayJ;5Mr!;Gmqi5H zlVAe2F*h~wQ^A}kKeGkl48Be^iflvz6vHT9ErXBfI~AfqxHs`_d4G}DPHRwsWNzeZ zkZoA(*Nv^Mi+G?)TRonSd~AtYK2iL^)r|2WkAQE{=Km=gks#O;R>l%amO7*~Y`M?9 zCK)jp|GO9UDeeS+I3ghbfh1Atfda=ZYOtid4FDb=CJ>J}xfJmNwa>hvC&4-<((tx<7rN zPfkww$~Z25@)+*p075xBMC7&ebhYP^;VV=`g^$DI$ll(^S$m8)BX>pYj27dAkHh>^ z80W+C-I4!~thbJ;dh5Q2;dm5~4y8Ml4oT^5kW@MZK|s1&=@O7GN$C(tiKBEYNSAb% zaOimV!F%uX`;PZN$8ZRa{n>l1xz?I%&SI~vF=5d(U1n2hnbpA=p_91=Crc^cNf$0! z?a~_4vNzJpB6YhhKb^|4s+1-Cl{wHX7zC1GjV}x+ZJg!b5)Ng#sNA^wsU>2GZ!;v$~u{|x%m@(RZtfjs6>H3Q;W965p z5iOH;lg_BoKl%7V`ptNo&k7~#WaUREQnNCKL|(2jbre|pG#cRNb(S3%@-^RKMKPEK zmzU+e3p;ham@!!9!$1e3$0wjZIPw>7vH|!j(iHFcu_v7uDjCq~@k3(Kl%<39BBn4Z z^f1S#2~@{8_58@S2OWxPVo0SqkZ`&C{~=N!e&wC=XlZeP###FZ3&I|XAM7HZ@%ZY- zDEZ$N0M2ljRIp-FB(w*p1Yib}VI)V=!OD);$b?+m0d{B3woxl-EkLSi!~nVWWqru= zZ=!71-{!f{!>>)WCTiyr-?@_>8?LH2h4$phawqeU6Lv6-2U9*t!ANcC?l+p^rOX+x z0|+K9w2sc=z1(L*v;t`Ok#noxy0%R=D6jPpRf| z&sCk9LAfE9jWibFqx>fU$)^iDXzAnU14~EGP8L^9rp<+zIX?^F`{3u_qnYNhkeBID zHO-22<{j`$ZG1c>W?hs20gJ&lOuYQg;{HAK7IfyNT4Rj7ziS`6fUtB4`x6DjF44Mq6C+wXkICvOC1KjJ6QARvsYCx$ zA_4TNZ0PX3IChORC5YH1p$SL)8c=+pf%~ zG~>@tKJ~Izo_iCg@DAj1=3;E8wd)tC1V&*#@pkQC{I;tx_k>MkFFC5BJiY(BAqy(U;g=Mh&=!%qw{ZB|{qDn2!ahBG1cyOpXHcL7xPPzsFil z4YM4yQ4pufL{f|c2SI~cnGnIWq!efTWFQac9rAyX;662sFya2A<&F_!dV?k?6e+*~ zoLSdGXc8`3C6nyCu)o5x6Y?M552Z^CPdtBokJ_FJT*&~K8hbjDP|iLieohUnMrP*? z=Ac|3RAF87K3CI!g2hE-Lq6m#$Ew})4SPc!zaTzZah2f&Q#7?#$;f<_JsQPXaFtA| z;kA287ObyLn0O0Z$blW({h7mVz~ati`HWjp9rgt#_HqQ?l4mQ6)uVT8RFPZRa78hD zyt=)pmR!A1{PUotcF+M=NVygqGpMtMqEEsrhKNrHEtB2`p*c9a2$ES%$eK z4Glk>E-$t|Cv@YGjDF(yT_Racd?K~n7by>KV;9dP8< zOYxu`he*zUlm~~v8eu3%Dj4#Zl||;^%J=&!jfk7iCinMP>wilaZ$bb%y3g|X5n_hO zpMXS(^$D+C#0z2*xUHz`4%xDH$tBtsIMZNHK*rzXa@nLf>1Dqr&TYh5$4L;Aec9D~Q8L zdo?j)o9pVmbDfyme19;9IfPXf_0*2s%VJ6Z+I~ibOL}^Ud ze;8oV-CupBM8Pi6_g73Y4$y0}!ks$e%Q8+a=QVvEeO@oFFRW=%)_!!`o#A zGtZA3eRYe&J?FtC6A_D3)WT^b}1ga1^cXhc-qi_TX%(!Q8{9a>*^Ma;UFZ) z-)Z-GbRkSwBRKFZqc)JdWjK+M*Y#thZ*pkURT0g7+mv&~cVVry5uLww#Cw#?Z7+Vg z5GiW57q^(hj)Xq2{NllCdnQCYhbLOpe5U*o^NrVobk|hLwq%vJ{=XV>J2A-xade@` zylphSN^x(&vEDP0unL2QPm*=eeQwv18^qxU$9nV1nJ81rKfw)8Byvd7|D^{-xqA@o zE^4`Y1ikRv}O2|^Q zOn#ten{odYx+uuN_~OigII`@=#6&jJ&(EVj_KIanPG?8k^Wz2Re@<&FO8FRhmPMH| zJ=CN9AmXK7?8BoJ?Aq>~!*1rY#Py4BObEwf zy&ApkDOo^^Co&2of)-|>tKTE<&WP;VuJROvEkTTvG&fl)u@Uc0#x`Rwk>w8`S3gcV7<9Da4 zFyq@i7COo^9(Y=FM!?njZZJV$&a~kI?Ab08g*N7^ORSE-=@kdH8)ygC3}!1@k=l!*dC~L6_^-a z+A!2KER9?STdp9+_vgr)EKhX5)d$cbDF2b1nmI^z<> zyi1W0bIJdSQhbo0y2_~dklt;^2Guoi0!zzc#!?WQZCsN@>!%o{_66M1#hqhvVaL|hi3KF2#mjbToreI0G;Zwgc;=Lt!R3;xymMA=%o|N55 zBB9TKBqvwYcjmmO@*K5TWv2G=)8Y3b>A+qR!-B!(6${lXL{f_d#ByBVane60N=Zq;N*Mw+4Q|( zidMy*H2BKg(+d5VdAkFz+nRnJkeK58q{cqQpXD!?ch6^1JR(^&`19(6b+BuaZ^%@R zG}?`{6O{)lhOg?|`;a~=SXUd@rc$CT=ovc^#CPLLw?iR)46t1z*DLlk;gUUI6Ve=y z)CY2c1nRPie_4jtU8m42twhO$(7(Fqh--X=|GQ7>%7%#eEfTX0M);{e3yQqnUH@tp z=4W`>)^c~X7>6M3d>~V*krnO0ZK48i=ZFmDFgE&AOLIBp69b2r=QP}Yg5_o+SmY6@ zIqN%`6!5$?pTe1%3vi1aopKwS>kzkifHpqBg~5T1O{q0sVoJV?*BZJA(1wHzQ+D(a$A_FkPbg#k{Y$gi*tOv_Ho`%+POwb=b z5&jtgeYUSI2YeOiK+rH9?P&m;Q#o0fv_RCSe--pmg4pGTLtqQgiK`IqHd7WzX-k#d zqNNnL*5Gp9ha6H<>FKdujAOKPkweVzDzz9yo?Ds4bpXSVe@H9*lmIZ)9}Wbry~H<8 zVEuY+Zp4qw>%MSz@QLt4i}Hj%VLNTZ-3N5OsOb`aKSBC4c^m2<(*9*XrSDFDMyq5_ z1ZwLspzy`Li;1}OPK=cRzdFTK;m-HzRFL{?H8p=7t(IHnE)*#=Um9X`kVuGdJbnM? zio;H2(*%yInGyE-$#!6_RAT-9c^LbsYon{2f?$c8x?i^Dxyz7pnsdM5+ae*~&GuHp zUv3qf$=$EDRUWP?6lliQ$upp;EXQt!k8{u|H*52X=hVx`b9Ho9lZPHo{W05> zD)k6$R<^S#Wj8AlpGvAVDDsuG=!6sSZf6Zv_Kjh_n83VBw5wB5eB@GT#-yd^{FQAo zhx7dU}r{@Vf%c!~czLZYwy#(A=OxWH^c38x+vnfDBgjW=*0EQ8b^e%w|9 zhz<0kNe#8fX4*tXIL5ER%JL5eSotgb>{c-#*%d*UftTJ2y=dKd@b`Mp4ZafE);YjI z@mqa6nKtgM->I}q>dTXm($c-%9m-FUzLo5R1871oeIe}FC+4Ml>2Z8@b>EzZXu(3O zCs=508e|wYy#r6{8h(AO^x}-8@OvesZ%=}?=R z9pB@@Xr!TMfl8@UaAy2 zHYiFuA9cm(i4tp5ijRg(yUu-I}h1Th= zlZTXQ)dGB0*l>~k9Ixp9qP@$C4J*4#A+mc2myYMtC^^=aske1+VxIT&o~(Y;)4iOF z&60IC#mHIhP+7H%C(@$s^=UIbXtsBYVKq{rYBZE&*iUrrR%NY=Eu`ta{@hc_KE$DJ z*6reX5f$*t(8~sD7*R9&**0qU0mO=$8WI3%IPTjTjtXY?>i5Sx0Sus#FUJ|ivxP`~ zL{k2IFe)Xcj3A_vJr-RDK`i9NHGZ-KNB}XuaoSKle@Ads#c%TS7m zB^*h}RDFeE(ibF3UtatuwLmMey=xhrXF(q)e!V%STeOw$&TTVPX{qcRjD6oCKXMSP z|KPH4BRqB^qW|*lX#1z}*V8FcNg-do3TMs`MIGoeyc_dFFh2cgJR(aEQJs33UgBTe z^|^kYb|}Z*A`wSDo$iqI!dP6EBCIh=Fx%Dv*CT43`IT+?V&v#!9vvN5qKN7PzeOjF zGjaIRQOE0@Z$fbHhN>SwLR_}hk~)(Qsh1XqmWLB09VLvOeoeWe|NN01QiE12@{qIK z$AeZKgVoYLp*>rmfm---?VA?|DR&qOJnv4C^)N4~`l#gF8C^2hx1G;@I*}Qw>q&KT&}K%*Vt;ODXs1~N^+dH>|?3xx2MJO zq8Vyey(avQ>q5r-PpnhfRj+Pt~vdK0yn zt9pyS*lZ(wOIleA&Hjkn@6rG6n-=N^?gx_o1C{A7;z7XP4g~@GIbA>wudI3xi=#js z58^bu(e{ZyyxDn(BhcrBEX^Q|`s*h1-b0*v3}g`-wziDt|4wweL&Po=#m}Tv^3H%{ z?~0Kmmp=>`3>=Fmt2GiJKU@dO-0ZjUi{OY@Q|)o7B7%Wg#tCGi62$!t)Mdzf7R|x? zh{w&`^v6qAu&?*IsjGdVg&MAWW$|XMl>GQWAKh|2`g>^7lMx4Eo`yH4KQ%4RX%4TK zHNy(CuU%LY1Ot-J(3)K98O=al+0@Xi)%t(XjtW_UjYVtWr__2*ykBMI0Z@UEKtyB13!D8CX^{na+ScCO&=@D@{$1Ar-Aed%|MaGB75e^Ppa*u_b1wMwuP zstvC3T{~)VqyPYAHu}on98Xq>RkKs0A(DJ|qL_G=_}%=t9Y-4bTR?w%`w<*gQ$X|h z(GIiZoCSU3A)5Eu;!WtpYB*=#rDuRwbRnB*v^ec;qs zO;Nwvn0prZ^?arD-Wf{!1X~=%lSq3pJ67s65Gm|0gf}w0N_Sp*CoZmUyHW7joFhYf z)(*|Om6vsh0um*0vQ8BY1Fbybhw2t_WJ>%COr7xFo42Cg5-O(d~ z7OgD4@m-22tTrpuN~uo^{VX`iU_^VVbieA9LpLnK2!iy_39{ki+GV_7N32`r$b z>q&3xPmTy<3b&COTT@1>a05*>S|{lI_`+T z$-Ljq+s)RCF*k$CK`}#A>h;kCjXgz}>cSPhAkA1g&oZL`$Lf&Zb@iyx>31({TEQZ8 z-0*F`i)-xSn**Ww@wZ-dz5*ID*sZv>obT_LkOW7I5#do5(?r?Z!ZSXTJJ20&JlGzn z>4o!Te5B?r*mmCeNDH@hbTH>-P-IX|g{P|wX*Rz{_)i8n;k@UIY6_|cK#Cd`ZA>m^ zjPf^|Y%@KS1kZ;J(sbALr^)suR5xG^7?v^O8i!@R!!|=*mJzFM(!bpK2q4xos15zp zWvLwPxBn8<4B8jJp&nt%#i10W63(?vTp?&Q9jsFnkIZ5O*Em+CD>Y>bs_SD51m!EG zAVE!N_vOvPnBS)lsrv6Y_;&WcCq;IZwtGNpc>A&@r2U6#44f4x^mNiLO8 zH+yz)QS-!n7L?>uW-|4~^T&iHM29{?-{}gsDs^xu)AqHDN3AFB%7&F5Q@MVV#i_*> zK3KX|%*c6!QrBJ|x91r?6T>J0w~B3u7D@-FsqRtV6Yyl0tKsx)23~v~D?9G{aqT)E z-q`rH`EcHUj9^B&Ad%jbaV;;K=@lbR%Du;`Pn@|Jc~bCY8(#aG_!wMu5A5ptwr|YL zH|Ty}F?hmIm%aaC$p)yllFH_yGqY3C7flA9k>Vc_{fb3Jr9c#1V_C9y=qvfSOxAA+68eX=Y0eNV z6efS9EXlhBRhI<11uNsp7}UUmu52Fp?$02!%E#A-O>CqPe+%$X?$Tn6ym(8B0AT$`E6b>dmY;uVnkx(W zEeD;b57CK8srvqH3cW7>nsuuUD!?+P6h!;kPR=fJ zk;CUR^A?`p(+SjQi$1p{t$3(*I{7Q=0msihoHJs4a`xYdp~P=}DBDScYkA~8dVmJ# z8>(c7*d9Q`r>H;%xg4eyN8G*@-1kG&A`!hMuT6-nq|lj}HpGmHkVUdV2NKMKY9F5& zr^X37AsXa}@Wt@~skH=yK4{JvYNMsXN6QWV0t`Mx1&6>qd05t8wMc}k`){-9G34&m zcW}}gT3H?dM(k7}V1ybt>Fhi(ZAQFKGSvMB&=nbcumloGR^Q3<%NCGGMi7mm>rZr_ z)A<~f-!%2Zwb)KLEUtdQP05e(4i@wrMKreySzfh!c(-Ep4Ot&wBPD2d#aw8pN|mGJ zzM`!{3(2vWF@8!(&qGIpdwxeNk6J#0_J$Ul_;ONJwBov>!gn%EXH+Lkr0DvXvW1;C zBWdFDde*kacRBIhX-p_f zU|NVd|LGsQw}(f#Q#lW3`BN&Yc$-kF9a?r2l%DKP#6-1!BI-cvf7>0$J1`4fB$+7d zWPZ-{2zZ4|4 zW(b7MpjKY3Y2z+h;TZ? zk4x9l=*Q5G0^e#zVjD#XL-OMud7_1F^orLa!w0|WGUBN{3z#u0_J#`f1;q=@YTo>O zJuPo!)AV#k(#Z2~i~k_{Vi)mJl4RKaxUdBnvJH}_d5fv}zW(yyYktAYw4dka7z{=E zHj2W|G6cg1KdyheQE2%cZG5%MEiYE3peSxVhR`{(Zdo~M$BbW@uOS)SF|RO*-&V;&Sy z#SI4uX;RqVa1AoP!ZEHFC2fb(7rS?Z&*sZIm=JgUoqzKOJX~c|79c-ux`6I~=c8EY&3(G&)7^?d}RT*Ss6pt&z#&Iw-E%8gOwY@e533 zI(_SuUdd_5jdRxzHJXUQ(-A59YYTiqb~N5zZqQBCvzol3ou*}lv43Y;=ZQ?l^sMvK zpIW5&f(-^Vp6frbIa6L-{X+Xfs#k9EdN9*aTwCG?*UO&?-xBK=emG0BT6tyEemu@! znsLQn*M)q=BnlGifllDi>mhOx&0W+3=2}e72hhq;%|7?(T0Vu>p7e^jg{O5zZa}iq8lEP<#io17E`R(8O5= zs$0ta_+B;wQ|odBNQlG$DDVwE_SX>5ymqvJ)epT#`bqN@UvtP3sEEQ%--!;yndo8sTH$~yYb^)gp0`a-&u#<#!h*%?yo zX0rx!xPuGLt z>aE5mKAn66DJuv zz_~_2vvlI@SFqeay3T@fku znw^%s{dl8Kp4izLo`0be;nsdRKUuHNw@j~+Hyl!YK0M-90*E}tm*b+IdS&BqWRbXO zE&g;1vrkvA=63xl*2GL7$ci3sPtFl#iTdhaCCw{fpBK>%PsxkneT|SW_q&vxE6Ft6 zn`7L&x^^oTt#2OD<)LgASVE#Yf1tik`Y=w|{P94x2|LYU{*sj}baxZy40$&LYIER% zMe_~@3>&Buf$j3Fs=q;17A^@ogW9iqj~=JoWmk9>0_@V<@zXo8x2jMp@qi^&7B{|e zQ6@3RE;Znx8={>33YXJ>l+JuWSjK_V_J?ty?!QcZ`KzIn<$2BDpooWTh|0Lo=B@x? z83SAu9X@1j6F$N`99;^KukPK=|J>vv*SW?3JLcyzxm*K=SFx6}q30~n2`tNRo}n5F z_NZkCE?0HA_cW=!ql(XLi!D@hrW4;K3vF*{&|WqWBxan+b!p6BPoRULA6He)ij}Nc zp|)4QRcd)1dP`0wC8n%nq21q7iDi4&60y3^7#qVQU_zJmksY_l=Bys=-aY%mmin5g zdbjX)kKviuwTdS6C|ml|eFGkt(JM_U1F`XPBAc8JUi8-zRGdZvMhq#EE5m%!BW@_O zJXr5=J*)|j?g{s^rAQjuk`jK*tXk@f&lYEsmTw!IHpVCTL`NlEGo>oP{vRwu3YbA7 zfO~1G_bj)34yA+;(!$byo35wSi~A=`z{D*9*Sh$y3^P_76z_ioDB)e^>IPFsmP zq&$Ee(yINK{`gUIwN51zVXbuw>T-bYwdT(i`i2#p_htQcjfon21}Wtw16Sn-lTkpS zu93T-&aKW?(NMI5Uroin@LSK90eUbat0al?t!cjSobDFL_s99y)|cVnwH|9h6_wH;8L2h#MiIwHJ#NrHa9zwH$3YyT=6<_8)f%d;=8gRx>^%G+}IR7 z-w-X%-TRt)Ia=YTF)f1aRvCHfLOy?@QhHT}En1xUE_ToNsGu>TieDJ5tAn}Wwe1Yr z6IZrzRbijHb7rF}2NzeT8b{9SM7J5In@=tKXPcsEoYxtYEk;*_trum%1;5tjFMF~I zTh4d!6a1F0K)t)-C0gpTdAH#63B|mo-x*_z{;bHUlJ5egckcN$W1UEkl+MPX4{ccqU3TL3yH(0TywxpYU$V1UX*=9XkVlI9 z6Sff%9B>jNKioDiO!@nPk8zmRxr;t(9uq{FpppSQR7V2d$Z$s3AX7^_9Y0tHHQ_Je zwt5!G9Uu&|J(LP34_;t?Ht_7?H2~P~Gjjr2=a>LgAc?5U7kSHsErj8d zP(>S4x8FKe)LFtCKUKcd3%9H=l;1OrZ4TELZ^D{}0?w2=S70gjKca*0E?ojJtGd9`C zo}kq}tw{V9dW>DM=*gUA?)AWEf~wB1_{;u0S(~or23Rmt zeSMxQ9YFc9zd7`F?t(6P@)?C!cBF2pG1~kFmZ9}F4ju#*+iW#E22KmLC8f4;h zhl(}E(c5S{$#l?a-accdOtA~6#?yE5mB6udSpr@01;VDDJrvl~n{h!{CVJF>usb3% zvH&`4#VxK!d`TqUpOIU6B~ARBoxEE1P>FkwP-$GBi|8)GPdtxwZ^u+*2XKZ zPbg85nm#ck*~{|LA38g@Y993PSqjc*UT(gR9P#xCiOk_5|I=QhdscD98}G~77xVQ! zwjzXmF8p~iQk%?B_|qPZNJ=50H>+Rtmlg&Cb;d^tvwEKTl3#r*i&4kkIB461_YGxg z8#$n?bi>bdD79l|sQDiDNiuJ^QHq9NOWlxv`r7jKWHU8S&ZqyeGw0+~Y)j1O7F3!Y z{f_#$=2RdnNtN14fr$0#jC%l@W?b9cl^_cJ(K}t8z#)7-4>>VIY zRBVP22>&}I^kbYC>zOe~%m>~!2N(gDpxGhA#FTJ3hKsu<=Fb`jCD;Jf2hl!>kLTwlBohW7?e+8Yf){^-zb{>9nq4C7uoW z9b2-I1gq?dV8U@IJx1z}fs9+>dH(#lE%|vw){Q=#&-Yq&H}YVPoa!*^I(YmhBSvJd zi23c!HszW6)nti#o`hWP_zS~Qz%BPoASO}~^DV(UMZ`Z^Sgk zv~65YoYjMHHsFGeiad8O`mu`cHa|aTH|65w!JwQ=0=C0lgX{UjZgyh#N zp`?&CDzzV^*&j6r)vdfG{8_(~_=^#O+KTXjIXVyx)qS-f47Ww?Xh4D& zG==Uzgg`-Vv5p75zs&EPfA=>$aDG=miV+0D(6G3uTl_r>bys$F5`RI0tnCRb9Vu_a z9nf_!vL}vbXjzr_*Af{*SW8$)`xADQ0t+-r)XG;OY7!{7=%j#7?T4j?c#%>AB>6RH zY0&(?Ee%5OJ{%5cGy)@%V0V9)aGa7VidPlQZ}0RMx6NgRE|e{AV|*=5iSA48@yQi< ze9X(HdN}^;k01@VfmNYz@;`)H#-)KWavo|d!EywVrkjd6mQ42h6IqDkV%SbEkBA5M z*;S&#)y1P&J}f0G>oH*gDMs(cJdK_O!N(8%$`8DK3=9M&Eywt3c3@+@{$4n(Hqs+g!>&COk4+x-f}a z?H2>U-F>Af7Pq2J0kMF!!2>w&8EO73&l^rJc!vT&le|(IW{A%PD=|gK4m1T_hS@mN z4pM+85NNKF4q}iMrr4XMpCsi!+LC7-&kR+eg7qyz-IEQYkZw^RP^MgXI=qe;;0 zo2`+!A25PiDXp>;0!-(S0;F+%x0&L;WRM4gBS8O3NLP#d312*`9(+alwe9)xp@QEc z$~eRERr1#m&aIGg!mY}rZeoTFUC#pfAB9R5|0RvmbffurNlR;wAF8c4uRaY!pOd|? zoeAJ+`E*=f)a-s}mgRd{&t;hP)TS6d&^T3JZMfa|!b>>n`;)RyD0`u1ZtGEnm+-8M zc#CIO1EQxYa6i9&g^L`T$%z_=X3>kuAjy#e&sVyjeL*4oc9Xt74Gj{?Z4f8bA9dh7XRcungQm~{TQN8 z_$}`z&Hl+X|)SVR3rsaX^#*WxqB>qILG?$eOqeTUz>xxKv%@nda zw8}q-I`|f}d!x}A+4u0F(S*Rnp}KIC1qtw3f9HQA>5fK<;Qbo+fQ+N0>i1$C2^5Rr zZ?wZ=qrHb9THA5~qBS}#Y*1JCo4gxPq;F#rjE_w77y;#xgy5q*ql^9Av82q5uhb5Ca!H>CkOxBALn<%H$hzn zWW6)1V{dyTh-rcLHfi0)bDljJvz3!_X!=hotS}NXp!+=X!yf=WK#Zd7;X=o-Hd#jIo zRDOEr21%@Q@$6C6f^bL0({kR?gvbWbO=gUB+A5EmC4kXfwy-=JoI=`u*`#}rgt~pY zjyo(b4%vEq{+`LO^(yatIbJAAy`OK_KTXzdkkY4%lIhU>5C=X#C#vb@Hh^!xJB#5O zn27!;5Z7q_d_Q+HLu~Ww?hoQHK0~$^6i)kal3F@u%oA^KEiEJO%jjcD{lM0XV_OcV z1RQb!C}Ts*&Z>vU5}s4i7y3?3$*I$X>=IiO$?)bN(l=-?3^bNJr~;gE$zFvELVE$4U;<)IJok`YJ3;lM z&hr>8#dE9`OK!Z-`DFRpn7fbfM z55Py56u6;rd?4@yy(KzW1Z~d8SW@JNZ~mS9^-+U_q$ys+VtEz2@c|?xjbV#&K=2m& zQ%v|XGXW^Smb!-se!`HH&(NrN9`tRVkmFBPt=z0vD z`us|JsaYj+@hFjD3qH*Kdz;s5Rh5;}Jk$QFN>#Y*dem>dt5oPR<#d8;lPKQFh)zn# zSk6dM<+$dPYKh-Yi717^C3EZfO=Fu+pyP*Ks|jxu4vrWjcV~^O@01tCE+s~%D6Q%~ zC-K7UjfFdk55GQ?CHR5JE%s=TKU{)~LGEE{DSzjxtCAlJV`6gRQie#V@&0D^0RO8M z+?#%0h?2gNyuVRJLEeBq4pX4N&!Rk+_vQojXL0ZiGTb!R22BEpc|2vzi#uY7o9iGkpERB(P*lNfB zVeIrcwnoO6SvC7!Ycm;FmIQZ9uA2$X5@y`8)R3|IZ|>R&ul>$5x)Kh~+cR{l4J*w0 zH=jj|I^q|rHdy5zQ+t$FX#WhEcX{k!#gK8kokul z1Z=m>vpC>?3m>10!H)I%_P!0HGQQEI*=#{0k3Z4j^ImWh4cY7<*v!(wlFJd}y_k$v z<~1F5zLpnWm5pre{a5Q#v9){WGV4%>{@JnTn%3w!;=evRumn`1L_g`mg1iKci4R(; zpNYX|FatxXN2y}!r1^#B;fAhsC;>&N``XFjJck&xuyC?Yw6aNDvIfZo8{rf#d zFWLo#kzKow`hoTfcs$Y2(>Qss54{S=6+#6Fas^W&5__zvqMolQ%iN#W>8in{o!-{c zc{s_@V&ZRt1D~aoU-tt$Xq)(aV6+l~Z|sI)8Dwz)+JMzeoG+6liE9DG)04b~c=Ey1 zaqrzinlny5x`t&x839u(Q5k^oK2HtSNXphsnW>C8=Ti%BjEh_r!t*WH6y?Y^;LEEF zJ9c&8J-rkPXrk-sq4cHC1eHK(TX?MM0d9JMSH&dyy^L*no~u(^&}Jp z^#gEYQI~kov#N#<4Q*02kli zRFLEQxU`0}DA|%8xX@wpIEH>Zd8;462+RrmJG0RHsKp9!h`_Xw>m8mT_=PHvCOOwd z6Z>7LF3hRoN8F;>6SktM<@*5W-1p=r_|W@fGaDs960K4hi$3_;5nPf)#Fj5GV{>Ol zObXtK?LxIjg|Y@WeGd7q7qd3aulKHJjYha7=~B)k-`n$qgGE;s$=a5A5kX+25eVj6 z=cPWWP1+p7=q%^euM#S* z>Wg-LTD%V(;1K}xiG~OnTWmRsWK~p@Fn^*(`E@yMbg`Kjj(Xi}bYTHsnDv3HHl3tw zW}Pj@6b>S4GozbPqmp>X;RGR$wX6$T(HB=i>`k8pL*}l}_k2svvszBxLbr<>T{%UZ zIPZsuUNj78`fVs0O>7)v&-p&P>S{fB=F`;NS|QT%Wb>O%b5UmfowpQPR zBzw^y*zU8eMPfaKv8QsZ)dK28KR_FnKx~)mAH*36mwtF#F8rW@S!$u9&g!F9Iy)5+ zINY|56A-OqzSofL%;!lVzY)n1g8`N#b1zo{7lMZDssee-0FuE|WJ89o>b5`Mp}I|k z2ubSO?!O`Au8;PE5504rvylR5!N*0+HX-2SK2$S*_VgW+-XhKm%aMExOGz*PrQOFE z*ALayY&QA4gx+pc#;ob{OA1j+dMA$~R(OI|3n#{1Yg!8u$8l3O6eOpnuy=lpB-?Bg z`t4FC;?$P69{c$?DJI^(K0fhFcD2e%ft~kXJIu?A8L~A7rREx#3S806?hMitcgQ@p zX?$A9c)c9=qrc9prLlROXgM^cMG?#A><2jmZOCsPw!=xB=pR+5=_Ov{*Hrx%-)3hG z*Rty0dd$t|pQvfQAv@v2o*OTFJ-^*;z;Kz}cXQ|D5a&;GW3eiJV|+uThy2a--^jV z-LuU#StMo|V34_gb!=9pL5?g2(R7@In&dVogWva1)_=alLfx^KBZ3PD3VkSUY*1ES zt#H(FXqj;!VmQA}O#26tz-@L}bHFvO(=gMP43`{_aG6j93xC=dJPn8B1WFYGB^zh# z(*=Sek8e7}W4F$DSDDX5vb(jmNz_ZDlwBS`eP;w5q7p{D{;U^lnwcNu5Ah8io_A)v zUEW^le;B2l9xTAeTlM;>=a*gh)w-vF&!SDHs4szwh%-uS>G%M5V)m1C2NAlXZB&IOsjZ|t znoF;O24N6P6MEl^n;>yev&7#cQQF`3bE#+i4mEUw9CW_ikf9TJ)l6K7ly{CudBT5F zUI9pXejz@N_k%^bbBi{;pEN%oB0u@a{oKf_+|0+rlRWk;pffosJcT4IdeR+G?XeSt zYFfDYGiPQB)8-I@)kmwbJ^n(RD^6D>KEd*rSFJ~Dg1P5O*JBl%3)FFuE7*FJ&*3pvpi@PbCjnzk<5}4*eoBP23!dnxWE+#ZYw#OVYl`(7jLema3}{6l(!3tFy7_?jbN( zbWmwLWefiMjl-W?(?J3haetTDKl;=EH4TZ`iH}moQrUk+XzLFS8Pt&;Rzg4Ci|Zx= zop^~DbAqLN51dzi#O4(0xObsISqO{yR^l%O_xB1{bs)~53CMII2NGWQA*H>Kn7C1( zjp2CHuR}sh9O+Qf3X)qZ`WeRFz?S5{hky1_Ml2%D!fy#W3{U~|&vcdhzPDmBJ$$?wK5HBfuc z4=|)^>70k;jSXyvN0bHyM)_M1+>nj+omtzbW_dnH(HPyeV`b#Wb$iq5Pihq7F$9ph zgly7va-wr$erxkeCG!%Wq;)R05FVA%PK~*K?MuyhFg=DNTYG1;f1@w?Iyr7@ui+Pi zOxlE%h8?vjdQ)`X%H*SNY7T4?UE$;3DrxF^d=`>p6*X9|!W?wl99oPi+7dd;6}?~K zWM&Ih6!@H}`xyn@ahnpfy4iJIdgkVEw@z?%Y6|o7myD?bUib@Fk|>o*)E1Is=T7R% zHuK0bhV949RGn2q+v=aR6H=I~;}&AUvC)?gt74lkis4 zz-ThH1W@nYhGwMMx5W=TcBw;7~s!hl6XM& zSR4ZwulY9{x_1!hyueFk4R9W>nXbl6h1~)Kx*xt3`BwpKYJevg4YtaKNXUZ$2*iOL z#}Vg5U_mVu#U66~v&ct<0ziVrgAWQ=%ppXGkM}{=A3N@kwSo*F^D3sl!(NI*U2Y}* zGxRYJ&U2#=7EnE})fsRB(~xCjbf9aC)UP}oe-tHTos;fhChf^&BseT$jNn_m>j;Z6KasXZuEQZtASb z@smzN*4y$?hIE^iGG5bi{Gj;CXKsQM3$thY{!#)@+~rJFRK~2=olmzOGaEAA?R=n^yS??O`-SZHbj*Sd?EEGWBoRkD-*ZR4Jg$Ly~c zgZ8gBQ$!K%z?fAHlHqvYowk@4|FHzc;j@VT1$&hK@|HeifL=xTOZ#5Ph=hvUXAitJ zyCfIPu<-5`i!@MaF!iq*%9^ivk~5CsIPu5EGI08REZx~(-=>g%oYoaSl7vUXjJ1y%=Ko0p9YSr z?A=Blp37^co?%?=vA^^!`&E$w$9M?p_ximE1JlH4fht%0lnqaGb-8=W6V#un|F+V> z#Z*!h6G?=-C0TuX$&0!y`|_NNI-d2I-LQkWT4FB}H4uzUhp> z{NV+z4>2VfoBQ|%7tM3Sk8X!|&8~|jcId7y-N^Ih^qV~DG*6*H9(G=-wZ^SQaBw^B z&{Q3WyN7UjfOz7LXI}U&oIL>i$N_14+7JWpk43{4?kh>8;w!B=!HTDbssq4@JSR&> zy_mTH%!eb&YocN6sN5ZVKhQ&i|6R#C34wO3O>(kdQ33$bBZ0E(nA``+NY_L%(qVY> zy*~|Uybz(1=CY06bKgpsZYS5ZrONuvrED81T$V<*-cH5+KKb}D-P<;S*YUG-f9#VQ zg`HNW_nCOo*1TP%(%(8Pjc+#>o?QYG5xKuT;Z<=q(MUc*DJ7p69^z_ zDbgsdYK|_IA72#e+#v=nahP1iWa8L%xbmE!c zuEhb~s>9#|==fDY=h~a~qMB%8SkTQxQi-Fg(x3+YYE&mkeoMTqWjEts`*3fn)rN}iicd-wCc|oEV`e7vo^BU&c1Z`N4+fNcH*jC@y z=dOy<{Z&X@b6!v^-=GNny(obK`+%7jb4@3c=G>KZl*pfbraq9iXk5M9#{U}Gfl{TX zTNTMQz{b^0YG08u#$=Rn^A2-)7)TaDAu{PiYAUdsGxdIdtxR3%ZZsyOdOSv!%31Z9 z)yw-|dZ~4YotI=hbXJyg0)FI1Z#`PWh;oM1KWiMjH(Q#uMxAZ-hss2fVlMad5{-}+ z9sgIU%-gqBOv8pZ-S+zVgIL^s1e$|YdY6e9s#iA-Igj4)5dDhCzyGH8bl#3oz#c>e zSV{__EqT{QNS8TE3Xil9rhs@nks1Nl{$gV8d>H>ToLkuNMl4KW&09lFMK7X|()0A)w0=BQ|&-B+W{{Ag#O2hJu+NRn#{?jtmpnWc(O4)NM;1cbMJu(%~ZwFY((WEz>8=zvyd)f@3jW$p@dxWeb8ruxTkN1ly6l46&7X5Ky$x@vpABx)GdBmno1BarC<-%j8{#s0 zg85N#h;w^V=x&hDVS1mW8BGi&NQ%4|=)Meq`kGPZlWa2q^W$2=WX*lHh%+FX2Wg|U z)y9I%({^qzNxuLBmh9jBoD{%rv~;w}%wcTBGnh~cTI(NkYZ9q1=0HVe4fzug;MzTl z2v^tw#7Q)+tR*(ZOI!&1)~!1tU}#`4U5y0;3gM&IoFmVv@~~|($0&wDoD-$7l*sI8 zJMRb+7%XinBRF`%2esZ9CVaTb(}w@@{Wv~K;=uYn2d1jXu70SOkFAXV>1)2Dz^Tyl z)0X0T$zz%*6^iU!BMxfNn>|?h)zb^aj!sZlBR(xH#{3wMEe7xuKCvI|lpkX^UxwK5 zopBJksX^U{!(8+zaUqLRxUCX8#ggNp{&2V^%L)k{8{g zBHYgUebY;+22gm+Cq;FRsw0+Ny}DI3v4Ym_tGHq&)=c!@fZSv1TwDb!W)NnO8j+1P zE-|s&`-TKxY|=c>F{mKI1XUW^13?;7>1;~7FcM|>^3MxrZ?;{!?z1=yikfFh-LFk( zs#GCucu9uOYTk5~Vf>(d3sTojLJ0e&_LhaO8Ki9F_^3w|dc=7Bu8z!%WhL#vyF!i% zaB3hZ-GH|LhcXcIZME(oVSy%iQMU;YR-Pm<05eVB?Zhp5lPk@h86lfc{4wJaHHZHl>2Z7-w*@@_`P4$S%vUR`amsVfH8hDhLR2g|Cb4nQtnE3j$wks~X z>T@N@@nzag(utj(I`V`JC3X}0g|?h46&^p<8PK47=^j~BWOTS$Zz_2Iqh@O+b9eUG zmh1A5`Qk~I-4F(OmGv^{nvd`fyHGGts+l7}YMe6BckUz0`VF>~l|l$tuCe z)Y*_Cht7hEAwp%~p17j!$!B#4<>|gon7yT)sNz|uj_6Edp}u1I)jaGU{z8YGZOeqF ze<*!jd-rnuHRtYgFGbmSkrb%$4em5c%r@ULGg)#Q3*Gw|V`60$q6)3K_((J=uVfu5 zWAd<>@8l1DrNdn{SJLFR7L*u&wY_< zr*Km@IbG~dOjR4AX|=Us>YSY8wRQYwYi9M1x*2jUYkkpg559B_a<-jJTFC|wij9F@9Lz$Umqa2TtFAoA$}(#vGG%OcT#!appo%?;TrJb-Vl6I z<3rJ{I#U5bTm;NyYN#M?igP@%y&hUR1h0Wq&p>1y?DP6}=JW*$xs39Jv>mFlba}ID z9LqAOuRm)MAQH-0WuXEk$8W-m0hdQW^+xy`a=6KktR`#QUFI^IaRR_&NF_0=;CImK zJH9t-Lt8$K{I;|>o{N##NmI*TaTYMGzFSyfKk2MCPkk#_=1MToQN?}9Ka+#XJU*)K z74IXJ1V_Pzl0x*b<6g~)>L4|lo?+QTWznDBdxB5z1#Qzm7ELo#+UG6Z7&lLowcz}D z$%#9uBs(vyz6p!nPK%AY+4E+&RZ&%jkGbB%W^657rg~M)MNDXc28WE};tgfSF&LPT z{Fa$O3g>vUKy*q&> z-?jMERhQ(FBl^0`ICfF`GHy}%O=zwvBAC#Tx?65Z_Brw$AgN ztgSx?5>C_sQ`ZGF5Kri}Z7gTC_M!^kh~06|aQY(LS8i9;O*uVi{mp!=-gNS4+%slS z`7?e)>!(W#75dht&rBux6)x|%A70!g5KPozix8q7G58Y_ZB*3pDZ2SleL{{&y^M)% z!Wn+-c8hUFjw1h#Ifuyp4@zyq;s)JMJ52!;>X&`-PHjn_IU;0rE}Sqj<~CiA<|1$_ z)3;@h)h$R|<`u}vCh=m(@^-9SQd2RJ6?ZSP;@K+=$=g^vI0111xRM^sIVUB^>a@q98w|8u##G?`#y?rr#JH!8 z-J_Z{BHp5uws7b>$=%`1QvlR(!2IF%Hc7BnO&0N59M8T$_yt<&F@`-5vCsn8qYA(t zbCPHW)YTDtyuxmb!$8r39;pV-4@9>npMK`UwwVJ-To25g%cNs!$I(6TocT`3myOcd zj0I#-5rb!_^Yfg>?IaZA5}p2nOzCZhxdB00-qC5(?7uVld@w*CuG(S%RqQ8e1C!gxUya=hbH zsyBkp@y)G<8}G|{f#n5JD*A}?T3XGeH!PglWl01dkTa@?&SK~pg(y%W<)iD2duR9n z1JKRv3BCwSBl(E`_7Udl(6fb!^pXecpr6TvZl;rA0NYeW$Yr?y3_)^3fMD4L1sgl% z3=?!j39;t}(8UoTc|;HN;XiDFgUqE9pP|VYN?JeILQ@oNM%=DnDz6@0}iJVx_V zr_priuhy(qMdZ{%asA1zb4Wpwq_i}s4jgVLKiF6JRCsbdmr6dlUnUKld$%>OOBr9J z=tb4W4}wLHjDcNU#WH86`N@Mm*$)D(m#G2Te7ldi2y4}T%zC7eHOfz9Cp|fw_5E%> zslT!+xMp?y<+01pEip{7bZ;wnK~-6fg{ep#Td$w?_W8=jFIzoD{JpT8`tC1*+lw#JGFL^vaMv+Ic3(eF@CBWVZ+HWp%t%SH;&YJS-%joSSo2c)t3AQa zj<(OW^zF>AF0%)IP~A$W4D-^Cm&0#P3|DgePq=WO&6j~OwRt1D)Ao`JFQ?gA4eLCg0Oh#uX8oA6QKa{kXz=Dt z060%Uku{d-)4ZEOLm+UuBC{|FNZEw{D-tkQHY9?Qgh*0B=+B^N4M^SvsvcE__;%n6 z*f0+xUyHdUx|z`hX?83PI=4p)9j&a#u_~5V^2nUWl=(Bx^s@X@7XN7$97R~ z7bK)`Cvf}e_u>syB@fd|oT*f4l)5elG-un^;D`FY_S-vR>h(cPKa+1wXl`rB$S7Mz zxs!jH3Z!tpKjGk#r($c>uKMz$`r_8BUO9|@pQ?J-ShN&Eh&!0#PqESsai9WT^|?K|2bQwU z1Vg8FI74TWq4ReoKNvV@AVb6v4ut;=e=>p&tQ2B)!Y`~2Xp9|)+Dg%b_1^naK0tWJ zuDE}#=&WgY|{cIPT}D`@^~mhcXX@tC!-;Hu{csjs)_M*9 zM#f!j6}3B$3#*0K+ue7y<^<9U{GO(hL?|GnBl_?)ZsM6+5$dQu6utqzJ89NhjR~a3 zC1nkt_1Ru5Da!VCflBTIl@!i5Wkh}kia!ld@ExZ^6*RPedrCkLD6bTxv<~M*5_-b% zzuffFx>OBNhp_LvPxM^NT&XH$RgKntoJe(J;GR9gs4`8`cjuKzKx_S~X}QG(mS$TL z%N5|%GQY%LJ5k2@^T*)2F@N^ks)(7CvJkcO$I_|(jcY!GJie0FcDHrXOL z4%b0SiRla{TE2j%PPR50azgH* z;)OgNI7=Wh&d&v@sRPmd0u|k*?n8Hf+Mpkk{ipm98uS&I7M3eQ`e4B64 zMt>9U?93_^$AIa`=SdxAR1CK$Sz?LEk7-6S|jjjmKfb(&6AaU?Wu zKn8MFlGpjQb<>I+llbPXszYh>ZuFg;1J#b*V(91%z0jCn8V^WM`QFM~r33qny0*`_ zUk&tQTU9_Fx7c*qi{r0CM#>WPag5PLF7;YdHy#+iIHKX5{Q1ZKzvt&MF;B&in&M31 z&fPoCw75ZoAK(oJ?&1ELZAb5pE*#$b_$Y@hxRBpj--rli`ORlxUGbDbjiCNrK{aJs z26wGWS9&Vw@;0B9DahKk|Cw*g|D2dP>CBcEFYBq#$01Ys8P4#;A5pToc;~&~ty?1s zQZqQOg{U8i{SPZ)EntO}lV%2tvp;2ov~i3;i5uw%%=4pg2%ovr!iS7G|Ll*tBSk5! zl{(FAh{Y=T|3^**^lap^u6!RE&c^~0dzBCvRVUUz+F%%_ePs6Ocqm2pdOkN9G(gF7 zt2{UxIaB^ek^cntZR zGtdUDEeA@MaxnAIds^~w!1Ufiz3T=3N5=sT(hS?Wz|!SBBw#}NNI;KT5~+r>hoXhI zf$f^usE@$_7kUv(C0GC}$eqA^C_Rn)&oL7)L2$3RMSz_6mSVK0B1;s5V8gOE=+019 zp~@yN+j)!k%6}d)YX6sy>6`6OGL`iw~HYYdL^G$0!OxBhPpHHkuK);6{#ve8GWwt7M?Fa$*B$kfkUkj~Dm)+|+9Cq+Ii0Y*i7X z4W##i$9my#6%)=s(laQFBYe8OX$sIX~a`BO(al_Hb z!SGS85=y*w&{~XQ{1&SdJuB#w5bFHvH+O7gvT*j`1}E} z@=dtM?u39*s3*CH#DB(NaZGD;>wtNuU|f+#AY(!_9qlzr(txIO(?Bs>=~xkz%XA+s z8j$h$?Haz({sO%_hN=`o5ICY#OM0MZ5G%E2I|4P>M6QMaXcQgZ7hOSo#U)hIj!YYa zZeZeEvd#sWX(8b)ZazrcuB{&IqwrmH;@{7k);ygdWm5n$zYEC+r&g|IAd+7xanve? z-Y~r3Bn5Q`hL`I5I^;ka2-x0(tfVLL@;^6e5PU3fE3l7^`Tox|@zoj*%sLdJ>!^<^ zWtbR$eUr$W`GXT7#OeAf%CX)rWZ0uUaOEC3ko6o(HuF(e^6BkDLAw7X?fLq)V_N_H zZ5E+BKW%<5yANW|yhoEgNH}ZRp82p!-ou$noa&x_WP%yWTrl1 z%$1HztR>pfd!q_M)OooAji>{%S<%nPD?J>6#?_um^y(>K@Am|NUT`;9hyg%^l%e)88#Z39!(c$Jj4 zN2mJ@aeEb#t}9RKxCF_MAv>t7?<)e|J-1;7(|yZ6W*)#u#&!386|66May3}W@SmDK z5WafzUFt$YVBMaNIzUQ=EaKP1sYA!&sLZ$RW8Wg`P%G6(duR%=cdbF(WIA0@DR zN2L+c={MQbRp6bQ%-LaIpGp9GI_zg#hd9B0}~AKC3^ZJT3kD zSC03;YT?Wa^Yx=TclcYQ?U82HJaxmLHgCpG@t_=!NnzZp%PBJo0) zwc!ZgzMfeV`#JgjhX?TkjB0}0JQ6K_X``Hh_h)PxHIf#TTZjHiP~U&tvHLuX>)1i# z*unoDHZA-@OM(SCoI{L$UjZA#6oVfm9ArXUKvD@fD|J^)+)_F)n*r>j3Jv1d%K;Wl zGDEG4hk90UeeNuQ#;qKzN!yFH%@Vzvc+UY^!C7z}xfn*ktSy3^b@ z7jgjTdXXI-U&rDA3F7K;vmf!y?P%w=VK9#W%poM|&zbAag+(P?;zh}9y?RxmR$AZx zl)clnGw%Ee?M7p2BGnFj`;F0z*;>X83SPg0DRFAA67{U6P6IrrlW=x^os-+P>&unWc^?%bRZF;qkkp?(sAF^5JaK}zhTQoQ0wNQo=0=nCenjn zHJgq8rQZI3oDFCOogRqhf0d&`9u8p4gdc+K1fX{&m+7>TL?T$~8LG=<{O9WreK`JI578urUrW)TAEd?4byk9VL|22$Je}2vFj^R{SZaLLIab$elzum zF^&v0l@1hp0sa(%ZWhbb*#&yK*G8a(nf|v`Kfa&~d~GynFGHt_o5?%xAp}~u1lS-; zi%NsiWkIFb@^M1AxQ;}|9PCl~B&Auz0rsfaAZ3^?FscN8_p5Ri62{XVr2c3FiO_N> zDiQL*|FH%zjHAE!sXir(NboqCc~;(WZ_3DLBDu79<8L5~T+;8jhSTLwsQ%)wzy4$X zsP21e!QVk3zVk=+h@^QCta}{}?tK2J^ZaR(bDqv>%_VuQb_D2v!iq4fgdK_N;A3EP zdE(Pez|X~Je!NbYJT`K~b4{C4p@(OB`hDi8J_`So%J6<}B3=l1j!Z;5?OyW=tL}G`!-D`@M1%6ub*cakA>RIXsKH4gU-u2vISgka{5}(T5GAQUNTf*wQpStJ zO+v5k(?NC|n_bJrNWTz|Mv^iHXvq(CfqSr*hmQQE9l^MjEuHn8j93g@{a0w2_mCseTcB3_ z-u(gwxxgfBd>*D^ABZ~+-mE%fXWF{;E1{HhM46G^{@1zGA2m>e)8viOU2t!`pu6=B zqr3QU^M6HJTZPVm%BpX>5PCTBkK7qL!`&+qX)0>*%~vytxJE{$rSv$EM7p3ZOv2Ms zkcD*Zgx-Wk(RI!UN0IBP&~>UC8ubi31GlCZd252v(kz9+4$5j|CURxa!FYI#T-Ed( zSy%;9(NqSh`Q3BA4CGw}YL!FWo5)>F_V~!kzuYq?+~~t~0O2hkv3BSGx+yDgx{R`i zWxxjY5+&t#w6n*3DE~bITGUOtO11sgl0q5h3Um$J*$bxVefZJ62FACzO+37J@AKB|JiWYAJ^%zk~)Zg_W`nCC6PxY zf9F=WCsIW8JTli(y57qv0uCTm-#{dTK?Wm;4`#lTj;uB4JJngLit@lXU;`KjR5*OV zBL6`sF5aPp=S)=lnxU!M))k;Ted<~2sJx7boS(#g=u|j45#M2=#&Mv6MBklOmj5kw z2Xu!M9e)4kt`K~i0O;4(yN__rd(^v8hRe-?F2Pp-Xez?^=E+|T1T5d(ynf_QmZ^Yl zk4h(F5q_HkJu6%wB;1ohc#X7@!f>^~KhJg(HMB8CT$HBDzK#t%zz zz^eeAh48>X0<_ngRqR~!sEJ$Z|+WLpz}}!V5x%uOLZd!S&~=} zLtTWYViGI`9sRj)f6oe@_njqoFn9AveVTR#4|6Wu*yQMl3Xi=4X(ru&M-y&gnbqS` z{431Y(#QO{&y4g341j20j2zvf2P?1Qe^~h8LCO}w&Fvmy5Q3oDsA%z>ux?Dz zW)m0$9~W%(QwUnCjeHM0K^U2V7my`b-p_}_KxqyIG%5GM7w0DhNJu*U1hB&yxNNUN zpKL{*ZrECxnWLmF1{ml1V-^NEOgaqN{%LRP70^+pbv1g8#>tMtdspL@@*}19`m%NF8P|Fk!I)+@JyLKfb`zChi&*rjSL9zJK{N z+k^_eLF%~x1085@oPzRWq(c^Z9aC@OHx2(v!-6WItlpnL@0DP}8(FR06y) zU?V_@V)wYR%HxzU+5#g&9#PImrc6NuR;54m3sw37G;5>R=Odk!Sb(wCwSEU|?F+Sk zd_ikhK;osOSi!sP2B&k$ZIQwHSR>K;q<1G9j*jPlHI!oWJMzl?pB*1Pz3cz|XNLCC z=BZx6_y1f7sFVP%X)*Nc`o#MZji0Zs2B6Hn0~oHFyy*882c{VWk?-vuljc$%=)0Tx zg(Ca6;7xy(l9KrQb?r$DfPlm4I*E~6mH#4>TR>3!isi zZ^gVr+ZlcaH(^dz1P1^j-?cM*0}g<%3LqakFiPZq2uq1Wqvl6WCl6y(iQ8&(EAym1 zgkb=WLyJrdB*uH{Hjx9e=|2vC7sMsk{(04SBJZod`8$A}Uv*UJWl7+6RdPzCDkJ{) zMI!#3>jv7BYCg)93SW>W-VYD-3U_jF?vbDDSSBx;xlf)wIxD4s5DLR)<-zK8P1lTY z69QFzIy`pgom?hTAI)<{oF|RYx~V)GrmJ0 zYy2$6OKM<;&tze%A!RmqYBV50ihu2cYeAe_2fGiZS^;hpj+FL>S4gV9QViJ2T?1#Q5Xe{eiBR~|Bqw*LLM_7~?^l8K$g zro^vzK#0k+acX%xxW)J(_IrB6W!?Y;B_!Uu9EXIjfu0ZB>Nw@gZQB$aZW(WDMQPh| zLq4`HRlScS1XZttaPHbkW2hPsd_=o($DACZ$gx;sO}e6|q9^%t>+y1jKegRyu2;Ld zZidJ=os8OF6_ryZ3(y#P+mm4&&+K%D1tg?z7n35iO#h)ehcUg&n= zbZU_zbi&Ox#-Vy|fP^nHgKqL2@qJ68U$R1+J+H$oYDxf=Iv&wajiZ;??c(v#g1 zi4=LkgDc*9O9KJLl;{?k!$9ZF$BSV8&Kd+KU{)+_X^}nz;y>W^0i|Bir|c#e!D&hYn|32&pcpV&$I&iq^=Db*H8&d{#u zXf7^bc`pV!3QKsBKEDG}LK7`un&i*woL;TQG@8LMgQXR?DX?x8G$|mUu3U@;Uun^K zdwPn@;{~BFRI}h2N4829ARj>jU-1Z^+a=+dl4N(5M8U&@xd&G&2<%5NV!7g&_}GC_ z6)Un0kvvCpH?u)f&y3d7K zFR&GuD{h(PRHHVd_DHA7twsP}Kx5g(XqQAF)ltjSR}SAbZEs@qEAfurdRYVuQ+*TR zy%{Wnq$h!*-^GMB#Y4B^g0ZpV z#Tlf2dy@$bzq^56V{>OLb%F_!7s5AAOIY#B@=t8h6`&k(vt^dElyq_6?ErH~@bEEt zn8a|bz*fB{ZmJlaWGO66m-{9y%Db$AM?mjcnvZQnT)0O`wavGLGENSMMdc^&GWs5F z2QyLnYwUKbg70hr+4gi4{QX8Z_pu2CYGq>CkLm_Vp`)8I-PE*yA!Q1Az^ECcJ{`&I z28xp#&^b9WL`ax0fo7?J=_Pdd>6gzA-~-mXshK#cZW`lHW8CC#iur z09*qf2?GPILIm>CtE$Z0U}_z(l^)?Vkn7D?wA8cdV>8XoEf6}^&is{cJ(ZeO&D~QG z7_el=+o|KYAq;<*n_2RhOIsD{oE*T|=-ozUXQL`y+>_sAZddHX_|cVxQzvq0L5pMF zi|bLBbJ|nWE7=^*V$y!R2vR9qtU$~d_@CZ8Lty;RIaR=Q6FW>Q29q#P`vHe&`nBE; z$WZ--um^`%Nzo@h)*>u`R2f>(0A|&O#z<5w@`3#rHIJQSC0axFP>*j87IYYcZ8kBq zQkHqj)N9OJfluLs~n)TG+)PWRk3!vPGm7^ot45<2pkM_^UP0kK_vBCI*m!Z3GElc#082zuJwju|O|XP^WZnIRg%}#=rSphbf6pUAj{MvddT@ z2lZv7>r{RhL7w}9QOXEPX_k)Uig071o8iW5THzoMWfQaMr+DV(l?)y7F_3MVS-!Ypy3@tgU{hQMTe<#6f=ESsLR23X`ed6p#f4- zfhCV_tNO^|>XyYRKC1+iJncvh(L!ra2c<pKIc}B01ivsY>O) zZa=GTXF#pikSfH?dxR?o_ckTe%0^8Ro4LNsG1^Y-o>X%@EIVl$TpBV?xf{kG zX~*upbg2|GYIUn0`y5%W)~;K$X9?RQz0vx-zvZz$U2Y9aFMdf0*J6%G5zqF7l?y{j zA<;bNmFnX|?@}4@X`64{Hp>aB#JZ)_UcFOQdBtw_YSqe=pS+Hy`)!}AS41j;0F)RD z%_Ayf#(j;3iLXq5nClPX^hHD};8ZF`WnXznTI2!z-X7EqlI))DO540LZ0gVwX=+nLLBs> znX-mc?ZNC{qOnZf()DfIea6_)3ixPN6oDu9s{)UUVg%frfp3Jaqg!B&ln5j~mR(03la!fiHS0sijVxc@6HSjE>QZ~LtN z(Q}+&G~^Xi&_@s%r0~uAEJ>xZIMHkJIa$8KHKpPG^jH(cacC3BMlN`YA{nW6^68#Y zW?bM56!GBV54o99jkC@s=&nO}KzNhz9OpMd0JEDV-FSC&${EC?z_ttw=xwh^T=5vFxaqw=*omzpW{K z3lfjN75;fG&*~fRe)nhb*Tumx%` z?x{pGs|CqZRJaknh_v5L0BMf+HSw_l&LiyUFVXvaP$9{~ttQ3+5=%0EM( zDNO{y*DYnB{Yh`6atc~Oc0{|8&~m0yy^12xy+IQlKx!i*xlAG#5&#ZBBWwRp9JRtVbrwE`g>I%=ZZ79w4^>PUqg~JqG#D_A z6bq2a;(!G0vj(+H&#+2yL64w{*Q- z!ib^O9XyW*x3UFGg8(AqjDK^-APXC>5%rqQy`bI-BT)i;&(#n*ha!F?$O<+~1?p|% z$+B>^pbL2%$W&0O_2CKXCNKjULn#b95=O!(RfEHqeNBsiXJJ5pN8wCy%&;Tx0^wUC zhfU02G(!S)_QO0PU~Fs#Oj^p!jM+0YB+qiSE<|}yQKB?YpSvSjB$V<0UN#6{^ft&j z))6(NQ(1YIbkw*j&j<=m#~clT-BE*-hq;9Z!Kns@a^}yU8>Wjrf0n4Y?q8@8Xy)wf z%wMMOayhO(RkiuN#Mp42LH%8e9XkP)=v7lwz*Vn-)my?leE4t1Y9jiIFAmDPJ%5jn zhDHh>jgknin-^Vuow}Od`FWBX-5B$iw9-kxuD!A}%Fe}x;YA^J>`wOKRfToUn>2+( zmIYVppCc=zOiEom(v(nJHADm|7mJdrQX(v~`oQsk;(8;HA%W(Bq9@T6?!pODH-#Sk z;cJ`g8sr_UsBh#Wf?SUq#8t-rabor$&^7`)X7q#5tDN!l%3M36bg8U^ z0jcG;Vj~f+I=z9p9eUH?27MjktO9od3-gC1OE+({yfn|Pj9JQ zee}%blR}_f0zHc!A52qYd4{+e;Uw}_Jf?$koz?^pQ%L0F9L;6?k&%BxIa^s5)Y zW1t-a{_vokQ&`Va71<(lKQ4w0s$^7VtnAz>OiU+k6t?kocbwEn`KO$PrpRtHnNcQ{ zorg`Yy|8$DL(Tuy2lCX>L8nG?8{bBq?Np@6eypB@!TKOCg!l2_N=xCG#LcRR2v=c| zxy_qF=JCu1eQgGMB$z=k%&O8?B-0fad3yCNXXp7yx5xl>E-89Ekq^cHg!HCx7;VrA z+f$Rj-ZoJxIOostQ*6seCm(MjD@S0p!|7;TpHk`Uq%$#NxFrNFNbNEDdZ;?uLePYo& zJ?qvJzUH3w@;g6uk~6vzJhgcZb;<+gNIzBWkk9s&J&X)QA8!NLZYGp&T|6Q^{n^jK0D}24vNZ3{_v- zJ`Dxlc*p8@W@AHapo-~87l%B4G-wR~uDUh72G<-A#Hxh+aRof;CDq~8X&lp zLVxEpZY3Tto$j;LJ!^hXKXsw|m%QEnb_?U8_3}xo^c2Tp`Kvws617T7D`TByv)ETN zP8aKi`*rwUucjTh2g-_16aHB1lz>cOzUb{#RpJJb>)DTNgPbk2^l0(R(zWk=qj~bZ zYXtX*?=4D5vP4vlnl}AtJNpqFz_aQ1Ep&aY{orDz$xKI+$0hU0_;8Plh3v<(f;lRs z4VBowibLv}>K?>dZ(&qB^;JJtIG>YUFgLNl((^U1!#{W1m?je+aV2whXc|9~AE#iw z$7w=L{d*v~hmY;A#E)geziaBcF~MJi-v8mdm8@%|8dt;O5RB*pReSWy;O~#|FnCj6 zcnp?%z7&9Mft_E;QMV+#8x7|_1e4req>mn*gxq<5l^{*f6G_t;mX6|VWb0ltBW(@XqiV zev~0W<=fFr`>8*yw)829qceoDt4Sf+|D6zeo$n0$FdEO+gOpI|Ygw7k!ZE)`8kHS; zwN;sENyWxS3P=R>l9Q(BHm(@zRmTM{P)wN3M1rF z^5Y2M+lcR13{ppD;F?#`b_P)1ZY9-D2Z9EsIyfj=6p`-jE3nRz~Tw0?P z*fuBn!|viaf;-6{AMl%m-D>a%MrFK6uw)`3RZ+4f8)Xl zU5GE$367ip{F&^@TbjsY`>}72KUuBKY_f;z`$&^ldMvgLWy?xei|fa5IdpIyX)G2F zaop?{lu%n-tn0{b`qcd3;@RUf|JeH~14X~&Nc2@g@o!PI0bLwW>R@2v!cronss=!A z6W^1nb!{0zu~6@4QL+Fp8pMc^u(7sBX43!b@XXDiah1*^Ly*nazz!ARNIOLRHupV9 zP>1LZPbW^5S4sf8)!7EvZ2&FA`jhM&$rJ}9FI4-Gk%IGeS0%8S1sjyju;yxVcQC~r zDk)hT+XU~`YD@y8*#;oZk1NvCo$EMI1*N0vQszGe<)o^%*DnAm@Cy1l99&p3d;OL{ zWsD-8&+ZG5P*?FMXZW3zFJ34=7oX{_)9%=DIj41eAX&vFXDf{A{C$PUXJn3< zZ~cDghO^Nlv%rks{M18UTnH_CJNpf4-d{LxL*F!jzwF!?%Or7%@^0 zUg0sJUY~g{6yhIvYkMZ*-tEZ;Qh~GNI3V#6f_kGz%3#k&fgqHQCARvMg+jI~-`-s1 z7X}ImtNb?-_E%2bh2^FFBU0JGdTr1O+1D~;A??32UBNl|M5Sc3Zl1Vwaz?k(MP-K@ zOD)_*qqiuI$^ol|f@t!i>k~_v5*Be~jmDZb+B?(|2}Gfe?OQ)c7;2m51UHG4@6USg z&bh2n-VLzI|M*YBsm-h{B=O6a*5}gb@GQ44dhmS3sK|Gsx8%Hc+K`B=bf|Y|ru3ac zG$qm9sa4aDY?ZzV67>a~gJPu$}kk38UXQ%s6=GRaF;a&pM(f=!LJ@?-|v1dt& zR|&9N?C-HkjMOT8Jh@Jrs@U(?AfoF&FU(M?q7wU(;qK^&70cnrw9T7O*n7r8F^XgY zn&4yf=rcO;{N!VDVS;GY!bHx^pQ>dEfESg7v>9yzyzK_vwMm;}!=AyvFrj;qNUpz` z_Qb6ExDzLR2l5)KgEb$BebfGW7XM%Q)IW!z4XcuT_NC8TTgsXl1fjSPPZ%e<-m|9a z9zKkw2kp%?f1~KW$SH+$mv&q5?$)xzXr#JGgHju6IZ&YMIG)$=P5JVjV1z_ zGqFdxk>|%=QFTm`Sv@|Kfqm7_O#E$*ieq&4pFQU{T4_GIG8u?oj}HHRd_S^8WBrNV zGZEH#Dn}5ydC+SLQn1TmBx%>K-6}W*{U6tUi1~wxGLw`Jt|^7kVMR!T7xdrO2Ew8h zo?=Is@C^4WKrI$Sk7M~)vrQ^X0tCd|pcY-p3PtHGQgG6I6yp;D5Nq{W+Nk#gFt{2c zV&*gK<2cpgp}+-sH^9!~U*$NyT+Sp7AZ8$Be${8%-M<&x%Q#^$3Rh3cO<9&41Z zOcqk#BcBaFj}{30B#;=rpg!2Qk!ZR$b@i*4_Tuht_>dZr`n$Mu-^&JrKU<>$Fc((W6GjLrZJ>fjj>~FLL?d)IKgWL+) z{6kn)RToGU?%bxHO#|=@(v{a9DxjJbAX|+=_(YeK_TCkZgacvYtPq46!?c135nc`w zzy4niAcz+7J(Gp-=OoZOhHBh7z*uqnz zB~Wa^HpI5}V^xMU)KBi`uQ;oUqh-3CWX^Wxk@V-bdFl8?R?%^WChQV{#cqBl45uZB z_qfEk0)ET7E^8K3n=s_jm^Sz)I~H}~0wVA0jov0Elg^wX)+>KtmG zQ{?HszmPcbmEvl5WP!DJ+j5M}6ywzK%%HPzF2xQ?B$4KI@BA+m-l| z#jo#&`p?prN@icR%hQI%C`|{gT{;ptot{Pwxv1=(FPXJT1*f?j=sAmJW(_L4P`{aA zoPyPvwfhQupN}7MQFX!e@Q%pCXhqj2ijGG z$4}M>C~9eKn4d%}up+)|1KbDP*m1*w|Ft;cK#D)zZLG&q_#zG!`YN4KsH~kozrF%+ z6<J zbhX?gc@?ojg2>Wb7pL*v2>J?hnCvs(8+4NA6DUY|AE~kT3w{Cp$9}Za=g8q~6$XN$ zydqqelu;sXG-4LA;c}%d`&Q8pNkWI~#jg@+M2{$Iy7^7%b(4l>x-K#HZ_l9YdekE)r) zmF;&fEYAz3+{88*_xwI>|Jj}DJYBOz!c zM&h+S_uRygq0w*axY@-*aR0aqB0eK*575j!eFSNQzRJ*IEd1M=^!EaMK@sR!#Uix5 zg95PtmE}$p-u~-f68s3@Wy+m3xsUA+zgCh6a@(O(`C9rTM9!TXq7+deX9^hzb^he zd!4VFe`-nw|EMWRqCalwccbEh>ghGd-go?97tU!1~}iIABonGX$y?1VvV{aKXPI{@CBt* z0*W4-Dq*BfT8>qCwJHXLdAlFqn1O7ehFe2Ob&VIfU+-?RY!N)rC$Vb3_6aHYvcQoj z`PASV>yU9}G0GQ{cU0=WAP=vh{=WJX(86+I@(r`UzxF|1F2=&j0(?@sd4uz`U+D|| zp3|z@|GqYosMB^Zh*x7&W_i&I_+1_%$8}`0+MD+M*I z9}h;PcWYmo(Xk}v6`NnQN^yIKbMxpDT#6sHe7nFOj4d&L&u5~(dXe_>W8a>YWk9|S zfm7mAbaBl9EM!jl>X(q!ZX)sN2Xoy`<7zIMl5_c()8^TvL&CJF?&jX`r%FJnpe{Nc zgnqSPLLeL41k;?fUdG#kS2vze3oeBe#3KP>0GU1hvz74%8Y>7V`r!x_l0X}@g@Gtn zA<&6P&%Ih%Zt!sA%)OvGZmcWZuL}xcsMF& zVV8XnkzhgK;GK+XR_QH#l+Mb}qjeFr$aU2+XFDp>kXdbhFuZFcclQ3-8nDU!IN1rjSyznBmjP6kQOLH%WVYR{e`UuY!!TgE5-c{aV zOh!p;z%Mqt&xEV#Tp|P?EPot{pUR#R?S#n&pezn-lJc zdVlu6h7zPwJ%zHx7Wq8}Nh9rU56a)+_OI0!f$FwE7i2=*AG>Gv6?8oZy!Y$Nm*sOF6grksVeLM z{^bQRui=J+PR7e*DzAk=>8^g^ip zt*IIpb(N!}xCe^)_-Rb+$~^LN)?UFW7*|LSPMW9Bv|n)WbDGT=e&KK;;Sbr1KkCr4f^z>40-+Di^9#F=xB0>qRrxaXr$5-Z!zJ+*>_^f3Z zy`qso?vc#R;j{z&e6@q-c<{037KFVqB<;Dg$T7*Ch#PtLzc25%&^{N@uRvefgMo;V zMVXs=BNpnyL_Q$IPgRal&qj#AM|@{!x)M3!0MQ9JCT(yVMI({b{av<1@197N8tH`| z6d6y%g`W4=EAaS2UiV`KGG zCR3A?kGu6BcKZbmee(8rwt3-zdKzz7Rx_juS5xtHnHSQ-z1k&SHoPZ8 zuhpyf^1cc%c4dBOUjATw*@f9QWix6x+rLM@LC~v!#pHn8#d(%-peQpoU~?U+zf6M* z^t#oydP2VnoYBp#MqO+NUQ8cf+2|cC(#@a9JhL7+!xydj&c{LqBf4tI8BlYvb7)_) zz8sFMF>q<>mDhEV*|fTVt%y1+?g?b1RPHxy&Rr7QN-Z9o+NzbGyx`>*$nCnA-|0K^ z9~kf6FCIwa$Z}E4f}tNdU&CtQi}eu&(WYz|cm90q4!-34?h8E7A1Cs+I9%BJSu$ON z(8v}s4qUjU{~3Yj4d$cXSsX;UD)rrZ(6}_vaLV(+?`zr1zavL-NUJF?ltlibDT$ez zQpc8M!+6#bS_XU<+bDrtQ(w`LQ~<&9?)G|w5goDv2n=F^o17cm^d6?@8iO`;Q?@)D z5cWaa)(!^f>p#Wle_?4ijG65Tw>#J+6BHVlU6Sj$cOjCP8jT#1kARZ0Rv+Sa_4SwF zBp#s@1qo2tyh|s{*58C6=BJ=aH#OgZ*IosMZeJsrj$k+ozRU$1vB*&^Q{vRsHe$V6 z#6GV$xpkhwxaW~IHF{P>7#fN(m@`i1mrO9Z|B0rq^f8vPsz9)^n<=Zby&MlaIl-vR z)wh3<;2}QkM3e;Tf_!$W>5j zqE2qiW{eofC#v|lMvU1M#&=^8Xt11pcXJsaI#S9yz4#=EeT`{x7}psa3I|wbP1nn; zs4W%CSALmngpMXDz$q|mDFEB&L&6J{@TxWW&@BGJpBHQSCTy&$)%t3DY61QILM0(T z{~}mK%tt5Tl8cF*q^fP7_z^BbxAUzEQ34+8U+=x%Z1qje`uC>@FtM|vbIik zA$`C4?R?-FrT>r0ZBz5gdRXD;`SG@dd^2MX{Wb=O?J1TMPcGM7e+5%#Yyuu}e(vlL z-`>CO=*_B1v33YQUCPh%hrY`$qZhaAFhcpD%OMBLN97mIKLkw9dE0i+G9oS((i|E9 z`j&n5-X_NRz(R}M+eR&a_4J`_lR&rj`zqrqIX|9IpXpUm9o~e?9RKQzlk~FW#hS`W z`ZrZuQ++gRE5skn;$dqGWedSNx>o?D^9-K3JZt1hjJOM=Km=~y0a{(7-p|o?J`47U zVHH}a(KGqpsA79iQf;!z#hn!lxyt}RmqgE{NjV6zmXsC-1nz$VboW;zmo_VCm%piz zImKKXELi9t-?XW7Lq|Sw0?*Km;l;$RI|9w3SR6C_jyl(FsO=~x7GM4Bd(K}^g&K;! zX*>j#6+o`%Wp=k7U7rj^;ABt^7;_%jp3RUTq)3R}iyt54qm8zv(>%8_()Be6`Xv6` zax}rjXFXkA{;W%szC6Rh@#!|g>vNg2PJ^l97Fk_%-+L@A z-O;|mWe*6D<}YT1@$u#7EwjHvAyKfXS(n-R{kh-7;=6q2DwQ0~C6cg=r4pm`&QrSQ zSe8Sr;prz!vYm*3#n@2|c9mqKEuUUAnxtMJthpX=|#rNzp z*5-H8`uc@p^FKVAF08^?a6XU`IL)(N<5_gRE|6y9VC|hr@^%^aa-Z$Z?_2ode=iiU zQ*BD7pnMKqW+GVSG_520`5BN32*{cvqh~gA(`-UW8Sq6ueX9 zjk7olaKaBCN>XzgidoUbqhYKYGMuiQzttHYN7sXHNAAVKFsN&hVe@sMd#_YZte z%^81^dQfE6+;Ly@vp^;O0#w9Da1}AQ5+?M09hF?Jf2Vd5Gw2HRHdwG{+)(n)H>)57 zx*8wpW<4b2k%4*boLhCZ(0_)r2pYtzH@q?vukX0gBSyQ9${C^|M^MI#i{Bk zk;j9UCff706ZvG0X;Uej_L6SHtBcBF{;dnE;m|>WHAOa;n7qWj4@#HIcx|HV?VLwX zMwRxdo2Nz%3(mTw+gs!WQFAEHJoX2&91?>yi@H=H{ zMMjNn%I*)!v4m<&w!CIT`9g|D0oGtk?%Y5nSc3{+4Q_}2zPN#*ZUl%^6SpTrb|H3UDo`QR!O`{#n^w$eeEaKJ+tQ+FEhs@1&x&pCcXzsHh8`ZJ>vlo*qa*b*bX6vxZu598UxttAO;2AktUGB)8m5(McT2vCJxC z(B0xN>GYR%3k4%?yapt1!(HvS_qMVmP`Qwwy{SzmF&N=gdh}2J3x4Z{%>?c(J#ck0 zdajqkz+a?30;CfY`9xp`x}mhcj^KxuD(YI8-i$(n{0Niei}$sdsuZ+gZ!bbdM~9P+ zK+haUE%(qiw94hmKZoI9y$ZG~eHrSs=zCe^;9&bLecjqBpiSJ1JLF|iM*G3|_cd0N zWZ^c&x>s@~q9(->054_o^rnl8=MV;U1R1it=;aG~%|V?7Y$m@JJ=@tDJ(2836S_C{ z`u5QLsPG<$gvN0`e)RfNI0DMNsc~+H706xI(d+q{ZWiG3;-}yG$d(=m6;kqKezA?v z7FRg?2WrNz8m~utt(W*$Z6e~EU`e$rCpy`k=NjzLS52cIb+K_!a?ezK@3KFK+iRxW zAl6xQ8JGf-9q=UVaQgt0QLnSKa?s7gil`fwK&R?>JKJT?l)=->Rb(e1Q(8RWS!j|6J)#xJvv zzAiH^E2S2TX~at|u6WiuqF63BK2z^H)TPEd2%kpmgCh26JFG0~TiHPE1rl-E`RWA(qR2A7}SZf`t4m?Ih)_Q+iSI}8RD;$~V# ze7A3NF{TWYxO=@Kc=>y?#6@ChC@pl{P4rg#yEv~-bac}85O@a4R8+FjNbs_S$UY!F z7lSKVq@k}Oq}^A(3gQAJ?|W|(E#kA_ju%$t7a3^mP0oSfRt)NerqRr2q;I1URu%BE zKL2~F49_2WNZd@Fdvl+=rhXO-hQ4Z{GDtwZiABsrZne|D-6}ZLGJ`w?Spl7_%bAdr z0d0wcI}oTz1j}C|WKEK~|5B} z_o>i!vY(n2c1)u{bly_e`v!NSk*G$^j>KWV=p*S6d5<0>!p#25UH=(0U)%6n#n%3p zitU%nwiIPONt@^MgJ{?EY&ayOqr5d5KQ{Q`%tY)klD(g7F;jygV?2?4JSlcBOkeih zQa($1*jB*!{EKHK_K$Ajfll+X5nJQlZ%C?Wv(@bxF=R%x`$&ne-V)rqOI0S}>Tb@# zuCR0qk)`G96V1eMunV%|V)j3kX+DFNi@2($8lg8&Ye95gJjGEWW!8iITKaLT_TV4u zfS0;wk_pqEh_mBiEJ7j16Z%ZJc4 zbP}I6^A~p^-w{^lCRj))vORu9qo-ZU)?d3!(!K$|kvZezX$dhLzy3>LG->Qk)mXPz zQ_MSi@4&S6EUVb??6u_dqNG@awYCx9LL*P%wlh^FZvuMz7Pdv8e-u_b87Q6!&KtQ4 zd~%li9&B7W)}k1G)~9cN#l*dK_j|5NDOhjGws$gl50NDm*I(bQ77ZkI;9T&0AqE=Y z%n%_Kq2^(h;o#6mu_3Z(4mCtRgcJclv;b}+z0addmy9@-jxfn_C`<~Nc%XyVF_a5>PZoERA3>3 z6>X@H4z1%oMv~enTGu{%8IVyc$Np+Xfm5XKOY({$FG@!B8SZc7B)60s_H_aoj`U?Y zL!W+IFCSAlhOduw-O!=TRKAkmCpztAzvS0TQm7+ceR^aB;d3umNhYObGL^iBtIi0R za`=#2Z4+iSo}qYud0t0h1LVJ3O?TQINd)hlqEQ+jd>7nl1@SY)M4ng85y@T*hOf)4Itw^wG+AR zb6w^maF)-ay&ZQxAVO)TndT#XQZ0&ht|#v59!XC%&$MS=FSCLqzib5^WBJAB=V`%!}Fs41m!%{vqO&Bq`X zY{V(luSkjrksm&y(WE5Fv6NsjO6OzH@Vw_I5rsJmOvxB&3GXEH65rhrRzn^05Z^c&a=Gv{r5*?%OHdbX`Dp=?nP+Jw@>T`g0-ZOU+FLF zY9IY0Fy6I%OQ3jQRO zAa)rcai)bg2m|jqL!P=flm((;iNzfaL;j>kyb}pZi?YnsdicSn42EXq>iz}X^Ljyy z40_xHRXDAwz2!tSY);8CH?e?R$57;}X?W+230XL5lRSJC&}mv#JBMX68M7nzK`dBc zk7>nv`lrPv~Y$wiSNb8GMn2BCcQ0Em74RlZwP!T zs#>1%_TFY2DU`tCpLZS<{6|6z+_~&I?>=}gk#0YR-#+82@GXq;cyz0_Ya%uE=sZkL&GR_ zn9UO91(G$4fJn73k>z)1sRkC* z5G{8#L+G?c_10suf1G(uB!O2v!;gQXfkKfAsUSuL2FeETgelIxq0a>!1i-)PNQh0h zNDwu22^i_3aqO1vgO?uxBb^Qv^i^b}hAzf5N+39ldL+*k<+B@-fC43ZkfJb(#3>$p|s0+%4T=_~RdYk0o+O=Ae%MXcUh-25ABM#Wr>$2j7 zpTfBZ2RQd2$PE5o?#qq)%zT>tgfPGmGHKWe!RpliJsA#rfr; z>@LS$gHDQbSZ(_dZM<;8Dmv&wBF!{udbr{Yc!!OC_6931K|*EC!?dG?$Ef3mg=^KX z+=z0Tg)LS*|0cLOGRqpJ;LL<|ee6)RKr)`hpc_+f`F^M61{j?o##<)SYBXg`Y^}eZ zrLC}QHF}BeyI?g&M|PitrJ%5|5yB zJ0Mc|fP8KNw>=>s;-CynPOB6WM#E>q{k7{Q7vRC7*P$%}!{qKx00AMKP7z34du5Ql zzy|~-crpF;@xM@ZxTqz+ut4i6;<^}TKLIbn0rq6RzB?O81^lH<#eIO^*j-8EY+66* z{y&6z&!T`(ukaNY&yz4_`(X6mSA4?a3Megflixd{45d&bNMFu>UlJM#larSZ-ogz( zc`@hfW~0wNB=_~RUxo}iiF|T>^UPCZum)T`oldB+8qx;))RDXXpKwZ3;MO!T(aL=y22iP)lK*MjQW-WLUKBSmhPGfyL9kpSGm8*De?#p8Q}P4lw&yEIrYJ!76J&9p z-l<+>HfEJ-+=q^l2v(Oo$BIEqm8xBe!>e;B;pd>ZUPQry_S@OoNaqfO;w^#z`pj?P zYxdXjz~kpEnug0m>M+|mCd9p-=@CsX(1ld6IzZx{9de@P~O*8e^$U<;NH#$r%tWA)9?C#6v4;g(Cf9d z2~binJuT`;n8xfwT3j(5O&yn|1pKMBA}ubtfn`LwVGwLYoIdCgXjamuESJ$|P&AfL z7-T3F<@iLV{wVuCj<$(j^|B@;EIR*cb zEdSs9?~=&OVUCNF?$+iegKGCr)S#>ncNXY^^zDVDD2jfC+#7)BfTJlU-_}39l4_5{ zwvxB9NYZ;+ZtQ~{#KDl`p7_+@X2enhw>IN0!hL_J6WcsRWISTclE z8V~2pM}%Jg1GW9X90mb7Tzb{~I-PyFVQLZ=(c!EQbP-8?sc=x!Ye0WXHP|HI^z1e1 zTG*ys{Sn<@^05C?hId^LyeWOBbcCM0lM2F+gY1cyP!uGO^+R-9dP;wBfu}JzIQUCB zEG&$j)A`5Oq;0HkCk-woZUiOd-?Gp zM}j{`JDLEC{r`9={WZ)d)U~4&i^eLet3Gwbbj1Vt+M8`fq+C{b{Y^v3Z@=b%u1+!v zbGM(Y7fWF!n4bDl7QX2x0wrndx6eck1;t}mI}8WE=lP~5oog4F*R{w`V`?fZsjGM2 z8=a^OO6$%~n49e^Dxb!e0Y#VVLCi2B=1g5}X*IC?4U+(I7F%PO_yX^?^;At&qdZ zuQW5x0aNSQ#2OAuvqKurb zz139{4YaK4=Y=$>fCM?bwz`W_;2o~ZSp_>?S4`#J9;S)djRG+ZzHE(2uhvW|D7!<*GmTyB}pGY!)fcRK|U5C2So9-bOhFG*~qdx!xey%uXu(DoF zpu&s;{iyEnpy{Z%yJkQ~Tvhz;S^xKg`?qKK*N-24TrclKOET+$^9TMO&fM_#K!B#B zf~h3$IUv zbh(i0*B>%hz9R1Lhhka&wYp~b-QMyymP+BFg6S7UNi_+~>gk=)z=pn{u3f^kci+8f zJoDFx{tr90_5gZf*51!51jsXHcEoCV4*21Z03pSgu~4{aTLx!Q1-aaqr!F;Z;}ahF zQ!g4Z{`d(j;|`0RW1&VKN2bOmYe#Op(FSN)b#AJ@`PosH7VqWi)748>gREDhu#>+9>0q#VW8AJ*dKu2(p2_eu=hhayatlJwj|!I zWjTt?KxU?-h9asx=RB#mR|OKFLrIG_V$Vi*;MHJH!krAtT1xN<_Kw$MP{h3|6z>)A-Bn0xotIub;?}#>o^3(eta-hGSMDMnewW7)AZ7(VZusK@ zPj#b0*kJCGg-`0)Ukm16feZjXxJRY##-jp%J;EJfJ6tUF>7UBl%xy%qeKmI)UUEg- z*~Ui!Bt5c_4LwyqN9qf;z~-;1E+uMP?iGnK6w{)tpCl5P?Dr7R0FeHjzSMN zqMhf9s|&A2VLN93%6wwVf+DgCEiX`)Ey@Og0E2;#E&4POKkGFU?MV6BdlMzK(8O}X zk}SEQgUG1r_Gmo4v3~M9L2vryt{ocR3aCJIZ?s+Cp3Hpbvf2Cz`L(F)Z?ok2Mx9Y&D)QE0dTtpLL#>(0QdAd*7POZd+s70~EMkl+34HSB0OGim4k;kWuiUuw!NrDei=7~ZZG7TH&(8k=UphVua#Z(op?>c`ygu7x zp|;c4or7*r0w1E<;nde2DI^73=cfA^U|DE^r3X^)`=Ns1p#uQCX?PU<6LjJ9dG(Ah zA^eQ^N%D9W5u6K&bsF<5WkfnCgbN8}IppoJ6WfdR(e3*8#5wUW`N(2KB(6PlnCISFU`W&8c=~tnFRrXmfv#=(s4?%ZKb2 zlVwquRo7pZnGo^3T3X3=`E~R6-v2Sw6Dg9*0t{GH-L2~t@G%l$o8YfTYVcGLd8gbA zN-hqrS*XVkf4m3uQ0-uDRs0_m!;j8fxF1cwU5yvGj8*lQ0a7l>815#qM_SD{481MG zep^;xuCQ}EMV z12*<1naJ>i`ErwGHUkBHicEvP4f2iz)>Z>V0(_-au*oF5(e7)5c<<-ui)ezb@w8YN z`+B(d5RVk)An?h`L&>%B_oK%}sC2(g`9BtSJyop@2DLxa3YAE+AP62{RJ_;zE8shQ z?&@TX9TJ&%2eIhUY4;YJAZZ^x;!&-x9o*m-!Gw5Jc)F)|WQPt9`=ukp$vOf`x<ye~Ta*^yo z2T-uZD@kkl*CkV#0lEb2m5X{588-IMcXjHVDG04^|Ht@$fTrN1UxV+In>;#!^T*(6 zKETwtWyQ%E0W3yPFa_-2n9sJL?LEiH_QnD}-Sab=07Qbo!Dj;RI{@MX0TsN`{k0RH z-2~wBS&`BFyrQ)6K_h*%DxW#|@ANCyl<1+7=5gb)imD>~<;#n&EyNj#fYpl3UPW9X zAh%qSlFx`97bgKRGyo7BL&L+YY6|(6f+OImDckenSSOVCh$MNR+Ch)R`2-J458~IuPJxq<=``7Kb zcA^o^qo#L%pBW%8bjOZNP4%tiPfv6V(JuQ4^^@DD!DzJpS}!;GvEcvCk9*1c3<^Ww z)iJKQN)$kkJ)Jsp*giMn4(pDtovTk+VPY^~J(H+dGI_B7l0;b0iKHke`8}(!9twSn z6lulr21DU?ZP=-x?1&gSlp8)btnt>J(qTW1(Cdh9=Efbo&*u@DJ)1b?heT0d!jA+t zc5GI;YV~e)cgR`URx&V*8nef?F&zkF0Hs3(>?5g> z6VIGes$Fk~sV74@RTR$a^DyHV42!?3uVSXjO{Z)We%P%Qo*WQg*q6=t+FNfbVLfzg zez-n*b%0qzT7A%<-le}J-T&+u6?5CR`=R&ZAm5x3~^4)QH#BWsXxK=Ml$r zw#n&4_f@x+o>7~lL2rhdiy{H1ZS>FCCO`bSHVLMt0zTLr7AbZI5i!To-JH{@d9B5k z@3vRHMsus`6(s%_olbKt(__@u>_~HYFari^!Z%i@LzL#n$ArTVE(e)nG3EJdrqV5Z zGEnELYg|%(&Tp8hV1&bheI?_D>0n(ZTHSQ=jiF4LK1^5j7MON+?M5~}6;n>7A2-5b zzxU@ZsMVfqWSAP8s)G&<-zui86ed3HQSI&(a5Mx9Ty8wsO*;>$xs)^C>2zpZ@)@5i z5ZEmoaT?CI9Xt;(tdhF$Ve&aFz?bRnE&SX#_>=Qgo4Rl;1(wy}1+G+5JFQLxA1~Js zO1(ICdOBNFaNgi;J7|Mn^YbE-$tS#9CAKBgL1&AJ7?RlD7AjLY1Ri1tMv~8bsK~EwO?J}!b zVRJuYgn<4VVZ3wl_YEVY#X1f?JI<9jYL~5i=8K=iLw&juTJq5aaquqWg1OKU5qx9@ zG8ZhhZQ`uC*=19yZ@DFH zz+F~=bH9hzyg^@=*-STOWcA64;+N^S0qzMg#lgg&^6rpp@kjaN{oFXFrYl&7ImebPllvd(D|gb!xt5IIpR7I>)gcRl)t4-h#GW5ylDAJl3- zT@w^3Nm4$W8{&u>`FUQ2qa=WkQZnGP>@X{Rswhb0YN60bW3N|kkITQ^V)^zn{ zG50d{`R0vq$#ok#z;4KNuHIuDqbCUw%tX2S^na{uB~k!zgy=Bca~`?RHa~s{P&&9o z@MR3Teln5?nX7VdRGN_!yi>t~W*eV?fH& zT^I37GUWS6?3o&KK%sS0oQyVlPOu~+zuec+vb#NUDMW>rWGG(vpfn_xNYg4>+ICTj&dk)JL9c1{D zb$>JGd%5$W9kp?r67Qv1seV#bq>VBTN^M%vJl7lHm$wbDLD)#Wt z@^{}(leJOj{E%rxCMzvMc_O(GFxaTX)?(MgY+-0gYp zbg|M@7Vbg7=XmG#kJ@9FKDC|gJ&zc^v zad(!&JHsx*W=i+=fX`H1op)u!L4%x%TWDtAWmhkcO`^iO5oxBu?-9ui1>&LGV0Ahb z>&`s!>2B+tF7ts#(JKYe5Vf8%*W5tjB4r!)qV$3N+Gv*97~KP>7%ta^eqzUj9v_a& zeR;1$Gd_}R{xbeqM9x3!s%9sbD};7%z%(e9VPMW-!vv{t0z~ZR7lSZ6XZ?<#8grl0 z_3?m}BUG0Qt$n1K!kPn5$Gh>fsKlXPu|GYJyA8n)XKzfYIo@Z`2d>l$ia3k8FAGBZ zy#>Sr$>$DM`_}QGJtRnf%EfA{!!wU7W9dQ3*uSh#EkeMCMD#pbO^A}^s2gGN9>j7JB{!x~JX^z{uZI!yhp@5jCH+y5z<7z3lQ zN9oUd3{NQE6&C_59JCI{!sDs*3`{;>N+z>qbGD}F&MM@_B9h-N&lSQrj&Dokeu}E^ z^6(JeO+TOdv0CAHm04=Ly_2Hdu6u2JM+DMHc_4Q zh?qBQ)oCwJ0KMue|47~{b7NF}#iCasV?{#hDruzDxl?X_+3jVC&&!gSZ|mthjoq-w zk;**Mdp^SESMBN;-Rh21Xv?v|#j3V)1Xc5cb4yNNwaQ{*Om-La__2ngX(ukc9U8NvJL{0` zV#0|owV#gAsBdR{4e*(4-ooJFQJ&jNjKx3&{c>un%sNubjyBZ24)?ot$D-0x*(_&f zOq3?qwxUso-wvu|G~4(jP5NlHqG3q zIca8EEr<#+Su5XbXrDVfU04t_8CUf(QF>Bdbuwx+*Yv^SOskwveab41$<)qdx8lH? z*LU%(Y}P5UriAIJ#b5a#pUTgE4Bk;Wva=}Z3O6G_1aXi##I|>`>Q%bB6JS2Oa1M7 zU#Clo)wdmbm6XP)Evz)dCvtRtEbv&w%~Ko;AmuFnt~fkn;mVVs-|AWxI^_}BY+Ykj zI4j@r!VxwTtG-3=qr7lMs<^<^dG;PxHRWCCz5|MTf%9 zR^in~rkRfqr9(C70QR7U+Vagsua7X5*GqM}Z{e|Fv001ueMWLydPnbKvj+7( zA1w2YbF{MN2xQIQ4t3ZIOqC9A`*5iCq}=k&EA=+UDw`PQ^Ndk&dvr^;U4|%iyO&c5 z5&HSjCeD|i7re5$$!!}ECg(fnCdK>L4lOqXl-wfr$L}@RkuhceE1Uy`^F7#cy&$2< zG{f8C?g(4}4U&X z(eM=cVg%lnW!)?{Y)h9o#$~t`$5Pgi>rzaPip05FbiQ>+g@9`?Rm*%l}bjMS{PFD#RTli2K9Vumr&q`LCs=q z&^x||Ff$i-tnv^b=>(dNshhsTyBRk!&SqGNGd~vYa&v#=l&CQq6L`~S7t5?^j z7}buKasohr&T~1tJPV9Rs@@m1JdcI-nt4rMb_VF`^nq@?xG82OnTHv4Th)%Uxbd8e zIodYWBL1iGjs@8Qqz^An{aj9Ku#ZNYkg9)=9EHbT9M9P}U+OhXJI~yjW4A+ob9UxM zZ1+UfN56l;gs-GXjdXEL3$UP*&vT>0Q zs|$ziOnWh1DRHg8TlBa7anZ}e8di03(mu!Jyx=o;g!Ir`8&<~KLSyB$<`7HIt1_Ey z#zXeNIrP+HSb_IU=&(iLgl_jDaq%n7#32#aQAX!;4(ko-sYAuQ(hTaYb4~4WnVOv+ zwr9hPBc|rfw~!ip%{bA9`#qXrql&u|+kCO6wDi+wvK&4Yu;_UYr|ydipSjl9%e}YL z3^qC5=gt)E>w&!V!k5uC159DCSq>Mfe#gCSz2<5PMcC;>KFTfIS7-Z&iZ1+zd{R0J z<9Xdz0^tpq#6(m5rk86~b8OQ_7p(!Ek9$9U5F^SopAMLcFLK^p?)GAZojE45PS6ey zPQpyYeq3!!fRD|ik2*IvP9x@#UirP`qdX^2y=>v(blP;TqejCnJiP7FznZW#%kJDo zqP81T;-y?;81T5|3-|v=)_2Dx`TpxSEHg_hD>F5-p_QqrxmRgs?oyH5xpU{9XjW$C z%#mAi=fa6Iq}(I7;KaQE0T-Yk_@hss^E>B!&wsvNJg-N1?)!O<>$>jiO@}k{aoaz% z>+3mO&;?Cse@UMUoxbAH+hPvq5IhI3$2pEGY%(wS% zvD@vpH&+McLxm56JN$ad?HLhdVjo$zyuJE?MNf9cDvp!qZJr?=KNph!e1~?p z2hpZ#fkDOxXtLs6{K40@#l7ijXHwkZz>>=TP`l4s=w0F=r!mcl;6RW39eMa>(nt#& zVW@jR?vUN8{X81cyOf`N5(d9)Rl|qWXKi{GE%i^Ez!1B+l{+y_JA>T96Mo)rSNS`1 z=zn$)-*%WrlqJ>`qR~g*dj6fMa{amH+p~2S&+`5Wj||qmWtzdd>pp$EBEu#9RPxc= zj`1T;3>o(rIRDDs>tAQ@SI7Qn+p=Fx9DFP@Z#0tG@BF$C4=f!|q@Zs4bX1faf??z% z@xrpKUZtbIcRyqhW-FV?Zs$f$uBfRnop==3YJ2P2JN1jdIPuv-ELw6YS9Q>$(|~Pt_@o_XoJSu_fhS zIahDqn6ifhgLFEde8+_l6P7VVEtdLNoZMt&q{mI{6t)(rZGkQS6mo#6HL{UR>Db?x>Y2#)O`yjp|R{?s-F8aVKN4StXMUR!TZZeOF~T%SYkQh_AAu#?<(8dfLJG%RO+c@>z*`L56N zc|T>lr2C{zFIk7}%J;G9P7CLp@~IrjNwn`(6X~geiEJMLB>7+)8SH(n!eW&68PgzT z8dXOS;e!JOdOhdWjFW}RAyVGalJ7~FCMRJCRbZ+R+=HX2Sg63YdF>0LmXxH|fK+>& zw~zLcFBFGt{p_xMP0$>Ua$adocvxR(B-(}C($qkZ0EVtlk!M9Omp6WQcOFkE7>HHw zmq3q@w8TFei9YqA$pC`di*bu%Ut}6VX00;XP7Ug5SUt0R=#Zu@-&bzs*X%H3SZ!H) z&B~i(ufDJ~k%koQ2m5K{~ zoymOOTNw*2LY8k#LG2L6XGuKR*#<8uzrZ;1=%fU_!y1E`G3UDh`053?KqG%BA^MCu zz)pSuiw%5C(<|zGH_|U?ETnjO$}P2Ol#9stB|gO6cOGs1MV1gkh-626pdg z^DM;drPQFk^tEx|hc6cI<#pyDSsagNVj$Y#$x+#E6O}2XwRTD4W|g_6T6e7Ttc7Y{ z@6c#9wCUPf9p8Z2sKVfTU-NxmeBg!%m<`G;o(ql)jP`5Zka$XZU@!6%UYzb)4lJ9Iad z12TXbw>K4F7}$6rS3flSK~vgjpJOAYwEN41%WnsCW+HP&22)?dX|f)U8p#fMAYa!# zuU5v-0O|e!_sdc=yp)RGy4RG#6i+QOK zn%~Ln69aME-sAQ}3GLMn3Zru3f>-TD&)IG4Hlfxa<_QE-AtyH@Hhg49QO3Y}Ut(A9 zI<56Do&WYx>XE_H2WLnAZ$)c;?i5}AsTf5|^dG_A^$aF|3p)une+K;UCl4^}_Un!w zfBPvC$Fa6^cKN@&0A3w&1M{Xcc!fZg%DMt+DSs)=V_Q3dQ?68tC%eGpVKco@#o@}Q zJ+R-mKQDMXbd70+mwNdD=hvVuUutesB=+j(+sb83>wZ7uR;-vQk>API!Rpj|X+@aw&Y;^FJP>Zq4fxMUhfcs&Dbc3~5=p5gV{`(CT z2c3L|(5VKKRCtNfwga5|%WxWz=;LF9-~PCbyByqKPyaMkL#X6=P?JAPj;-IfcY`fm zBVxws`CvWGKOcWzzoze88uJN~SgxmAni5J=mYj?OE$bnQl<1Fvmm0CYWIms~$zmAzE(+I|o*xniH+r^|d0$T_G4nLUhv^9&ECK@ltMzCI{UMj?mEIGoJ*Kuo6` zhRD7GE$rIl?r52`!&_EO^IMXFzrPo~s5KKXz9vL-aI})LCJZzaBydh!%Jg#Z3uy?u zfKlAxLPalYrbG*;G;F@W=}?ipzaPRe7);BEUPrV4P?h|l>gfGz4K$7InB74vrVSRW zhe}^zrcI#?b@`YsZakH`#LlX)-RH18&m?t(-3M}~L^Ax)HdP>cx$yE1&)i5Hc)8Sx9xa7XaNQm-UzhCNm-CA=$G(cit z3Q@4qvX*@p92VOZGr0amw)kUI#!AgH$*2G)!bnzlq9?y}G@U9euYED4jxCn|dVmTL| z0JX4Ghr7V{Yl7VXiX@@6Ocun(){o8by7;}_4BeiEuwTJVOF?nPEXGu7Bc2w?@zhA! zW@hg+7C<%}8x5VeH}IyI1IGf=q_?nR@*<_Ip}yvlu;XEuuU)z<4&Ie;U0{**7YYZO zvh4)yt!-plZX*$c^sXAuZ_zx_w<18^&DrG3@{oSYj)*(${BC_Pj(-KyglR#brN+3d zxZrFpZ{pmS!uUe-FvcUbJl7JX|OGyOFiuf-hcAg@I)&(|8Q#NS}KVu5AZ@9gO#)%Ypu z#$Do!GzwoGNuIX2iJk4+XyQbkWyR8#b2taSbAvA-l{w2|f(TiLf###*lVmf49d%ZI6D7DYVvz65p(Yd_B#Nu>^Bk~-Xo24>d~rRnYVMu3u+&Q`QFaOCTS*% zK`m{k#LUe@C!L)Mzm}YSD3xCo5{i_HE`Q!UK=LI7v7>TH*JN^6A?8V>cPYw6E6;gw z&U@*pvwY|pB+75|Q#ve=KNssQP(-3gEjA?v9iuj(V#|OKSa^7Vjk`UZXXrWDP^)j- z`n3v}_=3j@Y~D;!i_rAB@x{mVqnZrF#DTD23TV^^03n%rE`pV%!F=Y%HU;Oa{C1ZW zTeJ%Vyrh4*7d0nSF*9W&p)&{z=Mu{Bv`d}12+l*Py2fS;Yh4lIL~Ms&pXFe7 z|C(Yf2=FqtxNt3g5JJ=UF~cc)8(O3%r`Q#dTqfz;0W9fGecMeNC4TKlroGdN}trH=7jI32ttUM5J7xx@m`d`-BYd1T3y6mFO~;Wq>Mu zwL96mwMb&kQ@%d-tpuQ>i?;3V%ZdGhrHA|;_W-$Ae>=|^clZ67OIF|5?c%riRR_(T zJw<*^1#9UjE6%TAWa)3*_z6I$Cl z=DRkwr8hIB5b3s zolmRCfePIiRU7Yc#E&YL5v>3f)%X{>V$5b|IFPB&XqUyctd)ZSMYiQ~FH!=8Rx)by zx*nS&!7Dq?i%XsFEq_aNV&g!%F2Mtn`^#v}ps#B2?9{JcYqRwphvJ&18YW(xMNAWV zI7plDNxkxqyDN{L8B3dGVQn;8;2*l6rC?f8rSDEBOCM;}P0_cE)&R-Io=wBrRiSM& zOS0j(p`$WeYabG)2T&U)R9YY@av@Yink?Ef4)!)Js!myhhM=c95R*0vR*Bh~*`-x| z?LF?wJc9Lj*Rja7D;mCP1Cb_;_|B13Ms3cm$FzT|2-8&rprx88f{f3X@v^1L!_p@S zCqVViDKx-1shQ|GjSbcJSBkJDI8?LB7Z$}#t^ z^mV8jo5;57M{lU>IDX@Jpsveq&}uf`s}*O83Dn7E!I4+(U^KJe$Rl8^z3zvNjKn(%h-f<@~fx9MY%XD5s_nPVWY48Gp<;`^WgKX*EUz)>hCu>zoCm)JO z?QDOw$3WKYH%A%;5fQUwQ>S2SP0*H*MWUQLRFxx90^{R;fO|5hsTwkG)*Sp)anp~_ zkaIxc>qLkND>#_!UNS&wax#;v$BOvQ^jJ5~Rx3VO+m#p1c<)GY4bivw9D)wYo-_|; zr5OiX8!OVe*ZRXQ*Ms`L;HBz~z38E4KrIKOu`sHA`+y)8+TfY+2#0VCZ3jlV}C2pzN7@3xQK)USNH2 z|Kpp~y~7~>$1270mO+N70{}CE2)8r@Q|k37;+#sam%KN39LD-)GkA(RJ0yMZxbdcT zjjnFjeo)OVeck!ngeG9J;PTJN$-=;manbJuMMh152i4@hhWK+8-TWqcjD2*nQB^dl zYUilDFC9-+D!uCY>2vcnsw7ujF13~*R}xE0JPw(FV@181KrnAds%cA|*uga#bf-mc zrK&u;!A9|5qaqUsgo;vdfU~>sC$3w3|M2=`u z8?nx#pWc=mxB<^j0e#`|&U9LXQJ=(H6^$~k$1~~^^+PS(WTUR|EqGbeRP|wXV~ANJx$8hZ<(76M z-d;wS%d*qx1UNeraK17A8+iAEh&z7!JhVi3g5-M7gy4NMR^}JP&$18b{4h7-QZ4dW z8pPiB<%@*S;R8%ZO{b=f<6|hY30?+kD{LyM@T=SM^qrV$;+0;=?H}n+J|P*jpLE_C za=%x3hEQ5|HNLrO%c{)JY3d(oSjLPGMG~P*J!VOg;*ko}T#rb(7_7 z#MhUuoiDn6m_bT98nrU|0%`jj$3yKFdEJA20tN``&3C>0o{6~#n*n2@^d?uQw{xB2 zeA9P;!IL|DP0IM{o(eO$^4=wm?Ofb^mw6Gus0JvS?t3-r4+ObB!*-f`?Ww8+Mu6N-i_f>Y^;47;gp|6?aGpLUuFznUDGs82nWeem zjgAh>yn3O%d;?3yzz-+_KZw4t(%NjyB_yiS)@7nU;a3 z6!30YS~?KmLpyKYlk}f4oZ#YGTzYx@N1D###$(i1lj${qcE&M$nxx(B2u613e6N=~ z(jykzyE{;BW~Pr|L@(j)K4QijUO;9b`Fa)+^EG6|d zQ?JWb*KqmmM}(H=C!J@7DUh9=5lffldCV?s)P#{J^F`@{rI;CJNO-B=ZPzseQ|Q;_ zX5jZwjTq^HX@}pR>*?)wa{aM$;Qnk550t`cik@hyTe*2$Y!)~83(=5XW{xTnaIbq` zT~o4Vws}DEv5WrL$6K^g+;h;H)IB+@T}MNjZ;2voKQGPNlP7L zUrWf+n~iMeXM2f=Qebo-7 zB{!>m(S7(R74a`VqIcM9Mh6FaZ6_6ux03p^+oFnfBe0qD4P`T6&EdS~FGUR?!BG>M z&_s$<+iE6X@v*sEIiYw7tfxB?ol{(G;$K$f7^LeEPbMZ;n<&|hhqtV@7teaBbQPDZ zwRfP>IK0M}zp3rx6{Urk7e98Qu5;lakhlMi zN5^kHIG9sm8#31Z_n4|RlYeZ-+xUM^C0tBAV*1XyQ&AFTf8^iLbSD0Y^Yjrb>w8^H zi)(td(i)UMwA&{oFE=2w=y=fwe{ z;#&C4Ez_}ym+{KfF^=u(%iN#bY%{i1C~HbPTkRN|dL?sE9~o|pRt=xs2~q~%QC(PN za+3>erfgRnS}-V%F{04gZ*T*$zaEu`NtD>K-afYuew!KVi{l`jn0C{YR!R(hV=BFG zl_CnZcrmUd5OLrqa|v$fO&akry8wSgnH56s3VnzqKxJRA3WDlByi#l0RfLe(iJNbrI@L? z+g<1(PTUJBSUGQ1N%(#U+%(fWe&#YrTCu3S{G2~USzdto6eOd~y)L)jU{Z@O8@R+Q z6>>IJK`bYmjFgYwj|ipL^7z}shuj(!KhAyqlJmg!m@Ho+r4l(W>izNeg`G71&0W49 z#!#UA>Sji{94gbfbUz|!!)m3OJ~bl+K5y!CazC15h_$k1BE^I)_#e&QqqHi2DDrP5${ap8ePYVRe7~JnWzS6P9~^-q@)2)2QX&UG@lg%!RcnH^*A~)Po~_ z@5NpJ?YaMCzB93p0JHb_GNI;`-kzOwR_s<`=Sn;)2rb+ga`d^S0PePni4u+hyj~t# z$^IlLD*8zytnU0+WM<#GT%MI(CL~lkP`8yM$+Y3tYe_>q%ZHU?IRAfJ>hmQcFiB|Ni_VEg)bA843QGcBh7h_+!+%nOuiR% zXdT?$zDvLPwD2}F>K3B@wgMl0$M3_#cgv-4tl${Vk8w)c+#9;w(pF!xMX7ZvE4wwt zUUpUhN*)q+B81)Ce%Hd|nKU%_PjhOWrmang>wb*_F~{8jOg7<{v)fwCQEqlFBZF~z zcuCxbe6Y$(?UDk!fX5Qc8L_{F{gk?n_^-LsqXRL+p)*I85EV2Hp94}*IFu*-{0Qp$ zofC4aE1CfFM$Zs0-+0*b@x@nq-| zZ`wHRzvHnd$`>snxOe!Q|1`qCi^@Nn#*+@ zrQQn@VH#kAda(jy!{z5$t7j*DK6FM%G_@ z_2c6cV=Pp8_OreN-8;l4Cu!y&nR#r~(yyjiNYC8J$!M`Lv5z~%hS^Rxvl44kPe-_a zAwEWeq2cS9>*{_Ioc&E0C_D@5EJ3A>W$b(Big;NdV|A>}ltl)w!06sVy4`Z?{!?r1 zov_!+N-Jvi+aDBvS27g1>PSAl!drv=o0)G`Y?z6`nCeycV@?MGiY*R?>TESrkQklx zbz}4Fc*zc|rJcQQ@OlepX2X)L>$X|&F#HA z2;0Hcs){s4)1Re$NXn$~7sd6d9~R_esO|g^d(F)Jh8vCm{NY<=VM6fdJPQTr{uQ65 zwQCK9*Qhb29voG{+bw<3Ib4&bqS5we(quhGVs}c?IF3%gWM;5lg50r>U+Q)hH${1= zg!;|ayTdU_59jbL5uo3?Q`1*$yQ~!cB$0T~vHLL9X#O`5r#Kl!>;EoO z^}-dp^bK`SZ23=uI`j5O6yeBqYsPuww?7$&p-;MV@Hn;I_!e>NFf!n!cUAMs_!Njp zY|G(Ra9^js${BlcTHUm{Se`9R_V#HsLl)}z$rt5|5U|7_;tVUG!4}(ZBe5fAWIjio z>pm7HO2dqov~{@|sJk~x45L)l-2j$!=$r$Fz6gWoKrH04?$o1NO;;YIhz9OEM^mVW z^R7;gFD%~SJRN0)m4k5aDD$+#f+$0RHELXxnocl6^a`*Bxl1%#Q0**fD9ok@Z&A@? zU7Mg8u1We~s`|0yKx0L$pl&K8D})U2p(Uc&t2}7n7FQKT95uG5@su0us?$j?Wl8~c zY&eAg#FocW#`KgWujKIy)d!>aeb&PzwlDZGQ2VdHAg(#~zDWvuCxXVxErW(8_QnP? z^|6%7cl{#gjpbmAS~0xeiyaPkH4u(|V|nmE3t=#7;V6HLU4{(f_K0EN1_xDBannGr z)2TiiMxM)j4pqG5v*NyrXk>TseK~-{73nPPC=t+@6QaRiJg{-}bzaY(X*{!ui_Wf) z0;K(MKJu(YaW;9UzLYzz{QDqnH9Rbco(YDTC$A{H+u_Ruq$rJn;)e9vA}nt0ps~2% z!1);SRRg|I@a~NCoYlZm*;sw(oi&tu13-tTxEOm_`CXUxg=a=0ADgD^p^sR89w8K} zSTPVXKNWAH5jUBp7&JB>f-8+y<=fwk7@Mp?n@u;Lm#1tW$261`EvYXLaUYJnAE84d zEXQtE9U2>87|^%%t!oF9qnd-0R%Q_lWM6LUY(z9V^q@y@Wq+(|nd{@t=GQwNqWk(j z+shh~L9`~yPv+U?C}F~nV)Qf?gI2yCR3~QqJR*R2^d`cIRUgG^9cyuP}@lzwqR`{UFMv|9l^eiye~ zip$)K2+do2!WUFm{_yR_C&n~e#Y}?yP0YpqKS}$U^wIiVCsE@NW*(t=wkvm5|D)4< z^sSPqb*_q))k=n!8TY2a`i~L(PlkEdTWPhwqb+jIzdC#Es>vDmxFf2bK{G>FuOB_R zz^L#}Gj4wAD6-x#{J6tENj&Tk;)j(YQ(K#OfRokT;a#V`7XJc1bNqeQLoops1Bhgs zW6z#=-Mu?o%VnRt!{)aeK70_`;|rEhc%xpPto!+#Ol2 zXxUP~iHnx2nKhnHW5t?=T2(Ywf3p{zPC1hymZY< zabUp>cgYVJZL9UAp@qDsbtZV>BEV`z_9X)$Oy^AUr~b$-F*MoRvdxu;{FZoM+9}bVsr4Vt!Xb<+>+2HKh*# z{YMIO%cDz$3cmOru_6oS!xjEUUGvbao^v;LUSQxt!M&gBSK?!@;U2D4Fjbo`8!i7V z+}`_OlB}8-IEfjDSDO9Xcjk7E#Dq<=*I&|;9uO`rWsKF+S9w9dj^oHL?7@Hah z0Tb378_izWP|J{eA&n6m3{`|-)@rIr4BAMbOED|fMCqn;lvz3Byr&Hada+xCM1qIZ zZcGxC*0|R$1MG5hjYI|OryZd*Qo7h&q1$EZ$oSN*07i%sr~V=+k}gpgm3!_=h!L6_qW zwq+#`-&EFv@PjBwCp%(nS3~wpVHDvgcI8Rh9qjs4#oF5zfjEJ|QHv%ciM`BtFP4M- z{J_B?sI!*Se(grk?j>x>PVqu{P-#jo&7@gir#K2C`TYaX7%9>?m##1%U+z<7HICSu zT5;L+0xMV;RsSfZ)cx&Ey-TmW_n(g0nU#2o1mBv}HOS_$2$c%bZFhCQt!#0(R58(4 zNe5x4Gu=)opSYI4v5h`qqgw&9;uDOU6q_G^o)h3Nsctde^0rr7n2=tq2-B60rr1Q1)?iQ_zpfFk` z-eETIX}{t{1)Dz&3ZmVL79EL^$)Mn;5cCL~Tv`&?jr!DY-kd+RjS6B2 zQAB10;N`W_CdQL-Z~kpuJ=Nc?nc`J6BmOh~y*kD8Zcd5qmyE!_?eEPSKX+W8%sXEG z+X%<&9&}>FGN)sr)aoc~+e<{1j@qFH?lNYD^QKtZqBFsIlBT?X!a;H{6pHleNQ?AjFK%t#q_bTpEY1keY2SX!6Q< zmR42OUT5y{Zv1+A)v(yiNFs>+yQu$UY4Baw!94*%DarBLxc7~2zs-|dbV{2JSnB=u zCS0BRYi}}3MaKwA)!m7xe2t2v*ghF&iPO{WIck7iBs0k3_f01KfTfJswi>0wK7?@n zi84U}2W|86%W;XbM^eUqXCKF8ufgvxYEDM2E#wK_puIFV)<4{H_lB($pcva82%#m*iC1&*&gNLugg8c*hY-_|7Ir`;_N!LGil z>7D2#s!mUPk@Khg2uZr>&Mp<1?epdl@HcVkKW?W+Xz59gLG>n%^VN1^ppsif!nE=y zQ$7@m#pP=zg&ueJ?d)LcqeP0_o4MK&-4i%HlmJ}|RZjQ{5 z)N`$(calJAiCr%=L5>UKFrn9P(${WWVc~3I&UM@radvtx9=}ATMFOW~7rcpD+mwgDN$xF4Uq9*WGaM16w&L8YdUA%EWm~w z`yx6=sMs-~|MV)l;S5}AEonL!_xwKlwjz-dkju`s3yI9w2p(a!?4Vk$89We0?#iSV zr@j|nte(nL+En2iCJ3F%)zyNg?RC4;o5*-apK0k6zNFqAPxI_H&(_bf z4R^k?=+lD}WIaqR+pjdrOkBa8 zw`5lknqVCxov=j51#exGJ#}w_^}f<%yhD=WsV7v|)xI{O~jJtCgbiu9RQ)`Rmhn@Y+g-~{DOM(y;hJ--1L!Bf5KGXF)UykFaFdNi7Y6U4F z+HVqqUaR{WX-T!!O?8O!hTjhPCN|HwoWVJ)+^G4+a98@%nJFJrSli|_2>d&N z_}m2l(K=>%rcaasmItT&2F|fECKvZdB}x^99E<)O9!vTxxXeT z!?sKT0Ja2=`vQez^$psjd?;cZ)B^<7OK>$F4p$u3%F!D2CadE`6NA{e`EheS-@{e2J<-r0?UjUBZ*8pxseEKq!Uk{-PoTr&l76 zZ_kSgyg_(wyk>nb3@x}ML|oa$&z{?-iTMY@bYge^l^(H7HXis5jVDd;32 z#yDwo^QYwoP5EC3m_)t7)EaKhL$NYTu!7P6jF8TtGhM)~&Oi4LTfXgraqFGbZ#zWO zLVyOFg0Wn=%-i~}N%yu}gUILD^Y&X@7&SS~+k)g0jICO^aQBt7{pcFLbLRVA z2SQR9Iq*OWxg>BG?v|-%;5YDn&qO)E+JrZxYShq40}1In)XH`SnFZ2@m`@33e`)y` ztgR2*p*9T`p$U-#MM8Y$MuBI2#@pPRUndOG>+6f3$CdPl?zLl_4&A4lz# zvNpZ@cQlY2BI8@YYcIOs;_D7CT}CE1Pp|Qr=>wIwWG$CBsJ2QyeC45J__J$y4s%`r z5DAD1{!AK_e)zUMn-^OXgcxo$=%_J-UJ25k`a(l)f_XxcvW z;mmD-5Q?Y;{cXx+brn}-995d+H3%D~&7!Gm!Sb*Rfx2UM3fPK1hSEGx!6r7elSTY z&A)4(_8#~;T^DR@-~dDa(Rp0XJh5;PJ0rmW?Apm^?B9ioD7_z85@&j<@d|cRRJjW> z&;&B}fw^LluwZTN+h~e7-u5>9ThI+R_$ZoQ?K1Ou6nAU)rU-T$i<>{82`r5BHerW0 zx6Ga{Q7I<+dNy80m$};(_e~2=XJdi#V$xRE=)XR~%s|m~QiHZ=aii>Z=gqvj0A!AHU@xj-M^3StyZ5 z9ULqLT5cVmlh4>4AJ=;J;cNVdsb81MBlfuto2R7?@}p3}tUI{cgryNj$EQ8x_GNy# z+>XOunK-!yiadBM9T9*^Nu~R&_4;OK^SLeAOj)dug;~salL-|_#N=I?7 zzQlBAZf}^6yC4>IGDCl;Kf;YRBGpu`qd}@Sk&>uU&yw-bUmfGOgib58Cj&t-h!NBg}2A;9x@PI0m z5*g`*eZ0w=SFZs5`*yrJ=5`nP(Kwbl7U(M_mhmX|DF456jQ$(qP7^qHIGceU$R7WzUgt6*?|%ZXvp~9{IxuRU&cW(6rBiv!?im=JGpuAxtZ?!_Gv% zD;Yh@C!bU3mhrs2qmDx5qs`RezNJ6HiXzEWc5_9R;~P8_S^-+Ons z`w)=!{rf*6Z+F?m@N3J+t{{995VmY*X-^?{h3@+LfJlLb)WBs1q>Y;kY2RH41N*B; ziiGQ)>hT_|Mjw!a2bB$$mN+nr;X4?*A6z0M>!H}#X0b6S2s5!*b)w& z^%5A}I`K5;N>*XYKa2L<|CqwzX=SD(j7R)GOXKSXOrN)=+qJ`)9R8`IUvZw=JeWSw z{qV0d=ecfyqjfBk(Wa0e_UBgbWqLC_Yfqhj1!Dbmoh8imy#MSd+tXcLWvjXAD7v*+ zdeohEiR{-e^Da_=oNX(*i2r{)MJ>m6*(Gv+_a5}DsN-)r7Lc^#{;48p{M~WC3f&ai z2FMRR{Smu%%|BSxxM6;2e6`JZL{;E9Z#C%mKZb!vn51r>Q@Y|}u#kDmu&A%Zq{3xg z2f+4o;q)nO9>@tU4S-DD)6UU(=0I<-pbr1!Dv#R*+o z>w($jK}O)7C1$6R%m+U@*`I=MPJVt$|6$G!zMlcd58piH68R`%f9QS6^k|jx`q9XH z|2(d4-lOD$QQjr4)aK0*{{Qs^j~r{fevXb$k765U`TM~mFq8jD(*L(jdbD+_Qs<7v zZ-Ysjlh*gz-WmL}Ab;0kTHraLzyP>O|-OH3teyAVYeW7 z+l544l5|CjJB&&=^g$EMX8UJjvW2RMR$Liu7}|eotp50xD7Ykv!TB@hT_oLGBdidcL-z9JcHgDlu>d7~GXqomcbxD!jFW}N z$Oayg;uLzek&{NMxpAz|0f=x2L6@1h_j*C*U2eRp%j)U6N(P4RNIT6H@fns&Em=>i zT5(>C`*H9#uoLS(JEX6HY$*-(Q&rrLjVkfU>zJ8+^xBX08t8yUvcA&xYL?~80d0kr zd1*WVf&RepCSQ;*lx9e1%IkmHwd-n3FSGr`uKb);n|S!IT>igflhV-; z;9A}l-(zEK0@0v9Yc_rB=P{Vho9}<%v@6GsBA59ebu8<$tXuVj_M+~p?fPlIC3$-yk53u|f(7pJa7^kwlHh+cvWz=K#) z#-@~eCsa>H2mHsrKex&9 z0sfv6e(U4oBV%pfKI{DX{P>NZHx#eOr!u6k*B@LzR@Qg?SY+Dc3$I?XB?#2j>AVeV zaP_{!;BL6C|Gb(Kc75RnqrM8uIsd&xH|TX|gw@_ytA6ez!e}%J+m)`Q{K%4iQ};sQ zjL`0=KBmuqJ0!Bm29W>o*190^KZ}`2~wlWY~oN^kthKKwdj8f_8p1i=YW_04V7)kZH zKye${KCkP{ZvY`!WQkxIm1JIHPXGs(e4H9tvJWWPHxSqAcP%ULTT4KOoQNC$l-X65 zQ!Wul@?7M{hS0jN_BYZ;LK^}(8Yp72XFfTnoT?naU083G8Z~(dOi@x8Z$5Nc58TPA z6AEk8yUmw01ql0Vj@bR+D7oItg-4v{iP=8}r(t2|-wdib#INPu{KfkhlK$@mm2j#Z zt}f8?oMD*z=b7EPdNeyuElP&=uRhBqVNcSyphMvW8gB(syYbpGFM-Qpq{;Atlq<*MfUcyV8)4ed zx&+j8g?d&{E^&RitePzVUCb zyIk-2Q@kR2ef%4Xi*x?jDVB|YLI`7qR3m?Dhqp4*m3Oq~D)zUSu4LZ)rJMI>Nu_T8 zr2M%1XWKJ^N!XD-;-}mrd*{Q7jQ`{9y37C5ed+0iQt|y3hCu=vzPKQW#=%0FtGB5d7V+q)=

w=t?#DmvJjgCB#&B*ZppD9!QE6~m2 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�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%0Da^uxZf7 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 CET|Fy diff --git a/parser.go b/parser.go index 2d54cbc..f29861e 100644 --- a/parser.go +++ b/parser.go @@ -44,14 +44,6 @@ const ( op_IN ) -func init() { - SetErrorVerbose(true) -} - -// SetErrorVerbose is retained for API compatibility. The hand-written parser -// always returns verbose ParseError values. -func SetErrorVerbose(bool) {} - func operatorToString(op int) string { switch op { case op_EQ: diff --git a/rule.go b/rule.go index 9c86312..eb909da 100644 --- a/rule.go +++ b/rule.go @@ -6,8 +6,6 @@ // https://github.com/qpoint-io/rulekit#readme package rulekit -//go:generate bash gen.sh - import ( "context" "fmt" @@ -161,10 +159,6 @@ func (r Result) Fail() bool { return r.Complete() && isZero(r.Value) } -func (r Result) incomplete() bool { - return r.Error != nil || len(r.MissingFields) > 0 -} - type ParseError struct { Line int Column int @@ -190,39 +184,7 @@ func (e *ParseError) Error() string { } if e.Message != "" { - replacer := strings.NewReplacer( - "token_ERROR", `symbol`, - "token_LPAREN", `"("`, - "token_RPAREN", `")"`, - "op_NOT", `"!"`, - "op_AND", `"&&"`, - "op_OR", `"||"`, - "op_EQ", `"=="`, - "op_NE", `"!="`, - "op_GT", `">"`, - "op_GE", `">="`, - "op_LT", `"<"`, - "op_LE", `"<="`, - "op_CONTAINS", `"contains"`, - "op_MATCHES", `"=~"`, - "token_INT", `"integer"`, - "token_FLOAT", `"float"`, - "token_BOOL", `"boolean"`, - "token_IP_CIDR", `"cidr"`, - "token_IP", `"ip"`, - "token_REGEX", `"regex"`, - "token_FIELD", `"field name"`, - "token_STRING", `"string"`, - "token_HEX_STRING", `"hex"`, - "token_ARRAY", `"array"`, - "token_LBRACKET", `"["`, - "token_RBRACKET", `"]"`, - "token_DOT", `"."`, - "token_LPAREN", `"("`, - "token_RPAREN", `")"`, - "token_FUNCTION", `"function or field identifier"`, - ) - result += "\n" + replacer.Replace(e.Message) + result += "\n" + e.Message } if e.Suggestion != "" { diff --git a/set/set.go b/set/set.go deleted file mode 100644 index 0f64f96..0000000 --- a/set/set.go +++ /dev/null @@ -1,61 +0,0 @@ -package set - -import ( - "golang.org/x/exp/maps" -) - -type Set[T comparable] map[T]struct{} - -func NewSet[T comparable](items ...T) Set[T] { - return NewSetSize(len(items), items...) -} - -func NewSetSize[T comparable](size int, items ...T) Set[T] { - set := make(Set[T], size) - set.Add(items...) - return set -} - -func (s Set[T]) Add(items ...T) { - for _, item := range items { - s[item] = struct{}{} - } -} - -func (s Set[T]) Contains(item T) bool { - _, ok := s[item] - return ok -} - -func (s Set[T]) Remove(item T) { - delete(s, item) -} - -func (s Set[T]) Items() []T { - if len(s) == 0 { - return nil - } - return maps.Keys(s) -} - -func (s Set[T]) Merge(other Set[T]) { - s.Add(other.Items()...) -} - -func (s Set[T]) Len() int { - return len(s) -} - -func Union[T comparable](sets ...Set[T]) Set[T] { - var union Set[T] - for _, set := range sets { - if set == nil { - continue - } - if union == nil { - union = NewSetSize[T](len(set)) - } - union.Merge(set) - } - return union -} diff --git a/set/set_test.go b/set/set_test.go deleted file mode 100644 index a1bded5..0000000 --- a/set/set_test.go +++ /dev/null @@ -1,184 +0,0 @@ -package set - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestNewSet(t *testing.T) { - tests := []struct { - name string - items []int - expected []int - }{ - { - name: "empty set", - items: []int{}, - expected: []int{}, - }, - { - name: "single item", - items: []int{1}, - expected: []int{1}, - }, - { - name: "multiple items", - items: []int{1, 2, 3}, - expected: []int{1, 2, 3}, - }, - { - name: "duplicate items", - items: []int{1, 1, 2, 2, 3}, - expected: []int{1, 2, 3}, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - set := NewSet(tt.items...) - require.ElementsMatch(t, tt.expected, set.Items()) - }) - } -} - -func TestSet_Operations(t *testing.T) { - t.Run("add and contains", func(t *testing.T) { - set := NewSet[int]() - set.Add(1, 2, 3) - - require.True(t, set.Contains(1)) - require.True(t, set.Contains(2)) - require.True(t, set.Contains(3)) - require.False(t, set.Contains(4)) - }) - - t.Run("remove", func(t *testing.T) { - set := NewSet(1, 2, 3) - set.Remove(2) - - require.True(t, set.Contains(1)) - require.False(t, set.Contains(2)) - require.True(t, set.Contains(3)) - }) - - t.Run("size", func(t *testing.T) { - tests := []struct { - name string - set Set[int] - expected int - }{ - { - name: "nil set", - set: nil, - expected: 0, - }, - { - name: "empty set", - set: NewSet[int](), - expected: 0, - }, - { - name: "non-empty set", - set: NewSet(1, 2, 3), - expected: 3, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - require.Len(t, tt.set.Items(), tt.expected) - }) - } - }) -} - -func TestSet_Merge(t *testing.T) { - tests := []struct { - name string - set1 []int - set2 []int - expected []int - }{ - { - name: "merge empty sets", - set1: []int{}, - set2: []int{}, - expected: []int{}, - }, - { - name: "merge with empty set", - set1: []int{1, 2}, - set2: []int{}, - expected: []int{1, 2}, - }, - { - name: "merge distinct sets", - set1: []int{1, 2}, - set2: []int{3, 4}, - expected: []int{1, 2, 3, 4}, - }, - { - name: "merge overlapping sets", - set1: []int{1, 2, 3}, - set2: []int{2, 3, 4}, - expected: []int{1, 2, 3, 4}, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - set1 := NewSet(tt.set1...) - set2 := NewSet(tt.set2...) - set1.Merge(set2) - require.ElementsMatch(t, tt.expected, set1.Items()) - }) - } -} - -func TestUnion(t *testing.T) { - tests := []struct { - name string - sets [][]int - expected []int - }{ - { - name: "union empty sets", - sets: [][]int{{}, {}}, - expected: []int{}, - }, - { - name: "union single set", - sets: [][]int{{1, 2, 3}}, - expected: []int{1, 2, 3}, - }, - { - name: "union multiple sets", - sets: [][]int{ - {1, 2}, - {2, 3}, - {3, 4}, - }, - expected: []int{1, 2, 3, 4}, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - var sets []Set[int] - for _, items := range tt.sets { - sets = append(sets, NewSet(items...)) - } - result := Union(sets...) - require.ElementsMatch(t, tt.expected, result.Items()) - }) - } - - t.Run("union with nil set", func(t *testing.T) { - result := Union(nil, NewSet(1, 2, 3)) - require.ElementsMatch(t, []int{1, 2, 3}, result.Items()) - - result = Union[int](nil, nil) - require.Nil(t, result) - }) -} diff --git a/values.go b/values.go index 0ba8afb..668730b 100644 --- a/values.go +++ b/values.go @@ -100,17 +100,6 @@ func (p *PathValue) Print(PrintMode) string { return p.String() } -func asPathValue(r Rule) (*PathValue, bool) { - switch v := r.(type) { - case FieldValue: - return &PathValue{segments: fieldPathSegments(string(v))}, true - case *PathValue: - return v, true - default: - return nil, false - } -} - func fieldPathSegments(path string) []pathSegment { parts := strings.Split(path, ".") segments := make([]pathSegment, 0, len(parts)) From e8c9a30ad706283ce9c06b9e969ca761299d1db1 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:46:11 +0300 Subject: [PATCH 031/106] Use Go 1.27.1; CI reads the version from go.mod --- .github/workflows/ci.yml | 2 +- demo/go.mod | 2 +- go.mod | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c570497..e79e4a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v6 with: - go-version: "1.26.1" + go-version-file: go.mod - name: Test run: go test -v ./... diff --git a/demo/go.mod b/demo/go.mod index 721b8a7..eaa3e76 100644 --- a/demo/go.mod +++ b/demo/go.mod @@ -1,6 +1,6 @@ module github.com/qpoint-io/rulekit/v2/demo -go 1.26.2 +go 1.27.1 require github.com/qpoint-io/rulekit/v2 v2.0.0-00010101000000-000000000000 diff --git a/go.mod b/go.mod index 6282750..a2605fe 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/qpoint-io/rulekit/v2 -go 1.26.2 +go 1.27.1 require ( github.com/hashicorp/go-multierror v1.1.1 From 4a983b0d8da643214c20b335c34c1a528fb69151 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:46:39 +0300 Subject: [PATCH 032/106] Demo decodes input with DecodeJSON --- demo/wasm/main.go | 47 +++-------------------------------------------- 1 file changed, 3 insertions(+), 44 deletions(-) diff --git a/demo/wasm/main.go b/demo/wasm/main.go index c0ea2f3..ed332ec 100644 --- a/demo/wasm/main.go +++ b/demo/wasm/main.go @@ -238,13 +238,11 @@ func evalRule(source string, inputJSON string) evalResponse { if err != nil { return evalResponse{OK: false, Error: err.Error(), AST: ast.JSON().Root} } - var input map[string]any - decoder := json.NewDecoder(strings.NewReader(inputJSON)) - decoder.UseNumber() - if err := decoder.Decode(&input); err != nil { + input, err := rulekit.DecodeJSON([]byte(inputJSON), rulekit.JSONOptions{}) + if err != nil { return evalResponse{OK: false, Error: "input json: " + err.Error(), AST: ast.JSON().Root} } - res := rule.Eval(context.Background(), jsonInput(input), rulekit.Opts{Trace: true}) + res := rule.Eval(context.Background(), rulekit.FromKV(input), rulekit.Opts{Trace: true}) out := evalResponse{ OK: res.Error == nil, Value: res.Value, @@ -367,42 +365,3 @@ func sourceForNode(source string, node rulekit.ASTNode) string { } return source[span.Start:span.End] } - -type jsonInput map[string]any - -func (j jsonInput) Get(ctx context.Context, path []rulekit.PathSegment) (any, bool, error) { - var current any = map[string]any(j) - for _, segment := range path { - if segment.IsIndex { - arr, ok := current.([]any) - if !ok || segment.Index < 0 || segment.Index >= len(arr) { - return nil, false, nil - } - current = normalizeJSONValue(arr[segment.Index]) - continue - } - obj, ok := current.(map[string]any) - if !ok { - return nil, false, nil - } - value, ok := obj[segment.Key] - if !ok { - return nil, false, nil - } - current = normalizeJSONValue(value) - } - return current, true, nil -} - -func normalizeJSONValue(value any) any { - switch v := value.(type) { - case json.Number: - if i, err := v.Int64(); err == nil { - return i - } - if f, err := v.Float64(); err == nil { - return f - } - } - return value -} From 19ebe4214119223cc050e13df852a4bca2e87fa3 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:50:01 +0300 Subject: [PATCH 033/106] not binds looser than comparisons --- README.md | 2 +- ast.go | 5 +++++ nodes.go | 15 ++++++++++++--- parser.go | 4 +++- testdata/vectors/eval.json | 6 +++++- testdata/vectors/print.json | 3 +++ 6 files changed, 29 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1eb305a..e13b88f 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ The Result also provides additional helper methods: | ---------- | ------ | -------------------------------------------------------------------- | | `or` | `\|\|` | Logical OR | | `and` | `&&` | Logical AND | -| `not` | `!` | Logical NOT | +| `not` | `!` | Logical NOT. Binds looser than comparisons, so `not a == 1` means `not (a == 1)` | | `()` | | Parentheses for grouping | | `==` | `eq` | Equal to | | `!=` | `ne` | Not equal to | diff --git a/ast.go b/ast.go index 7daf6db..0562c61 100644 --- a/ast.go +++ b/ast.go @@ -329,6 +329,11 @@ func printASTWithParent(node astNode, parentPrec int, rightChild bool) string { right = "(" + printAST(n.right) + ")" } out = "not " + right + // not binds looser than comparisons, so it needs parentheses as a + // comparison operand. + if parentPrec >= astPrecedence(&astBinary{op: astOpEQ}) { + return "(" + out + ")" + } case *astBinary: out = printASTWithParent(n.left, prec, false) + " " + astOperatorString(n.op) + " " + printASTWithParent(n.right, prec, true) } diff --git a/nodes.go b/nodes.go index 5eeba74..5b69c91 100644 --- a/nodes.go +++ b/nodes.go @@ -216,7 +216,16 @@ func (n *nodeMatch) apply(lv any, rv any) bool { } func (n *nodeMatch) String() string { - return n.lv.String() + " =~ " + n.rv.String() + return operandString(n.lv) + " =~ " + operandString(n.rv) +} + +// operandString prints a comparison operand, parenthesizing negations because +// not binds looser than comparisons. +func operandString(r Rule) string { + if _, ok := unwrapTracedRule(r).(*nodeNot); ok { + return "(" + r.String() + ")" + } + return r.String() } func (n *nodeMatch) Print(PrintMode) string { @@ -265,7 +274,7 @@ func (n *nodeCompare) Eval(ctx context.Context, input Input, opts Opts) Result { } func (n *nodeCompare) String() string { - return n.lv.String() + " " + operatorToString(n.op) + " " + n.rv.String() + return operandString(n.lv) + " " + operatorToString(n.op) + " " + operandString(n.rv) } func (n *nodeCompare) Print(PrintMode) string { @@ -332,7 +341,7 @@ func (n *nodeIn) Eval(ctx context.Context, input Input, opts Opts) Result { } func (n *nodeIn) String() string { - return n.lv.String() + " in " + n.rv.String() + return operandString(n.lv) + " in " + operandString(n.rv) } func (n *nodeIn) Print(PrintMode) string { diff --git a/parser.go b/parser.go index f29861e..b52ed64 100644 --- a/parser.go +++ b/parser.go @@ -755,7 +755,9 @@ func (p *parser) parsePrimary() (astNode, error) { } return p.parseArray(tok) case op_NOT: - right, err := p.parseExpr(4) + // not binds looser than comparisons and tighter than and/or, so + // `not a == 1` is `not (a == 1)`. + right, err := p.parseExpr(infixPrecedence(op_EQ)) if err != nil { return nil, err } diff --git a/testdata/vectors/eval.json b/testdata/vectors/eval.json index 135ed81..9ab3b58 100644 --- a/testdata/vectors/eval.json +++ b/testdata/vectors/eval.json @@ -510,6 +510,10 @@ "expect": {"value": true} }, {"name": "not negates true", "expr": "not (a == 1)", "input": {"a": 1}, "expect": {"value": false}}, - {"name": "not negates false", "expr": "not (a == 1)", "input": {"a": 2}, "expect": {"value": true}} + {"name": "not negates false", "expr": "not (a == 1)", "input": {"a": 2}, "expect": {"value": true}}, + {"name": "not binds looser than comparison", "expr": "not a == 1", "input": {"a": 2}, "expect": {"value": true}}, + {"name": "! binds looser than comparison", "expr": "!a == 1", "input": {"a": 1}, "expect": {"value": false}}, + {"name": "not binds tighter than and", "expr": "not a == 1 and b", "input": {"a": 1, "b": true}, "expect": {"value": false}}, + {"name": "parenthesized not as comparison operand", "expr": "(not a) == false", "input": {"a": true}, "expect": {"value": true}} ] } diff --git a/testdata/vectors/print.json b/testdata/vectors/print.json index b4f4dd6..a410b38 100644 --- a/testdata/vectors/print.json +++ b/testdata/vectors/print.json @@ -32,6 +32,9 @@ "expr": "not (a == 1 or b == 2)", "expect": {"print": {"compact": "not (a == 1 or b == 2)"}} }, + {"name": "compact: not over a comparison", "expr": "not a == 1", "expect": {"print": {"compact": "not (a == 1)"}}}, + {"name": "compact: not as comparison operand keeps parens", "expr": "(not a) == false", "expect": {"print": {"compact": "(not a) == false"}}}, + {"name": "compact: not under and", "expr": "not a and b", "expect": {"print": {"compact": "not a and b"}}}, { "name": "compact: ip in 192.168.0.0/16", "expr": "ip in 192.168.0.0/16", From dbac1c55c157b124882688e8d03f548607962148 Mon Sep 17 00:00:00 2001 From: Kamal Nasser Date: Mon, 5 Oct 2026 17:51:45 +0300 Subject: [PATCH 034/106] Machine-facing operator names are words (eq, ge, matches); text keeps symbols --- README.md | 2 +- ast_json.go | 15 ++++++++------- compare.go | 7 ++++--- demo/src/App.vue | 2 +- demo/wasm/main.go | 9 +++++++++ testdata/vectors/ast_json.json | 4 ++-- testdata/vectors/trace.json | 2 +- 7 files changed, 26 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index e13b88f..27e3edb 100644 --- a/README.md +++ b/README.md @@ -228,7 +228,7 @@ data, err := json.Marshal(ast) "id": "root", "kind": "binary", "text": "age >= 18", - "operator": ">=", + "operator": "ge", "raw": ">=", "span": {"start": 0, "end": 9, "startLine": 1, "startColumn": 1, "endLine": 1, "endColumn": 10}, "children": [ diff --git a/ast_json.go b/ast_json.go index 271d132..7aedb64 100644 --- a/ast_json.go +++ b/ast_json.go @@ -98,7 +98,8 @@ func (k ASTKind) String() string { } } -// String returns the normalized spelling of an operator. +// String returns the operator's machine name, as used in JSON and +// diagnostics. Printed rules use the human spelling (==, =~, ...) instead. func (o Operator) String() string { switch o { case OperatorNot: @@ -108,17 +109,17 @@ func (o Operator) String() string { case OperatorOr: return "or" case OperatorEQ: - return "==" + return "eq" case OperatorNE: - return "!=" + return "ne" case OperatorGT: - return ">" + return "gt" case OperatorGE: - return ">=" + return "ge" case OperatorLT: - return "<" + return "lt" case OperatorLE: - return "<=" + return "le" case OperatorContains: return "contains" case OperatorMatches: diff --git a/compare.go b/compare.go index 9505415..0bc75fc 100644 --- a/compare.go +++ b/compare.go @@ -179,6 +179,7 @@ func newComparisonDiagnostic(code compareDiagnostic, left any, op int, right any leftType := diagnosticType(left) rightType := diagnosticType(right) operator := operatorToString(op) + name := publicOperator(astOperatorFromToken(op)).String() switch code { case compareDiagnosticIncomparable: @@ -186,7 +187,7 @@ func newComparisonDiagnostic(code compareDiagnostic, left any, op int, right any Code: DiagnosticComparisonIncomparable, Message: fmt.Sprintf("cannot compare %s %s %s", leftType, operator, rightType), LeftType: leftType, - Operator: operator, + Operator: name, RightType: rightType, } case compareDiagnosticInvalidShape: @@ -194,7 +195,7 @@ func newComparisonDiagnostic(code compareDiagnostic, left any, op int, right any Code: DiagnosticComparisonInvalidShape, Message: fmt.Sprintf("invalid comparison shape for %s %s %s", leftType, operator, rightType), LeftType: leftType, - Operator: operator, + Operator: name, RightType: rightType, } case compareDiagnosticUnsupportedOperator: @@ -202,7 +203,7 @@ func newComparisonDiagnostic(code compareDiagnostic, left any, op int, right any Code: DiagnosticComparisonUnsupportedOperator, Message: fmt.Sprintf("operator %s is not supported for %s and %s", operator, leftType, rightType), LeftType: leftType, - Operator: operator, + Operator: name, RightType: rightType, } default: diff --git a/demo/src/App.vue b/demo/src/App.vue index 6263f67..cdbb99e 100644 --- a/demo/src/App.vue +++ b/demo/src/App.vue @@ -396,7 +396,7 @@ function valueText(value: unknown) {

{{ selectedNode?.text || 'click a node to edit or delete safe nodes' }}

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 diff --git a/old_demo_screenshots/SCR-20260516-qcce.png b/old_demo_screenshots/SCR-20260516-qcce.png deleted file mode 100644 index 563f960d384dbb187e731bdbcba87ae0b19221a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669851 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ξ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