# Provenance of vendored bidi implementation Source: `golang.org/x/text@v0.42.0/unicode/bidi` (BSD-3-Clause; `LICENSE`). Copied unchanged except, in `bidi.go`, the package import comment and the upstream `go:generate` directive (its generators are not vendored), both marked `// nefergui:`. `levels.go` and `conformance_test.go` are NeferGUI additions; all modifications/extensions are marked `// nefergui:`. Upstream generator and generated-table tests depend on `golang.org/x/text/internal/*` (inaccessible from NeferGUI); they are deliberately not copied. Upstream `bidi_test.go` is retained and passing. Tables selected by Go 1.27 use Unicode **17.0.0**; `tables15.0.0.go` is retained for the original build tags. Go 1.27 is the supported module version. SHA-256 of each original copied file (before the marked package-comment modification): | file | SHA-256 | | --- | --- | | bidi.go | b1e9360e9a026006f56914a5716b18780346418bb0b64bce23a4ff92d8147b13 | | bidi_test.go | 2e01617e4fc2f617bfd0246852c398525ae28616d05bf3c1d28d8c0dcb574d87 | | bracket.go | 5caa24f9c4e04a54d18875468f976b4b7c09c8700e88286f2fd96828f134107e | | core.go | ef15872f0cac7702bba67bbba334c4fc85376869e18fadec40e646f1ba8c4493 | | prop.go | f6391b2f69a1ae2a0ac1f0599a90b260ec350a19f73ad5d6572660100b5950bc | | trieval.go | bf3e17fca178c7d13139aa7cb7828005a0a1b8f4dca8ef97966236c6469a2136 | | tables15.0.0.go | 98c2d6d57e116667e73a4f5c89ee20ead7b27b50d561b5c5d23d8ebf0e3f3310 | | tables17.0.0.go | a49eafd4eb11f7c8ae810ee5d69ca59a0cddd97dc644afbcb3e40563617088fc | | LICENSE | 911f8f5782931320f5b8d1160a76365b83aea6447ee6c04fa6d5591467db9dad | Unicode 17 `BidiCharacterTest.txt`: https://www.unicode.org/Public/17.0.0/ucd/BidiCharacterTest.txt; SHA-256 `a3e6e905ab5afbe318a96df5401d0372a04cd73ef139ab5e3cf0ae241c255488`. Terms: https://www.unicode.org/license.txt (copied as `testdata/LICENSE`; SHA-256 `e7a93b009565cfce55919a381437ac4db883e9da2126fa28b91d12732bc53d96`). All 91,707 cases must pass for paragraph level, resolved L1 levels, and L2 order. NeferGUI's wrapper canonicalizes the U+2329/U+232A bracket identifiers to U+3008 before calling the upstream bracket pairer (4 otherwise failing canonical-equivalence cases); the upstream algorithm is otherwise unchanged.