From f6d85b8e63288288f959b29bc4eefba91b89a91e Mon Sep 17 00:00:00 2001 From: Varun Gandhi Date: Sun, 24 Nov 2024 09:11:38 +0800 Subject: [PATCH 1/3] feat: Add richer stats command --- .tool-versions | 2 +- cmd/scip/stats.go | 582 ++++++++++++++++++++++++++++++++++++----- cmd/scip/stats_test.go | 14 + go.mod | 4 +- go.sum | 13 + 5 files changed, 546 insertions(+), 69 deletions(-) create mode 100644 cmd/scip/stats_test.go diff --git a/.tool-versions b/.tool-versions index 073ee1d7..d08c245a 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,4 +1,4 @@ -golang 1.20.14 +golang 1.23.0 nodejs 16.20.2 shellcheck 0.7.1 yarn 1.22.22 diff --git a/cmd/scip/stats.go b/cmd/scip/stats.go index b987acc3..6f4c77d9 100644 --- a/cmd/scip/stats.go +++ b/cmd/scip/stats.go @@ -1,28 +1,44 @@ package main import ( + "encoding/binary" "encoding/json" "fmt" "log" + "math" + "math/rand/v2" "net/url" "os" "path/filepath" + "github.com/cockroachdb/errors" "github.com/hhatto/gocloc" "github.com/montanaflynn/stats" + "github.com/pierrec/lz4/v4" + conciter "github.com/sourcegraph/conc/iter" + "github.com/sourcegraph/conc/pool" "github.com/urfave/cli/v2" - "google.golang.org/protobuf/proto" - "github.com/cockroachdb/errors" + "golang.org/x/exp/slices" + "google.golang.org/protobuf/proto" "github.com/sourcegraph/scip/bindings/go/scip" ) type statsFlags struct { from string + includeStats cli.StringSlice customProjectRoot string } +func extraStatsFlag(storage *cli.StringSlice) *cli.StringSliceFlag { + return &cli.StringSliceFlag{ + Name: "extra-stats", + Usage: "Comma separated values of extra statistics to gather. Allowed values: [compression-ratios].", + Destination: storage, + } +} + func statsCommand() cli.Command { var statsFlags statsFlags stats := cli.Command{ @@ -31,6 +47,7 @@ func statsCommand() cli.Command { Flags: []cli.Flag{ fromFlag(&statsFlags.from), projectRootFlag(&statsFlags.customProjectRoot), + extraStatsFlag(&statsFlags.includeStats), }, Action: func(c *cli.Context) error { return statsMain(statsFlags) @@ -41,6 +58,7 @@ func statsCommand() cli.Command { func statsMain(flags statsFlags) error { from := flags.from + includeCompression := slices.Contains(flags.includeStats.Value(), "compression-ratios") index, err := readFromOption(from) if err != nil { return errors.Wrap(err, "error reading SCIP file") @@ -49,7 +67,7 @@ func statsMain(flags statsFlags) error { return errors.Errorf("Index.Metadata is nil (--from=%s)", from) } output := map[string]interface{}{} - indexStats, err := countStatistics(index, flags.customProjectRoot) + indexStats, err := countStatistics(index, statsOptions{includeCompression}, flags.customProjectRoot) if err != nil { return errors.Wrap(err, "error counting stats") } @@ -61,50 +79,479 @@ func statsMain(flags statsFlags) error { return nil } -type Stats struct { - Percentiles struct { - Fifty int32 `json:"50"` - Ninety int32 `json:"90"` - NinetyFive int32 `json:"95"` - NinetyNine int32 `json:"99"` - NinetyNinePointNine int32 `json:"99.9"` - } - Mean int32 `json:"mean"` - Stddev int32 `json:"stddev"` - Max int32 `json:"max"` - Sum int32 `json:"sum"` - Comment string `json:"comment"` -} - -func NewStats(values []float64) Stats { - s := Stats{} - s.Percentiles.Fifty = percentile(values, 50) - s.Percentiles.Ninety = percentile(values, 90) - s.Percentiles.NinetyFive = percentile(values, 95) - s.Percentiles.NinetyNine = percentile(values, 99) - s.Percentiles.NinetyNinePointNine = percentile(values, 99.9) +type Percentiles[N any] struct { + Fifty N `json:"50"` + Ninety N `json:"90"` + NinetyFive N `json:"95"` + NinetyNine N `json:"99"` + NinetyNinePointNine N `json:"99.9"` +} + +type GenericStats[N any, NP any] struct { + Percentiles Percentiles[NP] `json:"percentiles"` + Mean N `json:"mean"` + Stddev N `json:"stddev"` + Max N `json:"max"` + Sum N `json:"-"` + Comment string `json:"comment,omitempty"` +} + +type Stats[N any] GenericStats[N, N] + +func MapPercentiles[A any, B any](s Percentiles[A], f func(A) B) Percentiles[B] { + return Percentiles[B]{ + Fifty: f(s.Fifty), + Ninety: f(s.Ninety), + NinetyFive: f(s.NinetyFive), + NinetyNine: f(s.NinetyNine), + NinetyNinePointNine: f(s.NinetyNinePointNine), + } +} + +func MapStats[A any, B any](s Stats[A], f func(A) B) Stats[B] { + out := Stats[B]{ + Percentiles: MapPercentiles(s.Percentiles, f), + Mean: f(s.Mean), + Stddev: f(s.Stddev), + Max: f(s.Max), + Sum: f(s.Sum), + Comment: s.Comment, + } + return out +} + +type BinnedStats struct { + Bins []BinData `json:"bins"` + BinCount int32 `json:"binCount"` + Stats GenericStats[float64, int32] `json:"stats"` +} + +type BinData struct { + Value int32 `json:"value"` + Count int32 `json:"count"` + Percentage float64 `json:"percentage"` + Examples []example `json:"examples,omitempty"` +} + +func PercentilesFromBinData(bins []BinData) Percentiles[int32] { + percentile50Set := false + percentile90Set := false + percentile95Set := false + percentile99Set := false + percentile99_9Set := false + cumulativePercentage := 0.0 + out := Percentiles[int32]{} + for _, binData := range bins { + cumulativePercentage += binData.Percentage + if !percentile50Set && cumulativePercentage >= 50.0 { + out.Fifty = binData.Value + percentile50Set = true + } + if !percentile90Set && cumulativePercentage >= 90.0 { + out.Ninety = binData.Value + percentile90Set = true + } + if !percentile95Set && cumulativePercentage >= 95.0 { + out.NinetyFive = binData.Value + percentile95Set = true + } + if !percentile99Set && cumulativePercentage >= 99.0 { + out.NinetyNine = binData.Value + percentile99Set = true + } + if !percentile99_9Set && cumulativePercentage >= 99.9 { + out.NinetyNinePointNine = binData.Value + percentile99_9Set = true + } + } + return out +} + +func NewStatsFloat64(values []float64) Stats[float64] { + s := Stats[float64]{} + s.Percentiles.Fifty = percentileFloat(values, 50) + s.Percentiles.Ninety = percentileFloat(values, 90) + s.Percentiles.NinetyFive = percentileFloat(values, 95) + s.Percentiles.NinetyNine = percentileFloat(values, 99) + s.Percentiles.NinetyNinePointNine = percentileFloat(values, 99.9) mean, _ := stats.Mean(values) - s.Mean = int32(mean) + s.Mean = mean stddev, _ := stats.StandardDeviation(values) - s.Stddev = int32(stddev) + s.Stddev = stddev max, _ := stats.Max(values) - s.Max = int32(max) + s.Max = max sum, _ := stats.Sum(values) - s.Sum = int32(sum) + s.Sum = sum return s } +func NewStatsInt32(values []float64) Stats[int32] { + return MapStats(NewStatsFloat64(values), func(x float64) int32 { + return int32(x) + }) +} + type indexStatistics struct { - Documents int32 `json:"documents"` - DocumentSizes Stats `json:"documentSizes"` - LinesOfCode int32 `json:"linesOfCode"` - Occurrences int32 `json:"occurrences"` - OccurrenceCounts Stats `json:"occurrenceCounts"` - Definitions int32 `json:"definitions"` - DefinitionCounts Stats `json:"definitionCounts"` + Documents int32 `json:"totalDocuments"` + DocumentSizes Stats[int32] `json:"documentSizes"` + LinesOfCode int32 `json:"totalLinesOfCode"` + Occurrences int32 `json:"totalOccurrences"` + OccurrenceCounts Stats[int32] `json:"occurrenceCountsPerDocument"` + SymbolInfos int32 `json:"totalSymbolInfos"` + SymbolInfoCounts Stats[int32] `json:"symbolInfoCountsPerDocument"` + Definitions int32 `json:"totalDefinitions"` + DefinitionCounts Stats[int32] `json:"definitionCountsPerDocument"` + OccurrenceCountsPerLine BinnedStats `json:"occurrenceCountsPerLine"` + CompressionRatios CompressionRatios `json:"compressionRatios,omitempty"` + Relationships int32 `json:"totalRelationships"` + RelationshipCounts Stats[int32] `json:"relationshipCountsPerDocument"` + RelationshipCountsPerSymbol BinnedStats `json:"relationshipCountsPerSymbol"` +} + +type CompressionRatios struct { + LineStarts Stats[float64] `json:"lineStarts"` + LineDeltas Stats[float64] `json:"lineDeltas"` + CharStarts Stats[float64] `json:"charStarts"` + CharDeltas Stats[float64] `json:"charDeltas"` + SuffixIDs Stats[float64] `json:"suffixIDs"` + Roles Stats[float64] `json:"roles"` + Comment string `json:"comment"` +} + +type compressionStats struct { + compressedSize int32 + uncompressedSize int32 +} + +// The slices may be empty if the document has fewer +// than CHUNK_SIZE occurrences. +type perDocCompressionStats struct { + LineStarts []compressionStats + LineDeltas []compressionStats + CharStarts []compressionStats + CharDeltas []compressionStats + SuffixIDs []compressionStats + Roles []compressionStats +} + +func calculateCompressionRatios(cs []compressionStats) []float64 { + out := make([]float64, 0, len(cs)) + for _, c := range cs { + if c.uncompressedSize == 0 { + panic("uncompressedSize == 0") + } + out = append(out, float64(c.compressedSize)/float64(c.uncompressedSize)) + } + return out +} + +type example struct { + DocPath string `json:"relative_path"` + Symbol *string `json:"symbol,omitempty"` + Line *int32 `json:"line,omitempty"` +} + +type binData struct { + count int32 + examples []example +} + +type Bins map[int32]binData + +type perDocRawStats struct { + serializedSizeBytes int32 + definitionCount int32 + symbolInfoCounts int32 + relationshipCount Bins + occurrencesPerLine Bins + compressionStats perDocCompressionStats +} + +type fakeSuffixIDMaker struct { + cache map[string]int32 + next int32 + rng *rand.Rand +} + +func newFakeSuffixIDMaker() *fakeSuffixIDMaker { + return &fakeSuffixIDMaker{ + cache: make(map[string]int32), + next: 1000000, + rng: rand.New(rand.NewPCG(0, 0)), + } +} + +func (f *fakeSuffixIDMaker) makeSuffixID(s string) int32 { + if id, ok := f.cache[s]; ok { + return id + } + id := f.next + f.next += 1 + int32(f.rng.ExpFloat64()) + f.cache[s] = id + return id +} + +const CHUNK_SIZE = 200 + +type statsOptions struct { + includeCompressionStats bool } -func countStatistics(index *scip.Index, customProjectRoot string) (*indexStatistics, error) { +func newPerDocRawStats(d *scip.Document, options statsOptions) perDocRawStats { + bytes, _ := proto.Marshal(d) + serializedSizeBytes := len(bytes) + bytes = nil + definitionCount := 0 + symbolInfoCounts := len(d.Symbols) + curLine, occsInCurLine := int32(-1), int32(0) + relsPerSymbol := Bins{} + for _, sym := range d.Symbols { + data := relsPerSymbol[int32(len(sym.Relationships))] + data.count += 1 + if len(sym.Relationships) > 10 { + data.examples = append(data.examples, example{ + DocPath: d.RelativePath, + Symbol: &sym.Symbol, + Line: nil, + }) + } + relsPerSymbol[int32(len(sym.Relationships))] = data + } + occsPerLine := Bins{} + suffixIDMaker := newFakeSuffixIDMaker() + int32ArrayLen := 0 + if options.includeCompressionStats { + int32ArrayLen = len(d.Occurrences) + } + lineStarts := make([]int32, 0, int32ArrayLen) + lineDeltas := make([]int32, 0, int32ArrayLen) + charStarts := make([]int32, 0, int32ArrayLen) + charDeltas := make([]int32, 0, int32ArrayLen) + suffixIDs := make([]int32, 0, int32ArrayLen) + roles := make([]int32, 0, int32ArrayLen) + slices.SortFunc(d.Occurrences, func(a, b *scip.Occurrence) bool { + return scip.NewRangeUnchecked(a.Range).Less(scip.NewRangeUnchecked(b.Range)) + }) + for _, occ := range d.Occurrences { + r := scip.NewRangeUnchecked(occ.Range) + if options.includeCompressionStats { + lineStarts = append(lineStarts, r.Start.Line) + lineDeltas = append(lineDeltas, r.End.Line-r.Start.Line) + charStarts = append(charStarts, r.Start.Character) + charDeltas = append(charDeltas, r.End.Character-r.Start.Character) + suffixIDs = append(suffixIDs, suffixIDMaker.makeSuffixID(occ.Symbol)) + roles = append(roles, occ.SymbolRoles) + } + if scip.SymbolRole_Definition.Matches(occ) { + definitionCount += 1 + } + if occ.Range[0] == curLine { + occsInCurLine += 1 + continue + } + prevLine := curLine + curLine = occ.Range[0] + if prevLine != -1 { + if occsInCurLine == 0 { + panic("Invariant violation: expected occsInCurLine > 0") + } + data := occsPerLine[occsInCurLine] + data.count += 1 + if occsInCurLine > 100 { + data.examples = append(data.examples, example{ + DocPath: d.RelativePath, + Symbol: nil, + Line: &prevLine, + }) + } + occsPerLine[occsInCurLine] = data + } + occsInCurLine = 1 + } + compressionRatios := perDocCompressionStats{} + if options.includeCompressionStats { + compressor := newCompressor() + for i := 0; i+CHUNK_SIZE <= len(d.Occurrences); i += CHUNK_SIZE { + compressionRatios.LineStarts = append(compressionRatios.LineStarts, compressor.encodeCompressAndGetStats(lineStarts[i:i+CHUNK_SIZE])) + compressionRatios.LineDeltas = append(compressionRatios.LineDeltas, compressor.encodeCompressAndGetStats(lineDeltas[i:i+CHUNK_SIZE])) + compressionRatios.CharStarts = append(compressionRatios.CharStarts, compressor.encodeCompressAndGetStats(charStarts[i:i+CHUNK_SIZE])) + compressionRatios.CharDeltas = append(compressionRatios.CharDeltas, compressor.encodeCompressAndGetStats(charDeltas[i:i+CHUNK_SIZE])) + compressionRatios.SuffixIDs = append(compressionRatios.SuffixIDs, compressor.encodeCompressAndGetStats(suffixIDs[i:i+CHUNK_SIZE])) + compressionRatios.Roles = append(compressionRatios.Roles, compressor.encodeCompressAndGetStats(roles[i:i+CHUNK_SIZE])) + } + } + + *d = scip.Document{} + return perDocRawStats{ + serializedSizeBytes: int32(serializedSizeBytes), + definitionCount: int32(definitionCount), + symbolInfoCounts: int32(symbolInfoCounts), + relationshipCount: relsPerSymbol, + occurrencesPerLine: occsPerLine, + compressionStats: compressionRatios, + } +} + +type compressor struct { + sizeHint int + scratchInputBuf []byte + scratchCompressedBuf []byte + compressor lz4.Compressor +} + +func newCompressor() *compressor { + return &compressor{ + // This is zero-initialized since binary.Encode will overwrite values. + scratchInputBuf: make([]byte, CHUNK_SIZE*4), + scratchCompressedBuf: make([]byte, CHUNK_SIZE*4), + compressor: lz4.Compressor{}, + } +} + +func (c *compressor) encodeCompressAndGetStats(values []int32) compressionStats { + n, err := binary.Encode(c.scratchInputBuf, binary.LittleEndian, values) + if err != nil { + panic(fmt.Sprintf("binary encoding failed: %v", err.Error())) + } + if n != CHUNK_SIZE*4 { + panic(fmt.Sprintf("Encoded size: %v, expected %v", n, CHUNK_SIZE*4)) + } + compressedSize, err := c.compressor.CompressBlock(c.scratchInputBuf[:n], c.scratchCompressedBuf) + if err != nil { + panic(fmt.Sprintf("compressor encoding failed: %v", err.Error())) + } + return compressionStats{compressedSize: int32(compressedSize), uncompressedSize: int32(n)} +} + +func mergeAllStats(rs []perDocRawStats, options statsOptions) indexStatistics { + cpuPool := pool.New() + var out indexStatistics + docSizes := make([]float64, 0, len(rs)) + defCounts := make([]float64, 0, len(rs)) + symbolInfoCounts := make([]float64, 0, len(rs)) + relationshipCountBins := make([]Bins, 0, len(rs)) + occurrencesPerLineBins := make([]Bins, 0, len(rs)) + combinedCompressionStats := perDocCompressionStats{} + for _, ds := range rs { + docSizes = append(docSizes, float64(ds.serializedSizeBytes)) + defCounts = append(defCounts, float64(ds.definitionCount)) + symbolInfoCounts = append(symbolInfoCounts, float64(ds.symbolInfoCounts)) + relationshipCountBins = append(relationshipCountBins, ds.relationshipCount) + occurrencesPerLineBins = append(occurrencesPerLineBins, ds.occurrencesPerLine) + if options.includeCompressionStats { + combinedCompressionStats.LineStarts = append(combinedCompressionStats.LineStarts, ds.compressionStats.LineStarts...) + combinedCompressionStats.LineDeltas = append(combinedCompressionStats.LineDeltas, ds.compressionStats.LineDeltas...) + combinedCompressionStats.CharStarts = append(combinedCompressionStats.CharStarts, ds.compressionStats.CharStarts...) + combinedCompressionStats.CharDeltas = append(combinedCompressionStats.CharDeltas, ds.compressionStats.CharDeltas...) + combinedCompressionStats.SuffixIDs = append(combinedCompressionStats.SuffixIDs, ds.compressionStats.SuffixIDs...) + combinedCompressionStats.Roles = append(combinedCompressionStats.Roles, ds.compressionStats.Roles...) + } + } + cpuPool.Go(func() { + out.DocumentSizes = NewStatsInt32(docSizes) + }) + cpuPool.Go(func() { + out.OccurrenceCounts, out.OccurrenceCountsPerLine = NewBinnedStats(occurrencesPerLineBins) + out.Occurrences = out.OccurrenceCounts.Sum + }) + cpuPool.Go(func() { + out.DefinitionCounts = NewStatsInt32(defCounts) + out.Definitions = out.DefinitionCounts.Sum + }) + cpuPool.Go(func() { + out.SymbolInfoCounts = NewStatsInt32(symbolInfoCounts) + out.SymbolInfos = out.SymbolInfoCounts.Sum + }) + cpuPool.Go(func() { + out.RelationshipCounts, out.RelationshipCountsPerSymbol = NewBinnedStats(relationshipCountBins) + out.Relationships = out.RelationshipCounts.Sum + }) + if options.includeCompressionStats { + cpuPool.Go(func() { + crs := &out.CompressionRatios + comb := combinedCompressionStats + crs.LineStarts = NewStatsFloat64(calculateCompressionRatios(comb.LineStarts)) + crs.LineDeltas = NewStatsFloat64(calculateCompressionRatios(comb.LineDeltas)) + crs.CharStarts = NewStatsFloat64(calculateCompressionRatios(comb.CharStarts)) + crs.CharDeltas = NewStatsFloat64(calculateCompressionRatios(comb.CharDeltas)) + crs.SuffixIDs = NewStatsFloat64(calculateCompressionRatios(comb.SuffixIDs)) + crs.Roles = NewStatsFloat64(calculateCompressionRatios(comb.Roles)) + crs.Comment = fmt.Sprintf("Calculated using fixed size chunks of %d int32s (lz4)", CHUNK_SIZE) + }) + } + cpuPool.Wait() + return out +} + +func NewBinnedStats(bins []Bins) (Stats[int32], BinnedStats) { + agg := map[int32]binData{} + perDocTotals := make([]float64, 0, len(bins)) + for _, bin := range bins { + perDocTotals = append(perDocTotals, 0) + for binKey, binVal := range bin { + data := agg[binKey] + data.count += binVal.count + data.examples = append(data.examples, binVal.examples...) + agg[binKey] = data + perDocTotals[len(perDocTotals)-1] += float64(binVal.count) + } + } + perDocStats := NewStatsInt32(perDocTotals) + totalValues := perDocStats.Sum + + agg2 := []BinData{} + weighted := make([]float64, 0, len(agg)) + for binValue, binData := range agg { + agg2 = append(agg2, BinData{ + Value: binValue, + Count: binData.count, + Percentage: float64(binData.count) / float64(totalValues) * 100, + Examples: binData.examples, + }) + if totalValues == 0.0 { + panic("totalValues == 0.0") + } + weighted = append(weighted, float64(binValue)*float64(binData.count)/float64(totalValues)) + } + slices.SortFunc(agg2, func(a, b BinData) bool { + return a.Value < b.Value + }) + percentiles := PercentilesFromBinData(agg2) + for i := range agg2 { + agg2[i].Percentage = roundToSigfigs(agg2[i].Percentage, 3) + } + mean, _ := stats.Sum(weighted) + weighted = nil + stddev := 0.0 + if len(agg2) != 1 { + // See https://en.wikipedia.org/wiki/Weighted_arithmetic_mean#Frequency_weights + squaredDiffs := make([]float64, 0, len(agg2)) + for _, bin := range agg2 { + diff := float64(bin.Value) - mean + squaredDiffs = append(squaredDiffs, diff*diff*float64(bin.Count)) + } + squaredDiffsSum, _ := stats.Sum(squaredDiffs) + stddev = roundToSigfigs(math.Sqrt(squaredDiffsSum/(float64(totalValues)-1.0)), 3) + } + mean = roundToSigfigs(mean, 3) + + agg = nil + + binStats := BinnedStats{ + Bins: agg2, + BinCount: int32(len(agg2)), + Stats: GenericStats[float64, int32]{ + Percentiles: percentiles, + Mean: mean, + Stddev: stddev, + Max: float64(agg2[len(agg2)-1].Value), + Sum: float64(totalValues), + }, + } + return perDocStats, binStats +} + +func countStatistics(index *scip.Index, options statsOptions, customProjectRoot string) (*indexStatistics, error) { loc, err := countLinesOfCode(index, customProjectRoot) var linesOfCode int32 if err != nil { @@ -115,39 +562,21 @@ func countStatistics(index *scip.Index, customProjectRoot string) (*indexStatist } else { linesOfCode = loc.Total.Code } - stats := &indexStatistics{ - Documents: int32(len(index.Documents)), - LinesOfCode: linesOfCode, - Occurrences: 0, - Definitions: 0, - } - documentSizes := []float64{} - occurrenceCounts := []float64{} - definitionCounts := []float64{} - for _, document := range index.Documents { - bytes, _ := proto.Marshal(document) - documentSizes = append(documentSizes, float64(len(bytes))) - stats.Occurrences += int32(len(document.Occurrences)) - occurrenceCounts = append(occurrenceCounts, float64(len(document.Occurrences))) - definitionCounts = append(definitionCounts, 0) - for _, occurrence := range document.Occurrences { - if scip.SymbolRole_Definition.Matches(occurrence) { - stats.Definitions += 1 - definitionCounts[len(definitionCounts)-1] += 1 - } - } - } - stats.DocumentSizes = NewStats(documentSizes) + totalDocumentsCount := int32(len(index.Documents)) + allStats := conciter.Map(index.Documents, func(d **scip.Document) perDocRawStats { + return newPerDocRawStats(*d, options) + }) + stats := mergeAllStats(allStats, options) + stats.LinesOfCode = linesOfCode + stats.Documents = totalDocumentsCount stats.DocumentSizes.Comment = "sizes are in bytes" - stats.OccurrenceCounts = NewStats(occurrenceCounts) - stats.DefinitionCounts = NewStats(definitionCounts) stats.DefinitionCounts.Comment = "counted using occurrences" - return stats, nil + return &stats, nil } -func percentile(buf []float64, percent float64) int32 { +func percentileFloat(buf []float64, percent float64) float64 { res, _ := stats.Percentile(buf, percent) - return int32(res) + return res } func countLinesOfCode(index *scip.Index, customProjectRoot string) (*gocloc.Result, error) { @@ -166,13 +595,14 @@ func countLinesOfCode(index *scip.Index, customProjectRoot string) (*gocloc.Resu "To override this behaviour, specify --project-root= option", root.Path, cwd) localSource = cwd } else if err != nil { - return nil, err + return nil, errors.Wrapf(err, "stat path: %q", root.Path) } + localSource = root.Path } stat, err := os.Stat(localSource) if err != nil { - return nil, err + return nil, errors.Wrapf(err, "stat path: %q", localSource) } if !stat.IsDir() { return nil, errors.Errorf("Project root [%s] is not a directory", localSource) @@ -184,3 +614,21 @@ func countLinesOfCode(index *scip.Index, customProjectRoot string) (*gocloc.Resu } return processor.Analyze(paths) } + +func roundToSigfigs(num float64, numSigfigs int) float64 { + sign := 1.0 + if num == 0.0 { // TODO: Is this correct for values close to zero? + return 0.0 + } + if num < 0 { + sign = -1 + num = -num + } + + exponent := math.Floor(math.Log10(num)) + factor := math.Pow(10, exponent-float64(numSigfigs-1)) + + num = sign * math.Round(num/factor) * factor + + return num +} diff --git a/cmd/scip/stats_test.go b/cmd/scip/stats_test.go new file mode 100644 index 00000000..8a4367c9 --- /dev/null +++ b/cmd/scip/stats_test.go @@ -0,0 +1,14 @@ +package main + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestRound(t *testing.T) { + require.Equal(t, 3.000, roundToSigfigs(3.0001, 3)) + require.Equal(t, -3.000, roundToSigfigs(-3.0001, 3)) + require.Equal(t, 0.000107, roundToSigfigs(0.0001068, 3)) + require.Equal(t, 1070000.0, roundToSigfigs(1068000, 3)) +} diff --git a/go.mod b/go.mod index 78152d43..d6f9edf1 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/sourcegraph/scip -go 1.20 +go 1.23 require ( github.com/bufbuild/buf v1.25.0 @@ -13,8 +13,10 @@ require ( github.com/hhatto/gocloc v0.4.2 github.com/k0kubun/pp/v3 v3.1.0 github.com/montanaflynn/stats v0.7.1 + github.com/pierrec/lz4/v4 v4.1.21 github.com/pseudomuto/protoc-gen-doc v1.5.1 github.com/smacker/go-tree-sitter v0.0.0-20220209044044-0d3022e933c3 + github.com/sourcegraph/conc v0.3.0 github.com/stretchr/testify v1.8.4 github.com/urfave/cli/v2 v2.25.7 golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 diff --git a/go.sum b/go.sum index 88532dfd..bd0219d6 100644 --- a/go.sum +++ b/go.sum @@ -25,6 +25,7 @@ github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/bufbuild/buf v1.25.0 h1:HFxKrR8wFcZwrBInN50K/oJX/WOtPVq24rHb/ArjfBA= github.com/bufbuild/buf v1.25.0/go.mod h1:GCKZ5bAP6Ht4MF7KcfaGVgBEXGumwAz2hXjjLVxx8ZU= github.com/bufbuild/connect-go v1.9.0 h1:JIgAeNuFpo+SUPfU19Yt5TcWlznsN5Bv10/gI/6Pjoc= @@ -68,6 +69,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHH github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= @@ -135,6 +137,7 @@ github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22 github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= +github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid/v5 v5.0.0 h1:p544++a97kEL+svbcFbCQVM9KFu0Yo25UoISXGNNH9M= github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= @@ -225,6 +228,7 @@ github.com/jdxcode/netrc v0.0.0-20221124155335-4616370d1a84 h1:2uT3aivO7NVpUPGcQ github.com/jdxcode/netrc v0.0.0-20221124155335-4616370d1a84/go.mod h1:Zi/ZFkEqFHTm7qkjyNJjaWH4LQA9LQhGJyF0lTYGpxw= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= +github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= @@ -322,6 +326,8 @@ github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3I github.com/opencontainers/image-spec v1.1.0-rc4 h1:oOxKUJWnFC4YGHCCMNql1x4YaDfYBTS5Y4x/Cgeo1E0= github.com/opencontainers/image-spec v1.1.0-rc4/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= +github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= @@ -363,6 +369,8 @@ github.com/smacker/go-tree-sitter v0.0.0-20220209044044-0d3022e933c3 h1:WrsSqod9 github.com/smacker/go-tree-sitter v0.0.0-20220209044044-0d3022e933c3/go.mod h1:EiUuVMUfLQj8Sul+S8aKWJwQy7FRYnJCO2EWzf8F5hk= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= @@ -426,12 +434,14 @@ go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxx go.opentelemetry.io/otel/sdk v1.16.0 h1:Z1Ok1YsijYL0CSJpHt4cS3wDDh7p572grzNrBMiMWgE= go.opentelemetry.io/otel/sdk v1.16.0/go.mod h1:tMsIuKXuuIWPBAOrH+eHtvhTL+SntFtXF9QD68aP6p4= go.opentelemetry.io/otel/sdk/metric v0.39.0 h1:Kun8i1eYf48kHH83RucG93ffz0zGV1sh46FAScOTuDI= +go.opentelemetry.io/otel/sdk/metric v0.39.0/go.mod h1:piDIRgjcK7u0HCL5pCA4e74qpK/jk3NiUoAHATVAmiI= go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs= go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= @@ -567,6 +577,7 @@ golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -630,6 +641,7 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= @@ -650,6 +662,7 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= From 0079f802286932d2003e337efc24188c4c08b889 Mon Sep 17 00:00:00 2001 From: Varun Gandhi Date: Mon, 11 Nov 2024 11:52:46 +0800 Subject: [PATCH 2/3] schema: Add more representations for external data --- bindings/go/scip/scip.pb.go | 1003 ++++--- bindings/haskell/src/Proto/Scip.hs | 2757 +++++++++++-------- bindings/haskell/src/Proto/Scip_Fields.hs | 33 + bindings/rust/src/generated/scip.rs | 2931 ++++++++++++--------- bindings/typescript/scip.ts | 141 +- docs/scip.md | 179 +- scip.proto | 139 +- 7 files changed, 4344 insertions(+), 2839 deletions(-) diff --git a/bindings/go/scip/scip.pb.go b/bindings/go/scip/scip.pb.go index 7637e303..2445c788 100644 --- a/bindings/go/scip/scip.pb.go +++ b/bindings/go/scip/scip.pb.go @@ -1412,11 +1412,7 @@ type Index struct { Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` // Documents that belong to this index. Documents []*Document `protobuf:"bytes,2,rep,name=documents,proto3" json:"documents,omitempty"` - // (optional) Symbols that are referenced from this index but are defined in - // an external package (a separate `Index` message). Leave this field empty - // if you assume the external package will get indexed separately. If the - // external package won't get indexed for some reason then you can use this - // field to provide hover documentation for those external symbols. + // (DEPRECATED): Use Document.external_symbols instead. ExternalSymbols []*SymbolInformation `protobuf:"bytes,3,rep,name=external_symbols,json=externalSymbols,proto3" json:"external_symbols,omitempty"` } @@ -1666,6 +1662,89 @@ type Document struct { // - For an indexer implemented in Go, Rust or C++, // use UTF8ByteOffsetFromLineStart. PositionEncoding PositionEncoding `protobuf:"varint,6,opt,name=position_encoding,json=positionEncoding,proto3,enum=scip.PositionEncoding" json:"position_encoding,omitempty"` + // (optional) Symbols that are referenced from this Document but are defined in + // an external package (a separate `Index` message). This field can be used + // for the following purposes: + // - Provide hover documentation for external symbols. + // - Mark relationships from an external symbol to a global symbol defined + // in the current document. + // + // Example 1: In Go, if a file defines a new interface I and there is a standard + // library type T which is imported in the file and implements I, + // the indexer can add an external symbol for T with an is_implementation + // relationship to I. + // + // Example 2: In Rust, if a file defines a new trait T and add impls for a + // type X defined in another Index, the indexer can add an external symbol + // for X with an is_implementation relationship to T. + // + // Example 3: If the code references a third-party type X whose definition + // site may or may not be indexed, the indexer can emit an external symbol + // for X including its hover documentation. + ExternalSymbols []*SymbolInformation `protobuf:"bytes,7,rep,name=external_symbols,json=externalSymbols,proto3" json:"external_symbols,omitempty"` + // (optional) Relationships that affect code navigation in this Document + // but are not and cannot be defined in the Document(s) defining + // source_symbol or the target symbol (relationship.symbol). + // + // Example 1: In the case of structurally typed interfaces (or more generally + // structural subtyping), such as Go, it is possible for one Go package P1 + // to define an interface I, a second Go package P2 to have a type T which + // implements the interface I without importing P1, and a third Go package P3 + // to import both P1 and P2. If P3 has a conversion of a value from + // P2.T to P1.I, then the indexer can emit a cross-relationship from + // P2.T to P1.I. + // + // This same example carries over to languages like TypeScript which support + // structural subtyping. + // + // Example 2: Rust allows for blanket trait implementations. Consider the + // following code: + // + // ```rust + // // t1.rs + // pub trait T1 {} + // + // // s.rs + // use m1::T1; + // pub struct S; + // impl T1 for S {} + // + // // t2.rs + // use m1::T1; + // trait T2 {} + // impl T2 for T {} // <- blanket implementation that covers S + // + // // cross.rs + // use m3::T2; + // use m2::S; + // + // fn f(s : S) -> Box { Box::new(s) } // derives that S implements T2 + // ``` + // + // If all of these modules correspond to Documents in different SCIP indexes, + // it is not possible for the indexer to emit an is_implementation relationship + // from S to T2 in the Documents for t1.rs, s.rs or t2.rs. In this case, + // the indexer can emit a cross-relationship from S to T2 in the Document for cross.rs. + // + // Example 3: Swift allows for retroactive conformances (aka orphan instances + // in Haskell). Consider the following code: + // + // ```swift + // // P.swift + // protocol P {} + // + // // S.swift + // struct S {} + // + // // cross.swift + // extension S: P {} + // ``` + // + // If all of these files correspond to Documents in different SCIP indexes, + // it is not possible for the indexer to emit an is_implementation relationship + // from S to P in the Documents for P.swift, or S.swift. In this case, + // the indexer can emit a cross-relationship from S to P in the Document for cross.swift. + CrossRelationships []*FullRelationship `protobuf:"bytes,8,rep,name=cross_relationships,json=crossRelationships,proto3" json:"cross_relationships,omitempty"` } func (x *Document) Reset() { @@ -1742,6 +1821,20 @@ func (x *Document) GetPositionEncoding() PositionEncoding { return PositionEncoding_UnspecifiedPositionEncoding } +func (x *Document) GetExternalSymbols() []*SymbolInformation { + if x != nil { + return x.ExternalSymbols + } + return nil +} + +func (x *Document) GetCrossRelationships() []*FullRelationship { + if x != nil { + return x.CrossRelationships + } + return nil +} + // Symbol is similar to a URI, it identifies a class, method, or a local // variable. `SymbolInformation` contains rich metadata about symbols such as // the docstring. @@ -1783,7 +1876,11 @@ func (x *Document) GetPositionEncoding() PositionEncoding { // the file and the node corresponding to the symbol. // // Local symbols MUST only be used for entities which are local to a Document, -// and cannot be accessed from outside the Document. +// and cannot be accessed from outside the Document via code navigation. +// +// Example 1: If the indexer supports emitting 'is_implementation' relationships, +// then a subclass of a global class, even if declared within a function, +// must have a global symbol. type Symbol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1994,6 +2091,12 @@ type SymbolInformation struct { // include non-code documentation in this field, for example docstrings. Documentation []string `protobuf:"bytes,3,rep,name=documentation,proto3" json:"documentation,omitempty"` // (optional) Relationships to other symbols (e.g., implements, type definition). + // + // Relationships follow one direction. To represent the other direction: + // - If the source symbol is defined in the same Index, attach the relationship to + // its SymbolInformation. + // - If the source symbol is defined in a different Index, use Document.external_symbols's + // relationships field. Relationships []*Relationship `protobuf:"bytes,4,rep,name=relationships,proto3" json:"relationships,omitempty"` // The kind of this symbol. Use this field instead of // `SymbolDescriptor.Suffix` to determine whether something is, for example, a @@ -2117,6 +2220,65 @@ func (x *SymbolInformation) GetEnclosingSymbol() string { return "" } +// NOTE: FullRelationship reuses Relationship instead of a more symmetric representation +// to reduce the risk of divergence when adding new fields to Relationships. +type FullRelationship struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Represents the symbol that this relationship is about. + SourceSymbol string `protobuf:"bytes,1,opt,name=source_symbol,json=sourceSymbol,proto3" json:"source_symbol,omitempty"` + // Represents the symbol + the relationship that this symbol links to. + Relationship *Relationship `protobuf:"bytes,2,opt,name=relationship,proto3" json:"relationship,omitempty"` +} + +func (x *FullRelationship) Reset() { + *x = FullRelationship{} + if protoimpl.UnsafeEnabled { + mi := &file_scip_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FullRelationship) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FullRelationship) ProtoMessage() {} + +func (x *FullRelationship) ProtoReflect() protoreflect.Message { + mi := &file_scip_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FullRelationship.ProtoReflect.Descriptor instead. +func (*FullRelationship) Descriptor() ([]byte, []int) { + return file_scip_proto_rawDescGZIP(), []int{8} +} + +func (x *FullRelationship) GetSourceSymbol() string { + if x != nil { + return x.SourceSymbol + } + return "" +} + +func (x *FullRelationship) GetRelationship() *Relationship { + if x != nil { + return x.Relationship + } + return nil +} + type Relationship struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2155,16 +2317,27 @@ type Relationship struct { // references" on the `Dog#sound()` method should include references to the // `Animal#sound()` method as well. IsReference bool `protobuf:"varint,2,opt,name=is_reference,json=isReference,proto3" json:"is_reference,omitempty"` - // Similar to `is_reference` but for "Find implementations". + // Similar to `is_reference` but for "Find implementations" and "Find supers". + // // It's common for `is_implementation` and `is_reference` to both be true but - // it's not always the case. - // In the TypeScript example above, observe that `Dog#` has an - // `is_implementation` relationship with `"Animal#"` but not `is_reference`. - // This is because "Find references" on the "Animal#" symbol should not return - // "Dog#". We only want "Dog#" to return as a result for "Find - // implementations" on the "Animal#" symbol. + // it's not always the case. In the TypeScript example above, observe that + // `Dog#` has an `is_implementation` relationship with `"Animal#"` but not + // `is_reference`. This is because "Find references" on the "Animal#" symbol + // should not return "Dog#". We only want "Dog#" to return as a result for + // "Find implementations" on the "Animal#" symbol. IsImplementation bool `protobuf:"varint,3,opt,name=is_implementation,json=isImplementation,proto3" json:"is_implementation,omitempty"` - // Similar to `references_symbols` but for "Go to type definition". + // Represents that "Go to type definition" from the (outer) symbol should go + // to the (relationship's) symbol for a particular type. + // + // A less confusing name for this field would be "has_type", but we + // cannot change this to avoid breaking generated code. + // + // NOTE: In Sourcegraph, this field will not be used for code navigation like + // "Go to type references" (i.e. identifying all places where there is a + // variable with a given type, even when type is not mentioned explicitly), + // since that would mean that an indexer could only utilize local symbols + // in very limited contexts, since most local variables could be potential + // targets of such a navigation action. IsTypeDefinition bool `protobuf:"varint,4,opt,name=is_type_definition,json=isTypeDefinition,proto3" json:"is_type_definition,omitempty"` // Allows overriding the behavior of "Go to definition" and "Find references" // for symbols which do not have a definition of their own or could @@ -2188,7 +2361,7 @@ type Relationship struct { func (x *Relationship) Reset() { *x = Relationship{} if protoimpl.UnsafeEnabled { - mi := &file_scip_proto_msgTypes[8] + mi := &file_scip_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2201,7 +2374,7 @@ func (x *Relationship) String() string { func (*Relationship) ProtoMessage() {} func (x *Relationship) ProtoReflect() protoreflect.Message { - mi := &file_scip_proto_msgTypes[8] + mi := &file_scip_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2214,7 +2387,7 @@ func (x *Relationship) ProtoReflect() protoreflect.Message { // Deprecated: Use Relationship.ProtoReflect.Descriptor instead. func (*Relationship) Descriptor() ([]byte, []int) { - return file_scip_proto_rawDescGZIP(), []int{8} + return file_scip_proto_rawDescGZIP(), []int{9} } func (x *Relationship) GetSymbol() string { @@ -2373,7 +2546,7 @@ type Occurrence struct { func (x *Occurrence) Reset() { *x = Occurrence{} if protoimpl.UnsafeEnabled { - mi := &file_scip_proto_msgTypes[9] + mi := &file_scip_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2386,7 +2559,7 @@ func (x *Occurrence) String() string { func (*Occurrence) ProtoMessage() {} func (x *Occurrence) ProtoReflect() protoreflect.Message { - mi := &file_scip_proto_msgTypes[9] + mi := &file_scip_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2399,7 +2572,7 @@ func (x *Occurrence) ProtoReflect() protoreflect.Message { // Deprecated: Use Occurrence.ProtoReflect.Descriptor instead. func (*Occurrence) Descriptor() ([]byte, []int) { - return file_scip_proto_rawDescGZIP(), []int{9} + return file_scip_proto_rawDescGZIP(), []int{10} } func (x *Occurrence) GetRange() []int32 { @@ -2473,7 +2646,7 @@ type Diagnostic struct { func (x *Diagnostic) Reset() { *x = Diagnostic{} if protoimpl.UnsafeEnabled { - mi := &file_scip_proto_msgTypes[10] + mi := &file_scip_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2486,7 +2659,7 @@ func (x *Diagnostic) String() string { func (*Diagnostic) ProtoMessage() {} func (x *Diagnostic) ProtoReflect() protoreflect.Message { - mi := &file_scip_proto_msgTypes[10] + mi := &file_scip_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2499,7 +2672,7 @@ func (x *Diagnostic) ProtoReflect() protoreflect.Message { // Deprecated: Use Diagnostic.ProtoReflect.Descriptor instead. func (*Diagnostic) Descriptor() ([]byte, []int) { - return file_scip_proto_rawDescGZIP(), []int{10} + return file_scip_proto_rawDescGZIP(), []int{11} } func (x *Diagnostic) GetSeverity() Severity { @@ -2570,7 +2743,7 @@ var file_scip_proto_rawDesc = []byte{ 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x8b, 0x02, 0x0a, 0x08, 0x44, + 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x98, 0x03, 0x0a, 0x08, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, @@ -2587,358 +2760,374 @@ var file_scip_proto_rawDesc = []byte{ 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x7d, 0x0a, 0x06, 0x53, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x70, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x63, - 0x69, 0x70, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x51, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9f, 0x02, 0x0a, 0x0a, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x64, 0x69, 0x73, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x52, 0x06, 0x73, 0x75, - 0x66, 0x66, 0x69, 0x78, 0x22, 0xa5, 0x01, 0x0a, 0x06, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, - 0x15, 0x0a, 0x11, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x75, - 0x66, 0x66, 0x69, 0x78, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x10, 0x02, - 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x72, 0x6d, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, - 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x08, 0x12, 0x09, 0x0a, - 0x05, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x10, 0x09, 0x1a, 0x02, 0x10, 0x01, 0x22, 0xc5, 0x0c, 0x0a, - 0x11, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x38, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x69, - 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, - 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x47, 0x0a, 0x17, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x16, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6e, 0x63, 0x6c, - 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, - 0x62, 0x6f, 0x6c, 0x22, 0xee, 0x09, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x13, 0x0a, 0x0f, - 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4b, 0x69, 0x6e, 0x64, 0x10, - 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x10, 0x42, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x10, 0x48, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x72, 0x72, 0x61, 0x79, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x12, 0x0a, - 0x0e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x04, - 0x12, 0x09, 0x0a, 0x05, 0x41, 0x78, 0x69, 0x6f, 0x6d, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, - 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, - 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, - 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x3e, - 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x10, 0x0a, - 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x10, 0x49, 0x12, 0x08, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x6e, 0x75, 0x6d, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x10, 0x3f, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x0d, - 0x0a, 0x09, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x54, 0x12, 0x08, 0x0a, - 0x04, 0x46, 0x61, 0x63, 0x74, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x10, 0x0f, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x10, 0x10, 0x12, 0x0c, 0x0a, 0x08, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x65, - 0x74, 0x74, 0x65, 0x72, 0x10, 0x12, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x6d, 0x6d, 0x61, - 0x72, 0x10, 0x13, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, - 0x14, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x15, - 0x12, 0x07, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x10, 0x16, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x61, 0x6e, - 0x67, 0x10, 0x17, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x65, 0x6d, 0x6d, 0x61, 0x10, 0x18, 0x12, 0x0b, - 0x0a, 0x07, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x10, 0x40, 0x12, 0x09, 0x0a, 0x05, 0x4d, - 0x61, 0x63, 0x72, 0x6f, 0x10, 0x19, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x10, 0x1a, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x41, 0x6c, 0x69, 0x61, - 0x73, 0x10, 0x4a, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x43, - 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x1c, 0x12, 0x09, 0x0a, - 0x05, 0x4d, 0x69, 0x78, 0x69, 0x6e, 0x10, 0x55, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x10, 0x41, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x10, 0x1d, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, - 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x1f, 0x12, 0x0a, 0x0a, 0x06, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x20, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x10, 0x21, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, - 0x22, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x10, 0x23, 0x12, 0x11, - 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, - 0x24, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x25, - 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x10, 0x26, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x10, - 0x27, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x10, 0x28, - 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x10, 0x29, 0x12, 0x0c, - 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x2a, 0x12, 0x12, 0x0a, 0x0e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x44, - 0x12, 0x15, 0x0a, 0x11, 0x50, 0x75, 0x72, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x45, 0x12, 0x0f, 0x0a, 0x0b, 0x51, 0x75, 0x61, 0x73, 0x69, - 0x71, 0x75, 0x6f, 0x74, 0x65, 0x72, 0x10, 0x2b, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x66, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x2c, 0x12, 0x0a, 0x0a, 0x06, 0x53, - 0x65, 0x74, 0x74, 0x65, 0x72, 0x10, 0x2d, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x10, 0x2e, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x74, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x10, 0x4b, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x4c, 0x12, - 0x14, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x10, 0x4d, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x10, 0x4e, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x10, 0x4f, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x63, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x50, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x10, 0x51, 0x12, 0x12, 0x0a, - 0x0e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x10, - 0x52, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10, 0x30, 0x12, 0x0a, 0x0a, - 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x10, 0x31, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x2f, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x61, 0x63, 0x74, - 0x69, 0x63, 0x10, 0x32, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x68, 0x65, 0x6f, 0x72, 0x65, 0x6d, 0x10, - 0x33, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x68, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x10, 0x34, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x69, 0x74, 0x10, 0x35, 0x12, - 0x0f, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x46, - 0x12, 0x08, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x10, 0x36, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x79, - 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x37, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x10, 0x38, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x79, 0x70, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x47, 0x12, 0x0e, 0x0a, - 0x0a, 0x54, 0x79, 0x70, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x10, 0x39, 0x12, 0x11, 0x0a, - 0x0d, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x3a, - 0x12, 0x09, 0x0a, 0x05, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x10, 0x3b, 0x12, 0x09, 0x0a, 0x05, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x3c, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x10, 0x3d, 0x22, 0xc9, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, - 0x0c, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x49, - 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, - 0x12, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x69, - 0x73, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0xa4, 0x02, 0x0a, 0x0a, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, - 0x0c, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x73, - 0x12, 0x35, 0x0a, 0x16, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x64, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x15, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x74, 0x61, - 0x78, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x73, - 0x63, 0x69, 0x70, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0a, - 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x69, - 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, - 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, - 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, - 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, - 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, - 0x73, 0x2a, 0x31, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x10, 0x00, 0x2a, 0x40, 0x0a, 0x0c, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, - 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x54, 0x46, 0x38, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x55, - 0x54, 0x46, 0x31, 0x36, 0x10, 0x02, 0x2a, 0xa4, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x1b, 0x55, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, - 0x55, 0x54, 0x46, 0x38, 0x43, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, - 0x01, 0x12, 0x24, 0x0a, 0x20, 0x55, 0x54, 0x46, 0x31, 0x36, 0x43, 0x6f, 0x64, 0x65, 0x55, 0x6e, - 0x69, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x65, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x55, 0x54, 0x46, 0x33, 0x32, - 0x43, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x46, 0x72, - 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x03, 0x2a, 0x94, 0x01, - 0x0a, 0x0a, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x15, - 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6d, 0x62, 0x6f, - 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, 0x10, 0x20, 0x12, 0x15, 0x0a, - 0x11, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x10, 0x40, 0x2a, 0xea, 0x06, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, - 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x50, - 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, - 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x11, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, - 0x04, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, 0x0e, 0x0a, - 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x10, 0x06, 0x12, 0x15, 0x0a, - 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, - 0x69, 0x6e, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x09, - 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x75, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x10, 0x0a, 0x12, 0x17, 0x0a, - 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, - 0x64, 0x10, 0x0d, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x10, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x10, 0x0e, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x20, - 0x0a, 0x1c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, - 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, - 0x63, 0x72, 0x6f, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x13, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x10, 0x14, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x15, 0x12, 0x0f, 0x0a, 0x0b, - 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x16, 0x12, 0x11, 0x0a, - 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x17, - 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, - 0x64, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x44, 0x65, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x67, 0x65, 0x78, - 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, - 0x10, 0x1c, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, - 0x72, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, - 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4c, - 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, - 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x21, - 0x12, 0x07, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x23, 0x12, 0x10, 0x0a, 0x0c, 0x54, - 0x61, 0x67, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x24, 0x1a, 0x02, 0x10, - 0x01, 0x2a, 0x56, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, - 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x76, 0x65, - 0x72, 0x69, 0x74, 0x79, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, - 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0f, - 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, - 0x08, 0x0a, 0x04, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x04, 0x2a, 0x4e, 0x0a, 0x0d, 0x44, 0x69, 0x61, - 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, - 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6e, 0x65, - 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x70, - 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0x9b, 0x0a, 0x0a, 0x08, 0x4c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x41, 0x42, 0x41, 0x50, 0x10, 0x3c, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x70, 0x65, - 0x78, 0x10, 0x60, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x4c, 0x10, 0x31, 0x12, 0x07, 0x0a, 0x03, - 0x41, 0x64, 0x61, 0x10, 0x27, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x67, 0x64, 0x61, 0x10, 0x2d, 0x12, - 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x63, 0x69, 0x69, 0x44, 0x6f, 0x63, 0x10, 0x56, 0x12, 0x0c, 0x0a, - 0x08, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x10, 0x3a, 0x12, 0x07, 0x0a, 0x03, 0x41, - 0x77, 0x6b, 0x10, 0x42, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x61, 0x74, 0x10, 0x44, 0x12, 0x0a, 0x0a, - 0x06, 0x42, 0x69, 0x62, 0x54, 0x65, 0x58, 0x10, 0x51, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x22, - 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x42, 0x4f, 0x4c, 0x10, 0x3b, 0x12, 0x07, 0x0a, 0x03, 0x43, - 0x50, 0x50, 0x10, 0x23, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x53, 0x10, 0x1a, 0x12, 0x0a, 0x0a, - 0x06, 0x43, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x6f, - 0x6a, 0x75, 0x72, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6f, 0x66, 0x66, 0x65, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x15, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x6f, 0x71, 0x10, - 0x2f, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x55, 0x44, 0x41, 0x10, 0x61, 0x12, 0x08, 0x0a, 0x04, 0x44, - 0x61, 0x72, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x10, - 0x39, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, 0x0a, 0x44, - 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, 0x06, 0x44, - 0x79, 0x61, 0x6c, 0x6f, 0x67, 0x10, 0x32, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, 0x78, 0x69, - 0x72, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x12, 0x12, - 0x0a, 0x0a, 0x06, 0x46, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, 0x04, 0x46, - 0x69, 0x73, 0x68, 0x10, 0x41, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, 0x18, 0x12, - 0x0b, 0x0a, 0x07, 0x46, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, - 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, 0x0a, 0x0a, - 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, 0x0a, 0x0a, - 0x47, 0x69, 0x74, 0x5f, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, 0x0a, 0x02, - 0x47, 0x6f, 0x10, 0x21, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x10, - 0x62, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x79, 0x10, 0x07, 0x12, 0x08, 0x0a, - 0x04, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x61, 0x63, 0x6b, 0x10, - 0x14, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x61, 0x72, 0x73, 0x10, - 0x5a, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x61, 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x2c, 0x12, 0x09, - 0x0a, 0x05, 0x49, 0x64, 0x72, 0x69, 0x73, 0x10, 0x2e, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x6e, 0x69, - 0x10, 0x48, 0x12, 0x05, 0x0a, 0x01, 0x4a, 0x10, 0x33, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, - 0x4e, 0x10, 0x4b, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x61, 0x76, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, - 0x0a, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x16, 0x12, 0x13, 0x0a, - 0x0f, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, - 0x10, 0x5d, 0x12, 0x0b, 0x0a, 0x07, 0x4a, 0x73, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x10, 0x4c, 0x12, - 0x09, 0x0a, 0x05, 0x4a, 0x75, 0x6c, 0x69, 0x61, 0x10, 0x37, 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x75, - 0x73, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x6d, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x6f, 0x74, 0x6c, - 0x69, 0x6e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x61, 0x54, 0x65, 0x58, 0x10, 0x53, 0x12, - 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x61, 0x6e, 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x73, - 0x73, 0x10, 0x1b, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x75, 0x61, 0x10, 0x0c, 0x12, 0x08, 0x0a, 0x04, - 0x4c, 0x75, 0x61, 0x75, 0x10, 0x6c, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x6b, 0x65, 0x66, 0x69, - 0x6c, 0x65, 0x10, 0x4f, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, - 0x10, 0x54, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x74, 0x6c, 0x61, 0x62, 0x10, 0x34, 0x12, 0x0a, - 0x0a, 0x06, 0x4e, 0x69, 0x63, 0x6b, 0x65, 0x6c, 0x10, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x69, - 0x78, 0x10, 0x4d, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, 0x12, 0x0f, - 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, 0x24, 0x12, - 0x11, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x50, 0x50, - 0x10, 0x25, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x61, 0x73, 0x63, 0x61, 0x6c, 0x10, 0x63, 0x12, 0x07, - 0x0a, 0x03, 0x50, 0x48, 0x50, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x53, 0x51, 0x4c, - 0x10, 0x46, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x65, 0x72, 0x6c, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, - 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x10, 0x43, 0x12, 0x0a, 0x0a, 0x06, - 0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x67, 0x10, 0x47, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x10, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, - 0x10, 0x0f, 0x12, 0x05, 0x0a, 0x01, 0x52, 0x10, 0x36, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x61, 0x6b, 0x75, 0x10, 0x0e, 0x12, - 0x09, 0x0a, 0x05, 0x52, 0x61, 0x7a, 0x6f, 0x72, 0x10, 0x3e, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x65, - 0x70, 0x72, 0x6f, 0x10, 0x66, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x65, 0x53, 0x54, 0x10, 0x55, 0x12, - 0x08, 0x0a, 0x04, 0x52, 0x75, 0x62, 0x79, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x73, - 0x74, 0x10, 0x28, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x53, 0x10, 0x3d, 0x12, 0x08, 0x0a, 0x04, - 0x53, 0x43, 0x53, 0x53, 0x10, 0x1d, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x4c, 0x10, 0x2b, 0x12, - 0x07, 0x0a, 0x03, 0x53, 0x51, 0x4c, 0x10, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x61, 0x73, 0x73, - 0x10, 0x1c, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x10, 0x05, 0x12, 0x0a, 0x0a, - 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x65, - 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x40, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x6b, - 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x10, 0x4e, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x6e, 0x67, - 0x10, 0x6b, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x10, 0x5f, - 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x76, 0x65, 0x6c, 0x74, 0x65, 0x10, 0x6a, 0x12, 0x09, 0x0a, 0x05, - 0x53, 0x77, 0x69, 0x66, 0x74, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x63, 0x6c, 0x10, 0x65, - 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x49, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x65, - 0x58, 0x10, 0x52, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x68, 0x72, 0x69, 0x66, 0x74, 0x10, 0x67, 0x12, - 0x0e, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x17, 0x12, - 0x13, 0x0a, 0x0f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, - 0x63, 0x74, 0x10, 0x5e, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x69, 0x6c, 0x6f, 0x67, 0x10, - 0x68, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x48, 0x44, 0x4c, 0x10, 0x69, 0x12, 0x0f, 0x0a, 0x0b, 0x56, - 0x69, 0x73, 0x75, 0x61, 0x6c, 0x42, 0x61, 0x73, 0x69, 0x63, 0x10, 0x3f, 0x12, 0x07, 0x0a, 0x03, - 0x56, 0x75, 0x65, 0x10, 0x19, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, - 0x10, 0x35, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x4d, 0x4c, 0x10, 0x1f, 0x12, 0x07, 0x0a, 0x03, 0x58, - 0x53, 0x4c, 0x10, 0x20, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x4a, 0x12, 0x07, - 0x0a, 0x03, 0x5a, 0x69, 0x67, 0x10, 0x26, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, 0x61, 0x70, - 0x68, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, - 0x67, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x13, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, + 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x63, 0x69, 0x70, + 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, + 0x70, 0x52, 0x12, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x68, 0x69, 0x70, 0x73, 0x22, 0x7d, 0x0a, 0x06, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x73, 0x22, 0x51, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9f, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, + 0x73, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x17, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, + 0x78, 0x22, 0xa5, 0x01, 0x0a, 0x06, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x15, 0x0a, 0x11, + 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x75, 0x66, 0x66, 0x69, + 0x78, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x10, 0x01, 0x1a, + 0x02, 0x08, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, + 0x04, 0x54, 0x65, 0x72, 0x6d, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x10, 0x07, 0x12, + 0x09, 0x0a, 0x05, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, + 0x63, 0x72, 0x6f, 0x10, 0x09, 0x1a, 0x02, 0x10, 0x01, 0x22, 0xc5, 0x0c, 0x0a, 0x11, 0x53, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, + 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4b, + 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x17, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x16, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, + 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x22, 0xee, 0x09, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, 0x12, 0x12, + 0x0a, 0x0e, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x10, 0x42, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x10, 0x48, + 0x12, 0x09, 0x0a, 0x05, 0x41, 0x72, 0x72, 0x61, 0x79, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x41, + 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x73, + 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x04, 0x12, 0x09, 0x0a, + 0x05, 0x41, 0x78, 0x69, 0x6f, 0x6d, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x6f, 0x6f, 0x6c, + 0x65, 0x61, 0x6e, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x10, 0x07, + 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x0f, + 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x09, 0x12, + 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x3e, 0x12, 0x0e, 0x0a, + 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x10, 0x0a, 0x12, 0x0c, 0x0a, + 0x08, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x10, 0x49, 0x12, 0x08, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x3f, + 0x12, 0x09, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x54, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x61, + 0x63, 0x74, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x10, 0x0f, 0x12, + 0x08, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x10, 0x10, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x74, 0x65, + 0x72, 0x10, 0x12, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x10, 0x13, + 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x14, 0x12, 0x0d, + 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x15, 0x12, 0x07, 0x0a, + 0x03, 0x4b, 0x65, 0x79, 0x10, 0x16, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x61, 0x6e, 0x67, 0x10, 0x17, + 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x65, 0x6d, 0x6d, 0x61, 0x10, 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x4c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x10, 0x40, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, 0x63, 0x72, + 0x6f, 0x10, 0x19, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x1a, 0x12, + 0x0f, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x4a, + 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x43, 0x12, 0x0b, 0x0a, + 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x1c, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x69, + 0x78, 0x69, 0x6e, 0x10, 0x55, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x10, 0x41, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x1d, 0x12, + 0x0d, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x1e, 0x12, 0x08, + 0x0a, 0x04, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x1f, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x10, 0x20, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, 0x21, + 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x22, 0x12, 0x0b, + 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x10, 0x23, 0x12, 0x11, 0x0a, 0x0d, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, 0x24, 0x12, 0x0d, + 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x25, 0x12, 0x12, 0x0a, + 0x0e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x10, + 0x26, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x10, 0x27, 0x12, 0x0d, + 0x0a, 0x09, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x10, 0x28, 0x12, 0x0c, 0x0a, + 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x10, 0x29, 0x12, 0x0c, 0x0a, 0x08, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x2a, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x44, 0x12, 0x15, 0x0a, + 0x11, 0x50, 0x75, 0x72, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x10, 0x45, 0x12, 0x0f, 0x0a, 0x0b, 0x51, 0x75, 0x61, 0x73, 0x69, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x72, 0x10, 0x2b, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x2c, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x74, + 0x65, 0x72, 0x10, 0x2d, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x10, 0x2e, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x74, 0x6f, 0x6e, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x10, 0x4b, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x74, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x4c, 0x12, 0x14, 0x0a, 0x10, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x10, 0x4d, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x10, 0x4e, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x10, 0x4f, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x10, 0x50, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x10, 0x51, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x52, 0x12, 0x0a, + 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10, 0x30, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x10, 0x31, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x10, 0x2f, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x61, 0x63, 0x74, 0x69, 0x63, 0x10, + 0x32, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x68, 0x65, 0x6f, 0x72, 0x65, 0x6d, 0x10, 0x33, 0x12, 0x11, + 0x0a, 0x0d, 0x54, 0x68, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, + 0x34, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x69, 0x74, 0x10, 0x35, 0x12, 0x0f, 0x0a, 0x0b, + 0x54, 0x72, 0x61, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x46, 0x12, 0x08, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x10, 0x36, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x41, + 0x6c, 0x69, 0x61, 0x73, 0x10, 0x37, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x10, 0x38, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x47, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x79, + 0x70, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x10, 0x39, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x79, + 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x3a, 0x12, 0x09, 0x0a, + 0x05, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x10, 0x3b, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x3c, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x10, + 0x3d, 0x22, 0x6f, 0x0a, 0x10, 0x46, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x0c, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x68, 0x69, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, + 0x69, 0x70, 0x22, 0xc9, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x68, 0x69, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x73, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x73, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2b, + 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x49, 0x6d, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x69, + 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x69, 0x73, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, + 0x02, 0x0a, 0x0a, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x73, + 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x35, + 0x0a, 0x16, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x5f, + 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x73, 0x63, 0x69, + 0x70, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0a, 0x73, 0x79, + 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, + 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, 0x65, + 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x2a, + 0x31, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x10, 0x00, 0x2a, 0x40, 0x0a, 0x0c, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x55, 0x54, 0x46, 0x38, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x54, 0x46, + 0x31, 0x36, 0x10, 0x02, 0x2a, 0xa4, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x55, 0x54, + 0x46, 0x38, 0x43, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, + 0x24, 0x0a, 0x20, 0x55, 0x54, 0x46, 0x31, 0x36, 0x43, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x74, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x55, 0x54, 0x46, 0x33, 0x32, 0x43, 0x6f, + 0x64, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x6d, + 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x03, 0x2a, 0x94, 0x01, 0x0a, 0x0a, + 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, + 0x6f, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x10, + 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, + 0x10, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, 0x10, 0x20, 0x12, 0x15, 0x0a, 0x11, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x10, 0x40, 0x2a, 0xea, 0x06, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, + 0x64, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x75, 0x6e, + 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, + 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4b, + 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x1a, + 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, + 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x1b, + 0x0a, 0x17, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x10, + 0x0d, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x10, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x0e, + 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, 0x12, 0x13, + 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, + 0x6f, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x10, 0x13, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, + 0x14, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x15, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, + 0x67, 0x65, 0x78, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x16, 0x12, 0x11, 0x0a, 0x0d, 0x52, + 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x17, 0x12, 0x11, + 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x10, + 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x65, 0x72, 0x10, 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4a, 0x6f, + 0x69, 0x6e, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x1c, + 0x12, 0x18, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x10, 0x1e, + 0x12, 0x14, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x6f, + 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x21, 0x12, 0x07, + 0x0a, 0x03, 0x54, 0x61, 0x67, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x23, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, + 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x24, 0x1a, 0x02, 0x10, 0x01, 0x2a, + 0x56, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x55, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, + 0x74, 0x79, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, + 0x04, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x04, 0x2a, 0x4e, 0x0a, 0x0d, 0x44, 0x69, 0x61, 0x67, 0x6e, + 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6e, 0x65, 0x63, 0x65, + 0x73, 0x73, 0x61, 0x72, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0x9b, 0x0a, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x41, 0x42, 0x41, 0x50, 0x10, 0x3c, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x70, 0x65, 0x78, 0x10, + 0x60, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x4c, 0x10, 0x31, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, + 0x61, 0x10, 0x27, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x67, 0x64, 0x61, 0x10, 0x2d, 0x12, 0x0c, 0x0a, + 0x08, 0x41, 0x73, 0x63, 0x69, 0x69, 0x44, 0x6f, 0x63, 0x10, 0x56, 0x12, 0x0c, 0x0a, 0x08, 0x41, + 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x10, 0x3a, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x77, 0x6b, + 0x10, 0x42, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x61, 0x74, 0x10, 0x44, 0x12, 0x0a, 0x0a, 0x06, 0x42, + 0x69, 0x62, 0x54, 0x65, 0x58, 0x10, 0x51, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x22, 0x12, 0x09, + 0x0a, 0x05, 0x43, 0x4f, 0x42, 0x4f, 0x4c, 0x10, 0x3b, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x50, 0x50, + 0x10, 0x23, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x53, 0x10, 0x1a, 0x12, 0x0a, 0x0a, 0x06, 0x43, + 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x6f, 0x6a, 0x75, + 0x72, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x10, 0x15, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x4c, 0x69, 0x73, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x6f, 0x71, 0x10, 0x2f, 0x12, + 0x08, 0x0a, 0x04, 0x43, 0x55, 0x44, 0x41, 0x10, 0x61, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x61, 0x72, + 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x10, 0x39, 0x12, + 0x08, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x6f, 0x63, + 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x79, 0x61, + 0x6c, 0x6f, 0x67, 0x10, 0x32, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, 0x78, 0x69, 0x72, 0x10, + 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x12, 0x12, 0x0a, 0x0a, + 0x06, 0x46, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x73, + 0x68, 0x10, 0x41, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, 0x18, 0x12, 0x0b, 0x0a, + 0x07, 0x46, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, + 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, + 0x74, 0x5f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, + 0x74, 0x5f, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x6f, + 0x10, 0x21, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x10, 0x62, 0x12, + 0x0a, 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x79, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, + 0x54, 0x4d, 0x4c, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x61, 0x63, 0x6b, 0x10, 0x14, 0x12, + 0x0e, 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x61, 0x72, 0x73, 0x10, 0x5a, 0x12, + 0x0b, 0x0a, 0x07, 0x48, 0x61, 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x2c, 0x12, 0x09, 0x0a, 0x05, + 0x49, 0x64, 0x72, 0x69, 0x73, 0x10, 0x2e, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x6e, 0x69, 0x10, 0x48, + 0x12, 0x05, 0x0a, 0x01, 0x4a, 0x10, 0x33, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, + 0x4b, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x61, 0x76, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, + 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x4a, + 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5d, + 0x12, 0x0b, 0x0a, 0x07, 0x4a, 0x73, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x10, 0x4c, 0x12, 0x09, 0x0a, + 0x05, 0x4a, 0x75, 0x6c, 0x69, 0x61, 0x10, 0x37, 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x75, 0x73, 0x74, + 0x66, 0x69, 0x6c, 0x65, 0x10, 0x6d, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x6f, 0x74, 0x6c, 0x69, 0x6e, + 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x61, 0x54, 0x65, 0x58, 0x10, 0x53, 0x12, 0x08, 0x0a, + 0x04, 0x4c, 0x65, 0x61, 0x6e, 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x73, 0x73, 0x10, + 0x1b, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x75, 0x61, 0x10, 0x0c, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x75, + 0x61, 0x75, 0x10, 0x6c, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x6b, 0x65, 0x66, 0x69, 0x6c, 0x65, + 0x10, 0x4f, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x54, + 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x74, 0x6c, 0x61, 0x62, 0x10, 0x34, 0x12, 0x0a, 0x0a, 0x06, + 0x4e, 0x69, 0x63, 0x6b, 0x65, 0x6c, 0x10, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x69, 0x78, 0x10, + 0x4d, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, 0x24, 0x12, 0x11, 0x0a, + 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x50, 0x50, 0x10, 0x25, + 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x61, 0x73, 0x63, 0x61, 0x6c, 0x10, 0x63, 0x12, 0x07, 0x0a, 0x03, + 0x50, 0x48, 0x50, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x53, 0x51, 0x4c, 0x10, 0x46, + 0x12, 0x08, 0x0a, 0x04, 0x50, 0x65, 0x72, 0x6c, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x6f, + 0x77, 0x65, 0x72, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x10, 0x43, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, + 0x6f, 0x6c, 0x6f, 0x67, 0x10, 0x47, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x10, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x10, 0x0f, + 0x12, 0x05, 0x0a, 0x01, 0x52, 0x10, 0x36, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x61, 0x6b, 0x75, 0x10, 0x0e, 0x12, 0x09, 0x0a, + 0x05, 0x52, 0x61, 0x7a, 0x6f, 0x72, 0x10, 0x3e, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x72, + 0x6f, 0x10, 0x66, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x65, 0x53, 0x54, 0x10, 0x55, 0x12, 0x08, 0x0a, + 0x04, 0x52, 0x75, 0x62, 0x79, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x73, 0x74, 0x10, + 0x28, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x53, 0x10, 0x3d, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x43, + 0x53, 0x53, 0x10, 0x1d, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x4c, 0x10, 0x2b, 0x12, 0x07, 0x0a, + 0x03, 0x53, 0x51, 0x4c, 0x10, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x61, 0x73, 0x73, 0x10, 0x1c, + 0x12, 0x09, 0x0a, 0x05, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x65, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x65, 0x6c, 0x6c, + 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x40, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x6b, 0x79, 0x6c, + 0x61, 0x72, 0x6b, 0x10, 0x4e, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x6b, + 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x10, 0x5f, 0x12, 0x0a, + 0x0a, 0x06, 0x53, 0x76, 0x65, 0x6c, 0x74, 0x65, 0x10, 0x6a, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x77, + 0x69, 0x66, 0x74, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x63, 0x6c, 0x10, 0x65, 0x12, 0x08, + 0x0a, 0x04, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x49, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x65, 0x58, 0x10, + 0x52, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x68, 0x72, 0x69, 0x66, 0x74, 0x10, 0x67, 0x12, 0x0e, 0x0a, + 0x0a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x17, 0x12, 0x13, 0x0a, + 0x0f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, + 0x10, 0x5e, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x69, 0x6c, 0x6f, 0x67, 0x10, 0x68, 0x12, + 0x08, 0x0a, 0x04, 0x56, 0x48, 0x44, 0x4c, 0x10, 0x69, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x69, 0x73, + 0x75, 0x61, 0x6c, 0x42, 0x61, 0x73, 0x69, 0x63, 0x10, 0x3f, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x75, + 0x65, 0x10, 0x19, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x10, 0x35, + 0x12, 0x07, 0x0a, 0x03, 0x58, 0x4d, 0x4c, 0x10, 0x1f, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x53, 0x4c, + 0x10, 0x20, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x4a, 0x12, 0x07, 0x0a, 0x03, + 0x5a, 0x69, 0x67, 0x10, 0x26, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, + 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x67, 0x6f, + 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2954,7 +3143,7 @@ func file_scip_proto_rawDescGZIP() []byte { } var file_scip_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_scip_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_scip_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_scip_proto_goTypes = []interface{}{ (ProtocolVersion)(0), // 0: scip.ProtocolVersion (TextEncoding)(0), // 1: scip.TextEncoding @@ -2974,9 +3163,10 @@ var file_scip_proto_goTypes = []interface{}{ (*Package)(nil), // 15: scip.Package (*Descriptor)(nil), // 16: scip.Descriptor (*SymbolInformation)(nil), // 17: scip.SymbolInformation - (*Relationship)(nil), // 18: scip.Relationship - (*Occurrence)(nil), // 19: scip.Occurrence - (*Diagnostic)(nil), // 20: scip.Diagnostic + (*FullRelationship)(nil), // 18: scip.FullRelationship + (*Relationship)(nil), // 19: scip.Relationship + (*Occurrence)(nil), // 20: scip.Occurrence + (*Diagnostic)(nil), // 21: scip.Diagnostic } var file_scip_proto_depIdxs = []int32{ 11, // 0: scip.Index.metadata:type_name -> scip.Metadata @@ -2985,24 +3175,27 @@ var file_scip_proto_depIdxs = []int32{ 0, // 3: scip.Metadata.version:type_name -> scip.ProtocolVersion 12, // 4: scip.Metadata.tool_info:type_name -> scip.ToolInfo 1, // 5: scip.Metadata.text_document_encoding:type_name -> scip.TextEncoding - 19, // 6: scip.Document.occurrences:type_name -> scip.Occurrence + 20, // 6: scip.Document.occurrences:type_name -> scip.Occurrence 17, // 7: scip.Document.symbols:type_name -> scip.SymbolInformation 2, // 8: scip.Document.position_encoding:type_name -> scip.PositionEncoding - 15, // 9: scip.Symbol.package:type_name -> scip.Package - 16, // 10: scip.Symbol.descriptors:type_name -> scip.Descriptor - 8, // 11: scip.Descriptor.suffix:type_name -> scip.Descriptor.Suffix - 18, // 12: scip.SymbolInformation.relationships:type_name -> scip.Relationship - 9, // 13: scip.SymbolInformation.kind:type_name -> scip.SymbolInformation.Kind - 13, // 14: scip.SymbolInformation.signature_documentation:type_name -> scip.Document - 4, // 15: scip.Occurrence.syntax_kind:type_name -> scip.SyntaxKind - 20, // 16: scip.Occurrence.diagnostics:type_name -> scip.Diagnostic - 5, // 17: scip.Diagnostic.severity:type_name -> scip.Severity - 6, // 18: scip.Diagnostic.tags:type_name -> scip.DiagnosticTag - 19, // [19:19] is the sub-list for method output_type - 19, // [19:19] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 17, // 9: scip.Document.external_symbols:type_name -> scip.SymbolInformation + 18, // 10: scip.Document.cross_relationships:type_name -> scip.FullRelationship + 15, // 11: scip.Symbol.package:type_name -> scip.Package + 16, // 12: scip.Symbol.descriptors:type_name -> scip.Descriptor + 8, // 13: scip.Descriptor.suffix:type_name -> scip.Descriptor.Suffix + 19, // 14: scip.SymbolInformation.relationships:type_name -> scip.Relationship + 9, // 15: scip.SymbolInformation.kind:type_name -> scip.SymbolInformation.Kind + 13, // 16: scip.SymbolInformation.signature_documentation:type_name -> scip.Document + 19, // 17: scip.FullRelationship.relationship:type_name -> scip.Relationship + 4, // 18: scip.Occurrence.syntax_kind:type_name -> scip.SyntaxKind + 21, // 19: scip.Occurrence.diagnostics:type_name -> scip.Diagnostic + 5, // 20: scip.Diagnostic.severity:type_name -> scip.Severity + 6, // 21: scip.Diagnostic.tags:type_name -> scip.DiagnosticTag + 22, // [22:22] is the sub-list for method output_type + 22, // [22:22] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_scip_proto_init() } @@ -3108,7 +3301,7 @@ func file_scip_proto_init() { } } file_scip_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Relationship); i { + switch v := v.(*FullRelationship); i { case 0: return &v.state case 1: @@ -3120,7 +3313,7 @@ func file_scip_proto_init() { } } file_scip_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Occurrence); i { + switch v := v.(*Relationship); i { case 0: return &v.state case 1: @@ -3132,6 +3325,18 @@ func file_scip_proto_init() { } } file_scip_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Occurrence); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_scip_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Diagnostic); i { case 0: return &v.state @@ -3150,7 +3355,7 @@ func file_scip_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_scip_proto_rawDesc, NumEnums: 10, - NumMessages: 11, + NumMessages: 12, NumExtensions: 0, NumServices: 0, }, diff --git a/bindings/haskell/src/Proto/Scip.hs b/bindings/haskell/src/Proto/Scip.hs index 93edca1e..3798b5d8 100644 --- a/bindings/haskell/src/Proto/Scip.hs +++ b/bindings/haskell/src/Proto/Scip.hs @@ -8,17 +8,17 @@ module Proto.Scip ( Descriptor'Suffix(Descriptor'Package), Descriptor'Suffix'UnrecognizedValue, Diagnostic(), DiagnosticTag(..), DiagnosticTag(), - DiagnosticTag'UnrecognizedValue, Document(), Index(), Language(..), - Language(), Language'UnrecognizedValue, Metadata(), Occurrence(), - Package(), PositionEncoding(..), PositionEncoding(), - PositionEncoding'UnrecognizedValue, ProtocolVersion(..), - ProtocolVersion(), ProtocolVersion'UnrecognizedValue, - Relationship(), Severity(..), Severity(), - Severity'UnrecognizedValue, Symbol(), SymbolInformation(), - SymbolInformation'Kind(..), SymbolInformation'Kind(), - SymbolInformation'Kind'UnrecognizedValue, SymbolRole(..), - SymbolRole(), SymbolRole'UnrecognizedValue, SyntaxKind(..), - SyntaxKind(IdentifierKeyword, IdentifierModule), + DiagnosticTag'UnrecognizedValue, Document(), FullRelationship(), + Index(), Language(..), Language(), Language'UnrecognizedValue, + Metadata(), Occurrence(), Package(), PositionEncoding(..), + PositionEncoding(), PositionEncoding'UnrecognizedValue, + ProtocolVersion(..), ProtocolVersion(), + ProtocolVersion'UnrecognizedValue, Relationship(), Severity(..), + Severity(), Severity'UnrecognizedValue, Symbol(), + SymbolInformation(), SymbolInformation'Kind(..), + SymbolInformation'Kind(), SymbolInformation'Kind'UnrecognizedValue, + SymbolRole(..), SymbolRole(), SymbolRole'UnrecognizedValue, + SyntaxKind(..), SyntaxKind(IdentifierKeyword, IdentifierModule), SyntaxKind'UnrecognizedValue, TextEncoding(..), TextEncoding(), TextEncoding'UnrecognizedValue, ToolInfo() ) where @@ -815,7 +815,11 @@ instance Control.DeepSeq.NFData DiagnosticTag where * 'Proto.Scip_Fields.symbols' @:: Lens' Document [SymbolInformation]@ * 'Proto.Scip_Fields.vec'symbols' @:: Lens' Document (Data.Vector.Vector SymbolInformation)@ * 'Proto.Scip_Fields.text' @:: Lens' Document Data.Text.Text@ - * 'Proto.Scip_Fields.positionEncoding' @:: Lens' Document PositionEncoding@ -} + * 'Proto.Scip_Fields.positionEncoding' @:: Lens' Document PositionEncoding@ + * 'Proto.Scip_Fields.externalSymbols' @:: Lens' Document [SymbolInformation]@ + * 'Proto.Scip_Fields.vec'externalSymbols' @:: Lens' Document (Data.Vector.Vector SymbolInformation)@ + * 'Proto.Scip_Fields.crossRelationships' @:: Lens' Document [FullRelationship]@ + * 'Proto.Scip_Fields.vec'crossRelationships' @:: Lens' Document (Data.Vector.Vector FullRelationship)@ -} data Document = Document'_constructor {_Document'language :: !Data.Text.Text, _Document'relativePath :: !Data.Text.Text, @@ -823,6 +827,8 @@ data Document _Document'symbols :: !(Data.Vector.Vector SymbolInformation), _Document'text :: !Data.Text.Text, _Document'positionEncoding :: !PositionEncoding, + _Document'externalSymbols :: !(Data.Vector.Vector SymbolInformation), + _Document'crossRelationships :: !(Data.Vector.Vector FullRelationship), _Document'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show Document where @@ -887,6 +893,38 @@ instance Data.ProtoLens.Field.HasField Document "positionEncoding" PositionEncod _Document'positionEncoding (\ x__ y__ -> x__ {_Document'positionEncoding = y__})) Prelude.id +instance Data.ProtoLens.Field.HasField Document "externalSymbols" [SymbolInformation] where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Document'externalSymbols + (\ x__ y__ -> x__ {_Document'externalSymbols = y__})) + (Lens.Family2.Unchecked.lens + Data.Vector.Generic.toList + (\ _ y__ -> Data.Vector.Generic.fromList y__)) +instance Data.ProtoLens.Field.HasField Document "vec'externalSymbols" (Data.Vector.Vector SymbolInformation) where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Document'externalSymbols + (\ x__ y__ -> x__ {_Document'externalSymbols = y__})) + Prelude.id +instance Data.ProtoLens.Field.HasField Document "crossRelationships" [FullRelationship] where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Document'crossRelationships + (\ x__ y__ -> x__ {_Document'crossRelationships = y__})) + (Lens.Family2.Unchecked.lens + Data.Vector.Generic.toList + (\ _ y__ -> Data.Vector.Generic.fromList y__)) +instance Data.ProtoLens.Field.HasField Document "vec'crossRelationships" (Data.Vector.Vector FullRelationship) where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Document'crossRelationships + (\ x__ y__ -> x__ {_Document'crossRelationships = y__})) + Prelude.id instance Data.ProtoLens.Message Document where messageName _ = Data.Text.pack "scip.Document" packedMessageDescriptor _ @@ -897,7 +935,9 @@ instance Data.ProtoLens.Message Document where \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrences\DC21\n\ \\asymbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\asymbols\DC2\DC2\n\ \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC2C\n\ - \\DC1position_encoding\CAN\ACK \SOH(\SO2\SYN.scip.PositionEncodingR\DLEpositionEncoding" + \\DC1position_encoding\CAN\ACK \SOH(\SO2\SYN.scip.PositionEncodingR\DLEpositionEncoding\DC2B\n\ + \\DLEexternal_symbols\CAN\a \ETX(\v2\ETB.scip.SymbolInformationR\SIexternalSymbols\DC2G\n\ + \\DC3cross_relationships\CAN\b \ETX(\v2\SYN.scip.FullRelationshipR\DC2crossRelationships" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let @@ -953,6 +993,24 @@ instance Data.ProtoLens.Message Document where Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"positionEncoding")) :: Data.ProtoLens.FieldDescriptor Document + externalSymbols__field_descriptor + = Data.ProtoLens.FieldDescriptor + "external_symbols" + (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: + Data.ProtoLens.FieldTypeDescriptor SymbolInformation) + (Data.ProtoLens.RepeatedField + Data.ProtoLens.Unpacked + (Data.ProtoLens.Field.field @"externalSymbols")) :: + Data.ProtoLens.FieldDescriptor Document + crossRelationships__field_descriptor + = Data.ProtoLens.FieldDescriptor + "cross_relationships" + (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: + Data.ProtoLens.FieldTypeDescriptor FullRelationship) + (Data.ProtoLens.RepeatedField + Data.ProtoLens.Unpacked + (Data.ProtoLens.Field.field @"crossRelationships")) :: + Data.ProtoLens.FieldDescriptor Document in Data.Map.fromList [(Data.ProtoLens.Tag 4, language__field_descriptor), @@ -960,7 +1018,9 @@ instance Data.ProtoLens.Message Document where (Data.ProtoLens.Tag 2, occurrences__field_descriptor), (Data.ProtoLens.Tag 3, symbols__field_descriptor), (Data.ProtoLens.Tag 5, text__field_descriptor), - (Data.ProtoLens.Tag 6, positionEncoding__field_descriptor)] + (Data.ProtoLens.Tag 6, positionEncoding__field_descriptor), + (Data.ProtoLens.Tag 7, externalSymbols__field_descriptor), + (Data.ProtoLens.Tag 8, crossRelationships__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _Document'_unknownFields @@ -973,18 +1033,33 @@ instance Data.ProtoLens.Message Document where _Document'symbols = Data.Vector.Generic.empty, _Document'text = Data.ProtoLens.fieldDefault, _Document'positionEncoding = Data.ProtoLens.fieldDefault, + _Document'externalSymbols = Data.Vector.Generic.empty, + _Document'crossRelationships = Data.Vector.Generic.empty, _Document'_unknownFields = []} parseMessage = let loop :: Document - -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Occurrence + -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FullRelationship -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld SymbolInformation - -> Data.ProtoLens.Encoding.Bytes.Parser Document - loop x mutable'occurrences mutable'symbols + -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Occurrence + -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld SymbolInformation + -> Data.ProtoLens.Encoding.Bytes.Parser Document + loop + x + mutable'crossRelationships + mutable'externalSymbols + mutable'occurrences + mutable'symbols = do end <- Data.ProtoLens.Encoding.Bytes.atEnd if end then - do frozen'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO + do frozen'crossRelationships <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO + (Data.ProtoLens.Encoding.Growing.unsafeFreeze + mutable'crossRelationships) + frozen'externalSymbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO + (Data.ProtoLens.Encoding.Growing.unsafeFreeze + mutable'externalSymbols) + frozen'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'occurrences) frozen'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO @@ -1003,9 +1078,17 @@ instance Data.ProtoLens.Message Document where (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) (Lens.Family2.set - (Data.ProtoLens.Field.field @"vec'occurrences") frozen'occurrences + (Data.ProtoLens.Field.field @"vec'crossRelationships") + frozen'crossRelationships (Lens.Family2.set - (Data.ProtoLens.Field.field @"vec'symbols") frozen'symbols x))) + (Data.ProtoLens.Field.field @"vec'externalSymbols") + frozen'externalSymbols + (Lens.Family2.set + (Data.ProtoLens.Field.field @"vec'occurrences") + frozen'occurrences + (Lens.Family2.set + (Data.ProtoLens.Field.field @"vec'symbols") frozen'symbols + x))))) else do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt case tag of @@ -1017,6 +1100,7 @@ instance Data.ProtoLens.Message Document where "language" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"language") y x) + mutable'crossRelationships mutable'externalSymbols mutable'occurrences mutable'symbols 10 -> do y <- (Data.ProtoLens.Encoding.Bytes.) @@ -1027,6 +1111,7 @@ instance Data.ProtoLens.Message Document where loop (Lens.Family2.set (Data.ProtoLens.Field.field @"relativePath") y x) + mutable'crossRelationships mutable'externalSymbols mutable'occurrences mutable'symbols 18 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) @@ -1038,7 +1123,9 @@ instance Data.ProtoLens.Message Document where v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'occurrences y) - loop x v mutable'symbols + loop + x mutable'crossRelationships mutable'externalSymbols v + mutable'symbols 26 -> do !y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt @@ -1048,7 +1135,9 @@ instance Data.ProtoLens.Message Document where "symbols" v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO (Data.ProtoLens.Encoding.Growing.append mutable'symbols y) - loop x mutable'occurrences v + loop + x mutable'crossRelationships mutable'externalSymbols + mutable'occurrences v 42 -> do y <- (Data.ProtoLens.Encoding.Bytes.) (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt @@ -1057,6 +1146,7 @@ instance Data.ProtoLens.Message Document where "text" loop (Lens.Family2.set (Data.ProtoLens.Field.field @"text") y x) + mutable'crossRelationships mutable'externalSymbols mutable'occurrences mutable'symbols 48 -> do y <- (Data.ProtoLens.Encoding.Bytes.) @@ -1069,21 +1159,53 @@ instance Data.ProtoLens.Message Document where loop (Lens.Family2.set (Data.ProtoLens.Field.field @"positionEncoding") y x) + mutable'crossRelationships mutable'externalSymbols mutable'occurrences mutable'symbols + 58 + -> do !y <- (Data.ProtoLens.Encoding.Bytes.) + (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt + Data.ProtoLens.Encoding.Bytes.isolate + (Prelude.fromIntegral len) + Data.ProtoLens.parseMessage) + "external_symbols" + v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO + (Data.ProtoLens.Encoding.Growing.append + mutable'externalSymbols y) + loop + x mutable'crossRelationships v mutable'occurrences mutable'symbols + 66 + -> do !y <- (Data.ProtoLens.Encoding.Bytes.) + (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt + Data.ProtoLens.Encoding.Bytes.isolate + (Prelude.fromIntegral len) + Data.ProtoLens.parseMessage) + "cross_relationships" + v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO + (Data.ProtoLens.Encoding.Growing.append + mutable'crossRelationships y) + loop + x v mutable'externalSymbols mutable'occurrences mutable'symbols wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire loop (Lens.Family2.over Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) + mutable'crossRelationships mutable'externalSymbols mutable'occurrences mutable'symbols in (Data.ProtoLens.Encoding.Bytes.) - (do mutable'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO + (do mutable'crossRelationships <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO + Data.ProtoLens.Encoding.Growing.new + mutable'externalSymbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO + Data.ProtoLens.Encoding.Growing.new + mutable'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new mutable'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO Data.ProtoLens.Encoding.Growing.new - loop Data.ProtoLens.defMessage mutable'occurrences mutable'symbols) + loop + Data.ProtoLens.defMessage mutable'crossRelationships + mutable'externalSymbols mutable'occurrences mutable'symbols) "Document" buildMessage = \ _x @@ -1178,8 +1300,38 @@ instance Data.ProtoLens.Message Document where Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral) Prelude.fromEnum _v)) - (Data.ProtoLens.Encoding.Wire.buildFieldSet - (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))) + ((Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.foldMapBuilder + (\ _v + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 58) + ((Prelude..) + (\ bs + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt + (Prelude.fromIntegral + (Data.ByteString.length bs))) + (Data.ProtoLens.Encoding.Bytes.putBytes bs)) + Data.ProtoLens.encodeMessage _v)) + (Lens.Family2.view + (Data.ProtoLens.Field.field @"vec'externalSymbols") _x)) + ((Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.foldMapBuilder + (\ _v + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 66) + ((Prelude..) + (\ bs + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt + (Prelude.fromIntegral + (Data.ByteString.length bs))) + (Data.ProtoLens.Encoding.Bytes.putBytes bs)) + Data.ProtoLens.encodeMessage _v)) + (Lens.Family2.view + (Data.ProtoLens.Field.field @"vec'crossRelationships") _x)) + (Data.ProtoLens.Encoding.Wire.buildFieldSet + (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))) instance Control.DeepSeq.NFData Document where rnf = \ x__ @@ -1195,7 +1347,184 @@ instance Control.DeepSeq.NFData Document where (_Document'symbols x__) (Control.DeepSeq.deepseq (_Document'text x__) - (Control.DeepSeq.deepseq (_Document'positionEncoding x__) ())))))) + (Control.DeepSeq.deepseq + (_Document'positionEncoding x__) + (Control.DeepSeq.deepseq + (_Document'externalSymbols x__) + (Control.DeepSeq.deepseq + (_Document'crossRelationships x__) ())))))))) +{- | Fields : + + * 'Proto.Scip_Fields.sourceSymbol' @:: Lens' FullRelationship Data.Text.Text@ + * 'Proto.Scip_Fields.relationship' @:: Lens' FullRelationship Relationship@ + * 'Proto.Scip_Fields.maybe'relationship' @:: Lens' FullRelationship (Prelude.Maybe Relationship)@ -} +data FullRelationship + = FullRelationship'_constructor {_FullRelationship'sourceSymbol :: !Data.Text.Text, + _FullRelationship'relationship :: !(Prelude.Maybe Relationship), + _FullRelationship'_unknownFields :: !Data.ProtoLens.FieldSet} + deriving stock (Prelude.Eq, Prelude.Ord) +instance Prelude.Show FullRelationship where + showsPrec _ __x __s + = Prelude.showChar + '{' + (Prelude.showString + (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) +instance Data.ProtoLens.Field.HasField FullRelationship "sourceSymbol" Data.Text.Text where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _FullRelationship'sourceSymbol + (\ x__ y__ -> x__ {_FullRelationship'sourceSymbol = y__})) + Prelude.id +instance Data.ProtoLens.Field.HasField FullRelationship "relationship" Relationship where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _FullRelationship'relationship + (\ x__ y__ -> x__ {_FullRelationship'relationship = y__})) + (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage) +instance Data.ProtoLens.Field.HasField FullRelationship "maybe'relationship" (Prelude.Maybe Relationship) where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _FullRelationship'relationship + (\ x__ y__ -> x__ {_FullRelationship'relationship = y__})) + Prelude.id +instance Data.ProtoLens.Message FullRelationship where + messageName _ = Data.Text.pack "scip.FullRelationship" + packedMessageDescriptor _ + = "\n\ + \\DLEFullRelationship\DC2#\n\ + \\rsource_symbol\CAN\SOH \SOH(\tR\fsourceSymbol\DC26\n\ + \\frelationship\CAN\STX \SOH(\v2\DC2.scip.RelationshipR\frelationship" + packedFileDescriptor _ = packedFileDescriptor + fieldsByTag + = let + sourceSymbol__field_descriptor + = Data.ProtoLens.FieldDescriptor + "source_symbol" + (Data.ProtoLens.ScalarField Data.ProtoLens.StringField :: + Data.ProtoLens.FieldTypeDescriptor Data.Text.Text) + (Data.ProtoLens.PlainField + Data.ProtoLens.Optional + (Data.ProtoLens.Field.field @"sourceSymbol")) :: + Data.ProtoLens.FieldDescriptor FullRelationship + relationship__field_descriptor + = Data.ProtoLens.FieldDescriptor + "relationship" + (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: + Data.ProtoLens.FieldTypeDescriptor Relationship) + (Data.ProtoLens.OptionalField + (Data.ProtoLens.Field.field @"maybe'relationship")) :: + Data.ProtoLens.FieldDescriptor FullRelationship + in + Data.Map.fromList + [(Data.ProtoLens.Tag 1, sourceSymbol__field_descriptor), + (Data.ProtoLens.Tag 2, relationship__field_descriptor)] + unknownFields + = Lens.Family2.Unchecked.lens + _FullRelationship'_unknownFields + (\ x__ y__ -> x__ {_FullRelationship'_unknownFields = y__}) + defMessage + = FullRelationship'_constructor + {_FullRelationship'sourceSymbol = Data.ProtoLens.fieldDefault, + _FullRelationship'relationship = Prelude.Nothing, + _FullRelationship'_unknownFields = []} + parseMessage + = let + loop :: + FullRelationship + -> Data.ProtoLens.Encoding.Bytes.Parser FullRelationship + loop x + = do end <- Data.ProtoLens.Encoding.Bytes.atEnd + if end then + do (let missing = [] + in + if Prelude.null missing then + Prelude.return () + else + Prelude.fail + ((Prelude.++) + "Missing required fields: " + (Prelude.show (missing :: [Prelude.String])))) + Prelude.return + (Lens.Family2.over + Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) + else + do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt + case tag of + 10 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt + Data.ProtoLens.Encoding.Bytes.getText + (Prelude.fromIntegral len)) + "source_symbol" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"sourceSymbol") y x) + 18 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt + Data.ProtoLens.Encoding.Bytes.isolate + (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) + "relationship" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"relationship") y x) + wire + -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire + wire + loop + (Lens.Family2.over + Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) + in + (Data.ProtoLens.Encoding.Bytes.) + (do loop Data.ProtoLens.defMessage) "FullRelationship" + buildMessage + = \ _x + -> (Data.Monoid.<>) + (let + _v + = Lens.Family2.view (Data.ProtoLens.Field.field @"sourceSymbol") _x + in + if (Prelude.==) _v Data.ProtoLens.fieldDefault then + Data.Monoid.mempty + else + (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 10) + ((Prelude..) + (\ bs + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt + (Prelude.fromIntegral (Data.ByteString.length bs))) + (Data.ProtoLens.Encoding.Bytes.putBytes bs)) + Data.Text.Encoding.encodeUtf8 _v)) + ((Data.Monoid.<>) + (case + Lens.Family2.view + (Data.ProtoLens.Field.field @"maybe'relationship") _x + of + Prelude.Nothing -> Data.Monoid.mempty + (Prelude.Just _v) + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 18) + ((Prelude..) + (\ bs + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt + (Prelude.fromIntegral (Data.ByteString.length bs))) + (Data.ProtoLens.Encoding.Bytes.putBytes bs)) + Data.ProtoLens.encodeMessage _v)) + (Data.ProtoLens.Encoding.Wire.buildFieldSet + (Lens.Family2.view Data.ProtoLens.unknownFields _x))) +instance Control.DeepSeq.NFData FullRelationship where + rnf + = \ x__ + -> Control.DeepSeq.deepseq + (_FullRelationship'_unknownFields x__) + (Control.DeepSeq.deepseq + (_FullRelationship'sourceSymbol x__) + (Control.DeepSeq.deepseq (_FullRelationship'relationship x__) ())) {- | Fields : * 'Proto.Scip_Fields.metadata' @:: Lens' Index Metadata@ @@ -6031,14 +6360,16 @@ packedFileDescriptor \\bToolInfo\DC2\DC2\n\ \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\CAN\n\ \\aversion\CAN\STX \SOH(\tR\aversion\DC2\FS\n\ - \\targuments\CAN\ETX \ETX(\tR\targuments\"\139\STX\n\ + \\targuments\CAN\ETX \ETX(\tR\targuments\"\152\ETX\n\ \\bDocument\DC2\SUB\n\ \\blanguage\CAN\EOT \SOH(\tR\blanguage\DC2#\n\ \\rrelative_path\CAN\SOH \SOH(\tR\frelativePath\DC22\n\ \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrences\DC21\n\ \\asymbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\asymbols\DC2\DC2\n\ \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC2C\n\ - \\DC1position_encoding\CAN\ACK \SOH(\SO2\SYN.scip.PositionEncodingR\DLEpositionEncoding\"}\n\ + \\DC1position_encoding\CAN\ACK \SOH(\SO2\SYN.scip.PositionEncodingR\DLEpositionEncoding\DC2B\n\ + \\DLEexternal_symbols\CAN\a \ETX(\v2\ETB.scip.SymbolInformationR\SIexternalSymbols\DC2G\n\ + \\DC3cross_relationships\CAN\b \ETX(\v2\SYN.scip.FullRelationshipR\DC2crossRelationships\"}\n\ \\ACKSymbol\DC2\SYN\n\ \\ACKscheme\CAN\SOH \SOH(\tR\ACKscheme\DC2'\n\ \\apackage\CAN\STX \SOH(\v2\r.scip.PackageR\apackage\DC22\n\ @@ -6171,7 +6502,10 @@ packedFileDescriptor \\rTypeParameter\DLE:\DC2\t\n\ \\ENQUnion\DLE;\DC2\t\n\ \\ENQValue\DLE<\DC2\f\n\ - \\bVariable\DLE=\"\201\SOH\n\ + \\bVariable\DLE=\"o\n\ + \\DLEFullRelationship\DC2#\n\ + \\rsource_symbol\CAN\SOH \SOH(\tR\fsourceSymbol\DC26\n\ + \\frelationship\CAN\STX \SOH(\v2\DC2.scip.RelationshipR\frelationship\"\201\SOH\n\ \\fRelationship\DC2\SYN\n\ \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2!\n\ \\fis_reference\CAN\STX \SOH(\bR\visReference\DC2+\n\ @@ -6412,9 +6746,9 @@ packedFileDescriptor \\ETXXML\DLE\US\DC2\a\n\ \\ETXXSL\DLE \DC2\b\n\ \\EOTYAML\DLEJ\DC2\a\n\ - \\ETXZig\DLE&B/Z-github.com/sourcegraph/scip/bindings/go/scip/J\215\183\STX\n\ + \\ETXZig\DLE&B/Z-github.com/sourcegraph/scip/bindings/go/scip/J\217\217\STX\n\ \\a\DC2\ENQ\n\ - \\NUL\240\ACK\SOH\n\ + \\NUL\223\a\SOH\n\ \\130\EOT\n\ \\SOH\f\DC2\ETX\n\ \\NUL\DC22\247\ETX An index contains one or more pieces of information about a given piece of\n\ @@ -6434,7 +6768,7 @@ packedFileDescriptor \\t\n\ \\STX\b\v\DC2\ETX\SO\NULD\n\ \\208\ETX\n\ - \\STX\EOT\NUL\DC2\EOT\SYN\NUL#\SOH\SUB\195\ETX Index represents a complete SCIP index for a workspace this is rooted at a\n\ + \\STX\EOT\NUL\DC2\EOT\SYN\NUL\US\SOH\SUB\195\ETX Index represents a complete SCIP index for a workspace this is rooted at a\n\ \ single directory. An Index message payload can have a large memory footprint\n\ \ and it's therefore recommended to emit and consume an Index payload one field\n\ \ value at a time. To permit streaming consumption of an Index payload, the\n\ @@ -6466,165 +6800,161 @@ packedFileDescriptor \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\ETX\SUB\DC4\GS\n\ \\f\n\ \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\ETX\SUB !\n\ - \\246\ETX\n\ - \\EOT\EOT\NUL\STX\STX\DC2\ETX \STX2\SUB\233\STX (optional) Symbols that are referenced from this index but are defined in\n\ - \ an external package (a separate `Index` message). Leave this field empty\n\ - \ if you assume the external package will get indexed separately. If the\n\ - \ external package won't get indexed for some reason then you can use this\n\ - \ field to provide hover documentation for those external symbols.\n\ + \\194\SOH\n\ + \\EOT\EOT\NUL\STX\STX\DC2\ETX\FS\STX2\SUB6 (DEPRECATED): Use Document.external_symbols instead.\n\ \\"} IMPORTANT: When adding a new field to `Index` here, add a matching\n\ \ function in `IndexVisitor` and update `ParseStreaming`.\n\ \\n\ \\f\n\ - \\ENQ\EOT\NUL\STX\STX\EOT\DC2\ETX \STX\n\ + \\ENQ\EOT\NUL\STX\STX\EOT\DC2\ETX\FS\STX\n\ \\n\ \\f\n\ - \\ENQ\EOT\NUL\STX\STX\ACK\DC2\ETX \v\FS\n\ + \\ENQ\EOT\NUL\STX\STX\ACK\DC2\ETX\FS\v\FS\n\ \\f\n\ - \\ENQ\EOT\NUL\STX\STX\SOH\DC2\ETX \GS-\n\ + \\ENQ\EOT\NUL\STX\STX\SOH\DC2\ETX\FS\GS-\n\ \\f\n\ - \\ENQ\EOT\NUL\STX\STX\ETX\DC2\ETX 01\n\ + \\ENQ\EOT\NUL\STX\STX\ETX\DC2\ETX\FS01\n\ \\n\ \\n\ - \\STX\EOT\SOH\DC2\EOT%\NUL2\SOH\n\ + \\STX\EOT\SOH\DC2\EOT!\NUL.\SOH\n\ \\n\ \\n\ - \\ETX\EOT\SOH\SOH\DC2\ETX%\b\DLE\n\ + \\ETX\EOT\SOH\SOH\DC2\ETX!\b\DLE\n\ \N\n\ - \\EOT\EOT\SOH\STX\NUL\DC2\ETX'\STX\RS\SUBA Which version of this protocol was used to generate this index?\n\ + \\EOT\EOT\SOH\STX\NUL\DC2\ETX#\STX\RS\SUBA Which version of this protocol was used to generate this index?\n\ \\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\NUL\ACK\DC2\ETX'\STX\DC1\n\ + \\ENQ\EOT\SOH\STX\NUL\ACK\DC2\ETX#\STX\DC1\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX'\DC2\EM\n\ + \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX#\DC2\EM\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX'\FS\GS\n\ + \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX#\FS\GS\n\ \C\n\ - \\EOT\EOT\SOH\STX\SOH\DC2\ETX)\STX\EM\SUB6 Information about the tool that produced this index.\n\ + \\EOT\EOT\SOH\STX\SOH\DC2\ETX%\STX\EM\SUB6 Information about the tool that produced this index.\n\ \\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\SOH\ACK\DC2\ETX)\STX\n\ + \\ENQ\EOT\SOH\STX\SOH\ACK\DC2\ETX%\STX\n\ \\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETX)\v\DC4\n\ + \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETX%\v\DC4\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETX)\ETB\CAN\n\ + \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETX%\ETB\CAN\n\ \\162\SOH\n\ - \\EOT\EOT\SOH\STX\STX\DC2\ETX-\STX\SUB\SUB\148\SOH URI-encoded absolute path to the root directory of this index. All\n\ + \\EOT\EOT\SOH\STX\STX\DC2\ETX)\STX\SUB\SUB\148\SOH URI-encoded absolute path to the root directory of this index. All\n\ \ documents in this index must appear in a subdirectory of this root\n\ \ directory.\n\ \\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\STX\ENQ\DC2\ETX-\STX\b\n\ + \\ENQ\EOT\SOH\STX\STX\ENQ\DC2\ETX)\STX\b\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\STX\SOH\DC2\ETX-\t\NAK\n\ + \\ENQ\EOT\SOH\STX\STX\SOH\DC2\ETX)\t\NAK\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\STX\ETX\DC2\ETX-\CAN\EM\n\ + \\ENQ\EOT\SOH\STX\STX\ETX\DC2\ETX)\CAN\EM\n\ \\224\SOH\n\ - \\EOT\EOT\SOH\STX\ETX\DC2\ETX1\STX*\SUB\210\SOH Text encoding of the source files on disk that are referenced from\n\ + \\EOT\EOT\SOH\STX\ETX\DC2\ETX-\STX*\SUB\210\SOH Text encoding of the source files on disk that are referenced from\n\ \ `Document.relative_path`. This value is unrelated to the `Document.text`\n\ \ field, which is a Protobuf string and hence must be UTF-8 encoded.\n\ \\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\ETX\ACK\DC2\ETX1\STX\SO\n\ + \\ENQ\EOT\SOH\STX\ETX\ACK\DC2\ETX-\STX\SO\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\ETX1\SI%\n\ + \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\ETX-\SI%\n\ \\f\n\ - \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\ETX1()\n\ + \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\ETX-()\n\ \\n\ \\n\ - \\STX\ENQ\NUL\DC2\EOT4\NUL6\SOH\n\ + \\STX\ENQ\NUL\DC2\EOT0\NUL2\SOH\n\ \\n\ \\n\ - \\ETX\ENQ\NUL\SOH\DC2\ETX4\ENQ\DC4\n\ + \\ETX\ENQ\NUL\SOH\DC2\ETX0\ENQ\DC4\n\ \\v\n\ - \\EOT\ENQ\NUL\STX\NUL\DC2\ETX5\STX!\n\ + \\EOT\ENQ\NUL\STX\NUL\DC2\ETX1\STX!\n\ \\f\n\ - \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\ETX5\STX\FS\n\ + \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\ETX1\STX\FS\n\ \\f\n\ - \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\ETX5\US \n\ + \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\ETX1\US \n\ \\n\ \\n\ - \\STX\ENQ\SOH\DC2\EOT8\NUL<\SOH\n\ + \\STX\ENQ\SOH\DC2\EOT4\NUL8\SOH\n\ \\n\ \\n\ - \\ETX\ENQ\SOH\SOH\DC2\ETX8\ENQ\DC1\n\ + \\ETX\ENQ\SOH\SOH\DC2\ETX4\ENQ\DC1\n\ \\v\n\ - \\EOT\ENQ\SOH\STX\NUL\DC2\ETX9\STX\RS\n\ + \\EOT\ENQ\SOH\STX\NUL\DC2\ETX5\STX\RS\n\ \\f\n\ - \\ENQ\ENQ\SOH\STX\NUL\SOH\DC2\ETX9\STX\EM\n\ + \\ENQ\ENQ\SOH\STX\NUL\SOH\DC2\ETX5\STX\EM\n\ \\f\n\ - \\ENQ\ENQ\SOH\STX\NUL\STX\DC2\ETX9\FS\GS\n\ + \\ENQ\ENQ\SOH\STX\NUL\STX\DC2\ETX5\FS\GS\n\ \\v\n\ - \\EOT\ENQ\SOH\STX\SOH\DC2\ETX:\STX\v\n\ + \\EOT\ENQ\SOH\STX\SOH\DC2\ETX6\STX\v\n\ \\f\n\ - \\ENQ\ENQ\SOH\STX\SOH\SOH\DC2\ETX:\STX\ACK\n\ + \\ENQ\ENQ\SOH\STX\SOH\SOH\DC2\ETX6\STX\ACK\n\ \\f\n\ - \\ENQ\ENQ\SOH\STX\SOH\STX\DC2\ETX:\t\n\ + \\ENQ\ENQ\SOH\STX\SOH\STX\DC2\ETX6\t\n\ \\n\ \\v\n\ - \\EOT\ENQ\SOH\STX\STX\DC2\ETX;\STX\f\n\ + \\EOT\ENQ\SOH\STX\STX\DC2\ETX7\STX\f\n\ \\f\n\ - \\ENQ\ENQ\SOH\STX\STX\SOH\DC2\ETX;\STX\a\n\ + \\ENQ\ENQ\SOH\STX\STX\SOH\DC2\ETX7\STX\a\n\ \\f\n\ - \\ENQ\ENQ\SOH\STX\STX\STX\DC2\ETX;\n\ + \\ENQ\ENQ\SOH\STX\STX\STX\DC2\ETX7\n\ \\v\n\ \\n\ \\n\ - \\STX\EOT\STX\DC2\EOT>\NULE\SOH\n\ + \\STX\EOT\STX\DC2\EOT:\NULA\SOH\n\ \\n\ \\n\ - \\ETX\EOT\STX\SOH\DC2\ETX>\b\DLE\n\ + \\ETX\EOT\STX\SOH\DC2\ETX:\b\DLE\n\ \<\n\ - \\EOT\EOT\STX\STX\NUL\DC2\ETX@\STX\DC2\SUB/ Name of the indexer that produced this index.\n\ + \\EOT\EOT\STX\STX\NUL\DC2\ETX<\STX\DC2\SUB/ Name of the indexer that produced this index.\n\ \\n\ \\f\n\ - \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\ETX@\STX\b\n\ + \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\ETX<\STX\b\n\ \\f\n\ - \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX@\t\r\n\ + \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX<\t\r\n\ \\f\n\ - \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX@\DLE\DC1\n\ + \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX<\DLE\DC1\n\ \?\n\ - \\EOT\EOT\STX\STX\SOH\DC2\ETXB\STX\NAK\SUB2 Version of the indexer that produced this index.\n\ + \\EOT\EOT\STX\STX\SOH\DC2\ETX>\STX\NAK\SUB2 Version of the indexer that produced this index.\n\ \\n\ \\f\n\ - \\ENQ\EOT\STX\STX\SOH\ENQ\DC2\ETXB\STX\b\n\ + \\ENQ\EOT\STX\STX\SOH\ENQ\DC2\ETX>\STX\b\n\ \\f\n\ - \\ENQ\EOT\STX\STX\SOH\SOH\DC2\ETXB\t\DLE\n\ + \\ENQ\EOT\STX\STX\SOH\SOH\DC2\ETX>\t\DLE\n\ \\f\n\ - \\ENQ\EOT\STX\STX\SOH\ETX\DC2\ETXB\DC3\DC4\n\ + \\ENQ\EOT\STX\STX\SOH\ETX\DC2\ETX>\DC3\DC4\n\ \L\n\ - \\EOT\EOT\STX\STX\STX\DC2\ETXD\STX \SUB? Command-line arguments that were used to invoke this indexer.\n\ + \\EOT\EOT\STX\STX\STX\DC2\ETX@\STX \SUB? Command-line arguments that were used to invoke this indexer.\n\ \\n\ \\f\n\ - \\ENQ\EOT\STX\STX\STX\EOT\DC2\ETXD\STX\n\ + \\ENQ\EOT\STX\STX\STX\EOT\DC2\ETX@\STX\n\ \\n\ \\f\n\ - \\ENQ\EOT\STX\STX\STX\ENQ\DC2\ETXD\v\DC1\n\ + \\ENQ\EOT\STX\STX\STX\ENQ\DC2\ETX@\v\DC1\n\ \\f\n\ - \\ENQ\EOT\STX\STX\STX\SOH\DC2\ETXD\DC2\ESC\n\ + \\ENQ\EOT\STX\STX\STX\SOH\DC2\ETX@\DC2\ESC\n\ \\f\n\ - \\ENQ\EOT\STX\STX\STX\ETX\DC2\ETXD\RS\US\n\ - \H\n\ - \\STX\EOT\ETX\DC2\EOTH\NULu\SOH\SUB< Document defines the metadata about a source file on disk.\n\ + \\ENQ\EOT\STX\STX\STX\ETX\DC2\ETX@\RS\US\n\ + \I\n\ + \\STX\EOT\ETX\DC2\ENQD\NUL\198\SOH\SOH\SUB< Document defines the metadata about a source file on disk.\n\ \\n\ \\n\ \\n\ - \\ETX\EOT\ETX\SOH\DC2\ETXH\b\DLE\n\ + \\ETX\EOT\ETX\SOH\DC2\ETXD\b\DLE\n\ \\165\STX\n\ - \\EOT\EOT\ETX\STX\NUL\DC2\ETXM\STX\SYN\SUB\151\STX The string ID for the programming language this file is written in.\n\ + \\EOT\EOT\ETX\STX\NUL\DC2\ETXI\STX\SYN\SUB\151\STX The string ID for the programming language this file is written in.\n\ \ The `Language` enum contains the names of most common programming languages.\n\ \ This field is typed as a string to permit any programming language, including\n\ \ ones that are not specified by the `Language` enum.\n\ \\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\NUL\ENQ\DC2\ETXM\STX\b\n\ + \\ENQ\EOT\ETX\STX\NUL\ENQ\DC2\ETXI\STX\b\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETXM\t\DC1\n\ + \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETXI\t\DC1\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETXM\DC4\NAK\n\ + \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETXI\DC4\NAK\n\ \\181\ETX\n\ - \\EOT\EOT\ETX\STX\SOH\DC2\ETXW\STX\ESC\SUB\167\ETX (Required) Unique path to the text document.\n\ + \\EOT\EOT\ETX\STX\SOH\DC2\ETXS\STX\ESC\SUB\167\ETX (Required) Unique path to the text document.\n\ \\n\ \ 1. The path must be relative to the directory supplied in the associated\n\ \ `Metadata.project_root`.\n\ @@ -6635,41 +6965,41 @@ packedFileDescriptor \ or '.' or '..'.\n\ \\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\SOH\ENQ\DC2\ETXW\STX\b\n\ + \\ENQ\EOT\ETX\STX\SOH\ENQ\DC2\ETXS\STX\b\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\SOH\SOH\DC2\ETXW\t\SYN\n\ + \\ENQ\EOT\ETX\STX\SOH\SOH\DC2\ETXS\t\SYN\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\SOH\ETX\DC2\ETXW\EM\SUB\n\ + \\ENQ\EOT\ETX\STX\SOH\ETX\DC2\ETXS\EM\SUB\n\ \4\n\ - \\EOT\EOT\ETX\STX\STX\DC2\ETXY\STX&\SUB' Occurrences that appear in this file.\n\ + \\EOT\EOT\ETX\STX\STX\DC2\ETXU\STX&\SUB' Occurrences that appear in this file.\n\ \\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\STX\EOT\DC2\ETXY\STX\n\ + \\ENQ\EOT\ETX\STX\STX\EOT\DC2\ETXU\STX\n\ \\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\STX\ACK\DC2\ETXY\v\NAK\n\ + \\ENQ\EOT\ETX\STX\STX\ACK\DC2\ETXU\v\NAK\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\STX\SOH\DC2\ETXY\SYN!\n\ + \\ENQ\EOT\ETX\STX\STX\SOH\DC2\ETXU\SYN!\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\STX\ETX\DC2\ETXY$%\n\ + \\ENQ\EOT\ETX\STX\STX\ETX\DC2\ETXU$%\n\ \\234\SOH\n\ - \\EOT\EOT\ETX\STX\ETX\DC2\ETX_\STX)\SUB\220\SOH Symbols that are \"defined\" within this document.\n\ + \\EOT\EOT\ETX\STX\ETX\DC2\ETX[\STX)\SUB\220\SOH Symbols that are \"defined\" within this document.\n\ \\n\ \ This should include symbols which technically do not have any definition,\n\ \ but have a reference and are defined by some other symbol (see\n\ \ Relationship.is_definition).\n\ \\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\ETX\EOT\DC2\ETX_\STX\n\ + \\ENQ\EOT\ETX\STX\ETX\EOT\DC2\ETX[\STX\n\ \\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\ETX\ACK\DC2\ETX_\v\FS\n\ + \\ENQ\EOT\ETX\STX\ETX\ACK\DC2\ETX[\v\FS\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\ETX\SOH\DC2\ETX_\GS$\n\ + \\ENQ\EOT\ETX\STX\ETX\SOH\DC2\ETX[\GS$\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\ETX\ETX\DC2\ETX_'(\n\ + \\ENQ\EOT\ETX\STX\ETX\ETX\DC2\ETX['(\n\ \\247\ETX\n\ - \\EOT\EOT\ETX\STX\EOT\DC2\ETXh\STX\DC2\SUB\233\ETX (optional) Text contents of the this document. Indexers are not expected to\n\ + \\EOT\EOT\ETX\STX\EOT\DC2\ETXd\STX\DC2\SUB\233\ETX (optional) Text contents of the this document. Indexers are not expected to\n\ \ include the text by default. It's preferrable that clients read the text\n\ \ contents from the file system by resolving the absolute path from joining\n\ \ `Index.metadata.project_root` and `Document.relative_path`. This field was\n\ @@ -6678,13 +7008,13 @@ packedFileDescriptor \ with virtual/in-memory documents.\n\ \\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\EOT\ENQ\DC2\ETXh\STX\b\n\ + \\ENQ\EOT\ETX\STX\EOT\ENQ\DC2\ETXd\STX\b\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\EOT\SOH\DC2\ETXh\t\r\n\ + \\ENQ\EOT\ETX\STX\EOT\SOH\DC2\ETXd\t\r\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\EOT\ETX\DC2\ETXh\DLE\DC1\n\ + \\ENQ\EOT\ETX\STX\EOT\ETX\DC2\ETXd\DLE\DC1\n\ \\231\ETX\n\ - \\EOT\EOT\ETX\STX\ENQ\DC2\ETXt\STX)\SUB\217\ETX Specifies the encoding used for source ranges in this Document.\n\ + \\EOT\EOT\ETX\STX\ENQ\DC2\ETXp\STX)\SUB\217\ETX Specifies the encoding used for source ranges in this Document.\n\ \\n\ \ Usually, this will match the type used to index the string type\n\ \ in the indexer's implementation language in O(1) time.\n\ @@ -6696,27 +7026,129 @@ packedFileDescriptor \ use UTF8ByteOffsetFromLineStart.\n\ \\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\ENQ\ACK\DC2\ETXt\STX\DC2\n\ + \\ENQ\EOT\ETX\STX\ENQ\ACK\DC2\ETXp\STX\DC2\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\ENQ\SOH\DC2\ETXt\DC3$\n\ + \\ENQ\EOT\ETX\STX\ENQ\SOH\DC2\ETXp\DC3$\n\ \\f\n\ - \\ENQ\EOT\ETX\STX\ENQ\ETX\DC2\ETXt'(\n\ - \Q\n\ - \\STX\ENQ\STX\DC2\ENQx\NUL\144\SOH\SOH\SUBD Encoding used to interpret the 'character' value in source ranges.\n\ + \\ENQ\EOT\ETX\STX\ENQ\ETX\DC2\ETXp'(\n\ + \\206\a\n\ + \\EOT\EOT\ETX\STX\ACK\DC2\EOT\133\SOH\STX2\SUB\191\a (optional) Symbols that are referenced from this Document but are defined in\n\ + \ an external package (a separate `Index` message). This field can be used\n\ + \ for the following purposes:\n\ + \ - Provide hover documentation for external symbols.\n\ + \ - Mark relationships from an external symbol to a global symbol defined\n\ + \ in the current document.\n\ + \\n\ + \ Example 1: In Go, if a file defines a new interface I and there is a standard\n\ + \ library type T which is imported in the file and implements I,\n\ + \ the indexer can add an external symbol for T with an is_implementation\n\ + \ relationship to I.\n\ + \\n\ + \ Example 2: In Rust, if a file defines a new trait T and add impls for a\n\ + \ type X defined in another Index, the indexer can add an external symbol\n\ + \ for X with an is_implementation relationship to T.\n\ + \\n\ + \ Example 3: If the code references a third-party type X whose definition\n\ + \ site may or may not be indexed, the indexer can emit an external symbol\n\ + \ for X including its hover documentation.\n\ \\n\ + \\r\n\ + \\ENQ\EOT\ETX\STX\ACK\EOT\DC2\EOT\133\SOH\STX\n\ + \\n\ + \\r\n\ + \\ENQ\EOT\ETX\STX\ACK\ACK\DC2\EOT\133\SOH\v\FS\n\ + \\r\n\ + \\ENQ\EOT\ETX\STX\ACK\SOH\DC2\EOT\133\SOH\GS-\n\ + \\r\n\ + \\ENQ\EOT\ETX\STX\ACK\ETX\DC2\EOT\133\SOH01\n\ + \\218\SI\n\ + \\EOT\EOT\ETX\STX\a\DC2\EOT\197\SOH\STX4\SUB\203\SI (optional) Relationships that affect code navigation in this Document\n\ + \ but are not and cannot be defined in the Document(s) defining\n\ + \ source_symbol or the target symbol (relationship.symbol).\n\ + \\n\ + \ Example 1: In the case of structurally typed interfaces (or more generally\n\ + \ structural subtyping), such as Go, it is possible for one Go package P1\n\ + \ to define an interface I, a second Go package P2 to have a type T which\n\ + \ implements the interface I without importing P1, and a third Go package P3\n\ + \ to import both P1 and P2. If P3 has a conversion of a value from\n\ + \ P2.T to P1.I, then the indexer can emit a cross-relationship from\n\ + \ P2.T to P1.I.\n\ + \\n\ + \ This same example carries over to languages like TypeScript which support\n\ + \ structural subtyping.\n\ + \\n\ + \ Example 2: Rust allows for blanket trait implementations. Consider the\n\ + \ following code:\n\ + \\n\ + \ ```rust\n\ + \ // t1.rs\n\ + \ pub trait T1 {}\n\ + \\n\ + \ // s.rs\n\ + \ use m1::T1;\n\ + \ pub struct S;\n\ + \ impl T1 for S {}\n\ + \\n\ + \ // t2.rs\n\ + \ use m1::T1;\n\ + \ trait T2 {}\n\ + \ impl T2 for T {} // <- blanket implementation that covers S\n\ + \\n\ + \ // cross.rs\n\ + \ use m3::T2;\n\ + \ use m2::S;\n\ + \\n\ + \ fn f(s : S) -> Box { Box::new(s) } // derives that S implements T2\n\ + \ ```\n\ \\n\ + \ If all of these modules correspond to Documents in different SCIP indexes,\n\ + \ it is not possible for the indexer to emit an is_implementation relationship\n\ + \ from S to T2 in the Documents for t1.rs, s.rs or t2.rs. In this case,\n\ + \ the indexer can emit a cross-relationship from S to T2 in the Document for cross.rs.\n\ \\n\ - \\ETX\ENQ\STX\SOH\DC2\ETXx\ENQ\NAK\n\ - \\147\SOH\n\ - \\EOT\ENQ\STX\STX\NUL\DC2\ETX{\STX\"\SUB\133\SOH Default value. This value should not be used by new SCIP indexers\n\ + \ Example 3: Swift allows for retroactive conformances (aka orphan instances\n\ + \ in Haskell). Consider the following code:\n\ + \\n\ + \ ```swift\n\ + \ // P.swift\n\ + \ protocol P {}\n\ + \\n\ + \ // S.swift\n\ + \ struct S {}\n\ + \\n\ + \ // cross.swift\n\ + \ extension S: P {}\n\ + \ ```\n\ + \\n\ + \ If all of these files correspond to Documents in different SCIP indexes,\n\ + \ it is not possible for the indexer to emit an is_implementation relationship\n\ + \ from S to P in the Documents for P.swift, or S.swift. In this case,\n\ + \ the indexer can emit a cross-relationship from S to P in the Document for cross.swift.\n\ + \\n\ + \\r\n\ + \\ENQ\EOT\ETX\STX\a\EOT\DC2\EOT\197\SOH\STX\n\ + \\n\ + \\r\n\ + \\ENQ\EOT\ETX\STX\a\ACK\DC2\EOT\197\SOH\v\ESC\n\ + \\r\n\ + \\ENQ\EOT\ETX\STX\a\SOH\DC2\EOT\197\SOH\FS/\n\ + \\r\n\ + \\ENQ\EOT\ETX\STX\a\ETX\DC2\EOT\197\SOH23\n\ + \R\n\ + \\STX\ENQ\STX\DC2\ACK\201\SOH\NUL\225\SOH\SOH\SUBD Encoding used to interpret the 'character' value in source ranges.\n\ + \\n\ + \\v\n\ + \\ETX\ENQ\STX\SOH\DC2\EOT\201\SOH\ENQ\NAK\n\ + \\148\SOH\n\ + \\EOT\ENQ\STX\STX\NUL\DC2\EOT\204\SOH\STX\"\SUB\133\SOH Default value. This value should not be used by new SCIP indexers\n\ \ so that a consumer can process the SCIP index without ambiguity.\n\ \\n\ - \\f\n\ - \\ENQ\ENQ\STX\STX\NUL\SOH\DC2\ETX{\STX\GS\n\ - \\f\n\ - \\ENQ\ENQ\STX\STX\NUL\STX\DC2\ETX{ !\n\ + \\r\n\ + \\ENQ\ENQ\STX\STX\NUL\SOH\DC2\EOT\204\SOH\STX\GS\n\ + \\r\n\ + \\ENQ\ENQ\STX\STX\NUL\STX\DC2\EOT\204\SOH !\n\ \\247\SOH\n\ - \\EOT\ENQ\STX\STX\SOH\DC2\EOT\130\SOH\STX&\SUB\232\SOH The 'character' value is interpreted as an offset in terms\n\ + \\EOT\ENQ\STX\STX\SOH\DC2\EOT\211\SOH\STX&\SUB\232\SOH The 'character' value is interpreted as an offset in terms\n\ \ of UTF-8 code units (i.e. bytes).\n\ \\n\ \ Example: For the string \"\240\159\154\128 Woo\" in UTF-8, the bytes are\n\ @@ -6724,11 +7156,11 @@ packedFileDescriptor \ would be 5.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\STX\STX\SOH\SOH\DC2\EOT\130\SOH\STX!\n\ + \\ENQ\ENQ\STX\STX\SOH\SOH\DC2\EOT\211\SOH\STX!\n\ \\r\n\ - \\ENQ\ENQ\STX\STX\SOH\STX\DC2\EOT\130\SOH$%\n\ + \\ENQ\ENQ\STX\STX\SOH\STX\DC2\EOT\211\SOH$%\n\ \\130\STX\n\ - \\EOT\ENQ\STX\STX\STX\DC2\EOT\137\SOH\STX'\SUB\243\SOH The 'character' value is interpreted as an offset in terms\n\ + \\EOT\ENQ\STX\STX\STX\DC2\EOT\218\SOH\STX'\SUB\243\SOH The 'character' value is interpreted as an offset in terms\n\ \ of UTF-16 code units (each is 2 bytes).\n\ \\n\ \ Example: For the string \"\240\159\154\128 Woo\", the UTF-16 code units are\n\ @@ -6736,22 +7168,22 @@ packedFileDescriptor \ would be 3.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\STX\STX\STX\SOH\DC2\EOT\137\SOH\STX\"\n\ + \\ENQ\ENQ\STX\STX\STX\SOH\DC2\EOT\218\SOH\STX\"\n\ \\r\n\ - \\ENQ\ENQ\STX\STX\STX\STX\DC2\EOT\137\SOH%&\n\ + \\ENQ\ENQ\STX\STX\STX\STX\DC2\EOT\218\SOH%&\n\ \\245\SOH\n\ - \\EOT\ENQ\STX\STX\ETX\DC2\EOT\143\SOH\STX'\SUB\230\SOH The 'character' value is interpreted as an offset in terms\n\ + \\EOT\ENQ\STX\STX\ETX\DC2\EOT\224\SOH\STX'\SUB\230\SOH The 'character' value is interpreted as an offset in terms\n\ \ of UTF-32 code units (each is 4 bytes).\n\ \\n\ \ Example: For the string \"\240\159\154\128 Woo\", the UTF-32 code units are\n\ \ ['\240\159\154\128', ' ', 'W', 'o', 'o'], so the offset for 'W' would be 2.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\STX\STX\ETX\SOH\DC2\EOT\143\SOH\STX\"\n\ + \\ENQ\ENQ\STX\STX\ETX\SOH\DC2\EOT\224\SOH\STX\"\n\ \\r\n\ - \\ENQ\ENQ\STX\STX\ETX\STX\DC2\EOT\143\SOH%&\n\ - \\204\DC2\n\ - \\STX\EOT\EOT\DC2\ACK\188\SOH\NUL\192\SOH\SOH\SUB\189\DC2 Symbol is similar to a URI, it identifies a class, method, or a local\n\ + \\ENQ\ENQ\STX\STX\ETX\STX\DC2\EOT\224\SOH%&\n\ + \\150\DC4\n\ + \\STX\EOT\EOT\DC2\ACK\146\STX\NUL\150\STX\SOH\SUB\135\DC4 Symbol is similar to a URI, it identifies a class, method, or a local\n\ \ variable. `SymbolInformation` contains rich metadata about symbols such as\n\ \ the docstring.\n\ \\n\ @@ -6792,202 +7224,207 @@ packedFileDescriptor \ the file and the node corresponding to the symbol.\n\ \\n\ \ Local symbols MUST only be used for entities which are local to a Document,\n\ - \ and cannot be accessed from outside the Document.\n\ + \ and cannot be accessed from outside the Document via code navigation.\n\ + \\n\ + \ Example 1: If the indexer supports emitting 'is_implementation' relationships,\n\ + \ then a subclass of a global class, even if declared within a function,\n\ + \ must have a global symbol.\n\ + \\n\ \\n\ \\v\n\ - \\ETX\EOT\EOT\SOH\DC2\EOT\188\SOH\b\SO\n\ + \\ETX\EOT\EOT\SOH\DC2\EOT\146\STX\b\SO\n\ \\f\n\ - \\EOT\EOT\EOT\STX\NUL\DC2\EOT\189\SOH\STX\DC4\n\ + \\EOT\EOT\EOT\STX\NUL\DC2\EOT\147\STX\STX\DC4\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\NUL\ENQ\DC2\EOT\189\SOH\STX\b\n\ + \\ENQ\EOT\EOT\STX\NUL\ENQ\DC2\EOT\147\STX\STX\b\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\EOT\189\SOH\t\SI\n\ + \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\EOT\147\STX\t\SI\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\EOT\189\SOH\DC2\DC3\n\ + \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\EOT\147\STX\DC2\DC3\n\ \\f\n\ - \\EOT\EOT\EOT\STX\SOH\DC2\EOT\190\SOH\STX\SYN\n\ + \\EOT\EOT\EOT\STX\SOH\DC2\EOT\148\STX\STX\SYN\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\SOH\ACK\DC2\EOT\190\SOH\STX\t\n\ + \\ENQ\EOT\EOT\STX\SOH\ACK\DC2\EOT\148\STX\STX\t\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\EOT\190\SOH\n\ + \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\EOT\148\STX\n\ \\DC1\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\EOT\190\SOH\DC4\NAK\n\ + \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\EOT\148\STX\DC4\NAK\n\ \\f\n\ - \\EOT\EOT\EOT\STX\STX\DC2\EOT\191\SOH\STX&\n\ + \\EOT\EOT\EOT\STX\STX\DC2\EOT\149\STX\STX&\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\STX\EOT\DC2\EOT\191\SOH\STX\n\ + \\ENQ\EOT\EOT\STX\STX\EOT\DC2\EOT\149\STX\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\STX\ACK\DC2\EOT\191\SOH\v\NAK\n\ + \\ENQ\EOT\EOT\STX\STX\ACK\DC2\EOT\149\STX\v\NAK\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\STX\SOH\DC2\EOT\191\SOH\SYN!\n\ + \\ENQ\EOT\EOT\STX\STX\SOH\DC2\EOT\149\STX\SYN!\n\ \\r\n\ - \\ENQ\EOT\EOT\STX\STX\ETX\DC2\EOT\191\SOH$%\n\ + \\ENQ\EOT\EOT\STX\STX\ETX\DC2\EOT\149\STX$%\n\ \q\n\ - \\STX\EOT\ENQ\DC2\ACK\197\SOH\NUL\201\SOH\SOH\SUBc Unit of packaging and distribution.\n\ + \\STX\EOT\ENQ\DC2\ACK\155\STX\NUL\159\STX\SOH\SUBc Unit of packaging and distribution.\n\ \\n\ \ NOTE: This corresponds to a module in Go and JVM languages.\n\ \\n\ \\v\n\ - \\ETX\EOT\ENQ\SOH\DC2\EOT\197\SOH\b\SI\n\ + \\ETX\EOT\ENQ\SOH\DC2\EOT\155\STX\b\SI\n\ \\f\n\ - \\EOT\EOT\ENQ\STX\NUL\DC2\EOT\198\SOH\STX\NAK\n\ + \\EOT\EOT\ENQ\STX\NUL\DC2\EOT\156\STX\STX\NAK\n\ \\r\n\ - \\ENQ\EOT\ENQ\STX\NUL\ENQ\DC2\EOT\198\SOH\STX\b\n\ + \\ENQ\EOT\ENQ\STX\NUL\ENQ\DC2\EOT\156\STX\STX\b\n\ \\r\n\ - \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\EOT\198\SOH\t\DLE\n\ + \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\EOT\156\STX\t\DLE\n\ \\r\n\ - \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\EOT\198\SOH\DC3\DC4\n\ + \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\EOT\156\STX\DC3\DC4\n\ \\f\n\ - \\EOT\EOT\ENQ\STX\SOH\DC2\EOT\199\SOH\STX\DC2\n\ + \\EOT\EOT\ENQ\STX\SOH\DC2\EOT\157\STX\STX\DC2\n\ \\r\n\ - \\ENQ\EOT\ENQ\STX\SOH\ENQ\DC2\EOT\199\SOH\STX\b\n\ + \\ENQ\EOT\ENQ\STX\SOH\ENQ\DC2\EOT\157\STX\STX\b\n\ \\r\n\ - \\ENQ\EOT\ENQ\STX\SOH\SOH\DC2\EOT\199\SOH\t\r\n\ + \\ENQ\EOT\ENQ\STX\SOH\SOH\DC2\EOT\157\STX\t\r\n\ \\r\n\ - \\ENQ\EOT\ENQ\STX\SOH\ETX\DC2\EOT\199\SOH\DLE\DC1\n\ + \\ENQ\EOT\ENQ\STX\SOH\ETX\DC2\EOT\157\STX\DLE\DC1\n\ \\f\n\ - \\EOT\EOT\ENQ\STX\STX\DC2\EOT\200\SOH\STX\NAK\n\ + \\EOT\EOT\ENQ\STX\STX\DC2\EOT\158\STX\STX\NAK\n\ \\r\n\ - \\ENQ\EOT\ENQ\STX\STX\ENQ\DC2\EOT\200\SOH\STX\b\n\ + \\ENQ\EOT\ENQ\STX\STX\ENQ\DC2\EOT\158\STX\STX\b\n\ \\r\n\ - \\ENQ\EOT\ENQ\STX\STX\SOH\DC2\EOT\200\SOH\t\DLE\n\ + \\ENQ\EOT\ENQ\STX\STX\SOH\DC2\EOT\158\STX\t\DLE\n\ \\r\n\ - \\ENQ\EOT\ENQ\STX\STX\ETX\DC2\EOT\200\SOH\DC3\DC4\n\ + \\ENQ\EOT\ENQ\STX\STX\ETX\DC2\EOT\158\STX\DC3\DC4\n\ \\f\n\ - \\STX\EOT\ACK\DC2\ACK\203\SOH\NUL\226\SOH\SOH\n\ + \\STX\EOT\ACK\DC2\ACK\161\STX\NUL\184\STX\SOH\n\ \\v\n\ - \\ETX\EOT\ACK\SOH\DC2\EOT\203\SOH\b\DC2\n\ + \\ETX\EOT\ACK\SOH\DC2\EOT\161\STX\b\DC2\n\ \\SO\n\ - \\EOT\EOT\ACK\EOT\NUL\DC2\ACK\204\SOH\STX\222\SOH\ETX\n\ + \\EOT\EOT\ACK\EOT\NUL\DC2\ACK\162\STX\STX\180\STX\ETX\n\ \\r\n\ - \\ENQ\EOT\ACK\EOT\NUL\SOH\DC2\EOT\204\SOH\a\r\n\ + \\ENQ\EOT\ACK\EOT\NUL\SOH\DC2\EOT\162\STX\a\r\n\ \\r\n\ - \\ENQ\EOT\ACK\EOT\NUL\ETX\DC2\EOT\205\SOH\EOT\RS\n\ + \\ENQ\EOT\ACK\EOT\NUL\ETX\DC2\EOT\163\STX\EOT\RS\n\ \\SO\n\ - \\ACK\EOT\ACK\EOT\NUL\ETX\STX\DC2\EOT\205\SOH\EOT\RS\n\ + \\ACK\EOT\ACK\EOT\NUL\ETX\STX\DC2\EOT\163\STX\EOT\RS\n\ \\SO\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\NUL\DC2\EOT\206\SOH\EOT\SUB\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\NUL\DC2\EOT\164\STX\EOT\SUB\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\NUL\SOH\DC2\EOT\206\SOH\EOT\NAK\n\ + \\a\EOT\ACK\EOT\NUL\STX\NUL\SOH\DC2\EOT\164\STX\EOT\NAK\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\NUL\STX\DC2\EOT\206\SOH\CAN\EM\n\ + \\a\EOT\ACK\EOT\NUL\STX\NUL\STX\DC2\EOT\164\STX\CAN\EM\n\ \}\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\SOH\DC2\EOT\210\SOH\EOT\DC2\SUBm Unit of code abstraction and/or namespacing.\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\SOH\DC2\EOT\168\STX\EOT\DC2\SUBm Unit of code abstraction and/or namespacing.\n\ \\n\ \ NOTE: This corresponds to a package in Go and JVM languages.\n\ \\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\SOH\SOH\DC2\EOT\210\SOH\EOT\r\n\ + \\a\EOT\ACK\EOT\NUL\STX\SOH\SOH\DC2\EOT\168\STX\EOT\r\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\SOH\STX\DC2\EOT\210\SOH\DLE\DC1\n\ + \\a\EOT\ACK\EOT\NUL\STX\SOH\STX\DC2\EOT\168\STX\DLE\DC1\n\ \(\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\STX\DC2\EOT\212\SOH\EOT\"\SUB\CAN Use Namespace instead.\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\STX\DC2\EOT\170\STX\EOT\"\SUB\CAN Use Namespace instead.\n\ \\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\STX\SOH\DC2\EOT\212\SOH\EOT\v\n\ + \\a\EOT\ACK\EOT\NUL\STX\STX\SOH\DC2\EOT\170\STX\EOT\v\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\STX\STX\DC2\EOT\212\SOH\SO\SI\n\ + \\a\EOT\ACK\EOT\NUL\STX\STX\STX\DC2\EOT\170\STX\SO\SI\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\STX\ETX\DC2\EOT\212\SOH\DLE!\n\ + \\a\EOT\ACK\EOT\NUL\STX\STX\ETX\DC2\EOT\170\STX\DLE!\n\ \\DLE\n\ - \\b\EOT\ACK\EOT\NUL\STX\STX\ETX\SOH\DC2\EOT\212\SOH\DC1 \n\ + \\b\EOT\ACK\EOT\NUL\STX\STX\ETX\SOH\DC2\EOT\170\STX\DC1 \n\ \\SO\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\ETX\DC2\EOT\213\SOH\EOT\r\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\ETX\DC2\EOT\171\STX\EOT\r\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\ETX\SOH\DC2\EOT\213\SOH\EOT\b\n\ + \\a\EOT\ACK\EOT\NUL\STX\ETX\SOH\DC2\EOT\171\STX\EOT\b\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\ETX\STX\DC2\EOT\213\SOH\v\f\n\ + \\a\EOT\ACK\EOT\NUL\STX\ETX\STX\DC2\EOT\171\STX\v\f\n\ \\SO\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\EOT\DC2\EOT\214\SOH\EOT\r\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\EOT\DC2\EOT\172\STX\EOT\r\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\EOT\SOH\DC2\EOT\214\SOH\EOT\b\n\ + \\a\EOT\ACK\EOT\NUL\STX\EOT\SOH\DC2\EOT\172\STX\EOT\b\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\EOT\STX\DC2\EOT\214\SOH\v\f\n\ + \\a\EOT\ACK\EOT\NUL\STX\EOT\STX\DC2\EOT\172\STX\v\f\n\ \\SO\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\ENQ\DC2\EOT\215\SOH\EOT\SI\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\ENQ\DC2\EOT\173\STX\EOT\SI\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\ENQ\SOH\DC2\EOT\215\SOH\EOT\n\ + \\a\EOT\ACK\EOT\NUL\STX\ENQ\SOH\DC2\EOT\173\STX\EOT\n\ \\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\ENQ\STX\DC2\EOT\215\SOH\r\SO\n\ + \\a\EOT\ACK\EOT\NUL\STX\ENQ\STX\DC2\EOT\173\STX\r\SO\n\ \\SO\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\ACK\DC2\EOT\216\SOH\EOT\SYN\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\ACK\DC2\EOT\174\STX\EOT\SYN\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\ACK\SOH\DC2\EOT\216\SOH\EOT\DC1\n\ + \\a\EOT\ACK\EOT\NUL\STX\ACK\SOH\DC2\EOT\174\STX\EOT\DC1\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\ACK\STX\DC2\EOT\216\SOH\DC4\NAK\n\ + \\a\EOT\ACK\EOT\NUL\STX\ACK\STX\DC2\EOT\174\STX\DC4\NAK\n\ \\SO\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\a\DC2\EOT\217\SOH\EOT\DC2\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\a\DC2\EOT\175\STX\EOT\DC2\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\a\SOH\DC2\EOT\217\SOH\EOT\r\n\ + \\a\EOT\ACK\EOT\NUL\STX\a\SOH\DC2\EOT\175\STX\EOT\r\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\a\STX\DC2\EOT\217\SOH\DLE\DC1\n\ + \\a\EOT\ACK\EOT\NUL\STX\a\STX\DC2\EOT\175\STX\DLE\DC1\n\ \.\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\b\DC2\EOT\219\SOH\EOT\r\SUB\RS Can be used for any purpose.\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\b\DC2\EOT\177\STX\EOT\r\SUB\RS Can be used for any purpose.\n\ \\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\b\SOH\DC2\EOT\219\SOH\EOT\b\n\ + \\a\EOT\ACK\EOT\NUL\STX\b\SOH\DC2\EOT\177\STX\EOT\b\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\b\STX\DC2\EOT\219\SOH\v\f\n\ + \\a\EOT\ACK\EOT\NUL\STX\b\STX\DC2\EOT\177\STX\v\f\n\ \\SO\n\ - \\ACK\EOT\ACK\EOT\NUL\STX\t\DC2\EOT\220\SOH\EOT\SO\n\ + \\ACK\EOT\ACK\EOT\NUL\STX\t\DC2\EOT\178\STX\EOT\SO\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\t\SOH\DC2\EOT\220\SOH\EOT\t\n\ + \\a\EOT\ACK\EOT\NUL\STX\t\SOH\DC2\EOT\178\STX\EOT\t\n\ \\SI\n\ - \\a\EOT\ACK\EOT\NUL\STX\t\STX\DC2\EOT\220\SOH\f\r\n\ + \\a\EOT\ACK\EOT\NUL\STX\t\STX\DC2\EOT\178\STX\f\r\n\ \\SO\n\ \\ACK\EOT\ACK\EOT\NUL\STX\n\ - \\DC2\EOT\221\SOH\EOT\SO\n\ + \\DC2\EOT\179\STX\EOT\SO\n\ \\SI\n\ \\a\EOT\ACK\EOT\NUL\STX\n\ - \\SOH\DC2\EOT\221\SOH\EOT\t\n\ + \\SOH\DC2\EOT\179\STX\EOT\t\n\ \\SI\n\ \\a\EOT\ACK\EOT\NUL\STX\n\ - \\STX\DC2\EOT\221\SOH\f\r\n\ + \\STX\DC2\EOT\179\STX\f\r\n\ \\f\n\ - \\EOT\EOT\ACK\STX\NUL\DC2\EOT\223\SOH\STX\DC2\n\ + \\EOT\EOT\ACK\STX\NUL\DC2\EOT\181\STX\STX\DC2\n\ \\r\n\ - \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\EOT\223\SOH\STX\b\n\ + \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\EOT\181\STX\STX\b\n\ \\r\n\ - \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\EOT\223\SOH\t\r\n\ + \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\EOT\181\STX\t\r\n\ \\r\n\ - \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\EOT\223\SOH\DLE\DC1\n\ + \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\EOT\181\STX\DLE\DC1\n\ \\f\n\ - \\EOT\EOT\ACK\STX\SOH\DC2\EOT\224\SOH\STX\ESC\n\ + \\EOT\EOT\ACK\STX\SOH\DC2\EOT\182\STX\STX\ESC\n\ \\r\n\ - \\ENQ\EOT\ACK\STX\SOH\ENQ\DC2\EOT\224\SOH\STX\b\n\ + \\ENQ\EOT\ACK\STX\SOH\ENQ\DC2\EOT\182\STX\STX\b\n\ \\r\n\ - \\ENQ\EOT\ACK\STX\SOH\SOH\DC2\EOT\224\SOH\t\SYN\n\ + \\ENQ\EOT\ACK\STX\SOH\SOH\DC2\EOT\182\STX\t\SYN\n\ \\r\n\ - \\ENQ\EOT\ACK\STX\SOH\ETX\DC2\EOT\224\SOH\EM\SUB\n\ + \\ENQ\EOT\ACK\STX\SOH\ETX\DC2\EOT\182\STX\EM\SUB\n\ \\f\n\ - \\EOT\EOT\ACK\STX\STX\DC2\EOT\225\SOH\STX\DC4\n\ + \\EOT\EOT\ACK\STX\STX\DC2\EOT\183\STX\STX\DC4\n\ \\r\n\ - \\ENQ\EOT\ACK\STX\STX\ACK\DC2\EOT\225\SOH\STX\b\n\ + \\ENQ\EOT\ACK\STX\STX\ACK\DC2\EOT\183\STX\STX\b\n\ \\r\n\ - \\ENQ\EOT\ACK\STX\STX\SOH\DC2\EOT\225\SOH\t\SI\n\ + \\ENQ\EOT\ACK\STX\STX\SOH\DC2\EOT\183\STX\t\SI\n\ \\r\n\ - \\ENQ\EOT\ACK\STX\STX\ETX\DC2\EOT\225\SOH\DC2\DC3\n\ + \\ENQ\EOT\ACK\STX\STX\ETX\DC2\EOT\183\STX\DC2\DC3\n\ \\131\SOH\n\ - \\STX\EOT\a\DC2\ACK\230\SOH\NUL\182\ETX\SOH\SUBu SymbolInformation defines metadata about a symbol, such as the symbol's\n\ + \\STX\EOT\a\DC2\ACK\188\STX\NUL\146\EOT\SOH\SUBu SymbolInformation defines metadata about a symbol, such as the symbol's\n\ \ docstring or what package it's defined it.\n\ \\n\ \\v\n\ - \\ETX\EOT\a\SOH\DC2\EOT\230\SOH\b\EM\n\ + \\ETX\EOT\a\SOH\DC2\EOT\188\STX\b\EM\n\ \\160\SOH\n\ - \\EOT\EOT\a\STX\NUL\DC2\EOT\233\SOH\STX\DC4\SUB\145\SOH Identifier of this symbol, which can be referenced from `Occurence.symbol`.\n\ + \\EOT\EOT\a\STX\NUL\DC2\EOT\191\STX\STX\DC4\SUB\145\SOH Identifier of this symbol, which can be referenced from `Occurence.symbol`.\n\ \ The string must be formatted according to the grammar in `Symbol`.\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\NUL\ENQ\DC2\EOT\233\SOH\STX\b\n\ + \\ENQ\EOT\a\STX\NUL\ENQ\DC2\EOT\191\STX\STX\b\n\ \\r\n\ - \\ENQ\EOT\a\STX\NUL\SOH\DC2\EOT\233\SOH\t\SI\n\ + \\ENQ\EOT\a\STX\NUL\SOH\DC2\EOT\191\STX\t\SI\n\ \\r\n\ - \\ENQ\EOT\a\STX\NUL\ETX\DC2\EOT\233\SOH\DC2\DC3\n\ + \\ENQ\EOT\a\STX\NUL\ETX\DC2\EOT\191\STX\DC2\DC3\n\ \\180\ETX\n\ - \\EOT\EOT\a\STX\SOH\DC2\EOT\240\SOH\STX$\SUB\165\ETX (optional, but strongly recommended) The markdown-formatted documentation\n\ + \\EOT\EOT\a\STX\SOH\DC2\EOT\198\STX\STX$\SUB\165\ETX (optional, but strongly recommended) The markdown-formatted documentation\n\ \ for this symbol. Use `SymbolInformation.signature_documentation` to\n\ \ document the method/class/type signature of this symbol.\n\ \ Due to historical reasons, indexers may include signature documentation in\n\ @@ -6995,39 +7432,45 @@ packedFileDescriptor \ include non-code documentation in this field, for example docstrings.\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\SOH\EOT\DC2\EOT\240\SOH\STX\n\ + \\ENQ\EOT\a\STX\SOH\EOT\DC2\EOT\198\STX\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\SOH\ENQ\DC2\EOT\240\SOH\v\DC1\n\ + \\ENQ\EOT\a\STX\SOH\ENQ\DC2\EOT\198\STX\v\DC1\n\ \\r\n\ - \\ENQ\EOT\a\STX\SOH\SOH\DC2\EOT\240\SOH\DC2\US\n\ + \\ENQ\EOT\a\STX\SOH\SOH\DC2\EOT\198\STX\DC2\US\n\ \\r\n\ - \\ENQ\EOT\a\STX\SOH\ETX\DC2\EOT\240\SOH\"#\n\ - \^\n\ - \\EOT\EOT\a\STX\STX\DC2\EOT\242\SOH\STX*\SUBP (optional) Relationships to other symbols (e.g., implements, type definition).\n\ + \\ENQ\EOT\a\STX\SOH\ETX\DC2\EOT\198\STX\"#\n\ + \\131\ETX\n\ + \\EOT\EOT\a\STX\STX\DC2\EOT\206\STX\STX*\SUB\244\STX (optional) Relationships to other symbols (e.g., implements, type definition).\n\ + \\n\ + \ Relationships follow one direction. To represent the other direction:\n\ + \ - If the source symbol is defined in the same Index, attach the relationship to\n\ + \ its SymbolInformation.\n\ + \ - If the source symbol is defined in a different Index, use Document.external_symbols's\n\ + \ relationships field.\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\STX\EOT\DC2\EOT\242\SOH\STX\n\ + \\ENQ\EOT\a\STX\STX\EOT\DC2\EOT\206\STX\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\STX\ACK\DC2\EOT\242\SOH\v\ETB\n\ + \\ENQ\EOT\a\STX\STX\ACK\DC2\EOT\206\STX\v\ETB\n\ \\r\n\ - \\ENQ\EOT\a\STX\STX\SOH\DC2\EOT\242\SOH\CAN%\n\ + \\ENQ\EOT\a\STX\STX\SOH\DC2\EOT\206\STX\CAN%\n\ \\r\n\ - \\ENQ\EOT\a\STX\STX\ETX\DC2\EOT\242\SOH()\n\ + \\ENQ\EOT\a\STX\STX\ETX\DC2\EOT\206\STX()\n\ \\164\SOH\n\ - \\EOT\EOT\a\STX\ETX\DC2\EOT\246\SOH\STX\DLE\SUB\149\SOH The kind of this symbol. Use this field instead of\n\ + \\EOT\EOT\a\STX\ETX\DC2\EOT\210\STX\STX\DLE\SUB\149\SOH The kind of this symbol. Use this field instead of\n\ \ `SymbolDescriptor.Suffix` to determine whether something is, for example, a\n\ \ class or a method.\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\ETX\ACK\DC2\EOT\246\SOH\STX\ACK\n\ + \\ENQ\EOT\a\STX\ETX\ACK\DC2\EOT\210\STX\STX\ACK\n\ \\r\n\ - \\ENQ\EOT\a\STX\ETX\SOH\DC2\EOT\246\SOH\a\v\n\ + \\ENQ\EOT\a\STX\ETX\SOH\DC2\EOT\210\STX\a\v\n\ \\r\n\ - \\ENQ\EOT\a\STX\ETX\ETX\DC2\EOT\246\SOH\SO\SI\n\ + \\ENQ\EOT\a\STX\ETX\ETX\DC2\EOT\210\STX\SO\SI\n\ \\245\ENQ\n\ - \\EOT\EOT\a\EOT\NUL\DC2\ACK\133\STX\STX\146\ETX\ETX\SUB\228\ENQ (optional) Kind represents the fine-grained category of a symbol, suitable for presenting\n\ + \\EOT\EOT\a\EOT\NUL\DC2\ACK\225\STX\STX\238\ETX\ETX\SUB\228\ENQ (optional) Kind represents the fine-grained category of a symbol, suitable for presenting\n\ \ information about the symbol's meaning in the language.\n\ \\n\ \ For example:\n\ @@ -7043,592 +7486,592 @@ packedFileDescriptor \ - If two symbols have different Suffixes, they should have different Kinds.\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\EOT\NUL\SOH\DC2\EOT\133\STX\a\v\n\ + \\ENQ\EOT\a\EOT\NUL\SOH\DC2\EOT\225\STX\a\v\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\NUL\DC2\EOT\134\STX\ACK\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STX\NUL\DC2\EOT\226\STX\ACK\SUB\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\NUL\SOH\DC2\EOT\134\STX\ACK\NAK\n\ + \\a\EOT\a\EOT\NUL\STX\NUL\SOH\DC2\EOT\226\STX\ACK\NAK\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\NUL\STX\DC2\EOT\134\STX\CAN\EM\n\ + \\a\EOT\a\EOT\NUL\STX\NUL\STX\DC2\EOT\226\STX\CAN\EM\n\ \R\n\ - \\ACK\EOT\a\EOT\NUL\STX\SOH\DC2\EOT\136\STX\ACK\SUB\SUBB A method which may or may not have a body. For Java, Kotlin etc.\n\ + \\ACK\EOT\a\EOT\NUL\STX\SOH\DC2\EOT\228\STX\ACK\SUB\SUBB A method which may or may not have a body. For Java, Kotlin etc.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SOH\SOH\DC2\EOT\136\STX\ACK\DC4\n\ + \\a\EOT\a\EOT\NUL\STX\SOH\SOH\DC2\EOT\228\STX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SOH\STX\DC2\EOT\136\STX\ETB\EM\n\ + \\a\EOT\a\EOT\NUL\STX\SOH\STX\DC2\EOT\228\STX\ETB\EM\n\ \*\n\ - \\ACK\EOT\a\EOT\NUL\STX\STX\DC2\EOT\138\STX\ACK\DC4\SUB\SUB For Ruby's attr_accessor\n\ + \\ACK\EOT\a\EOT\NUL\STX\STX\DC2\EOT\230\STX\ACK\DC4\SUB\SUB For Ruby's attr_accessor\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\STX\SOH\DC2\EOT\138\STX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STX\STX\SOH\DC2\EOT\230\STX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\STX\STX\DC2\EOT\138\STX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STX\STX\STX\DC2\EOT\230\STX\DC1\DC3\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\ETX\DC2\EOT\139\STX\ACK\DLE\n\ + \\ACK\EOT\a\EOT\NUL\STX\ETX\DC2\EOT\231\STX\ACK\DLE\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ETX\SOH\DC2\EOT\139\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STX\ETX\SOH\DC2\EOT\231\STX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ETX\STX\DC2\EOT\139\STX\SO\SI\n\ + \\a\EOT\a\EOT\NUL\STX\ETX\STX\DC2\EOT\231\STX\SO\SI\n\ \\ESC\n\ - \\ACK\EOT\a\EOT\NUL\STX\EOT\DC2\EOT\141\STX\ACK\DC4\SUB\v For Alloy\n\ + \\ACK\EOT\a\EOT\NUL\STX\EOT\DC2\EOT\233\STX\ACK\DC4\SUB\v For Alloy\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\EOT\SOH\DC2\EOT\141\STX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STX\EOT\SOH\DC2\EOT\233\STX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\EOT\STX\DC2\EOT\141\STX\DC2\DC3\n\ + \\a\EOT\a\EOT\NUL\STX\EOT\STX\DC2\EOT\233\STX\DC2\DC3\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\ENQ\DC2\EOT\142\STX\ACK\EM\n\ + \\ACK\EOT\a\EOT\NUL\STX\ENQ\DC2\EOT\234\STX\ACK\EM\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ENQ\SOH\DC2\EOT\142\STX\ACK\DC4\n\ + \\a\EOT\a\EOT\NUL\STX\ENQ\SOH\DC2\EOT\234\STX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ENQ\STX\DC2\EOT\142\STX\ETB\CAN\n\ + \\a\EOT\a\EOT\NUL\STX\ENQ\STX\DC2\EOT\234\STX\ETB\CAN\n\ \\EM\n\ - \\ACK\EOT\a\EOT\NUL\STX\ACK\DC2\EOT\144\STX\ACK\DC4\SUB\t For C++\n\ + \\ACK\EOT\a\EOT\NUL\STX\ACK\DC2\EOT\236\STX\ACK\DC4\SUB\t For C++\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ACK\SOH\DC2\EOT\144\STX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STX\ACK\SOH\DC2\EOT\236\STX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ACK\STX\DC2\EOT\144\STX\DC2\DC3\n\ + \\a\EOT\a\EOT\NUL\STX\ACK\STX\DC2\EOT\236\STX\DC2\DC3\n\ \\SUB\n\ - \\ACK\EOT\a\EOT\NUL\STX\a\DC2\EOT\146\STX\ACK\DLE\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STX\a\DC2\EOT\238\STX\ACK\DLE\SUB\n\ \ For Lean\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\a\SOH\DC2\EOT\146\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STX\a\SOH\DC2\EOT\238\STX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\a\STX\DC2\EOT\146\STX\SO\SI\n\ + \\a\EOT\a\EOT\NUL\STX\a\STX\DC2\EOT\238\STX\SO\SI\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\b\DC2\EOT\147\STX\ACK\DC2\n\ + \\ACK\EOT\a\EOT\NUL\STX\b\DC2\EOT\239\STX\ACK\DC2\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\b\SOH\DC2\EOT\147\STX\ACK\r\n\ + \\a\EOT\a\EOT\NUL\STX\b\SOH\DC2\EOT\239\STX\ACK\r\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\b\STX\DC2\EOT\147\STX\DLE\DC1\n\ + \\a\EOT\a\EOT\NUL\STX\b\STX\DC2\EOT\239\STX\DLE\DC1\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\t\DC2\EOT\148\STX\ACK\DLE\n\ + \\ACK\EOT\a\EOT\NUL\STX\t\DC2\EOT\240\STX\ACK\DLE\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\t\SOH\DC2\EOT\148\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STX\t\SOH\DC2\EOT\240\STX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\t\STX\DC2\EOT\148\STX\SO\SI\n\ + \\a\EOT\a\EOT\NUL\STX\t\STX\DC2\EOT\240\STX\SO\SI\n\ \\SO\n\ \\ACK\EOT\a\EOT\NUL\STX\n\ - \\DC2\EOT\149\STX\ACK\DC3\n\ + \\DC2\EOT\241\STX\ACK\DC3\n\ \\SI\n\ \\a\EOT\a\EOT\NUL\STX\n\ - \\SOH\DC2\EOT\149\STX\ACK\SO\n\ + \\SOH\DC2\EOT\241\STX\ACK\SO\n\ \\SI\n\ \\a\EOT\a\EOT\NUL\STX\n\ - \\STX\DC2\EOT\149\STX\DC1\DC2\n\ + \\STX\DC2\EOT\241\STX\DC1\DC2\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\v\DC2\EOT\150\STX\ACK\SYN\n\ + \\ACK\EOT\a\EOT\NUL\STX\v\DC2\EOT\242\STX\ACK\SYN\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\v\SOH\DC2\EOT\150\STX\ACK\DC1\n\ + \\a\EOT\a\EOT\NUL\STX\v\SOH\DC2\EOT\242\STX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\v\STX\DC2\EOT\150\STX\DC4\NAK\n\ + \\a\EOT\a\EOT\NUL\STX\v\STX\DC2\EOT\242\STX\DC4\NAK\n\ \\RS\n\ - \\ACK\EOT\a\EOT\NUL\STX\f\DC2\EOT\152\STX\ACK\DC4\SUB\SO For Solidity\n\ + \\ACK\EOT\a\EOT\NUL\STX\f\DC2\EOT\244\STX\ACK\DC4\SUB\SO For Solidity\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\f\SOH\DC2\EOT\152\STX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STX\f\SOH\DC2\EOT\244\STX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\f\STX\DC2\EOT\152\STX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STX\f\STX\DC2\EOT\244\STX\DC1\DC3\n\ \\GS\n\ - \\ACK\EOT\a\EOT\NUL\STX\r\DC2\EOT\154\STX\ACK\SYN\SUB\r For Haskell\n\ + \\ACK\EOT\a\EOT\NUL\STX\r\DC2\EOT\246\STX\ACK\SYN\SUB\r For Haskell\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\r\SOH\DC2\EOT\154\STX\ACK\DLE\n\ + \\a\EOT\a\EOT\NUL\STX\r\SOH\DC2\EOT\246\STX\ACK\DLE\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\r\STX\DC2\EOT\154\STX\DC3\NAK\n\ + \\a\EOT\a\EOT\NUL\STX\r\STX\DC2\EOT\246\STX\DC3\NAK\n\ \\US\n\ - \\ACK\EOT\a\EOT\NUL\STX\SO\DC2\EOT\156\STX\ACK\DC4\SUB\SI For C# and F#\n\ + \\ACK\EOT\a\EOT\NUL\STX\SO\DC2\EOT\248\STX\ACK\DC4\SUB\SI For C# and F#\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SO\SOH\DC2\EOT\156\STX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STX\SO\SOH\DC2\EOT\248\STX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SO\STX\DC2\EOT\156\STX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STX\SO\STX\DC2\EOT\248\STX\DC1\DC3\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\SI\DC2\EOT\157\STX\ACK\DLE\n\ + \\ACK\EOT\a\EOT\NUL\STX\SI\DC2\EOT\249\STX\ACK\DLE\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SI\SOH\DC2\EOT\157\STX\ACK\n\ + \\a\EOT\a\EOT\NUL\STX\SI\SOH\DC2\EOT\249\STX\ACK\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SI\STX\DC2\EOT\157\STX\r\SI\n\ + \\a\EOT\a\EOT\NUL\STX\SI\STX\DC2\EOT\249\STX\r\SI\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\DLE\DC2\EOT\158\STX\ACK\SYN\n\ + \\ACK\EOT\a\EOT\NUL\STX\DLE\DC2\EOT\250\STX\ACK\SYN\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DLE\SOH\DC2\EOT\158\STX\ACK\DLE\n\ + \\a\EOT\a\EOT\NUL\STX\DLE\SOH\DC2\EOT\250\STX\ACK\DLE\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DLE\STX\DC2\EOT\158\STX\DC3\NAK\n\ + \\a\EOT\a\EOT\NUL\STX\DLE\STX\DC2\EOT\250\STX\DC3\NAK\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\DC1\DC2\EOT\159\STX\ACK\DC1\n\ + \\ACK\EOT\a\EOT\NUL\STX\DC1\DC2\EOT\251\STX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DC1\SOH\DC2\EOT\159\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STX\DC1\SOH\DC2\EOT\251\STX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DC1\STX\DC2\EOT\159\STX\SO\DLE\n\ + \\a\EOT\a\EOT\NUL\STX\DC1\STX\DC2\EOT\251\STX\SO\DLE\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\DC2\DC2\EOT\160\STX\ACK\DC1\n\ + \\ACK\EOT\a\EOT\NUL\STX\DC2\DC2\EOT\252\STX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DC2\SOH\DC2\EOT\160\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STX\DC2\SOH\DC2\EOT\252\STX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DC2\STX\DC2\EOT\160\STX\SO\DLE\n\ + \\a\EOT\a\EOT\NUL\STX\DC2\STX\DC2\EOT\252\STX\SO\DLE\n\ \\SUB\n\ - \\ACK\EOT\a\EOT\NUL\STX\DC3\DC2\EOT\162\STX\ACK\NAK\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STX\DC3\DC2\EOT\254\STX\ACK\NAK\SUB\n\ \ For Dart\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DC3\SOH\DC2\EOT\162\STX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STX\DC3\SOH\DC2\EOT\254\STX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DC3\STX\DC2\EOT\162\STX\DC2\DC4\n\ + \\a\EOT\a\EOT\NUL\STX\DC3\STX\DC2\EOT\254\STX\DC2\DC4\n\ \\ESC\n\ - \\ACK\EOT\a\EOT\NUL\STX\DC4\DC2\EOT\164\STX\ACK\DLE\SUB\v For Alloy\n\ + \\ACK\EOT\a\EOT\NUL\STX\DC4\DC2\EOT\128\ETX\ACK\DLE\SUB\v For Alloy\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DC4\SOH\DC2\EOT\164\STX\ACK\n\ + \\a\EOT\a\EOT\NUL\STX\DC4\SOH\DC2\EOT\128\ETX\ACK\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\DC4\STX\DC2\EOT\164\STX\r\SI\n\ + \\a\EOT\a\EOT\NUL\STX\DC4\STX\DC2\EOT\128\ETX\r\SI\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\NAK\DC2\EOT\165\STX\ACK\DC1\n\ + \\ACK\EOT\a\EOT\NUL\STX\NAK\DC2\EOT\129\ETX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\NAK\SOH\DC2\EOT\165\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STX\NAK\SOH\DC2\EOT\129\ETX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\NAK\STX\DC2\EOT\165\STX\SO\DLE\n\ + \\a\EOT\a\EOT\NUL\STX\NAK\STX\DC2\EOT\129\ETX\SO\DLE\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\SYN\DC2\EOT\166\STX\ACK\DLE\n\ + \\ACK\EOT\a\EOT\NUL\STX\SYN\DC2\EOT\130\ETX\ACK\DLE\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SYN\SOH\DC2\EOT\166\STX\ACK\n\ + \\a\EOT\a\EOT\NUL\STX\SYN\SOH\DC2\EOT\130\ETX\ACK\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SYN\STX\DC2\EOT\166\STX\r\SI\n\ + \\a\EOT\a\EOT\NUL\STX\SYN\STX\DC2\EOT\130\ETX\r\SI\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\ETB\DC2\EOT\167\STX\ACK\DC4\n\ + \\ACK\EOT\a\EOT\NUL\STX\ETB\DC2\EOT\131\ETX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ETB\SOH\DC2\EOT\167\STX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STX\ETB\SOH\DC2\EOT\131\ETX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ETB\STX\DC2\EOT\167\STX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STX\ETB\STX\DC2\EOT\131\ETX\DC1\DC3\n\ \;\n\ - \\ACK\EOT\a\EOT\NUL\STX\CAN\DC2\EOT\169\STX\ACK\DC2\SUB+ For 'get' in Swift, 'attr_reader' in Ruby\n\ + \\ACK\EOT\a\EOT\NUL\STX\CAN\DC2\EOT\133\ETX\ACK\DC2\SUB+ For 'get' in Swift, 'attr_reader' in Ruby\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\CAN\SOH\DC2\EOT\169\STX\ACK\f\n\ + \\a\EOT\a\EOT\NUL\STX\CAN\SOH\DC2\EOT\133\ETX\ACK\f\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\CAN\STX\DC2\EOT\169\STX\SI\DC1\n\ + \\a\EOT\a\EOT\NUL\STX\CAN\STX\DC2\EOT\133\ETX\SI\DC1\n\ \\SUB\n\ - \\ACK\EOT\a\EOT\NUL\STX\EM\DC2\EOT\171\STX\ACK\DC3\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STX\EM\DC2\EOT\135\ETX\ACK\DC3\SUB\n\ \ For Raku\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\EM\SOH\DC2\EOT\171\STX\ACK\r\n\ + \\a\EOT\a\EOT\NUL\STX\EM\SOH\DC2\EOT\135\ETX\ACK\r\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\EM\STX\DC2\EOT\171\STX\DLE\DC2\n\ + \\a\EOT\a\EOT\NUL\STX\EM\STX\DC2\EOT\135\ETX\DLE\DC2\n\ \)\n\ - \\ACK\EOT\a\EOT\NUL\STX\SUB\DC2\EOT\173\STX\ACK\DC4\SUB\EM For Purescript and Lean\n\ + \\ACK\EOT\a\EOT\NUL\STX\SUB\DC2\EOT\137\ETX\ACK\DC4\SUB\EM For Purescript and Lean\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SUB\SOH\DC2\EOT\173\STX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STX\SUB\SOH\DC2\EOT\137\ETX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\SUB\STX\DC2\EOT\173\STX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STX\SUB\STX\DC2\EOT\137\ETX\DC1\DC3\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\ESC\DC2\EOT\174\STX\ACK\NAK\n\ + \\ACK\EOT\a\EOT\NUL\STX\ESC\DC2\EOT\138\ETX\ACK\NAK\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ESC\SOH\DC2\EOT\174\STX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STX\ESC\SOH\DC2\EOT\138\ETX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\ESC\STX\DC2\EOT\174\STX\DC2\DC4\n\ + \\a\EOT\a\EOT\NUL\STX\ESC\STX\DC2\EOT\138\ETX\DC2\DC4\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX\FS\DC2\EOT\175\STX\ACK\SI\n\ + \\ACK\EOT\a\EOT\NUL\STX\FS\DC2\EOT\139\ETX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\FS\SOH\DC2\EOT\175\STX\ACK\t\n\ + \\a\EOT\a\EOT\NUL\STX\FS\SOH\DC2\EOT\139\ETX\ACK\t\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\FS\STX\DC2\EOT\175\STX\f\SO\n\ + \\a\EOT\a\EOT\NUL\STX\FS\STX\DC2\EOT\139\ETX\f\SO\n\ \\FS\n\ - \\ACK\EOT\a\EOT\NUL\STX\GS\DC2\EOT\177\STX\ACK\DLE\SUB\f For Racket\n\ + \\ACK\EOT\a\EOT\NUL\STX\GS\DC2\EOT\141\ETX\ACK\DLE\SUB\f For Racket\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\GS\SOH\DC2\EOT\177\STX\ACK\n\ + \\a\EOT\a\EOT\NUL\STX\GS\SOH\DC2\EOT\141\ETX\ACK\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\GS\STX\DC2\EOT\177\STX\r\SI\n\ + \\a\EOT\a\EOT\NUL\STX\GS\STX\DC2\EOT\141\ETX\r\SI\n\ \\SUB\n\ - \\ACK\EOT\a\EOT\NUL\STX\RS\DC2\EOT\179\STX\ACK\DC1\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STX\RS\DC2\EOT\143\ETX\ACK\DC1\SUB\n\ \ For Lean\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\RS\SOH\DC2\EOT\179\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STX\RS\SOH\DC2\EOT\143\ETX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\RS\STX\DC2\EOT\179\STX\SO\DLE\n\ + \\a\EOT\a\EOT\NUL\STX\RS\STX\DC2\EOT\143\ETX\SO\DLE\n\ \\RS\n\ - \\ACK\EOT\a\EOT\NUL\STX\US\DC2\EOT\181\STX\ACK\DC3\SUB\SO For solidity\n\ + \\ACK\EOT\a\EOT\NUL\STX\US\DC2\EOT\145\ETX\ACK\DC3\SUB\SO For solidity\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\US\SOH\DC2\EOT\181\STX\ACK\r\n\ + \\a\EOT\a\EOT\NUL\STX\US\SOH\DC2\EOT\145\ETX\ACK\r\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\US\STX\DC2\EOT\181\STX\DLE\DC2\n\ + \\a\EOT\a\EOT\NUL\STX\US\STX\DC2\EOT\145\ETX\DLE\DC2\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX \DC2\EOT\182\STX\ACK\DC1\n\ + \\ACK\EOT\a\EOT\NUL\STX \DC2\EOT\146\ETX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX \SOH\DC2\EOT\182\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STX \SOH\DC2\EOT\146\ETX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX \STX\DC2\EOT\182\STX\SO\DLE\n\ + \\a\EOT\a\EOT\NUL\STX \STX\DC2\EOT\146\ETX\SO\DLE\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX!\DC2\EOT\183\STX\ACK\DC2\n\ + \\ACK\EOT\a\EOT\NUL\STX!\DC2\EOT\147\ETX\ACK\DC2\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX!\SOH\DC2\EOT\183\STX\ACK\f\n\ + \\a\EOT\a\EOT\NUL\STX!\SOH\DC2\EOT\147\ETX\ACK\f\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX!\STX\DC2\EOT\183\STX\SI\DC1\n\ + \\a\EOT\a\EOT\NUL\STX!\STX\DC2\EOT\147\ETX\SI\DC1\n\ \\SUB\n\ - \\ACK\EOT\a\EOT\NUL\STX\"\DC2\EOT\185\STX\ACK\ETB\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STX\"\DC2\EOT\149\ETX\ACK\ETB\SUB\n\ \ For Ruby\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\"\SOH\DC2\EOT\185\STX\ACK\DC1\n\ + \\a\EOT\a\EOT\NUL\STX\"\SOH\DC2\EOT\149\ETX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX\"\STX\DC2\EOT\185\STX\DC4\SYN\n\ + \\a\EOT\a\EOT\NUL\STX\"\STX\DC2\EOT\149\ETX\DC4\SYN\n\ \\148\SOH\n\ - \\ACK\EOT\a\EOT\NUL\STX#\DC2\EOT\188\STX\ACK\SUB\SUB\131\SOH Analogous to 'ThisParameter' and 'SelfParameter', but for languages\n\ + \\ACK\EOT\a\EOT\NUL\STX#\DC2\EOT\152\ETX\ACK\SUB\SUB\131\SOH Analogous to 'ThisParameter' and 'SelfParameter', but for languages\n\ \ like Go where the receiver doesn't have a conventional name.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX#\SOH\DC2\EOT\188\STX\ACK\DC4\n\ + \\a\EOT\a\EOT\NUL\STX#\SOH\DC2\EOT\152\ETX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX#\STX\DC2\EOT\188\STX\ETB\EM\n\ + \\a\EOT\a\EOT\NUL\STX#\STX\DC2\EOT\152\ETX\ETB\EM\n\ \8\n\ - \\ACK\EOT\a\EOT\NUL\STX$\DC2\EOT\190\STX\ACK\US\SUB( Analogous to 'AbstractMethod', for Go.\n\ + \\ACK\EOT\a\EOT\NUL\STX$\DC2\EOT\154\ETX\ACK\US\SUB( Analogous to 'AbstractMethod', for Go.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX$\SOH\DC2\EOT\190\STX\ACK\EM\n\ + \\a\EOT\a\EOT\NUL\STX$\SOH\DC2\EOT\154\ETX\ACK\EM\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX$\STX\DC2\EOT\190\STX\FS\RS\n\ + \\a\EOT\a\EOT\NUL\STX$\STX\DC2\EOT\154\ETX\FS\RS\n\ \\RS\n\ - \\ACK\EOT\a\EOT\NUL\STX%\DC2\EOT\192\STX\ACK\DC3\SUB\SO For Protobuf\n\ + \\ACK\EOT\a\EOT\NUL\STX%\DC2\EOT\156\ETX\ACK\DC3\SUB\SO For Protobuf\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX%\SOH\DC2\EOT\192\STX\ACK\r\n\ + \\a\EOT\a\EOT\NUL\STX%\SOH\DC2\EOT\156\ETX\ACK\r\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX%\STX\DC2\EOT\192\STX\DLE\DC2\n\ + \\a\EOT\a\EOT\NUL\STX%\STX\DC2\EOT\156\ETX\DLE\DC2\n\ \\SUB\n\ - \\ACK\EOT\a\EOT\NUL\STX&\DC2\EOT\194\STX\ACK\DC1\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STX&\DC2\EOT\158\ETX\ACK\DC1\SUB\n\ \ For Dart\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX&\SOH\DC2\EOT\194\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STX&\SOH\DC2\EOT\158\ETX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX&\STX\DC2\EOT\194\STX\SO\DLE\n\ + \\a\EOT\a\EOT\NUL\STX&\STX\DC2\EOT\158\ETX\SO\DLE\n\ \\RS\n\ - \\ACK\EOT\a\EOT\NUL\STX'\DC2\EOT\196\STX\ACK\DC4\SUB\SO For Solidity\n\ + \\ACK\EOT\a\EOT\NUL\STX'\DC2\EOT\160\ETX\ACK\DC4\SUB\SO For Solidity\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX'\SOH\DC2\EOT\196\STX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STX'\SOH\DC2\EOT\160\ETX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX'\STX\DC2\EOT\196\STX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STX'\STX\DC2\EOT\160\ETX\DC1\DC3\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX(\DC2\EOT\197\STX\ACK\DC2\n\ + \\ACK\EOT\a\EOT\NUL\STX(\DC2\EOT\161\ETX\ACK\DC2\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX(\SOH\DC2\EOT\197\STX\ACK\f\n\ + \\a\EOT\a\EOT\NUL\STX(\SOH\DC2\EOT\161\ETX\ACK\f\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX(\STX\DC2\EOT\197\STX\SI\DC1\n\ + \\a\EOT\a\EOT\NUL\STX(\STX\DC2\EOT\161\ETX\SI\DC1\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX)\DC2\EOT\198\STX\ACK\NAK\n\ + \\ACK\EOT\a\EOT\NUL\STX)\DC2\EOT\162\ETX\ACK\NAK\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX)\SOH\DC2\EOT\198\STX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STX)\SOH\DC2\EOT\162\ETX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX)\STX\DC2\EOT\198\STX\DC2\DC4\n\ + \\a\EOT\a\EOT\NUL\STX)\STX\DC2\EOT\162\ETX\DC2\DC4\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX*\DC2\EOT\199\STX\ACK\DLE\n\ + \\ACK\EOT\a\EOT\NUL\STX*\DC2\EOT\163\ETX\ACK\DLE\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX*\SOH\DC2\EOT\199\STX\ACK\n\ + \\a\EOT\a\EOT\NUL\STX*\SOH\DC2\EOT\163\ETX\ACK\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX*\STX\DC2\EOT\199\STX\r\SI\n\ + \\a\EOT\a\EOT\NUL\STX*\STX\DC2\EOT\163\ETX\r\SI\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX+\DC2\EOT\200\STX\ACK\DC2\n\ + \\ACK\EOT\a\EOT\NUL\STX+\DC2\EOT\164\ETX\ACK\DC2\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX+\SOH\DC2\EOT\200\STX\ACK\f\n\ + \\a\EOT\a\EOT\NUL\STX+\SOH\DC2\EOT\164\ETX\ACK\f\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX+\STX\DC2\EOT\200\STX\SI\DC1\n\ + \\a\EOT\a\EOT\NUL\STX+\STX\DC2\EOT\164\ETX\SI\DC1\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX,\DC2\EOT\201\STX\ACK\DC2\n\ + \\ACK\EOT\a\EOT\NUL\STX,\DC2\EOT\165\ETX\ACK\DC2\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX,\SOH\DC2\EOT\201\STX\ACK\f\n\ + \\a\EOT\a\EOT\NUL\STX,\SOH\DC2\EOT\165\ETX\ACK\f\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX,\STX\DC2\EOT\201\STX\SI\DC1\n\ + \\a\EOT\a\EOT\NUL\STX,\STX\DC2\EOT\165\ETX\SI\DC1\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX-\DC2\EOT\202\STX\ACK\DC4\n\ + \\ACK\EOT\a\EOT\NUL\STX-\DC2\EOT\166\ETX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX-\SOH\DC2\EOT\202\STX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STX-\SOH\DC2\EOT\166\ETX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX-\STX\DC2\EOT\202\STX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STX-\STX\DC2\EOT\166\ETX\DC1\DC3\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX.\DC2\EOT\203\STX\ACK\DC3\n\ + \\ACK\EOT\a\EOT\NUL\STX.\DC2\EOT\167\ETX\ACK\DC3\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX.\SOH\DC2\EOT\203\STX\ACK\r\n\ + \\a\EOT\a\EOT\NUL\STX.\SOH\DC2\EOT\167\ETX\ACK\r\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX.\STX\DC2\EOT\203\STX\DLE\DC2\n\ + \\a\EOT\a\EOT\NUL\STX.\STX\DC2\EOT\167\ETX\DLE\DC2\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX/\DC2\EOT\204\STX\ACK\EM\n\ + \\ACK\EOT\a\EOT\NUL\STX/\DC2\EOT\168\ETX\ACK\EM\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX/\SOH\DC2\EOT\204\STX\ACK\DC3\n\ + \\a\EOT\a\EOT\NUL\STX/\SOH\DC2\EOT\168\ETX\ACK\DC3\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX/\STX\DC2\EOT\204\STX\SYN\CAN\n\ + \\a\EOT\a\EOT\NUL\STX/\STX\DC2\EOT\168\ETX\SYN\CAN\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX0\DC2\EOT\205\STX\ACK\NAK\n\ + \\ACK\EOT\a\EOT\NUL\STX0\DC2\EOT\169\ETX\ACK\NAK\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX0\SOH\DC2\EOT\205\STX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STX0\SOH\DC2\EOT\169\ETX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX0\STX\DC2\EOT\205\STX\DC2\DC4\n\ + \\a\EOT\a\EOT\NUL\STX0\STX\DC2\EOT\169\ETX\DC2\DC4\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX1\DC2\EOT\206\STX\ACK\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STX1\DC2\EOT\170\ETX\ACK\SUB\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX1\SOH\DC2\EOT\206\STX\ACK\DC4\n\ + \\a\EOT\a\EOT\NUL\STX1\SOH\DC2\EOT\170\ETX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX1\STX\DC2\EOT\206\STX\ETB\EM\n\ + \\a\EOT\a\EOT\NUL\STX1\STX\DC2\EOT\170\ETX\ETB\EM\n\ \/\n\ - \\ACK\EOT\a\EOT\NUL\STX2\DC2\EOT\208\STX\ACK\DC3\SUB\US For Haskell's PatternSynonyms\n\ + \\ACK\EOT\a\EOT\NUL\STX2\DC2\EOT\172\ETX\ACK\DC3\SUB\US For Haskell's PatternSynonyms\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX2\SOH\DC2\EOT\208\STX\ACK\r\n\ + \\a\EOT\a\EOT\NUL\STX2\SOH\DC2\EOT\172\ETX\ACK\r\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX2\STX\DC2\EOT\208\STX\DLE\DC2\n\ + \\a\EOT\a\EOT\NUL\STX2\STX\DC2\EOT\172\ETX\DLE\DC2\n\ \\ESC\n\ - \\ACK\EOT\a\EOT\NUL\STX3\DC2\EOT\210\STX\ACK\NAK\SUB\v For Alloy\n\ + \\ACK\EOT\a\EOT\NUL\STX3\DC2\EOT\174\ETX\ACK\NAK\SUB\v For Alloy\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX3\SOH\DC2\EOT\210\STX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STX3\SOH\DC2\EOT\174\ETX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX3\STX\DC2\EOT\210\STX\DC2\DC4\n\ + \\a\EOT\a\EOT\NUL\STX3\STX\DC2\EOT\174\ETX\DC2\DC4\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STX4\DC2\EOT\211\STX\ACK\DC4\n\ + \\ACK\EOT\a\EOT\NUL\STX4\DC2\EOT\175\ETX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX4\SOH\DC2\EOT\211\STX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STX4\SOH\DC2\EOT\175\ETX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX4\STX\DC2\EOT\211\STX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STX4\STX\DC2\EOT\175\ETX\DC1\DC3\n\ \Q\n\ - \\ACK\EOT\a\EOT\NUL\STX5\DC2\EOT\213\STX\ACK\DC4\SUBA Analogous to 'Trait' and 'TypeClass', for Swift and Objective-C\n\ + \\ACK\EOT\a\EOT\NUL\STX5\DC2\EOT\177\ETX\ACK\DC4\SUBA Analogous to 'Trait' and 'TypeClass', for Swift and Objective-C\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX5\SOH\DC2\EOT\213\STX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STX5\SOH\DC2\EOT\177\ETX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX5\STX\DC2\EOT\213\STX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STX5\STX\DC2\EOT\177\ETX\DC1\DC3\n\ \K\n\ - \\ACK\EOT\a\EOT\NUL\STX6\DC2\EOT\215\STX\ACK\SUB\SUB; Analogous to 'AbstractMethod', for Swift and Objective-C.\n\ + \\ACK\EOT\a\EOT\NUL\STX6\DC2\EOT\179\ETX\ACK\SUB\SUB; Analogous to 'AbstractMethod', for Swift and Objective-C.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX6\SOH\DC2\EOT\215\STX\ACK\DC4\n\ + \\a\EOT\a\EOT\NUL\STX6\SOH\DC2\EOT\179\ETX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX6\STX\DC2\EOT\215\STX\ETB\EM\n\ + \\a\EOT\a\EOT\NUL\STX6\STX\DC2\EOT\179\ETX\ETB\EM\n\ \9\n\ - \\ACK\EOT\a\EOT\NUL\STX7\DC2\EOT\217\STX\ACK\GS\SUB) Analogous to 'AbstractMethod', for C++.\n\ + \\ACK\EOT\a\EOT\NUL\STX7\DC2\EOT\181\ETX\ACK\GS\SUB) Analogous to 'AbstractMethod', for C++.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX7\SOH\DC2\EOT\217\STX\ACK\ETB\n\ + \\a\EOT\a\EOT\NUL\STX7\SOH\DC2\EOT\181\ETX\ACK\ETB\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX7\STX\DC2\EOT\217\STX\SUB\FS\n\ + \\a\EOT\a\EOT\NUL\STX7\STX\DC2\EOT\181\ETX\SUB\FS\n\ \\GS\n\ - \\ACK\EOT\a\EOT\NUL\STX8\DC2\EOT\219\STX\ACK\ETB\SUB\r For Haskell\n\ + \\ACK\EOT\a\EOT\NUL\STX8\DC2\EOT\183\ETX\ACK\ETB\SUB\r For Haskell\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX8\SOH\DC2\EOT\219\STX\ACK\DC1\n\ + \\a\EOT\a\EOT\NUL\STX8\SOH\DC2\EOT\183\ETX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX8\STX\DC2\EOT\219\STX\DC4\SYN\n\ + \\a\EOT\a\EOT\NUL\STX8\STX\DC2\EOT\183\ETX\DC4\SYN\n\ \4\n\ - \\ACK\EOT\a\EOT\NUL\STX9\DC2\EOT\221\STX\ACK\EM\SUB$ 'self' in Python, Rust, Swift etc.\n\ + \\ACK\EOT\a\EOT\NUL\STX9\DC2\EOT\185\ETX\ACK\EM\SUB$ 'self' in Python, Rust, Swift etc.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX9\SOH\DC2\EOT\221\STX\ACK\DC3\n\ + \\a\EOT\a\EOT\NUL\STX9\SOH\DC2\EOT\185\ETX\ACK\DC3\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX9\STX\DC2\EOT\221\STX\SYN\CAN\n\ + \\a\EOT\a\EOT\NUL\STX9\STX\DC2\EOT\185\ETX\SYN\CAN\n\ \;\n\ - \\ACK\EOT\a\EOT\NUL\STX:\DC2\EOT\223\STX\ACK\DC2\SUB+ For 'set' in Swift, 'attr_writer' in Ruby\n\ + \\ACK\EOT\a\EOT\NUL\STX:\DC2\EOT\187\ETX\ACK\DC2\SUB+ For 'set' in Swift, 'attr_writer' in Ruby\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX:\SOH\DC2\EOT\223\STX\ACK\f\n\ + \\a\EOT\a\EOT\NUL\STX:\SOH\DC2\EOT\187\ETX\ACK\f\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX:\STX\DC2\EOT\223\STX\SI\DC1\n\ + \\a\EOT\a\EOT\NUL\STX:\STX\DC2\EOT\187\ETX\SI\DC1\n\ \3\n\ - \\ACK\EOT\a\EOT\NUL\STX;\DC2\EOT\225\STX\ACK\NAK\SUB# For Alloy, analogous to 'Struct'.\n\ + \\ACK\EOT\a\EOT\NUL\STX;\DC2\EOT\189\ETX\ACK\NAK\SUB# For Alloy, analogous to 'Struct'.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX;\SOH\DC2\EOT\225\STX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STX;\SOH\DC2\EOT\189\ETX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX;\STX\DC2\EOT\225\STX\DC2\DC4\n\ + \\a\EOT\a\EOT\NUL\STX;\STX\DC2\EOT\189\ETX\DC2\DC4\n\ \\SUB\n\ - \\ACK\EOT\a\EOT\NUL\STX<\DC2\EOT\227\STX\ACK\SUB\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STX<\DC2\EOT\191\ETX\ACK\SUB\SUB\n\ \ For Ruby\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX<\SOH\DC2\EOT\227\STX\ACK\DC4\n\ + \\a\EOT\a\EOT\NUL\STX<\SOH\DC2\EOT\191\ETX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX<\STX\DC2\EOT\227\STX\ETB\EM\n\ + \\a\EOT\a\EOT\NUL\STX<\STX\DC2\EOT\191\ETX\ETB\EM\n\ \8\n\ - \\ACK\EOT\a\EOT\NUL\STX=\DC2\EOT\229\STX\ACK\ESC\SUB( Analogous to 'StaticMethod', for Ruby.\n\ + \\ACK\EOT\a\EOT\NUL\STX=\DC2\EOT\193\ETX\ACK\ESC\SUB( Analogous to 'StaticMethod', for Ruby.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX=\SOH\DC2\EOT\229\STX\ACK\NAK\n\ + \\a\EOT\a\EOT\NUL\STX=\SOH\DC2\EOT\193\ETX\ACK\NAK\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX=\STX\DC2\EOT\229\STX\CAN\SUB\n\ + \\a\EOT\a\EOT\NUL\STX=\STX\DC2\EOT\193\ETX\CAN\SUB\n\ \5\n\ - \\ACK\EOT\a\EOT\NUL\STX>\DC2\EOT\231\STX\ACK\FS\SUB% Analogous to 'StaticField', for C++\n\ + \\ACK\EOT\a\EOT\NUL\STX>\DC2\EOT\195\ETX\ACK\FS\SUB% Analogous to 'StaticField', for C++\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX>\SOH\DC2\EOT\231\STX\ACK\SYN\n\ + \\a\EOT\a\EOT\NUL\STX>\SOH\DC2\EOT\195\ETX\ACK\SYN\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX>\STX\DC2\EOT\231\STX\EM\ESC\n\ + \\a\EOT\a\EOT\NUL\STX>\STX\DC2\EOT\195\ETX\EM\ESC\n\ \\CAN\n\ - \\ACK\EOT\a\EOT\NUL\STX?\DC2\EOT\233\STX\ACK\ETB\SUB\b For C#\n\ + \\ACK\EOT\a\EOT\NUL\STX?\DC2\EOT\197\ETX\ACK\ETB\SUB\b For C#\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX?\SOH\DC2\EOT\233\STX\ACK\DC1\n\ + \\a\EOT\a\EOT\NUL\STX?\SOH\DC2\EOT\197\ETX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX?\STX\DC2\EOT\233\STX\DC4\SYN\n\ + \\a\EOT\a\EOT\NUL\STX?\STX\DC2\EOT\197\ETX\DC4\SYN\n\ \\CAN\n\ - \\ACK\EOT\a\EOT\NUL\STX@\DC2\EOT\235\STX\ACK\ETB\SUB\b For C#\n\ + \\ACK\EOT\a\EOT\NUL\STX@\DC2\EOT\199\ETX\ACK\ETB\SUB\b For C#\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX@\SOH\DC2\EOT\235\STX\ACK\DC1\n\ + \\a\EOT\a\EOT\NUL\STX@\SOH\DC2\EOT\199\ETX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STX@\STX\DC2\EOT\235\STX\DC4\SYN\n\ + \\a\EOT\a\EOT\NUL\STX@\STX\DC2\EOT\199\ETX\DC4\SYN\n\ \(\n\ - \\ACK\EOT\a\EOT\NUL\STXA\DC2\EOT\237\STX\ACK\CAN\SUB\CAN For Java, C#, C++ etc.\n\ + \\ACK\EOT\a\EOT\NUL\STXA\DC2\EOT\201\ETX\ACK\CAN\SUB\CAN For Java, C#, C++ etc.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXA\SOH\DC2\EOT\237\STX\ACK\DC2\n\ + \\a\EOT\a\EOT\NUL\STXA\SOH\DC2\EOT\201\ETX\ACK\DC2\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXA\STX\DC2\EOT\237\STX\NAK\ETB\n\ + \\a\EOT\a\EOT\NUL\STXA\STX\DC2\EOT\201\ETX\NAK\ETB\n\ \)\n\ - \\ACK\EOT\a\EOT\NUL\STXB\DC2\EOT\239\STX\ACK\SUB\SUB\EM For C#, TypeScript etc.\n\ + \\ACK\EOT\a\EOT\NUL\STXB\DC2\EOT\203\ETX\ACK\SUB\SUB\EM For C#, TypeScript etc.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXB\SOH\DC2\EOT\239\STX\ACK\DC4\n\ + \\a\EOT\a\EOT\NUL\STXB\SOH\DC2\EOT\203\ETX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXB\STX\DC2\EOT\239\STX\ETB\EM\n\ + \\a\EOT\a\EOT\NUL\STXB\STX\DC2\EOT\203\ETX\ETB\EM\n\ \\FS\n\ - \\ACK\EOT\a\EOT\NUL\STXC\DC2\EOT\241\STX\ACK\SUB\SUB\f For C, C++\n\ + \\ACK\EOT\a\EOT\NUL\STXC\DC2\EOT\205\ETX\ACK\SUB\SUB\f For C, C++\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXC\SOH\DC2\EOT\241\STX\ACK\DC4\n\ + \\a\EOT\a\EOT\NUL\STXC\SOH\DC2\EOT\205\ETX\ACK\DC4\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXC\STX\DC2\EOT\241\STX\ETB\EM\n\ + \\a\EOT\a\EOT\NUL\STXC\STX\DC2\EOT\205\ETX\ETB\EM\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STXD\DC2\EOT\242\STX\ACK\DC2\n\ + \\ACK\EOT\a\EOT\NUL\STXD\DC2\EOT\206\ETX\ACK\DC2\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXD\SOH\DC2\EOT\242\STX\ACK\f\n\ + \\a\EOT\a\EOT\NUL\STXD\SOH\DC2\EOT\206\ETX\ACK\f\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXD\STX\DC2\EOT\242\STX\SI\DC1\n\ + \\a\EOT\a\EOT\NUL\STXD\STX\DC2\EOT\206\ETX\SI\DC1\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STXE\DC2\EOT\243\STX\ACK\DC2\n\ + \\ACK\EOT\a\EOT\NUL\STXE\DC2\EOT\207\ETX\ACK\DC2\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXE\SOH\DC2\EOT\243\STX\ACK\f\n\ + \\a\EOT\a\EOT\NUL\STXE\SOH\DC2\EOT\207\ETX\ACK\f\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXE\STX\DC2\EOT\243\STX\SI\DC1\n\ + \\a\EOT\a\EOT\NUL\STXE\STX\DC2\EOT\207\ETX\SI\DC1\n\ \\ESC\n\ - \\ACK\EOT\a\EOT\NUL\STXF\DC2\EOT\245\STX\ACK\NAK\SUB\v For Swift\n\ + \\ACK\EOT\a\EOT\NUL\STXF\DC2\EOT\209\ETX\ACK\NAK\SUB\v For Swift\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXF\SOH\DC2\EOT\245\STX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STXF\SOH\DC2\EOT\209\ETX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXF\STX\DC2\EOT\245\STX\DC2\DC4\n\ + \\a\EOT\a\EOT\NUL\STXF\STX\DC2\EOT\209\ETX\DC2\DC4\n\ \\SUB\n\ - \\ACK\EOT\a\EOT\NUL\STXG\DC2\EOT\247\STX\ACK\DC2\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STXG\DC2\EOT\211\ETX\ACK\DC2\SUB\n\ \ For Lean\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXG\SOH\DC2\EOT\247\STX\ACK\f\n\ + \\a\EOT\a\EOT\NUL\STXG\SOH\DC2\EOT\211\ETX\ACK\f\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXG\STX\DC2\EOT\247\STX\SI\DC1\n\ + \\a\EOT\a\EOT\NUL\STXG\STX\DC2\EOT\211\ETX\SI\DC1\n\ \\SUB\n\ - \\ACK\EOT\a\EOT\NUL\STXH\DC2\EOT\249\STX\ACK\DC3\SUB\n\ + \\ACK\EOT\a\EOT\NUL\STXH\DC2\EOT\213\ETX\ACK\DC3\SUB\n\ \ For Lean\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXH\SOH\DC2\EOT\249\STX\ACK\r\n\ + \\a\EOT\a\EOT\NUL\STXH\SOH\DC2\EOT\213\ETX\ACK\r\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXH\STX\DC2\EOT\249\STX\DLE\DC2\n\ + \\a\EOT\a\EOT\NUL\STXH\STX\DC2\EOT\213\ETX\DLE\DC2\n\ \U\n\ - \\ACK\EOT\a\EOT\NUL\STXI\DC2\EOT\252\STX\ACK\EM\SUBE Method receiver for languages\n\ + \\ACK\EOT\a\EOT\NUL\STXI\DC2\EOT\216\ETX\ACK\EM\SUBE Method receiver for languages\n\ \ 'this' in JavaScript, C++, Java etc.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXI\SOH\DC2\EOT\252\STX\ACK\DC3\n\ + \\a\EOT\a\EOT\NUL\STXI\SOH\DC2\EOT\216\ETX\ACK\DC3\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXI\STX\DC2\EOT\252\STX\SYN\CAN\n\ + \\a\EOT\a\EOT\NUL\STXI\STX\DC2\EOT\216\ETX\SYN\CAN\n\ \O\n\ - \\ACK\EOT\a\EOT\NUL\STXJ\DC2\EOT\254\STX\ACK\DC1\SUB? Analogous to 'Protocol' and 'TypeClass', for Rust, Scala etc.\n\ + \\ACK\EOT\a\EOT\NUL\STXJ\DC2\EOT\218\ETX\ACK\DC1\SUB? Analogous to 'Protocol' and 'TypeClass', for Rust, Scala etc.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXJ\SOH\DC2\EOT\254\STX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STXJ\SOH\DC2\EOT\218\ETX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXJ\STX\DC2\EOT\254\STX\SO\DLE\n\ + \\a\EOT\a\EOT\NUL\STXJ\STX\DC2\EOT\218\ETX\SO\DLE\n\ \E\n\ - \\ACK\EOT\a\EOT\NUL\STXK\DC2\EOT\128\ETX\ACK\ETB\SUB5 Analogous to 'AbstractMethod', for Rust, Scala etc.\n\ + \\ACK\EOT\a\EOT\NUL\STXK\DC2\EOT\220\ETX\ACK\ETB\SUB5 Analogous to 'AbstractMethod', for Rust, Scala etc.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXK\SOH\DC2\EOT\128\ETX\ACK\DC1\n\ + \\a\EOT\a\EOT\NUL\STXK\SOH\DC2\EOT\220\ETX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXK\STX\DC2\EOT\128\ETX\DC4\SYN\n\ + \\a\EOT\a\EOT\NUL\STXK\STX\DC2\EOT\220\ETX\DC4\SYN\n\ \\137\SOH\n\ - \\ACK\EOT\a\EOT\NUL\STXL\DC2\EOT\131\ETX\ACK\DLE\SUBy Data type definition for languages like OCaml which use `type`\n\ + \\ACK\EOT\a\EOT\NUL\STXL\DC2\EOT\223\ETX\ACK\DLE\SUBy Data type definition for languages like OCaml which use `type`\n\ \ rather than separate keywords like `struct` and `enum`.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXL\SOH\DC2\EOT\131\ETX\ACK\n\ + \\a\EOT\a\EOT\NUL\STXL\SOH\DC2\EOT\223\ETX\ACK\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXL\STX\DC2\EOT\131\ETX\r\SI\n\ + \\a\EOT\a\EOT\NUL\STXL\STX\DC2\EOT\223\ETX\r\SI\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STXM\DC2\EOT\132\ETX\ACK\NAK\n\ + \\ACK\EOT\a\EOT\NUL\STXM\DC2\EOT\224\ETX\ACK\NAK\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXM\SOH\DC2\EOT\132\ETX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STXM\SOH\DC2\EOT\224\ETX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXM\STX\DC2\EOT\132\ETX\DC2\DC4\n\ + \\a\EOT\a\EOT\NUL\STXM\STX\DC2\EOT\224\ETX\DC2\DC4\n\ \S\n\ - \\ACK\EOT\a\EOT\NUL\STXN\DC2\EOT\134\ETX\ACK\NAK\SUBC Analogous to 'Trait' and 'Protocol', for Haskell, Purescript etc.\n\ + \\ACK\EOT\a\EOT\NUL\STXN\DC2\EOT\226\ETX\ACK\NAK\SUBC Analogous to 'Trait' and 'Protocol', for Haskell, Purescript etc.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXN\SOH\DC2\EOT\134\ETX\ACK\SI\n\ + \\a\EOT\a\EOT\NUL\STXN\SOH\DC2\EOT\226\ETX\ACK\SI\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXN\STX\DC2\EOT\134\ETX\DC2\DC4\n\ + \\a\EOT\a\EOT\NUL\STXN\STX\DC2\EOT\226\ETX\DC2\DC4\n\ \M\n\ - \\ACK\EOT\a\EOT\NUL\STXO\DC2\EOT\136\ETX\ACK\ESC\SUB= Analogous to 'AbstractMethod', for Haskell, Purescript etc.\n\ + \\ACK\EOT\a\EOT\NUL\STXO\DC2\EOT\228\ETX\ACK\ESC\SUB= Analogous to 'AbstractMethod', for Haskell, Purescript etc.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXO\SOH\DC2\EOT\136\ETX\ACK\NAK\n\ + \\a\EOT\a\EOT\NUL\STXO\SOH\DC2\EOT\228\ETX\ACK\NAK\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXO\STX\DC2\EOT\136\ETX\CAN\SUB\n\ + \\a\EOT\a\EOT\NUL\STXO\STX\DC2\EOT\228\ETX\CAN\SUB\n\ \\GS\n\ - \\ACK\EOT\a\EOT\NUL\STXP\DC2\EOT\138\ETX\ACK\SYN\SUB\r For Haskell\n\ + \\ACK\EOT\a\EOT\NUL\STXP\DC2\EOT\230\ETX\ACK\SYN\SUB\r For Haskell\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXP\SOH\DC2\EOT\138\ETX\ACK\DLE\n\ + \\a\EOT\a\EOT\NUL\STXP\SOH\DC2\EOT\230\ETX\ACK\DLE\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXP\STX\DC2\EOT\138\ETX\DC3\NAK\n\ + \\a\EOT\a\EOT\NUL\STXP\STX\DC2\EOT\230\ETX\DC3\NAK\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STXQ\DC2\EOT\139\ETX\ACK\EM\n\ + \\ACK\EOT\a\EOT\NUL\STXQ\DC2\EOT\231\ETX\ACK\EM\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXQ\SOH\DC2\EOT\139\ETX\ACK\DC3\n\ + \\a\EOT\a\EOT\NUL\STXQ\SOH\DC2\EOT\231\ETX\ACK\DC3\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXQ\STX\DC2\EOT\139\ETX\SYN\CAN\n\ + \\a\EOT\a\EOT\NUL\STXQ\STX\DC2\EOT\231\ETX\SYN\CAN\n\ \(\n\ - \\ACK\EOT\a\EOT\NUL\STXR\DC2\EOT\141\ETX\ACK\DC1\SUB\CAN For C, C++, Capn Proto\n\ + \\ACK\EOT\a\EOT\NUL\STXR\DC2\EOT\233\ETX\ACK\DC1\SUB\CAN For C, C++, Capn Proto\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXR\SOH\DC2\EOT\141\ETX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STXR\SOH\DC2\EOT\233\ETX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXR\STX\DC2\EOT\141\ETX\SO\DLE\n\ + \\a\EOT\a\EOT\NUL\STXR\STX\DC2\EOT\233\ETX\SO\DLE\n\ \\SO\n\ - \\ACK\EOT\a\EOT\NUL\STXS\DC2\EOT\142\ETX\ACK\DC1\n\ + \\ACK\EOT\a\EOT\NUL\STXS\DC2\EOT\234\ETX\ACK\DC1\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXS\SOH\DC2\EOT\142\ETX\ACK\v\n\ + \\a\EOT\a\EOT\NUL\STXS\SOH\DC2\EOT\234\ETX\ACK\v\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXS\STX\DC2\EOT\142\ETX\SO\DLE\n\ + \\a\EOT\a\EOT\NUL\STXS\STX\DC2\EOT\234\ETX\SO\DLE\n\ \[\n\ - \\ACK\EOT\a\EOT\NUL\STXT\DC2\EOT\143\ETX\ACK\DC4\"K Next = 86;\n\ + \\ACK\EOT\a\EOT\NUL\STXT\DC2\EOT\235\ETX\ACK\DC4\"K Next = 86;\n\ \ Feel free to open a PR proposing new language-specific kinds.\n\ \\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXT\SOH\DC2\EOT\143\ETX\ACK\SO\n\ + \\a\EOT\a\EOT\NUL\STXT\SOH\DC2\EOT\235\ETX\ACK\SO\n\ \\SI\n\ - \\a\EOT\a\EOT\NUL\STXT\STX\DC2\EOT\143\ETX\DC1\DC3\n\ + \\a\EOT\a\EOT\NUL\STXT\STX\DC2\EOT\235\ETX\DC1\DC3\n\ \\243\ETX\n\ - \\EOT\EOT\a\STX\EOT\DC2\EOT\156\ETX\STX\SUB\SUB\228\ETX (optional) The name of this symbol as it should be displayed to the user.\n\ + \\EOT\EOT\a\STX\EOT\DC2\EOT\248\ETX\STX\SUB\SUB\228\ETX (optional) The name of this symbol as it should be displayed to the user.\n\ \ For example, the symbol \"com/example/MyClass#myMethod(+1).\" should have the\n\ \ display name \"myMethod\". The `symbol` field is not a reliable source of\n\ \ the display name for several reasons:\n\ @@ -7639,13 +8082,13 @@ packedFileDescriptor \ displayed to the user.\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\EOT\ENQ\DC2\EOT\156\ETX\STX\b\n\ + \\ENQ\EOT\a\STX\EOT\ENQ\DC2\EOT\248\ETX\STX\b\n\ \\r\n\ - \\ENQ\EOT\a\STX\EOT\SOH\DC2\EOT\156\ETX\t\NAK\n\ + \\ENQ\EOT\a\STX\EOT\SOH\DC2\EOT\248\ETX\t\NAK\n\ \\r\n\ - \\ENQ\EOT\a\STX\EOT\ETX\DC2\EOT\156\ETX\CAN\EM\n\ + \\ENQ\EOT\a\STX\EOT\ETX\DC2\EOT\248\ETX\CAN\EM\n\ \\196\ETX\n\ - \\EOT\EOT\a\STX\ENQ\DC2\EOT\163\ETX\STX'\SUB\181\ETX (optional) The signature of this symbol as it's displayed in API\n\ + \\EOT\EOT\a\STX\ENQ\DC2\EOT\255\ETX\STX'\SUB\181\ETX (optional) The signature of this symbol as it's displayed in API\n\ \ documentation or in hover tooltips. For example, a Java method that adds\n\ \ two numbers this would have `Document.language = \"java\"` and `Document.text\n\ \ = \"void add(int a, int b)\". The `language` and `text` fields are required\n\ @@ -7653,14 +8096,14 @@ packedFileDescriptor \ included to support hyperlinking referenced symbols in the signature.\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\ENQ\ACK\DC2\EOT\163\ETX\STX\n\ + \\ENQ\EOT\a\STX\ENQ\ACK\DC2\EOT\255\ETX\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\ENQ\SOH\DC2\EOT\163\ETX\v\"\n\ + \\ENQ\EOT\a\STX\ENQ\SOH\DC2\EOT\255\ETX\v\"\n\ \\r\n\ - \\ENQ\EOT\a\STX\ENQ\ETX\DC2\EOT\163\ETX%&\n\ + \\ENQ\EOT\a\STX\ENQ\ETX\DC2\EOT\255\ETX%&\n\ \\201\b\n\ - \\EOT\EOT\a\STX\ACK\DC2\EOT\181\ETX\STX\RS\SUB\186\b (optional) The enclosing symbol if this is a local symbol. For non-local\n\ + \\EOT\EOT\a\STX\ACK\DC2\EOT\145\EOT\STX\RS\SUB\186\b (optional) The enclosing symbol if this is a local symbol. For non-local\n\ \ symbols, the enclosing symbol should be parsed from the `symbol` field\n\ \ using the `Descriptor` grammar.\n\ \\n\ @@ -7679,25 +8122,49 @@ packedFileDescriptor \ symbol.\n\ \\n\ \\r\n\ - \\ENQ\EOT\a\STX\ACK\ENQ\DC2\EOT\181\ETX\STX\b\n\ + \\ENQ\EOT\a\STX\ACK\ENQ\DC2\EOT\145\EOT\STX\b\n\ + \\r\n\ + \\ENQ\EOT\a\STX\ACK\SOH\DC2\EOT\145\EOT\t\EM\n\ + \\r\n\ + \\ENQ\EOT\a\STX\ACK\ETX\DC2\EOT\145\EOT\FS\GS\n\ + \\177\SOH\n\ + \\STX\EOT\b\DC2\ACK\150\EOT\NUL\155\EOT\SOH\SUB\162\SOH NOTE: FullRelationship reuses Relationship instead of a more symmetric representation\n\ + \ to reduce the risk of divergence when adding new fields to Relationships.\n\ + \\n\ + \\v\n\ + \\ETX\EOT\b\SOH\DC2\EOT\150\EOT\b\CAN\n\ + \F\n\ + \\EOT\EOT\b\STX\NUL\DC2\EOT\152\EOT\STX\ESC\SUB8 Represents the symbol that this relationship is about.\n\ + \\n\ + \\r\n\ + \\ENQ\EOT\b\STX\NUL\ENQ\DC2\EOT\152\EOT\STX\b\n\ \\r\n\ - \\ENQ\EOT\a\STX\ACK\SOH\DC2\EOT\181\ETX\t\EM\n\ + \\ENQ\EOT\b\STX\NUL\SOH\DC2\EOT\152\EOT\t\SYN\n\ \\r\n\ - \\ENQ\EOT\a\STX\ACK\ETX\DC2\EOT\181\ETX\FS\GS\n\ + \\ENQ\EOT\b\STX\NUL\ETX\DC2\EOT\152\EOT\EM\SUB\n\ + \S\n\ + \\EOT\EOT\b\STX\SOH\DC2\EOT\154\EOT\STX \SUBE Represents the symbol + the relationship that this symbol links to.\n\ + \\n\ + \\r\n\ + \\ENQ\EOT\b\STX\SOH\ACK\DC2\EOT\154\EOT\STX\SO\n\ + \\r\n\ + \\ENQ\EOT\b\STX\SOH\SOH\DC2\EOT\154\EOT\SI\ESC\n\ + \\r\n\ + \\ENQ\EOT\b\STX\SOH\ETX\DC2\EOT\154\EOT\RS\US\n\ \\f\n\ - \\STX\EOT\b\DC2\ACK\185\ETX\NUL\241\ETX\SOH\n\ + \\STX\EOT\t\DC2\ACK\157\EOT\NUL\224\EOT\SOH\n\ \\v\n\ - \\ETX\EOT\b\SOH\DC2\EOT\185\ETX\b\DC4\n\ + \\ETX\EOT\t\SOH\DC2\EOT\157\EOT\b\DC4\n\ \\f\n\ - \\EOT\EOT\b\STX\NUL\DC2\EOT\186\ETX\STX\DC4\n\ + \\EOT\EOT\t\STX\NUL\DC2\EOT\158\EOT\STX\DC4\n\ \\r\n\ - \\ENQ\EOT\b\STX\NUL\ENQ\DC2\EOT\186\ETX\STX\b\n\ + \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\158\EOT\STX\b\n\ \\r\n\ - \\ENQ\EOT\b\STX\NUL\SOH\DC2\EOT\186\ETX\t\SI\n\ + \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\158\EOT\t\SI\n\ \\r\n\ - \\ENQ\EOT\b\STX\NUL\ETX\DC2\EOT\186\ETX\DC2\DC3\n\ + \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\158\EOT\DC2\DC3\n\ \\222\b\n\ - \\EOT\EOT\b\STX\SOH\DC2\EOT\211\ETX\STX\CAN\SUB\207\b When resolving \"Find references\", this field documents what other symbols\n\ + \\EOT\EOT\t\STX\SOH\DC2\EOT\183\EOT\STX\CAN\SUB\207\b When resolving \"Find references\", this field documents what other symbols\n\ \ should be included together with this symbol. For example, consider the\n\ \ following TypeScript code that defines two symbols `Animal#sound()` and\n\ \ `Dog#sound()`:\n\ @@ -7723,38 +8190,49 @@ packedFileDescriptor \ `Animal#sound()` method as well.\n\ \\n\ \\r\n\ - \\ENQ\EOT\b\STX\SOH\ENQ\DC2\EOT\211\ETX\STX\ACK\n\ + \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\183\EOT\STX\ACK\n\ \\r\n\ - \\ENQ\EOT\b\STX\SOH\SOH\DC2\EOT\211\ETX\a\DC3\n\ + \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\183\EOT\a\DC3\n\ \\r\n\ - \\ENQ\EOT\b\STX\SOH\ETX\DC2\EOT\211\ETX\SYN\ETB\n\ - \\238\ETX\n\ - \\EOT\EOT\b\STX\STX\DC2\EOT\220\ETX\STX\GS\SUB\223\ETX Similar to `is_reference` but for \"Find implementations\".\n\ + \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\183\EOT\SYN\ETB\n\ + \\128\EOT\n\ + \\EOT\EOT\t\STX\STX\DC2\EOT\192\EOT\STX\GS\SUB\241\ETX Similar to `is_reference` but for \"Find implementations\" and \"Find supers\".\n\ + \\n\ \ It's common for `is_implementation` and `is_reference` to both be true but\n\ - \ it's not always the case.\n\ - \ In the TypeScript example above, observe that `Dog#` has an\n\ - \ `is_implementation` relationship with `\"Animal#\"` but not `is_reference`.\n\ - \ This is because \"Find references\" on the \"Animal#\" symbol should not return\n\ - \ \"Dog#\". We only want \"Dog#\" to return as a result for \"Find\n\ - \ implementations\" on the \"Animal#\" symbol.\n\ + \ it's not always the case. In the TypeScript example above, observe that\n\ + \ `Dog#` has an `is_implementation` relationship with `\"Animal#\"` but not\n\ + \ `is_reference`. This is because \"Find references\" on the \"Animal#\" symbol\n\ + \ should not return \"Dog#\". We only want \"Dog#\" to return as a result for\n\ + \ \"Find implementations\" on the \"Animal#\" symbol.\n\ \\n\ \\r\n\ - \\ENQ\EOT\b\STX\STX\ENQ\DC2\EOT\220\ETX\STX\ACK\n\ + \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\192\EOT\STX\ACK\n\ \\r\n\ - \\ENQ\EOT\b\STX\STX\SOH\DC2\EOT\220\ETX\a\CAN\n\ + \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\192\EOT\a\CAN\n\ \\r\n\ - \\ENQ\EOT\b\STX\STX\ETX\DC2\EOT\220\ETX\ESC\FS\n\ - \P\n\ - \\EOT\EOT\b\STX\ETX\DC2\EOT\222\ETX\STX\RS\SUBB Similar to `references_symbols` but for \"Go to type definition\".\n\ + \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\192\EOT\ESC\FS\n\ + \\159\ENQ\n\ + \\EOT\EOT\t\STX\ETX\DC2\EOT\205\EOT\STX\RS\SUB\144\ENQ Represents that \"Go to type definition\" from the (outer) symbol should go\n\ + \ to the (relationship's) symbol for a particular type.\n\ + \\n\ + \ A less confusing name for this field would be \"has_type\", but we\n\ + \ cannot change this to avoid breaking generated code.\n\ + \\n\ + \ NOTE: In Sourcegraph, this field will not be used for code navigation like\n\ + \ \"Go to type references\" (i.e. identifying all places where there is a\n\ + \ variable with a given type, even when type is not mentioned explicitly),\n\ + \ since that would mean that an indexer could only utilize local symbols\n\ + \ in very limited contexts, since most local variables could be potential\n\ + \ targets of such a navigation action.\n\ \\n\ \\r\n\ - \\ENQ\EOT\b\STX\ETX\ENQ\DC2\EOT\222\ETX\STX\ACK\n\ + \\ENQ\EOT\t\STX\ETX\ENQ\DC2\EOT\205\EOT\STX\ACK\n\ \\r\n\ - \\ENQ\EOT\b\STX\ETX\SOH\DC2\EOT\222\ETX\a\EM\n\ + \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\205\EOT\a\EM\n\ \\r\n\ - \\ENQ\EOT\b\STX\ETX\ETX\DC2\EOT\222\ETX\FS\GS\n\ + \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\205\EOT\FS\GS\n\ \\167\a\n\ - \\EOT\EOT\b\STX\EOT\DC2\EOT\239\ETX\STX\EM\SUB\213\ACK Allows overriding the behavior of \"Go to definition\" and \"Find references\"\n\ + \\EOT\EOT\t\STX\EOT\DC2\EOT\222\EOT\STX\EM\SUB\213\ACK Allows overriding the behavior of \"Go to definition\" and \"Find references\"\n\ \ for symbols which do not have a definition of their own or could\n\ \ potentially have multiple definitions.\n\ \\n\ @@ -7773,387 +8251,390 @@ packedFileDescriptor \\"A Update registerInverseRelationships on adding a new field here.\n\ \\n\ \\r\n\ - \\ENQ\EOT\b\STX\EOT\ENQ\DC2\EOT\239\ETX\STX\ACK\n\ + \\ENQ\EOT\t\STX\EOT\ENQ\DC2\EOT\222\EOT\STX\ACK\n\ \\r\n\ - \\ENQ\EOT\b\STX\EOT\SOH\DC2\EOT\239\ETX\a\DC4\n\ + \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\222\EOT\a\DC4\n\ \\r\n\ - \\ENQ\EOT\b\STX\EOT\ETX\DC2\EOT\239\ETX\ETB\CAN\n\ + \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\222\EOT\ETB\CAN\n\ \\136\ETX\n\ - \\STX\ENQ\ETX\DC2\ACK\248\ETX\NUL\142\EOT\SOH\SUB\249\STX SymbolRole declares what \"role\" a symbol has in an occurrence. A role is\n\ + \\STX\ENQ\ETX\DC2\ACK\231\EOT\NUL\253\EOT\SOH\SUB\249\STX SymbolRole declares what \"role\" a symbol has in an occurrence. A role is\n\ \ encoded as a bitset where each bit represents a different role. For example,\n\ \ to determine if the `Import` role is set, test whether the second bit of the\n\ \ enum value is defined. In pseudocode, this can be implemented with the\n\ \ logic: `const isImportRole = (role.value & SymbolRole.Import.value) > 0`.\n\ \\n\ \\v\n\ - \\ETX\ENQ\ETX\SOH\DC2\EOT\248\ETX\ENQ\SI\n\ + \\ETX\ENQ\ETX\SOH\DC2\EOT\231\EOT\ENQ\SI\n\ \v\n\ - \\EOT\ENQ\ETX\STX\NUL\DC2\EOT\251\ETX\STX\FS\SUBh This case is not meant to be used; it only exists to avoid an error\n\ + \\EOT\ENQ\ETX\STX\NUL\DC2\EOT\234\EOT\STX\FS\SUBh This case is not meant to be used; it only exists to avoid an error\n\ \ from the Protobuf code generator.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\NUL\SOH\DC2\EOT\251\ETX\STX\ETB\n\ + \\ENQ\ENQ\ETX\STX\NUL\SOH\DC2\EOT\234\EOT\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\NUL\STX\DC2\EOT\251\ETX\SUB\ESC\n\ + \\ENQ\ENQ\ETX\STX\NUL\STX\DC2\EOT\234\EOT\SUB\ESC\n\ \T\n\ - \\EOT\ENQ\ETX\STX\SOH\DC2\EOT\253\ETX\STX\DC3\SUBF Is the symbol defined here? If not, then this is a symbol reference.\n\ + \\EOT\ENQ\ETX\STX\SOH\DC2\EOT\236\EOT\STX\DC3\SUBF Is the symbol defined here? If not, then this is a symbol reference.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SOH\SOH\DC2\EOT\253\ETX\STX\f\n\ + \\ENQ\ENQ\ETX\STX\SOH\SOH\DC2\EOT\236\EOT\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\SOH\STX\DC2\EOT\253\ETX\SI\DC2\n\ + \\ENQ\ENQ\ETX\STX\SOH\STX\DC2\EOT\236\EOT\SI\DC2\n\ \,\n\ - \\EOT\ENQ\ETX\STX\STX\DC2\EOT\255\ETX\STX\SI\SUB\RS Is the symbol imported here?\n\ + \\EOT\ENQ\ETX\STX\STX\DC2\EOT\238\EOT\STX\SI\SUB\RS Is the symbol imported here?\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\STX\SOH\DC2\EOT\255\ETX\STX\b\n\ + \\ENQ\ENQ\ETX\STX\STX\SOH\DC2\EOT\238\EOT\STX\b\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\STX\STX\DC2\EOT\255\ETX\v\SO\n\ + \\ENQ\ENQ\ETX\STX\STX\STX\DC2\EOT\238\EOT\v\SO\n\ \+\n\ - \\EOT\ENQ\ETX\STX\ETX\DC2\EOT\129\EOT\STX\DC4\SUB\GS Is the symbol written here?\n\ + \\EOT\ENQ\ETX\STX\ETX\DC2\EOT\240\EOT\STX\DC4\SUB\GS Is the symbol written here?\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ETX\SOH\DC2\EOT\129\EOT\STX\r\n\ + \\ENQ\ENQ\ETX\STX\ETX\SOH\DC2\EOT\240\EOT\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ETX\STX\DC2\EOT\129\EOT\DLE\DC3\n\ + \\ENQ\ENQ\ETX\STX\ETX\STX\DC2\EOT\240\EOT\DLE\DC3\n\ \(\n\ - \\EOT\ENQ\ETX\STX\EOT\DC2\EOT\131\EOT\STX\DC3\SUB\SUB Is the symbol read here?\n\ + \\EOT\ENQ\ETX\STX\EOT\DC2\EOT\242\EOT\STX\DC3\SUB\SUB Is the symbol read here?\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\EOT\SOH\DC2\EOT\131\EOT\STX\f\n\ + \\ENQ\ENQ\ETX\STX\EOT\SOH\DC2\EOT\242\EOT\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\EOT\STX\DC2\EOT\131\EOT\SI\DC2\n\ + \\ENQ\ENQ\ETX\STX\EOT\STX\DC2\EOT\242\EOT\SI\DC2\n\ \0\n\ - \\EOT\ENQ\ETX\STX\ENQ\DC2\EOT\133\EOT\STX\DC3\SUB\" Is the symbol in generated code?\n\ + \\EOT\ENQ\ETX\STX\ENQ\DC2\EOT\244\EOT\STX\DC3\SUB\" Is the symbol in generated code?\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ENQ\SOH\DC2\EOT\133\EOT\STX\v\n\ + \\ENQ\ENQ\ETX\STX\ENQ\SOH\DC2\EOT\244\EOT\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ENQ\STX\DC2\EOT\133\EOT\SO\DC2\n\ + \\ENQ\ENQ\ETX\STX\ENQ\STX\DC2\EOT\244\EOT\SO\DC2\n\ \+\n\ - \\EOT\ENQ\ETX\STX\ACK\DC2\EOT\135\EOT\STX\SO\SUB\GS Is the symbol in test code?\n\ + \\EOT\ENQ\ETX\STX\ACK\DC2\EOT\246\EOT\STX\SO\SUB\GS Is the symbol in test code?\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ACK\SOH\DC2\EOT\135\EOT\STX\ACK\n\ + \\ENQ\ENQ\ETX\STX\ACK\SOH\DC2\EOT\246\EOT\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\ACK\STX\DC2\EOT\135\EOT\t\r\n\ + \\ENQ\ENQ\ETX\STX\ACK\STX\DC2\EOT\246\EOT\t\r\n\ \\237\SOH\n\ - \\EOT\ENQ\ETX\STX\a\DC2\EOT\141\EOT\STX\ESC\SUB\222\SOH Is this a signature for a symbol that is defined elsewhere?\n\ + \\EOT\ENQ\ETX\STX\a\DC2\EOT\252\EOT\STX\ESC\SUB\222\SOH Is this a signature for a symbol that is defined elsewhere?\n\ \\n\ \ Applies to forward declarations for languages like C, C++\n\ \ and Objective-C, as well as `val` declarations in interface\n\ \ files in languages like SML and OCaml.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\a\SOH\DC2\EOT\141\EOT\STX\DC3\n\ + \\ENQ\ENQ\ETX\STX\a\SOH\DC2\EOT\252\EOT\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\ETX\STX\a\STX\DC2\EOT\141\EOT\SYN\SUB\n\ + \\ENQ\ENQ\ETX\STX\a\STX\DC2\EOT\252\EOT\SYN\SUB\n\ \\f\n\ - \\STX\ENQ\EOT\DC2\ACK\144\EOT\NUL\237\EOT\SOH\n\ + \\STX\ENQ\EOT\DC2\ACK\255\EOT\NUL\220\ENQ\SOH\n\ \\v\n\ - \\ETX\ENQ\EOT\SOH\DC2\EOT\144\EOT\ENQ\SI\n\ + \\ETX\ENQ\EOT\SOH\DC2\EOT\255\EOT\ENQ\SI\n\ \\v\n\ - \\ETX\ENQ\EOT\ETX\DC2\EOT\145\EOT\STX\FS\n\ + \\ETX\ENQ\EOT\ETX\DC2\EOT\128\ENQ\STX\FS\n\ \\f\n\ - \\EOT\ENQ\EOT\ETX\STX\DC2\EOT\145\EOT\STX\FS\n\ + \\EOT\ENQ\EOT\ETX\STX\DC2\EOT\128\ENQ\STX\FS\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\147\EOT\STX\FS\n\ + \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\130\ENQ\STX\FS\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\147\EOT\STX\ETB\n\ + \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\130\ENQ\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\147\EOT\SUB\ESC\n\ + \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\130\ENQ\SUB\ESC\n\ \;\n\ - \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\150\EOT\STX\SO\SUB- Comment, including comment markers and text\n\ + \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\133\ENQ\STX\SO\SUB- Comment, including comment markers and text\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\150\EOT\STX\t\n\ + \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\133\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\150\EOT\f\r\n\ + \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\133\ENQ\f\r\n\ \\ESC\n\ - \\EOT\ENQ\EOT\STX\STX\DC2\EOT\153\EOT\STX\ESC\SUB\r `;` `.` `,`\n\ + \\EOT\ENQ\EOT\STX\STX\DC2\EOT\136\ENQ\STX\ESC\SUB\r `;` `.` `,`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\153\EOT\STX\SYN\n\ + \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\136\ENQ\STX\SYN\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\153\EOT\EM\SUB\n\ + \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\136\ENQ\EM\SUB\n\ \2\n\ - \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\155\EOT\STX\EM\SUB$ (), {}, [] when used syntactically\n\ + \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\138\ENQ\STX\EM\SUB$ (), {}, [] when used syntactically\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETX\SOH\DC2\EOT\155\EOT\STX\DC4\n\ + \\ENQ\ENQ\EOT\STX\ETX\SOH\DC2\EOT\138\ENQ\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\155\EOT\ETB\CAN\n\ + \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\138\ENQ\ETB\CAN\n\ \5\n\ - \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\158\EOT\STX\SO\SUB' `if`, `else`, `return`, `class`, etc.\n\ + \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\141\ENQ\STX\SO\SUB' `if`, `else`, `return`, `class`, etc.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EOT\SOH\DC2\EOT\158\EOT\STX\t\n\ + \\ENQ\ENQ\EOT\STX\EOT\SOH\DC2\EOT\141\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\158\EOT\f\r\n\ + \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\141\ENQ\f\r\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\ENQ\DC2\EOT\159\EOT\STX*\n\ + \\EOT\ENQ\EOT\STX\ENQ\DC2\EOT\142\ENQ\STX*\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ENQ\SOH\DC2\EOT\159\EOT\STX\DC3\n\ + \\ENQ\ENQ\EOT\STX\ENQ\SOH\DC2\EOT\142\ENQ\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ENQ\STX\DC2\EOT\159\EOT\SYN\ETB\n\ + \\ENQ\ENQ\EOT\STX\ENQ\STX\DC2\EOT\142\ENQ\SYN\ETB\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ENQ\ETX\DC2\EOT\159\EOT\CAN)\n\ + \\ENQ\ENQ\EOT\STX\ENQ\ETX\DC2\EOT\142\ENQ\CAN)\n\ \\SO\n\ - \\ACK\ENQ\EOT\STX\ENQ\ETX\SOH\DC2\EOT\159\EOT\EM(\n\ + \\ACK\ENQ\EOT\STX\ENQ\ETX\SOH\DC2\EOT\142\ENQ\EM(\n\ \\RS\n\ - \\EOT\ENQ\EOT\STX\ACK\DC2\EOT\162\EOT\STX\EM\SUB\DLE `+`, `*`, etc.\n\ + \\EOT\ENQ\EOT\STX\ACK\DC2\EOT\145\ENQ\STX\EM\SUB\DLE `+`, `*`, etc.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ACK\SOH\DC2\EOT\162\EOT\STX\DC4\n\ + \\ENQ\ENQ\EOT\STX\ACK\SOH\DC2\EOT\145\ENQ\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ACK\STX\DC2\EOT\162\EOT\ETB\CAN\n\ + \\ENQ\ENQ\EOT\STX\ACK\STX\DC2\EOT\145\ENQ\ETB\CAN\n\ \X\n\ - \\EOT\ENQ\EOT\STX\a\DC2\EOT\165\EOT\STX\DC1\SUBJ non-specific catch-all for any identifier not better described elsewhere\n\ + \\EOT\ENQ\EOT\STX\a\DC2\EOT\148\ENQ\STX\DC1\SUBJ non-specific catch-all for any identifier not better described elsewhere\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\a\SOH\DC2\EOT\165\EOT\STX\f\n\ + \\ENQ\ENQ\EOT\STX\a\SOH\DC2\EOT\148\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\a\STX\DC2\EOT\165\EOT\SI\DLE\n\ + \\ENQ\ENQ\EOT\STX\a\STX\DC2\EOT\148\ENQ\SI\DLE\n\ \N\n\ - \\EOT\ENQ\EOT\STX\b\DC2\EOT\167\EOT\STX\CAN\SUB@ Identifiers builtin to the language: `min`, `print` in Python.\n\ + \\EOT\ENQ\EOT\STX\b\DC2\EOT\150\ENQ\STX\CAN\SUB@ Identifiers builtin to the language: `min`, `print` in Python.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\b\SOH\DC2\EOT\167\EOT\STX\DC3\n\ + \\ENQ\ENQ\EOT\STX\b\SOH\DC2\EOT\150\ENQ\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\b\STX\DC2\EOT\167\EOT\SYN\ETB\n\ + \\ENQ\ENQ\EOT\STX\b\STX\DC2\EOT\150\ENQ\SYN\ETB\n\ \[\n\ - \\EOT\ENQ\EOT\STX\t\DC2\EOT\169\EOT\STX\NAK\SUBM Identifiers representing `null`-like values: `None` in Python, `nil` in Go.\n\ + \\EOT\ENQ\EOT\STX\t\DC2\EOT\152\ENQ\STX\NAK\SUBM Identifiers representing `null`-like values: `None` in Python, `nil` in Go.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\t\SOH\DC2\EOT\169\EOT\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX\t\SOH\DC2\EOT\152\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\t\STX\DC2\EOT\169\EOT\DC3\DC4\n\ + \\ENQ\ENQ\EOT\STX\t\STX\DC2\EOT\152\ENQ\DC3\DC4\n\ \.\n\ \\EOT\ENQ\EOT\STX\n\ - \\DC2\EOT\171\EOT\STX\EM\SUB `xyz` in `const xyz = \"hello\"`\n\ + \\DC2\EOT\154\ENQ\STX\EM\SUB `xyz` in `const xyz = \"hello\"`\n\ \\n\ \\r\n\ \\ENQ\ENQ\EOT\STX\n\ - \\SOH\DC2\EOT\171\EOT\STX\DC4\n\ + \\SOH\DC2\EOT\154\ENQ\STX\DC4\n\ \\r\n\ \\ENQ\ENQ\EOT\STX\n\ - \\STX\DC2\EOT\171\EOT\ETB\CAN\n\ + \\STX\DC2\EOT\154\ENQ\ETB\CAN\n\ \'\n\ - \\EOT\ENQ\EOT\STX\v\DC2\EOT\173\EOT\STX\US\SUB\EM `var X = \"hello\"` in Go\n\ + \\EOT\ENQ\EOT\STX\v\DC2\EOT\156\ENQ\STX\US\SUB\EM `var X = \"hello\"` in Go\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\v\SOH\DC2\EOT\173\EOT\STX\EM\n\ + \\ENQ\ENQ\EOT\STX\v\SOH\DC2\EOT\156\ENQ\STX\EM\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\v\STX\DC2\EOT\173\EOT\FS\RS\n\ + \\ENQ\ENQ\EOT\STX\v\STX\DC2\EOT\156\ENQ\FS\RS\n\ \3\n\ - \\EOT\ENQ\EOT\STX\f\DC2\EOT\175\EOT\STX\ESC\SUB% Parameter definition and references\n\ + \\EOT\ENQ\EOT\STX\f\DC2\EOT\158\ENQ\STX\ESC\SUB% Parameter definition and references\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\f\SOH\DC2\EOT\175\EOT\STX\NAK\n\ + \\ENQ\ENQ\EOT\STX\f\SOH\DC2\EOT\158\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\f\STX\DC2\EOT\175\EOT\CAN\SUB\n\ + \\ENQ\ENQ\EOT\STX\f\STX\DC2\EOT\158\ENQ\CAN\SUB\n\ \X\n\ - \\EOT\ENQ\EOT\STX\r\DC2\EOT\177\EOT\STX\ETB\SUBJ Identifiers for variable definitions and references within a local scope\n\ + \\EOT\ENQ\EOT\STX\r\DC2\EOT\160\ENQ\STX\ETB\SUBJ Identifiers for variable definitions and references within a local scope\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\r\SOH\DC2\EOT\177\EOT\STX\DC1\n\ + \\ENQ\ENQ\EOT\STX\r\SOH\DC2\EOT\160\ENQ\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\r\STX\DC2\EOT\177\EOT\DC4\SYN\n\ + \\ENQ\ENQ\EOT\STX\r\STX\DC2\EOT\160\ENQ\DC4\SYN\n\ \K\n\ - \\EOT\ENQ\EOT\STX\SO\DC2\EOT\179\EOT\STX\SUB\SUB= Identifiers that shadow other identifiers in an outer scope\n\ + \\EOT\ENQ\EOT\STX\SO\DC2\EOT\162\ENQ\STX\SUB\SUB= Identifiers that shadow other identifiers in an outer scope\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SO\SOH\DC2\EOT\179\EOT\STX\DC4\n\ + \\ENQ\ENQ\EOT\STX\SO\SOH\DC2\EOT\162\ENQ\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SO\STX\DC2\EOT\179\EOT\ETB\EM\n\ + \\ENQ\ENQ\EOT\STX\SO\STX\DC2\EOT\162\ENQ\ETB\EM\n\ \\205\SOH\n\ - \\EOT\ENQ\EOT\STX\SI\DC2\EOT\184\EOT\STX\ESC\SUB\190\SOH Identifier representing a unit of code abstraction and/or namespacing.\n\ + \\EOT\ENQ\EOT\STX\SI\DC2\EOT\167\ENQ\STX\ESC\SUB\190\SOH Identifier representing a unit of code abstraction and/or namespacing.\n\ \\n\ \ NOTE: This corresponds to a package in Go and JVM languages,\n\ \ and a module in languages like Python and JavaScript.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SI\SOH\DC2\EOT\184\EOT\STX\NAK\n\ + \\ENQ\ENQ\EOT\STX\SI\SOH\DC2\EOT\167\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SI\STX\DC2\EOT\184\EOT\CAN\SUB\n\ + \\ENQ\ENQ\EOT\STX\SI\STX\DC2\EOT\167\ENQ\CAN\SUB\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\DLE\DC2\EOT\185\EOT\STX*\n\ + \\EOT\ENQ\EOT\STX\DLE\DC2\EOT\168\ENQ\STX*\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DLE\SOH\DC2\EOT\185\EOT\STX\DC2\n\ + \\ENQ\ENQ\EOT\STX\DLE\SOH\DC2\EOT\168\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DLE\STX\DC2\EOT\185\EOT\NAK\ETB\n\ + \\ENQ\ENQ\EOT\STX\DLE\STX\DC2\EOT\168\ENQ\NAK\ETB\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DLE\ETX\DC2\EOT\185\EOT\CAN)\n\ + \\ENQ\ENQ\EOT\STX\DLE\ETX\DC2\EOT\168\ENQ\CAN)\n\ \\SO\n\ - \\ACK\ENQ\EOT\STX\DLE\ETX\SOH\DC2\EOT\185\EOT\EM(\n\ + \\ACK\ENQ\EOT\STX\DLE\ETX\SOH\DC2\EOT\168\ENQ\EM(\n\ \4\n\ - \\EOT\ENQ\EOT\STX\DC1\DC2\EOT\188\EOT\STX\SUB\SUB& Function references, including calls\n\ + \\EOT\ENQ\EOT\STX\DC1\DC2\EOT\171\ENQ\STX\SUB\SUB& Function references, including calls\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC1\SOH\DC2\EOT\188\EOT\STX\DC4\n\ + \\ENQ\ENQ\EOT\STX\DC1\SOH\DC2\EOT\171\ENQ\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC1\STX\DC2\EOT\188\EOT\ETB\EM\n\ + \\ENQ\ENQ\EOT\STX\DC1\STX\DC2\EOT\171\ENQ\ETB\EM\n\ \(\n\ - \\EOT\ENQ\EOT\STX\DC2\DC2\EOT\190\EOT\STX$\SUB\SUB Function definition only\n\ + \\EOT\ENQ\EOT\STX\DC2\DC2\EOT\173\ENQ\STX$\SUB\SUB Function definition only\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC2\SOH\DC2\EOT\190\EOT\STX\RS\n\ + \\ENQ\ENQ\EOT\STX\DC2\SOH\DC2\EOT\173\ENQ\STX\RS\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC2\STX\DC2\EOT\190\EOT!#\n\ + \\ENQ\ENQ\EOT\STX\DC2\STX\DC2\EOT\173\ENQ!#\n\ \7\n\ - \\EOT\ENQ\EOT\STX\DC3\DC2\EOT\193\EOT\STX\ETB\SUB) Macro references, including invocations\n\ + \\EOT\ENQ\EOT\STX\DC3\DC2\EOT\176\ENQ\STX\ETB\SUB) Macro references, including invocations\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC3\SOH\DC2\EOT\193\EOT\STX\DC1\n\ + \\ENQ\ENQ\EOT\STX\DC3\SOH\DC2\EOT\176\ENQ\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC3\STX\DC2\EOT\193\EOT\DC4\SYN\n\ + \\ENQ\ENQ\EOT\STX\DC3\STX\DC2\EOT\176\ENQ\DC4\SYN\n\ \%\n\ - \\EOT\ENQ\EOT\STX\DC4\DC2\EOT\195\EOT\STX!\SUB\ETB Macro definition only\n\ + \\EOT\ENQ\EOT\STX\DC4\DC2\EOT\178\ENQ\STX!\SUB\ETB Macro definition only\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC4\SOH\DC2\EOT\195\EOT\STX\ESC\n\ + \\ENQ\ENQ\EOT\STX\DC4\SOH\DC2\EOT\178\ENQ\STX\ESC\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC4\STX\DC2\EOT\195\EOT\RS \n\ + \\ENQ\ENQ\EOT\STX\DC4\STX\DC2\EOT\178\ENQ\RS \n\ \!\n\ - \\EOT\ENQ\EOT\STX\NAK\DC2\EOT\198\EOT\STX\SYN\SUB\DC3 non-builtin types\n\ + \\EOT\ENQ\EOT\STX\NAK\DC2\EOT\181\ENQ\STX\SYN\SUB\DC3 non-builtin types\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NAK\SOH\DC2\EOT\198\EOT\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX\NAK\SOH\DC2\EOT\181\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NAK\STX\DC2\EOT\198\EOT\DC3\NAK\n\ + \\ENQ\ENQ\EOT\STX\NAK\STX\DC2\EOT\181\ENQ\DC3\NAK\n\ \K\n\ - \\EOT\ENQ\EOT\STX\SYN\DC2\EOT\200\EOT\STX\GS\SUB= builtin types only, such as `str` for Python or `int` in Go\n\ + \\EOT\ENQ\EOT\STX\SYN\DC2\EOT\183\ENQ\STX\GS\SUB= builtin types only, such as `str` for Python or `int` in Go\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SYN\SOH\DC2\EOT\200\EOT\STX\ETB\n\ + \\ENQ\ENQ\EOT\STX\SYN\SOH\DC2\EOT\183\ENQ\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SYN\STX\DC2\EOT\200\EOT\SUB\FS\n\ + \\ENQ\ENQ\EOT\STX\SYN\STX\DC2\EOT\183\ENQ\SUB\FS\n\ \7\n\ - \\EOT\ENQ\EOT\STX\ETB\DC2\EOT\203\EOT\STX\ESC\SUB) Python decorators, c-like __attribute__\n\ + \\EOT\ENQ\EOT\STX\ETB\DC2\EOT\186\ENQ\STX\ESC\SUB) Python decorators, c-like __attribute__\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETB\SOH\DC2\EOT\203\EOT\STX\NAK\n\ + \\ENQ\ENQ\EOT\STX\ETB\SOH\DC2\EOT\186\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETB\STX\DC2\EOT\203\EOT\CAN\SUB\n\ + \\ENQ\ENQ\EOT\STX\ETB\STX\DC2\EOT\186\ENQ\CAN\SUB\n\ \\DC4\n\ - \\EOT\ENQ\EOT\STX\CAN\DC2\EOT\206\EOT\STX\DC3\SUB\ACK `\\b`\n\ + \\EOT\ENQ\EOT\STX\CAN\DC2\EOT\189\ENQ\STX\DC3\SUB\ACK `\\b`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\CAN\SOH\DC2\EOT\206\EOT\STX\r\n\ + \\ENQ\ENQ\EOT\STX\CAN\SOH\DC2\EOT\189\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\CAN\STX\DC2\EOT\206\EOT\DLE\DC2\n\ + \\ENQ\ENQ\EOT\STX\CAN\STX\DC2\EOT\189\ENQ\DLE\DC2\n\ \\CAN\n\ - \\EOT\ENQ\EOT\STX\EM\DC2\EOT\208\EOT\STX\NAK\SUB\n\ + \\EOT\ENQ\EOT\STX\EM\DC2\EOT\191\ENQ\STX\NAK\SUB\n\ \ `*`, `+`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EM\SOH\DC2\EOT\208\EOT\STX\SI\n\ + \\ENQ\ENQ\EOT\STX\EM\SOH\DC2\EOT\191\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EM\STX\DC2\EOT\208\EOT\DC2\DC4\n\ + \\ENQ\ENQ\EOT\STX\EM\STX\DC2\EOT\191\ENQ\DC2\DC4\n\ \\DC3\n\ - \\EOT\ENQ\EOT\STX\SUB\DC2\EOT\210\EOT\STX\NAK\SUB\ENQ `.`\n\ + \\EOT\ENQ\EOT\STX\SUB\DC2\EOT\193\ENQ\STX\NAK\SUB\ENQ `.`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SUB\SOH\DC2\EOT\210\EOT\STX\SI\n\ + \\ENQ\ENQ\EOT\STX\SUB\SOH\DC2\EOT\193\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SUB\STX\DC2\EOT\210\EOT\DC2\DC4\n\ + \\ENQ\ENQ\EOT\STX\SUB\STX\DC2\EOT\193\ENQ\DC2\DC4\n\ \\"\n\ - \\EOT\ENQ\EOT\STX\ESC\DC2\EOT\212\EOT\STX\SYN\SUB\DC4 `(`, `)`, `[`, `]`\n\ + \\EOT\ENQ\EOT\STX\ESC\DC2\EOT\195\ENQ\STX\SYN\SUB\DC4 `(`, `)`, `[`, `]`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ESC\SOH\DC2\EOT\212\EOT\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX\ESC\SOH\DC2\EOT\195\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ESC\STX\DC2\EOT\212\EOT\DC3\NAK\n\ + \\ENQ\ENQ\EOT\STX\ESC\STX\DC2\EOT\195\ENQ\DC3\NAK\n\ \\CAN\n\ - \\EOT\ENQ\EOT\STX\FS\DC2\EOT\214\EOT\STX\DC1\SUB\n\ + \\EOT\ENQ\EOT\STX\FS\DC2\EOT\197\ENQ\STX\DC1\SUB\n\ \ `|`, `-`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\FS\SOH\DC2\EOT\214\EOT\STX\v\n\ + \\ENQ\ENQ\EOT\STX\FS\SOH\DC2\EOT\197\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\FS\STX\DC2\EOT\214\EOT\SO\DLE\n\ + \\ENQ\ENQ\EOT\STX\FS\STX\DC2\EOT\197\ENQ\SO\DLE\n\ \0\n\ - \\EOT\ENQ\EOT\STX\GS\DC2\EOT\217\EOT\STX\NAK\SUB\" Literal strings: \"Hello, world!\"\n\ + \\EOT\ENQ\EOT\STX\GS\DC2\EOT\200\ENQ\STX\NAK\SUB\" Literal strings: \"Hello, world!\"\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\GS\SOH\DC2\EOT\217\EOT\STX\SI\n\ + \\ENQ\ENQ\EOT\STX\GS\SOH\DC2\EOT\200\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\GS\STX\DC2\EOT\217\EOT\DC2\DC4\n\ + \\ENQ\ENQ\EOT\STX\GS\STX\DC2\EOT\200\ENQ\DC2\DC4\n\ \-\n\ - \\EOT\ENQ\EOT\STX\RS\DC2\EOT\219\EOT\STX\ESC\SUB\US non-regex escapes: \"\\t\", \"\\n\"\n\ + \\EOT\ENQ\EOT\STX\RS\DC2\EOT\202\ENQ\STX\ESC\SUB\US non-regex escapes: \"\\t\", \"\\n\"\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\RS\SOH\DC2\EOT\219\EOT\STX\NAK\n\ + \\ENQ\ENQ\EOT\STX\RS\SOH\DC2\EOT\202\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\RS\STX\DC2\EOT\219\EOT\CAN\SUB\n\ + \\ENQ\ENQ\EOT\STX\RS\STX\DC2\EOT\202\ENQ\CAN\SUB\n\ \_\n\ - \\EOT\ENQ\EOT\STX\US\DC2\EOT\221\EOT\STX\FS\SUBQ datetimes within strings, special words within a string, `{}` in format strings\n\ + \\EOT\ENQ\EOT\STX\US\DC2\EOT\204\ENQ\STX\FS\SUBQ datetimes within strings, special words within a string, `{}` in format strings\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\US\SOH\DC2\EOT\221\EOT\STX\SYN\n\ + \\ENQ\ENQ\EOT\STX\US\SOH\DC2\EOT\204\ENQ\STX\SYN\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\US\STX\DC2\EOT\221\EOT\EM\ESC\n\ + \\ENQ\ENQ\EOT\STX\US\STX\DC2\EOT\204\ENQ\EM\ESC\n\ \G\n\ - \\EOT\ENQ\EOT\STX \DC2\EOT\223\EOT\STX\CAN\SUB9 \"key\" in { \"key\": \"value\" }, useful for example in JSON\n\ + \\EOT\ENQ\EOT\STX \DC2\EOT\206\ENQ\STX\CAN\SUB9 \"key\" in { \"key\": \"value\" }, useful for example in JSON\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX \SOH\DC2\EOT\223\EOT\STX\DC2\n\ + \\ENQ\ENQ\EOT\STX \SOH\DC2\EOT\206\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX \STX\DC2\EOT\223\EOT\NAK\ETB\n\ + \\ENQ\ENQ\EOT\STX \STX\DC2\EOT\206\ENQ\NAK\ETB\n\ \V\n\ - \\EOT\ENQ\EOT\STX!\DC2\EOT\225\EOT\STX\CAN\SUBH 'c' or similar, in languages that differentiate strings and characters\n\ + \\EOT\ENQ\EOT\STX!\DC2\EOT\208\ENQ\STX\CAN\SUBH 'c' or similar, in languages that differentiate strings and characters\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX!\SOH\DC2\EOT\225\EOT\STX\DC2\n\ + \\ENQ\ENQ\EOT\STX!\SOH\DC2\EOT\208\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX!\STX\DC2\EOT\225\EOT\NAK\ETB\n\ + \\ENQ\ENQ\EOT\STX!\STX\DC2\EOT\208\ENQ\NAK\ETB\n\ \9\n\ - \\EOT\ENQ\EOT\STX\"\DC2\EOT\227\EOT\STX\SYN\SUB+ Literal numbers, both floats and integers\n\ + \\EOT\ENQ\EOT\STX\"\DC2\EOT\210\ENQ\STX\SYN\SUB+ Literal numbers, both floats and integers\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\"\SOH\DC2\EOT\227\EOT\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX\"\SOH\DC2\EOT\210\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\"\STX\DC2\EOT\227\EOT\DC3\NAK\n\ + \\ENQ\ENQ\EOT\STX\"\STX\DC2\EOT\210\ENQ\DC3\NAK\n\ \\US\n\ - \\EOT\ENQ\EOT\STX#\DC2\EOT\229\EOT\STX\SYN\SUB\DC1 `true`, `false`\n\ + \\EOT\ENQ\EOT\STX#\DC2\EOT\212\ENQ\STX\SYN\SUB\DC1 `true`, `false`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX#\SOH\DC2\EOT\229\EOT\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX#\SOH\DC2\EOT\212\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX#\STX\DC2\EOT\229\EOT\DC3\NAK\n\ + \\ENQ\ENQ\EOT\STX#\STX\DC2\EOT\212\ENQ\DC3\NAK\n\ \&\n\ - \\EOT\ENQ\EOT\STX$\DC2\EOT\232\EOT\STX\v\SUB\CAN Used for XML-like tags\n\ + \\EOT\ENQ\EOT\STX$\DC2\EOT\215\ENQ\STX\v\SUB\CAN Used for XML-like tags\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX$\SOH\DC2\EOT\232\EOT\STX\ENQ\n\ + \\ENQ\ENQ\EOT\STX$\SOH\DC2\EOT\215\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX$\STX\DC2\EOT\232\EOT\b\n\ + \\ENQ\ENQ\EOT\STX$\STX\DC2\EOT\215\ENQ\b\n\ \\n\ \/\n\ - \\EOT\ENQ\EOT\STX%\DC2\EOT\234\EOT\STX\DC4\SUB! Attribute name in XML-like tags\n\ + \\EOT\ENQ\EOT\STX%\DC2\EOT\217\ENQ\STX\DC4\SUB! Attribute name in XML-like tags\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX%\SOH\DC2\EOT\234\EOT\STX\SO\n\ + \\ENQ\ENQ\EOT\STX%\SOH\DC2\EOT\217\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX%\STX\DC2\EOT\234\EOT\DC1\DC3\n\ + \\ENQ\ENQ\EOT\STX%\STX\DC2\EOT\217\ENQ\DC1\DC3\n\ \,\n\ - \\EOT\ENQ\EOT\STX&\DC2\EOT\236\EOT\STX\DC4\SUB\RS Delimiters for XML-like tags\n\ + \\EOT\ENQ\EOT\STX&\DC2\EOT\219\ENQ\STX\DC4\SUB\RS Delimiters for XML-like tags\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX&\SOH\DC2\EOT\236\EOT\STX\SO\n\ + \\ENQ\ENQ\EOT\STX&\SOH\DC2\EOT\219\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX&\STX\DC2\EOT\236\EOT\DC1\DC3\n\ + \\ENQ\ENQ\EOT\STX&\STX\DC2\EOT\219\ENQ\DC1\DC3\n\ \\249\SOH\n\ - \\STX\EOT\t\DC2\ACK\244\EOT\NUL\213\ENQ\SOH\SUB\234\SOH Occurrence associates a source position with a symbol and/or highlighting\n\ + \\STX\EOT\n\ + \\DC2\ACK\227\ENQ\NUL\196\ACK\SOH\SUB\234\SOH Occurrence associates a source position with a symbol and/or highlighting\n\ \ information.\n\ \\n\ \ If possible, indexers should try to bundle logically related information\n\ \ across occurrences into a single occurrence to reduce payload sizes.\n\ \\n\ \\v\n\ - \\ETX\EOT\t\SOH\DC2\EOT\244\EOT\b\DC2\n\ + \\ETX\EOT\n\ + \\SOH\DC2\EOT\227\ENQ\b\DC2\n\ \\232\b\n\ - \\EOT\EOT\t\STX\NUL\DC2\EOT\140\ENQ\STX\ESC\SUB\217\b Half-open [start, end) range of this occurrence. Must be exactly three or four\n\ + \\EOT\EOT\n\ + \\STX\NUL\DC2\EOT\251\ENQ\STX\ESC\SUB\217\b Half-open [start, end) range of this occurrence. Must be exactly three or four\n\ \ elements:\n\ \\n\ \ - Four elements: `[startLine, startCharacter, endLine, endCharacter]`\n\ @@ -8178,36 +8659,49 @@ packedFileDescriptor \ improvements make up for it.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\EOT\DC2\EOT\140\ENQ\STX\n\ + \\ENQ\EOT\n\ + \\STX\NUL\EOT\DC2\EOT\251\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\140\ENQ\v\DLE\n\ + \\ENQ\EOT\n\ + \\STX\NUL\ENQ\DC2\EOT\251\ENQ\v\DLE\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\140\ENQ\DC1\SYN\n\ + \\ENQ\EOT\n\ + \\STX\NUL\SOH\DC2\EOT\251\ENQ\DC1\SYN\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\140\ENQ\EM\SUB\n\ + \\ENQ\EOT\n\ + \\STX\NUL\ETX\DC2\EOT\251\ENQ\EM\SUB\n\ \\138\SOH\n\ - \\EOT\EOT\t\STX\SOH\DC2\EOT\143\ENQ\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\ + \\EOT\EOT\n\ + \\STX\SOH\DC2\EOT\254\ENQ\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\ \ `SymbolInformation.symbol` for how to format symbols as strings.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\143\ENQ\STX\b\n\ + \\ENQ\EOT\n\ + \\STX\SOH\ENQ\DC2\EOT\254\ENQ\STX\b\n\ \\r\n\ - \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\143\ENQ\t\SI\n\ + \\ENQ\EOT\n\ + \\STX\SOH\SOH\DC2\EOT\254\ENQ\t\SI\n\ \\r\n\ - \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\143\ENQ\DC2\DC3\n\ + \\ENQ\EOT\n\ + \\STX\SOH\ETX\DC2\EOT\254\ENQ\DC2\DC3\n\ \\151\SOH\n\ - \\EOT\EOT\t\STX\STX\DC2\EOT\146\ENQ\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\ + \\EOT\EOT\n\ + \\STX\STX\DC2\EOT\129\ACK\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\ \ See `SymbolRole`'s documentation for how to read and write this field.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\146\ENQ\STX\a\n\ + \\ENQ\EOT\n\ + \\STX\STX\ENQ\DC2\EOT\129\ACK\STX\a\n\ \\r\n\ - \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\146\ENQ\b\DC4\n\ + \\ENQ\EOT\n\ + \\STX\STX\SOH\DC2\EOT\129\ACK\b\DC4\n\ \\r\n\ - \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\146\ENQ\ETB\CAN\n\ + \\ENQ\EOT\n\ + \\STX\STX\ETX\DC2\EOT\129\ACK\ETB\CAN\n\ \\241\ETX\n\ - \\EOT\EOT\t\STX\ETX\DC2\EOT\155\ENQ\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\ + \\EOT\EOT\n\ + \\STX\ETX\DC2\EOT\138\ACK\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\ \ empty, the `Symbol.documentation` field is used instead. One example\n\ \ where this field might be useful is when the symbol represents a generic\n\ \ function (with abstract type parameters such as `List`) and at this\n\ @@ -8217,37 +8711,51 @@ packedFileDescriptor \ which commonly allow for type-changing assignment.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\EOT\DC2\EOT\155\ENQ\STX\n\ + \\ENQ\EOT\n\ + \\STX\ETX\EOT\DC2\EOT\138\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\ENQ\DC2\EOT\155\ENQ\v\DC1\n\ + \\ENQ\EOT\n\ + \\STX\ETX\ENQ\DC2\EOT\138\ACK\v\DC1\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\155\ENQ\DC2(\n\ + \\ENQ\EOT\n\ + \\STX\ETX\SOH\DC2\EOT\138\ACK\DC2(\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\155\ENQ+,\n\ + \\ENQ\EOT\n\ + \\STX\ETX\ETX\DC2\EOT\138\ACK+,\n\ \X\n\ - \\EOT\EOT\t\STX\EOT\DC2\EOT\157\ENQ\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\ + \\EOT\EOT\n\ + \\STX\EOT\DC2\EOT\140\ACK\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\EOT\ACK\DC2\EOT\157\ENQ\STX\f\n\ + \\ENQ\EOT\n\ + \\STX\EOT\ACK\DC2\EOT\140\ACK\STX\f\n\ \\r\n\ - \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\157\ENQ\r\CAN\n\ + \\ENQ\EOT\n\ + \\STX\EOT\SOH\DC2\EOT\140\ACK\r\CAN\n\ \\r\n\ - \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\157\ENQ\ESC\FS\n\ + \\ENQ\EOT\n\ + \\STX\EOT\ETX\DC2\EOT\140\ACK\ESC\FS\n\ \W\n\ - \\EOT\EOT\t\STX\ENQ\DC2\EOT\159\ENQ\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\ + \\EOT\EOT\n\ + \\STX\ENQ\DC2\EOT\142\ACK\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\EOT\DC2\EOT\159\ENQ\STX\n\ + \\ENQ\EOT\n\ + \\STX\ENQ\EOT\DC2\EOT\142\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\ACK\DC2\EOT\159\ENQ\v\NAK\n\ + \\ENQ\EOT\n\ + \\STX\ENQ\ACK\DC2\EOT\142\ACK\v\NAK\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\SOH\DC2\EOT\159\ENQ\SYN!\n\ + \\ENQ\EOT\n\ + \\STX\ENQ\SOH\DC2\EOT\142\ACK\SYN!\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\ETX\DC2\EOT\159\ENQ$%\n\ + \\ENQ\EOT\n\ + \\STX\ENQ\ETX\DC2\EOT\142\ACK$%\n\ \\183\SO\n\ - \\EOT\EOT\t\STX\ACK\DC2\EOT\212\ENQ\STX%\SUB\168\SO (optional) Using the same encoding as the sibling `range` field, half-open\n\ + \\EOT\EOT\n\ + \\STX\ACK\DC2\EOT\195\ACK\STX%\SUB\168\SO (optional) Using the same encoding as the sibling `range` field, half-open\n\ \ source range of the nearest non-trivial enclosing AST node. This range must\n\ \ enclose the `range` field. Example applications that make use of the\n\ \ enclosing_range field:\n\ @@ -8301,152 +8809,133 @@ packedFileDescriptor \ ```\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\EOT\DC2\EOT\212\ENQ\STX\n\ + \\ENQ\EOT\n\ + \\STX\ACK\EOT\DC2\EOT\195\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\ENQ\DC2\EOT\212\ENQ\v\DLE\n\ + \\ENQ\EOT\n\ + \\STX\ACK\ENQ\DC2\EOT\195\ACK\v\DLE\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\SOH\DC2\EOT\212\ENQ\DC1 \n\ + \\ENQ\EOT\n\ + \\STX\ACK\SOH\DC2\EOT\195\ACK\DC1 \n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\ETX\DC2\EOT\212\ENQ#$\n\ + \\ENQ\EOT\n\ + \\STX\ACK\ETX\DC2\EOT\195\ACK#$\n\ \w\n\ - \\STX\EOT\n\ - \\DC2\ACK\217\ENQ\NUL\228\ENQ\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\ + \\STX\EOT\v\DC2\ACK\200\ACK\NUL\211\ACK\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\ \ reported for a document.\n\ \\n\ \\v\n\ - \\ETX\EOT\n\ - \\SOH\DC2\EOT\217\ENQ\b\DC2\n\ + \\ETX\EOT\v\SOH\DC2\EOT\200\ACK\b\DC2\n\ \W\n\ - \\EOT\EOT\n\ - \\STX\NUL\DC2\EOT\219\ENQ\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\ + \\EOT\EOT\v\STX\NUL\DC2\EOT\202\ACK\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\NUL\ACK\DC2\EOT\219\ENQ\STX\n\ + \\ENQ\EOT\v\STX\NUL\ACK\DC2\EOT\202\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\NUL\SOH\DC2\EOT\219\ENQ\v\DC3\n\ + \\ENQ\EOT\v\STX\NUL\SOH\DC2\EOT\202\ACK\v\DC3\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\NUL\ETX\DC2\EOT\219\ENQ\SYN\ETB\n\ + \\ENQ\EOT\v\STX\NUL\ETX\DC2\EOT\202\ACK\SYN\ETB\n\ \]\n\ - \\EOT\EOT\n\ - \\STX\SOH\DC2\EOT\221\ENQ\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\ + \\EOT\EOT\v\STX\SOH\DC2\EOT\204\ACK\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\SOH\ENQ\DC2\EOT\221\ENQ\STX\b\n\ + \\ENQ\EOT\v\STX\SOH\ENQ\DC2\EOT\204\ACK\STX\b\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\SOH\SOH\DC2\EOT\221\ENQ\t\r\n\ + \\ENQ\EOT\v\STX\SOH\SOH\DC2\EOT\204\ACK\t\r\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\SOH\ETX\DC2\EOT\221\ENQ\DLE\DC1\n\ + \\ENQ\EOT\v\STX\SOH\ETX\DC2\EOT\204\ACK\DLE\DC1\n\ \+\n\ - \\EOT\EOT\n\ - \\STX\STX\DC2\EOT\223\ENQ\STX\NAK\SUB\GS Message of this diagnostic.\n\ + \\EOT\EOT\v\STX\STX\DC2\EOT\206\ACK\STX\NAK\SUB\GS Message of this diagnostic.\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\STX\ENQ\DC2\EOT\223\ENQ\STX\b\n\ + \\ENQ\EOT\v\STX\STX\ENQ\DC2\EOT\206\ACK\STX\b\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\STX\SOH\DC2\EOT\223\ENQ\t\DLE\n\ + \\ENQ\EOT\v\STX\STX\SOH\DC2\EOT\206\ACK\t\DLE\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\STX\ETX\DC2\EOT\223\ENQ\DC3\DC4\n\ + \\ENQ\EOT\v\STX\STX\ETX\DC2\EOT\206\ACK\DC3\DC4\n\ \~\n\ - \\EOT\EOT\n\ - \\STX\ETX\DC2\EOT\226\ENQ\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\ + \\EOT\EOT\v\STX\ETX\DC2\EOT\209\ACK\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\ \ 'typescript' or 'super lint'.\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\ETX\ENQ\DC2\EOT\226\ENQ\STX\b\n\ + \\ENQ\EOT\v\STX\ETX\ENQ\DC2\EOT\209\ACK\STX\b\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\ETX\SOH\DC2\EOT\226\ENQ\t\SI\n\ + \\ENQ\EOT\v\STX\ETX\SOH\DC2\EOT\209\ACK\t\SI\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\ETX\ETX\DC2\EOT\226\ENQ\DC2\DC3\n\ + \\ENQ\EOT\v\STX\ETX\ETX\DC2\EOT\209\ACK\DC2\DC3\n\ \\f\n\ - \\EOT\EOT\n\ - \\STX\EOT\DC2\EOT\227\ENQ\STX\"\n\ + \\EOT\EOT\v\STX\EOT\DC2\EOT\210\ACK\STX\"\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\EOT\EOT\DC2\EOT\227\ENQ\STX\n\ + \\ENQ\EOT\v\STX\EOT\EOT\DC2\EOT\210\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\EOT\ACK\DC2\EOT\227\ENQ\v\CAN\n\ + \\ENQ\EOT\v\STX\EOT\ACK\DC2\EOT\210\ACK\v\CAN\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\EOT\SOH\DC2\EOT\227\ENQ\EM\GS\n\ + \\ENQ\EOT\v\STX\EOT\SOH\DC2\EOT\210\ACK\EM\GS\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\EOT\ETX\DC2\EOT\227\ENQ !\n\ + \\ENQ\EOT\v\STX\EOT\ETX\DC2\EOT\210\ACK !\n\ \\f\n\ - \\STX\ENQ\ENQ\DC2\ACK\230\ENQ\NUL\236\ENQ\SOH\n\ + \\STX\ENQ\ENQ\DC2\ACK\213\ACK\NUL\219\ACK\SOH\n\ \\v\n\ - \\ETX\ENQ\ENQ\SOH\DC2\EOT\230\ENQ\ENQ\r\n\ + \\ETX\ENQ\ENQ\SOH\DC2\EOT\213\ACK\ENQ\r\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\231\ENQ\STX\SUB\n\ + \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\214\ACK\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\231\ENQ\STX\NAK\n\ + \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\214\ACK\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\231\ENQ\CAN\EM\n\ + \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\214\ACK\CAN\EM\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\232\ENQ\STX\f\n\ + \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\215\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\232\ENQ\STX\a\n\ + \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\215\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\232\ENQ\n\ + \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\215\ACK\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\233\ENQ\STX\SO\n\ + \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\216\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\233\ENQ\STX\t\n\ + \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\216\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\233\ENQ\f\r\n\ + \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\216\ACK\f\r\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\ETX\DC2\EOT\234\ENQ\STX\DC2\n\ + \\EOT\ENQ\ENQ\STX\ETX\DC2\EOT\217\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\ETX\SOH\DC2\EOT\234\ENQ\STX\r\n\ + \\ENQ\ENQ\ENQ\STX\ETX\SOH\DC2\EOT\217\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\ETX\STX\DC2\EOT\234\ENQ\DLE\DC1\n\ + \\ENQ\ENQ\ENQ\STX\ETX\STX\DC2\EOT\217\ACK\DLE\DC1\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\EOT\DC2\EOT\235\ENQ\STX\v\n\ + \\EOT\ENQ\ENQ\STX\EOT\DC2\EOT\218\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\EOT\SOH\DC2\EOT\235\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ENQ\STX\EOT\SOH\DC2\EOT\218\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\EOT\STX\DC2\EOT\235\ENQ\t\n\ + \\ENQ\ENQ\ENQ\STX\EOT\STX\DC2\EOT\218\ACK\t\n\ \\n\ \\f\n\ - \\STX\ENQ\ACK\DC2\ACK\238\ENQ\NUL\242\ENQ\SOH\n\ + \\STX\ENQ\ACK\DC2\ACK\221\ACK\NUL\225\ACK\SOH\n\ \\v\n\ - \\ETX\ENQ\ACK\SOH\DC2\EOT\238\ENQ\ENQ\DC2\n\ + \\ETX\ENQ\ACK\SOH\DC2\EOT\221\ACK\ENQ\DC2\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\239\ENQ\STX\US\n\ + \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\222\ACK\STX\US\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\239\ENQ\STX\SUB\n\ + \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\222\ACK\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\239\ENQ\GS\RS\n\ + \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\222\ACK\GS\RS\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\240\ENQ\STX\DC2\n\ + \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\223\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\240\ENQ\STX\r\n\ + \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\223\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\240\ENQ\DLE\DC1\n\ + \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\223\ACK\DLE\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\STX\DC2\EOT\241\ENQ\STX\DC1\n\ + \\EOT\ENQ\ACK\STX\STX\DC2\EOT\224\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\241\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\224\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\241\ENQ\SI\DLE\n\ + \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\224\ACK\SI\DLE\n\ \\208\ETX\n\ - \\STX\ENQ\a\DC2\ACK\250\ENQ\NUL\240\ACK\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\ + \\STX\ENQ\a\DC2\ACK\233\ACK\NUL\223\a\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\ \ for the `Document.language` field. The primary purpose of this enum is to\n\ \ prevent a situation where we have a single programming language ends up with\n\ \ multiple string representations. For example, the C++ language uses the name\n\ @@ -8454,708 +8943,708 @@ packedFileDescriptor \ Feel free to send a pull-request to add missing programming languages.\n\ \\n\ \\v\n\ - \\ETX\ENQ\a\SOH\DC2\EOT\250\ENQ\ENQ\r\n\ + \\ETX\ENQ\a\SOH\DC2\EOT\233\ACK\ENQ\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\NUL\DC2\EOT\251\ENQ\STX\SUB\n\ + \\EOT\ENQ\a\STX\NUL\DC2\EOT\234\ACK\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NUL\SOH\DC2\EOT\251\ENQ\STX\NAK\n\ + \\ENQ\ENQ\a\STX\NUL\SOH\DC2\EOT\234\ACK\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NUL\STX\DC2\EOT\251\ENQ\CAN\EM\n\ + \\ENQ\ENQ\a\STX\NUL\STX\DC2\EOT\234\ACK\CAN\EM\n\ \\f\n\ - \\EOT\ENQ\a\STX\SOH\DC2\EOT\252\ENQ\STX\f\n\ + \\EOT\ENQ\a\STX\SOH\DC2\EOT\235\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SOH\SOH\DC2\EOT\252\ENQ\STX\ACK\n\ + \\ENQ\ENQ\a\STX\SOH\SOH\DC2\EOT\235\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SOH\STX\DC2\EOT\252\ENQ\t\v\n\ + \\ENQ\ENQ\a\STX\SOH\STX\DC2\EOT\235\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\STX\DC2\EOT\253\ENQ\STX\f\n\ + \\EOT\ENQ\a\STX\STX\DC2\EOT\236\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\STX\SOH\DC2\EOT\253\ENQ\STX\ACK\n\ + \\ENQ\ENQ\a\STX\STX\SOH\DC2\EOT\236\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\STX\STX\DC2\EOT\253\ENQ\t\v\n\ + \\ENQ\ENQ\a\STX\STX\STX\DC2\EOT\236\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\ETX\DC2\EOT\254\ENQ\STX\v\n\ + \\EOT\ENQ\a\STX\ETX\DC2\EOT\237\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETX\SOH\DC2\EOT\254\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\ETX\SOH\DC2\EOT\237\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETX\STX\DC2\EOT\254\ENQ\b\n\ + \\ENQ\ENQ\a\STX\ETX\STX\DC2\EOT\237\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\EOT\DC2\EOT\255\ENQ\STX\v\n\ + \\EOT\ENQ\a\STX\EOT\DC2\EOT\238\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EOT\SOH\DC2\EOT\255\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\EOT\SOH\DC2\EOT\238\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EOT\STX\DC2\EOT\255\ENQ\b\n\ + \\ENQ\ENQ\a\STX\EOT\STX\DC2\EOT\238\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\ENQ\DC2\EOT\128\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\ENQ\DC2\EOT\239\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ENQ\SOH\DC2\EOT\128\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\ENQ\SOH\DC2\EOT\239\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ENQ\STX\DC2\EOT\128\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\ENQ\STX\DC2\EOT\239\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\ACK\DC2\EOT\129\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX\ACK\DC2\EOT\240\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ACK\SOH\DC2\EOT\129\ACK\STX\n\ + \\ENQ\ENQ\a\STX\ACK\SOH\DC2\EOT\240\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ACK\STX\DC2\EOT\129\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX\ACK\STX\DC2\EOT\240\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX\a\DC2\EOT\130\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX\a\DC2\EOT\241\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX\a\SOH\DC2\EOT\130\ACK\STX\n\ + \\ENQ\ENQ\a\STX\a\SOH\DC2\EOT\241\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\a\STX\DC2\EOT\130\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX\a\STX\DC2\EOT\241\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX\b\DC2\EOT\131\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\b\DC2\EOT\242\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\b\SOH\DC2\EOT\131\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\b\SOH\DC2\EOT\242\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\b\STX\DC2\EOT\131\ACK\b\n\ + \\ENQ\ENQ\a\STX\b\STX\DC2\EOT\242\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\t\DC2\EOT\132\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\t\DC2\EOT\243\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\t\SOH\DC2\EOT\132\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\t\SOH\DC2\EOT\243\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\t\STX\DC2\EOT\132\ACK\b\n\ + \\ENQ\ENQ\a\STX\t\STX\DC2\EOT\243\ACK\b\n\ \\n\ \\f\n\ \\EOT\ENQ\a\STX\n\ - \\DC2\EOT\133\ACK\STX\SO\n\ + \\DC2\EOT\244\ACK\STX\SO\n\ \\r\n\ \\ENQ\ENQ\a\STX\n\ - \\SOH\DC2\EOT\133\ACK\STX\b\n\ + \\SOH\DC2\EOT\244\ACK\STX\b\n\ \\r\n\ \\ENQ\ENQ\a\STX\n\ - \\STX\DC2\EOT\133\ACK\v\r\n\ + \\STX\DC2\EOT\244\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\v\DC2\EOT\134\ACK\STX\t\n\ + \\EOT\ENQ\a\STX\v\DC2\EOT\245\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX\v\SOH\DC2\EOT\134\ACK\STX\ETX\n\ + \\ENQ\ENQ\a\STX\v\SOH\DC2\EOT\245\ACK\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\a\STX\v\STX\DC2\EOT\134\ACK\ACK\b\n\ + \\ENQ\ENQ\a\STX\v\STX\DC2\EOT\245\ACK\ACK\b\n\ \\f\n\ - \\EOT\ENQ\a\STX\f\DC2\EOT\135\ACK\STX\r\n\ + \\EOT\ENQ\a\STX\f\DC2\EOT\246\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX\f\SOH\DC2\EOT\135\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX\f\SOH\DC2\EOT\246\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX\f\STX\DC2\EOT\135\ACK\n\ + \\ENQ\ENQ\a\STX\f\STX\DC2\EOT\246\ACK\n\ \\f\n\ \H\n\ - \\EOT\ENQ\a\STX\r\DC2\EOT\136\ACK\STX\v\": C++ (the name \"CPP\" was chosen for consistency with LSP)\n\ + \\EOT\ENQ\a\STX\r\DC2\EOT\247\ACK\STX\v\": C++ (the name \"CPP\" was chosen for consistency with LSP)\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\r\SOH\DC2\EOT\136\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\r\SOH\DC2\EOT\247\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\r\STX\DC2\EOT\136\ACK\b\n\ + \\ENQ\ENQ\a\STX\r\STX\DC2\EOT\247\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\SO\DC2\EOT\137\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\SO\DC2\EOT\248\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SO\SOH\DC2\EOT\137\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\SO\SOH\DC2\EOT\248\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SO\STX\DC2\EOT\137\ACK\b\n\ + \\ENQ\ENQ\a\STX\SO\STX\DC2\EOT\248\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\SI\DC2\EOT\138\ACK\STX\r\n\ + \\EOT\ENQ\a\STX\SI\DC2\EOT\249\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SI\SOH\DC2\EOT\138\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\SI\SOH\DC2\EOT\249\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SI\STX\DC2\EOT\138\ACK\v\f\n\ + \\ENQ\ENQ\a\STX\SI\STX\DC2\EOT\249\ACK\v\f\n\ \\f\n\ - \\EOT\ENQ\a\STX\DLE\DC2\EOT\139\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\DLE\DC2\EOT\250\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DLE\SOH\DC2\EOT\139\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX\DLE\SOH\DC2\EOT\250\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DLE\STX\DC2\EOT\139\ACK\f\r\n\ + \\ENQ\ENQ\a\STX\DLE\STX\DC2\EOT\250\ACK\f\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC1\DC2\EOT\140\ACK\STX\DC4\n\ + \\EOT\ENQ\a\STX\DC1\DC2\EOT\251\ACK\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC1\SOH\DC2\EOT\140\ACK\STX\SO\n\ + \\ENQ\ENQ\a\STX\DC1\SOH\DC2\EOT\251\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC1\STX\DC2\EOT\140\ACK\DC1\DC3\n\ + \\ENQ\ENQ\a\STX\DC1\STX\DC2\EOT\251\ACK\DC1\DC3\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC2\DC2\EOT\141\ACK\STX\DC1\n\ + \\EOT\ENQ\a\STX\DC2\DC2\EOT\252\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC2\SOH\DC2\EOT\141\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX\DC2\SOH\DC2\EOT\252\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC2\STX\DC2\EOT\141\ACK\SI\DLE\n\ + \\ENQ\ENQ\a\STX\DC2\STX\DC2\EOT\252\ACK\SI\DLE\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC3\DC2\EOT\142\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\DC3\DC2\EOT\253\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC3\SOH\DC2\EOT\142\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\DC3\SOH\DC2\EOT\253\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC3\STX\DC2\EOT\142\ACK\b\n\ + \\ENQ\ENQ\a\STX\DC3\STX\DC2\EOT\253\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC4\DC2\EOT\143\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\DC4\DC2\EOT\254\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC4\SOH\DC2\EOT\143\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\DC4\SOH\DC2\EOT\254\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC4\STX\DC2\EOT\143\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\DC4\STX\DC2\EOT\254\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\NAK\DC2\EOT\144\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\NAK\DC2\EOT\255\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NAK\SOH\DC2\EOT\144\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\NAK\SOH\DC2\EOT\255\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NAK\STX\DC2\EOT\144\ACK\t\n\ + \\ENQ\ENQ\a\STX\NAK\STX\DC2\EOT\255\ACK\t\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\SYN\DC2\EOT\145\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\SYN\DC2\EOT\128\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SYN\SOH\DC2\EOT\145\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\SYN\SOH\DC2\EOT\128\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SYN\STX\DC2\EOT\145\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\SYN\STX\DC2\EOT\128\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\ETB\DC2\EOT\146\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\ETB\DC2\EOT\129\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETB\SOH\DC2\EOT\146\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\ETB\SOH\DC2\EOT\129\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETB\STX\DC2\EOT\146\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\ETB\STX\DC2\EOT\129\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\CAN\DC2\EOT\147\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX\CAN\DC2\EOT\130\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX\CAN\SOH\DC2\EOT\147\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX\CAN\SOH\DC2\EOT\130\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\CAN\STX\DC2\EOT\147\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX\CAN\STX\DC2\EOT\130\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX\EM\DC2\EOT\148\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\EM\DC2\EOT\131\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EM\SOH\DC2\EOT\148\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\EM\SOH\DC2\EOT\131\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EM\STX\DC2\EOT\148\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\EM\STX\DC2\EOT\131\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\SUB\DC2\EOT\149\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\SUB\DC2\EOT\132\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SUB\SOH\DC2\EOT\149\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\SUB\SOH\DC2\EOT\132\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SUB\STX\DC2\EOT\149\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\SUB\STX\DC2\EOT\132\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\ESC\DC2\EOT\150\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\ESC\DC2\EOT\133\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ESC\SOH\DC2\EOT\150\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\ESC\SOH\DC2\EOT\133\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ESC\STX\DC2\EOT\150\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\ESC\STX\DC2\EOT\133\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\FS\DC2\EOT\151\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\FS\DC2\EOT\134\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\FS\SOH\DC2\EOT\151\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\FS\SOH\DC2\EOT\134\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\FS\STX\DC2\EOT\151\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\FS\STX\DC2\EOT\134\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\GS\DC2\EOT\152\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\GS\DC2\EOT\135\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\GS\SOH\DC2\EOT\152\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\GS\SOH\DC2\EOT\135\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\GS\STX\DC2\EOT\152\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\GS\STX\DC2\EOT\135\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\RS\DC2\EOT\153\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\RS\DC2\EOT\136\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\RS\SOH\DC2\EOT\153\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\RS\SOH\DC2\EOT\136\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\RS\STX\DC2\EOT\153\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\RS\STX\DC2\EOT\136\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\US\DC2\EOT\154\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX\US\DC2\EOT\137\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX\US\SOH\DC2\EOT\154\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX\US\SOH\DC2\EOT\137\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX\US\STX\DC2\EOT\154\ACK\f\SO\n\ + \\ENQ\ENQ\a\STX\US\STX\DC2\EOT\137\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX \DC2\EOT\155\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX \DC2\EOT\138\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX \SOH\DC2\EOT\155\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX \SOH\DC2\EOT\138\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX \STX\DC2\EOT\155\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX \STX\DC2\EOT\138\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX!\DC2\EOT\156\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX!\DC2\EOT\139\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX!\SOH\DC2\EOT\156\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX!\SOH\DC2\EOT\139\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX!\STX\DC2\EOT\156\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX!\STX\DC2\EOT\139\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX\"\DC2\EOT\157\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX\"\DC2\EOT\140\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX\"\SOH\DC2\EOT\157\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX\"\SOH\DC2\EOT\140\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\"\STX\DC2\EOT\157\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX\"\STX\DC2\EOT\140\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX#\DC2\EOT\158\ACK\STX\n\ + \\EOT\ENQ\a\STX#\DC2\EOT\141\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX#\SOH\DC2\EOT\158\ACK\STX\EOT\n\ + \\ENQ\ENQ\a\STX#\SOH\DC2\EOT\141\a\STX\EOT\n\ \\r\n\ - \\ENQ\ENQ\a\STX#\STX\DC2\EOT\158\ACK\a\t\n\ + \\ENQ\ENQ\a\STX#\STX\DC2\EOT\141\a\a\t\n\ \\f\n\ - \\EOT\ENQ\a\STX$\DC2\EOT\159\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX$\DC2\EOT\142\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX$\SOH\DC2\EOT\159\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX$\SOH\DC2\EOT\142\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX$\STX\DC2\EOT\159\ACK\f\SO\n\ + \\ENQ\ENQ\a\STX$\STX\DC2\EOT\142\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX%\DC2\EOT\160\ACK\STX\r\n\ + \\EOT\ENQ\a\STX%\DC2\EOT\143\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX%\SOH\DC2\EOT\160\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX%\SOH\DC2\EOT\143\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX%\STX\DC2\EOT\160\ACK\v\f\n\ + \\ENQ\ENQ\a\STX%\STX\DC2\EOT\143\a\v\f\n\ \\f\n\ - \\EOT\ENQ\a\STX&\DC2\EOT\161\ACK\STX\f\n\ + \\EOT\ENQ\a\STX&\DC2\EOT\144\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX&\SOH\DC2\EOT\161\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX&\SOH\DC2\EOT\144\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX&\STX\DC2\EOT\161\ACK\t\v\n\ + \\ENQ\ENQ\a\STX&\STX\DC2\EOT\144\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX'\DC2\EOT\162\ACK\STX\f\n\ + \\EOT\ENQ\a\STX'\DC2\EOT\145\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX'\SOH\DC2\EOT\162\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX'\SOH\DC2\EOT\145\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX'\STX\DC2\EOT\162\ACK\t\v\n\ + \\ENQ\ENQ\a\STX'\STX\DC2\EOT\145\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX(\DC2\EOT\163\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX(\DC2\EOT\146\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX(\SOH\DC2\EOT\163\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX(\SOH\DC2\EOT\146\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX(\STX\DC2\EOT\163\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX(\STX\DC2\EOT\146\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX)\DC2\EOT\164\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX)\DC2\EOT\147\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX)\SOH\DC2\EOT\164\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX)\SOH\DC2\EOT\147\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX)\STX\DC2\EOT\164\ACK\f\SO\n\ + \\ENQ\ENQ\a\STX)\STX\DC2\EOT\147\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX*\DC2\EOT\165\ACK\STX\r\n\ + \\EOT\ENQ\a\STX*\DC2\EOT\148\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX*\SOH\DC2\EOT\165\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX*\SOH\DC2\EOT\148\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX*\STX\DC2\EOT\165\ACK\n\ + \\ENQ\ENQ\a\STX*\STX\DC2\EOT\148\a\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX+\DC2\EOT\166\ACK\STX\v\n\ + \\EOT\ENQ\a\STX+\DC2\EOT\149\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX+\SOH\DC2\EOT\166\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX+\SOH\DC2\EOT\149\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX+\STX\DC2\EOT\166\ACK\b\n\ + \\ENQ\ENQ\a\STX+\STX\DC2\EOT\149\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX,\DC2\EOT\167\ACK\STX\t\n\ + \\EOT\ENQ\a\STX,\DC2\EOT\150\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX,\SOH\DC2\EOT\167\ACK\STX\ETX\n\ + \\ENQ\ENQ\a\STX,\SOH\DC2\EOT\150\a\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\a\STX,\STX\DC2\EOT\167\ACK\ACK\b\n\ + \\ENQ\ENQ\a\STX,\STX\DC2\EOT\150\a\ACK\b\n\ \\f\n\ - \\EOT\ENQ\a\STX-\DC2\EOT\168\ACK\STX\f\n\ + \\EOT\ENQ\a\STX-\DC2\EOT\151\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX-\SOH\DC2\EOT\168\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX-\SOH\DC2\EOT\151\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX-\STX\DC2\EOT\168\ACK\t\v\n\ + \\ENQ\ENQ\a\STX-\STX\DC2\EOT\151\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX.\DC2\EOT\169\ACK\STX\v\n\ + \\EOT\ENQ\a\STX.\DC2\EOT\152\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX.\SOH\DC2\EOT\169\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX.\SOH\DC2\EOT\152\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX.\STX\DC2\EOT\169\ACK\t\n\ + \\ENQ\ENQ\a\STX.\STX\DC2\EOT\152\a\t\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX/\DC2\EOT\170\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX/\DC2\EOT\153\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX/\SOH\DC2\EOT\170\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX/\SOH\DC2\EOT\153\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX/\STX\DC2\EOT\170\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX/\STX\DC2\EOT\153\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX0\DC2\EOT\171\ACK\STX\ETB\n\ + \\EOT\ENQ\a\STX0\DC2\EOT\154\a\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\a\STX0\SOH\DC2\EOT\171\ACK\STX\DC1\n\ + \\ENQ\ENQ\a\STX0\SOH\DC2\EOT\154\a\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STX0\STX\DC2\EOT\171\ACK\DC4\SYN\n\ + \\ENQ\ENQ\a\STX0\STX\DC2\EOT\154\a\DC4\SYN\n\ \\f\n\ - \\EOT\ENQ\a\STX1\DC2\EOT\172\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX1\DC2\EOT\155\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX1\SOH\DC2\EOT\172\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX1\SOH\DC2\EOT\155\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX1\STX\DC2\EOT\172\ACK\f\SO\n\ + \\ENQ\ENQ\a\STX1\STX\DC2\EOT\155\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX2\DC2\EOT\173\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX2\DC2\EOT\156\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX2\SOH\DC2\EOT\173\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX2\SOH\DC2\EOT\156\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX2\STX\DC2\EOT\173\ACK\v\r\n\ + \\ENQ\ENQ\a\STX2\STX\DC2\EOT\156\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX3\DC2\EOT\174\ACK\STX\DC1\n\ + \\EOT\ENQ\a\STX3\DC2\EOT\157\a\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STX3\SOH\DC2\EOT\174\ACK\STX\n\ + \\ENQ\ENQ\a\STX3\SOH\DC2\EOT\157\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX3\STX\DC2\EOT\174\ACK\r\DLE\n\ + \\ENQ\ENQ\a\STX3\STX\DC2\EOT\157\a\r\DLE\n\ \\f\n\ - \\EOT\ENQ\a\STX4\DC2\EOT\175\ACK\STX\r\n\ + \\EOT\ENQ\a\STX4\DC2\EOT\158\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX4\SOH\DC2\EOT\175\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX4\SOH\DC2\EOT\158\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX4\STX\DC2\EOT\175\ACK\v\f\n\ + \\ENQ\ENQ\a\STX4\STX\DC2\EOT\158\a\v\f\n\ \\f\n\ - \\EOT\ENQ\a\STX5\DC2\EOT\176\ACK\STX\r\n\ + \\EOT\ENQ\a\STX5\DC2\EOT\159\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX5\SOH\DC2\EOT\176\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX5\SOH\DC2\EOT\159\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX5\STX\DC2\EOT\176\ACK\n\ + \\ENQ\ENQ\a\STX5\STX\DC2\EOT\159\a\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX6\DC2\EOT\177\ACK\STX\f\n\ + \\EOT\ENQ\a\STX6\DC2\EOT\160\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX6\SOH\DC2\EOT\177\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX6\SOH\DC2\EOT\160\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX6\STX\DC2\EOT\177\ACK\t\v\n\ + \\ENQ\ENQ\a\STX6\STX\DC2\EOT\160\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX7\DC2\EOT\178\ACK\STX\f\n\ + \\EOT\ENQ\a\STX7\DC2\EOT\161\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX7\SOH\DC2\EOT\178\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX7\SOH\DC2\EOT\161\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX7\STX\DC2\EOT\178\ACK\t\v\n\ + \\ENQ\ENQ\a\STX7\STX\DC2\EOT\161\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX8\DC2\EOT\179\ACK\STX\v\n\ + \\EOT\ENQ\a\STX8\DC2\EOT\162\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX8\SOH\DC2\EOT\179\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX8\SOH\DC2\EOT\162\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX8\STX\DC2\EOT\179\ACK\b\n\ + \\ENQ\ENQ\a\STX8\STX\DC2\EOT\162\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX9\DC2\EOT\180\ACK\STX\r\n\ + \\EOT\ENQ\a\STX9\DC2\EOT\163\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX9\SOH\DC2\EOT\180\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX9\SOH\DC2\EOT\163\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX9\STX\DC2\EOT\180\ACK\t\f\n\ + \\ENQ\ENQ\a\STX9\STX\DC2\EOT\163\a\t\f\n\ \\f\n\ - \\EOT\ENQ\a\STX:\DC2\EOT\181\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX:\DC2\EOT\164\a\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX:\SOH\DC2\EOT\181\ACK\STX\n\ + \\ENQ\ENQ\a\STX:\SOH\DC2\EOT\164\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX:\STX\DC2\EOT\181\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX:\STX\DC2\EOT\164\a\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX;\DC2\EOT\182\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX;\DC2\EOT\165\a\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX;\SOH\DC2\EOT\182\ACK\STX\n\ + \\ENQ\ENQ\a\STX;\SOH\DC2\EOT\165\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX;\STX\DC2\EOT\182\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX;\STX\DC2\EOT\165\a\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX<\DC2\EOT\183\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX<\DC2\EOT\166\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX<\SOH\DC2\EOT\183\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX<\SOH\DC2\EOT\166\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX<\STX\DC2\EOT\183\ACK\v\r\n\ + \\ENQ\ENQ\a\STX<\STX\DC2\EOT\166\a\v\r\n\ \(\n\ - \\EOT\ENQ\a\STX=\DC2\EOT\184\ACK\STX\SI\"\SUB https://nickel-lang.org/\n\ + \\EOT\ENQ\a\STX=\DC2\EOT\167\a\STX\SI\"\SUB https://nickel-lang.org/\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX=\SOH\DC2\EOT\184\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX=\SOH\DC2\EOT\167\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX=\STX\DC2\EOT\184\ACK\v\SO\n\ + \\ENQ\ENQ\a\STX=\STX\DC2\EOT\167\a\v\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX>\DC2\EOT\185\ACK\STX\v\n\ + \\EOT\ENQ\a\STX>\DC2\EOT\168\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX>\SOH\DC2\EOT\185\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX>\SOH\DC2\EOT\168\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX>\STX\DC2\EOT\185\ACK\b\n\ + \\ENQ\ENQ\a\STX>\STX\DC2\EOT\168\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX?\DC2\EOT\186\ACK\STX\r\n\ + \\EOT\ENQ\a\STX?\DC2\EOT\169\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX?\SOH\DC2\EOT\186\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX?\SOH\DC2\EOT\169\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX?\STX\DC2\EOT\186\ACK\n\ + \\ENQ\ENQ\a\STX?\STX\DC2\EOT\169\a\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX@\DC2\EOT\187\ACK\STX\DC3\n\ + \\EOT\ENQ\a\STX@\DC2\EOT\170\a\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\a\STX@\SOH\DC2\EOT\187\ACK\STX\r\n\ + \\ENQ\ENQ\a\STX@\SOH\DC2\EOT\170\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX@\STX\DC2\EOT\187\ACK\DLE\DC2\n\ + \\ENQ\ENQ\a\STX@\STX\DC2\EOT\170\a\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\a\STXA\DC2\EOT\188\ACK\STX\NAK\n\ + \\EOT\ENQ\a\STXA\DC2\EOT\171\a\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\a\STXA\SOH\DC2\EOT\188\ACK\STX\SI\n\ + \\ENQ\ENQ\a\STXA\SOH\DC2\EOT\171\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXA\STX\DC2\EOT\188\ACK\DC2\DC4\n\ + \\ENQ\ENQ\a\STXA\STX\DC2\EOT\171\a\DC2\DC4\n\ \\f\n\ - \\EOT\ENQ\a\STXB\DC2\EOT\189\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXB\DC2\EOT\172\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXB\SOH\DC2\EOT\189\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXB\SOH\DC2\EOT\172\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXB\STX\DC2\EOT\189\ACK\v\r\n\ + \\ENQ\ENQ\a\STXB\STX\DC2\EOT\172\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXC\DC2\EOT\190\ACK\STX\v\n\ + \\EOT\ENQ\a\STXC\DC2\EOT\173\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXC\SOH\DC2\EOT\190\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXC\SOH\DC2\EOT\173\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXC\STX\DC2\EOT\190\ACK\b\n\ + \\ENQ\ENQ\a\STXC\STX\DC2\EOT\173\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXD\DC2\EOT\191\ACK\STX\r\n\ + \\EOT\ENQ\a\STXD\DC2\EOT\174\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXD\SOH\DC2\EOT\191\ACK\STX\a\n\ + \\ENQ\ENQ\a\STXD\SOH\DC2\EOT\174\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXD\STX\DC2\EOT\191\ACK\n\ + \\ENQ\ENQ\a\STXD\STX\DC2\EOT\174\a\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STXE\DC2\EOT\192\ACK\STX\f\n\ + \\EOT\ENQ\a\STXE\DC2\EOT\175\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXE\SOH\DC2\EOT\192\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXE\SOH\DC2\EOT\175\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXE\STX\DC2\EOT\192\ACK\t\v\n\ + \\ENQ\ENQ\a\STXE\STX\DC2\EOT\175\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXF\DC2\EOT\193\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STXF\DC2\EOT\176\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STXF\SOH\DC2\EOT\193\ACK\STX\f\n\ + \\ENQ\ENQ\a\STXF\SOH\DC2\EOT\176\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXF\STX\DC2\EOT\193\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STXF\STX\DC2\EOT\176\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STXG\DC2\EOT\194\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXG\DC2\EOT\177\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXG\SOH\DC2\EOT\194\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXG\SOH\DC2\EOT\177\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXG\STX\DC2\EOT\194\ACK\v\r\n\ + \\ENQ\ENQ\a\STXG\STX\DC2\EOT\177\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXH\DC2\EOT\195\ACK\STX\DC1\n\ + \\EOT\ENQ\a\STXH\DC2\EOT\178\a\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STXH\SOH\DC2\EOT\195\ACK\STX\n\ + \\ENQ\ENQ\a\STXH\SOH\DC2\EOT\178\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXH\STX\DC2\EOT\195\ACK\r\DLE\n\ + \\ENQ\ENQ\a\STXH\STX\DC2\EOT\178\a\r\DLE\n\ \\f\n\ - \\EOT\ENQ\a\STXI\DC2\EOT\196\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXI\DC2\EOT\179\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXI\SOH\DC2\EOT\196\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXI\SOH\DC2\EOT\179\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXI\STX\DC2\EOT\196\ACK\v\r\n\ + \\ENQ\ENQ\a\STXI\STX\DC2\EOT\179\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXJ\DC2\EOT\197\ACK\STX\t\n\ + \\EOT\ENQ\a\STXJ\DC2\EOT\180\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXJ\SOH\DC2\EOT\197\ACK\STX\ETX\n\ + \\ENQ\ENQ\a\STXJ\SOH\DC2\EOT\180\a\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\a\STXJ\STX\DC2\EOT\197\ACK\ACK\b\n\ + \\ENQ\ENQ\a\STXJ\STX\DC2\EOT\180\a\ACK\b\n\ \\f\n\ - \\EOT\ENQ\a\STXK\DC2\EOT\198\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXK\DC2\EOT\181\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXK\SOH\DC2\EOT\198\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXK\SOH\DC2\EOT\181\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXK\STX\DC2\EOT\198\ACK\v\r\n\ + \\ENQ\ENQ\a\STXK\STX\DC2\EOT\181\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXL\DC2\EOT\199\ACK\STX\f\n\ + \\EOT\ENQ\a\STXL\DC2\EOT\182\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXL\SOH\DC2\EOT\199\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXL\SOH\DC2\EOT\182\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXL\STX\DC2\EOT\199\ACK\t\v\n\ + \\ENQ\ENQ\a\STXL\STX\DC2\EOT\182\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXM\DC2\EOT\200\ACK\STX\r\n\ + \\EOT\ENQ\a\STXM\DC2\EOT\183\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXM\SOH\DC2\EOT\200\ACK\STX\a\n\ + \\ENQ\ENQ\a\STXM\SOH\DC2\EOT\183\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXM\STX\DC2\EOT\200\ACK\n\ + \\ENQ\ENQ\a\STXM\STX\DC2\EOT\183\a\n\ \\f\n\ \2\n\ - \\EOT\ENQ\a\STXN\DC2\EOT\201\ACK\STX\SO\"$ Internal language for testing SCIP\n\ + \\EOT\ENQ\a\STXN\DC2\EOT\184\a\STX\SO\"$ Internal language for testing SCIP\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXN\SOH\DC2\EOT\201\ACK\STX\a\n\ + \\ENQ\ENQ\a\STXN\SOH\DC2\EOT\184\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXN\STX\DC2\EOT\201\ACK\n\ + \\ENQ\ENQ\a\STXN\STX\DC2\EOT\184\a\n\ \\r\n\ \\f\n\ - \\EOT\ENQ\a\STXO\DC2\EOT\202\ACK\STX\f\n\ + \\EOT\ENQ\a\STXO\DC2\EOT\185\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXO\SOH\DC2\EOT\202\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXO\SOH\DC2\EOT\185\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXO\STX\DC2\EOT\202\ACK\t\v\n\ + \\ENQ\ENQ\a\STXO\STX\DC2\EOT\185\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXP\DC2\EOT\203\ACK\STX\f\n\ + \\EOT\ENQ\a\STXP\DC2\EOT\186\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXP\SOH\DC2\EOT\203\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXP\SOH\DC2\EOT\186\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXP\STX\DC2\EOT\203\ACK\t\v\n\ + \\ENQ\ENQ\a\STXP\STX\DC2\EOT\186\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXQ\DC2\EOT\204\ACK\STX\f\n\ + \\EOT\ENQ\a\STXQ\DC2\EOT\187\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXQ\SOH\DC2\EOT\204\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXQ\SOH\DC2\EOT\187\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXQ\STX\DC2\EOT\204\ACK\t\v\n\ + \\ENQ\ENQ\a\STXQ\STX\DC2\EOT\187\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXR\DC2\EOT\205\ACK\STX\v\n\ + \\EOT\ENQ\a\STXR\DC2\EOT\188\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXR\SOH\DC2\EOT\205\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXR\SOH\DC2\EOT\188\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXR\STX\DC2\EOT\205\ACK\b\n\ + \\ENQ\ENQ\a\STXR\STX\DC2\EOT\188\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXS\DC2\EOT\206\ACK\STX\f\n\ + \\EOT\ENQ\a\STXS\DC2\EOT\189\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXS\SOH\DC2\EOT\206\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXS\SOH\DC2\EOT\189\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXS\STX\DC2\EOT\206\ACK\t\v\n\ + \\ENQ\ENQ\a\STXS\STX\DC2\EOT\189\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXT\DC2\EOT\207\ACK\STX\v\n\ + \\EOT\ENQ\a\STXT\DC2\EOT\190\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXT\SOH\DC2\EOT\207\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXT\SOH\DC2\EOT\190\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXT\STX\DC2\EOT\207\ACK\b\n\ + \\ENQ\ENQ\a\STXT\STX\DC2\EOT\190\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXU\DC2\EOT\208\ACK\STX\v\n\ + \\EOT\ENQ\a\STXU\DC2\EOT\191\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXU\SOH\DC2\EOT\208\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXU\SOH\DC2\EOT\191\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXU\STX\DC2\EOT\208\ACK\b\n\ + \\ENQ\ENQ\a\STXU\STX\DC2\EOT\191\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXV\DC2\EOT\209\ACK\STX\f\n\ + \\EOT\ENQ\a\STXV\DC2\EOT\192\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXV\SOH\DC2\EOT\209\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXV\SOH\DC2\EOT\192\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXV\STX\DC2\EOT\209\ACK\t\v\n\ + \\ENQ\ENQ\a\STXV\STX\DC2\EOT\192\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXW\DC2\EOT\210\ACK\STX\f\n\ + \\EOT\ENQ\a\STXW\DC2\EOT\193\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXW\SOH\DC2\EOT\210\ACK\STX\a\n\ + \\ENQ\ENQ\a\STXW\SOH\DC2\EOT\193\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXW\STX\DC2\EOT\210\ACK\n\ + \\ENQ\ENQ\a\STXW\STX\DC2\EOT\193\a\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\a\STXX\DC2\EOT\211\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXX\DC2\EOT\194\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXX\SOH\DC2\EOT\211\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXX\SOH\DC2\EOT\194\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXX\STX\DC2\EOT\211\ACK\v\r\n\ + \\ENQ\ENQ\a\STXX\STX\DC2\EOT\194\a\v\r\n\ \\DC4\n\ - \\EOT\ENQ\a\STXY\DC2\EOT\212\ACK\STX\DC3\"\ACK Bash\n\ + \\EOT\ENQ\a\STXY\DC2\EOT\195\a\STX\DC3\"\ACK Bash\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXY\SOH\DC2\EOT\212\ACK\STX\r\n\ + \\ENQ\ENQ\a\STXY\SOH\DC2\EOT\195\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXY\STX\DC2\EOT\212\ACK\DLE\DC2\n\ + \\ENQ\ENQ\a\STXY\STX\DC2\EOT\195\a\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\a\STXZ\DC2\EOT\213\ACK\STX\SI\n\ + \\EOT\ENQ\a\STXZ\DC2\EOT\196\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXZ\SOH\DC2\EOT\213\ACK\STX\t\n\ + \\ENQ\ENQ\a\STXZ\SOH\DC2\EOT\196\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXZ\STX\DC2\EOT\213\ACK\f\SO\n\ + \\ENQ\ENQ\a\STXZ\STX\DC2\EOT\196\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX[\DC2\EOT\214\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX[\DC2\EOT\197\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX[\SOH\DC2\EOT\214\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX[\SOH\DC2\EOT\197\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX[\STX\DC2\EOT\214\ACK\n\ + \\ENQ\ENQ\a\STX[\STX\DC2\EOT\197\a\n\ \\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\\\DC2\EOT\215\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX\\\DC2\EOT\198\a\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX\\\SOH\DC2\EOT\215\ACK\STX\n\ + \\ENQ\ENQ\a\STX\\\SOH\DC2\EOT\198\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\\\STX\DC2\EOT\215\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX\\\STX\DC2\EOT\198\a\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX]\DC2\EOT\216\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX]\DC2\EOT\199\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX]\SOH\DC2\EOT\216\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX]\SOH\DC2\EOT\199\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX]\STX\DC2\EOT\216\ACK\v\SO\n\ + \\ENQ\ENQ\a\STX]\STX\DC2\EOT\199\a\v\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX^\DC2\EOT\217\ACK\STX\f\n\ + \\EOT\ENQ\a\STX^\DC2\EOT\200\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX^\SOH\DC2\EOT\217\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX^\SOH\DC2\EOT\200\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX^\STX\DC2\EOT\217\ACK\n\ + \\ENQ\ENQ\a\STX^\STX\DC2\EOT\200\a\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\a\STX_\DC2\EOT\218\ACK\STX\f\n\ + \\EOT\ENQ\a\STX_\DC2\EOT\201\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX_\SOH\DC2\EOT\218\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX_\SOH\DC2\EOT\201\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX_\STX\DC2\EOT\218\ACK\b\v\n\ + \\ENQ\ENQ\a\STX_\STX\DC2\EOT\201\a\b\v\n\ \\f\n\ - \\EOT\ENQ\a\STX`\DC2\EOT\219\ACK\STX\f\n\ + \\EOT\ENQ\a\STX`\DC2\EOT\202\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX`\SOH\DC2\EOT\219\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX`\SOH\DC2\EOT\202\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX`\STX\DC2\EOT\219\ACK\t\v\n\ + \\ENQ\ENQ\a\STX`\STX\DC2\EOT\202\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXa\DC2\EOT\220\ACK\STX\v\n\ + \\EOT\ENQ\a\STXa\DC2\EOT\203\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXa\SOH\DC2\EOT\220\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXa\SOH\DC2\EOT\203\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXa\STX\DC2\EOT\220\ACK\b\n\ + \\ENQ\ENQ\a\STXa\STX\DC2\EOT\203\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXb\DC2\EOT\221\ACK\STX\SI\n\ + \\EOT\ENQ\a\STXb\DC2\EOT\204\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXb\SOH\DC2\EOT\221\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXb\SOH\DC2\EOT\204\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXb\STX\DC2\EOT\221\ACK\v\SO\n\ + \\ENQ\ENQ\a\STXb\STX\DC2\EOT\204\a\v\SO\n\ \\f\n\ - \\EOT\ENQ\a\STXc\DC2\EOT\222\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STXc\DC2\EOT\205\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STXc\SOH\DC2\EOT\222\ACK\STX\f\n\ + \\ENQ\ENQ\a\STXc\SOH\DC2\EOT\205\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXc\STX\DC2\EOT\222\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STXc\STX\DC2\EOT\205\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STXd\DC2\EOT\223\ACK\STX\ETB\n\ + \\EOT\ENQ\a\STXd\DC2\EOT\206\a\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\a\STXd\SOH\DC2\EOT\223\ACK\STX\DC1\n\ + \\ENQ\ENQ\a\STXd\SOH\DC2\EOT\206\a\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STXd\STX\DC2\EOT\223\ACK\DC4\SYN\n\ + \\ENQ\ENQ\a\STXd\STX\DC2\EOT\206\a\DC4\SYN\n\ \\f\n\ - \\EOT\ENQ\a\STXe\DC2\EOT\224\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STXe\DC2\EOT\207\a\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STXe\SOH\DC2\EOT\224\ACK\STX\t\n\ + \\ENQ\ENQ\a\STXe\SOH\DC2\EOT\207\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXe\STX\DC2\EOT\224\ACK\f\SI\n\ + \\ENQ\ENQ\a\STXe\STX\DC2\EOT\207\a\f\SI\n\ \\f\n\ - \\EOT\ENQ\a\STXf\DC2\EOT\225\ACK\STX\r\n\ + \\EOT\ENQ\a\STXf\DC2\EOT\208\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXf\SOH\DC2\EOT\225\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXf\SOH\DC2\EOT\208\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXf\STX\DC2\EOT\225\ACK\t\f\n\ + \\ENQ\ENQ\a\STXf\STX\DC2\EOT\208\a\t\f\n\ \\f\n\ - \\EOT\ENQ\a\STXg\DC2\EOT\226\ACK\STX\DC3\n\ + \\EOT\ENQ\a\STXg\DC2\EOT\209\a\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\a\STXg\SOH\DC2\EOT\226\ACK\STX\r\n\ + \\ENQ\ENQ\a\STXg\SOH\DC2\EOT\209\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXg\STX\DC2\EOT\226\ACK\DLE\DC2\n\ + \\ENQ\ENQ\a\STXg\STX\DC2\EOT\209\a\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\a\STXh\DC2\EOT\227\ACK\STX\v\n\ + \\EOT\ENQ\a\STXh\DC2\EOT\210\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXh\SOH\DC2\EOT\227\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXh\SOH\DC2\EOT\210\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXh\STX\DC2\EOT\227\ACK\b\n\ + \\ENQ\ENQ\a\STXh\STX\DC2\EOT\210\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXi\DC2\EOT\228\ACK\STX\SI\n\ + \\EOT\ENQ\a\STXi\DC2\EOT\211\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXi\SOH\DC2\EOT\228\ACK\STX\t\n\ + \\ENQ\ENQ\a\STXi\SOH\DC2\EOT\211\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXi\STX\DC2\EOT\228\ACK\f\SO\n\ + \\ENQ\ENQ\a\STXi\STX\DC2\EOT\211\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STXj\DC2\EOT\229\ACK\STX\v\n\ + \\EOT\ENQ\a\STXj\DC2\EOT\212\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXj\SOH\DC2\EOT\229\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXj\SOH\DC2\EOT\212\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXj\STX\DC2\EOT\229\ACK\b\n\ + \\ENQ\ENQ\a\STXj\STX\DC2\EOT\212\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXk\DC2\EOT\230\ACK\STX\v\n\ + \\EOT\ENQ\a\STXk\DC2\EOT\213\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXk\SOH\DC2\EOT\230\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXk\SOH\DC2\EOT\213\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXk\STX\DC2\EOT\230\ACK\b\n\ + \\ENQ\ENQ\a\STXk\STX\DC2\EOT\213\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXl\DC2\EOT\231\ACK\STX\f\n\ + \\EOT\ENQ\a\STXl\DC2\EOT\214\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXl\SOH\DC2\EOT\231\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXl\SOH\DC2\EOT\214\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXl\STX\DC2\EOT\231\ACK\t\v\n\ + \\ENQ\ENQ\a\STXl\STX\DC2\EOT\214\a\t\v\n\ \\147\ETX\n\ - \\EOT\ENQ\a\STXm\DC2\EOT\232\ACK\STX\v\"\132\ETX NextLanguage = 111;\n\ + \\EOT\ENQ\a\STXm\DC2\EOT\215\a\STX\v\"\132\ETX NextLanguage = 111;\n\ \ Steps add a new language:\n\ \ 1. Copy-paste the \"NextLanguage = N\" line above\n\ \ 2. Increment \"NextLanguage = N\" to \"NextLanguage = N+1\"\n\ @@ -9164,7 +9653,7 @@ packedFileDescriptor \ 5. (optional) Add a brief comment behind the language if the name is not self-explanatory\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXm\SOH\DC2\EOT\232\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXm\SOH\DC2\EOT\215\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXm\STX\DC2\EOT\232\ACK\b\n\ + \\ENQ\ENQ\a\STXm\STX\DC2\EOT\215\a\b\n\ \b\ACKproto3" \ No newline at end of file diff --git a/bindings/haskell/src/Proto/Scip_Fields.hs b/bindings/haskell/src/Proto/Scip_Fields.hs index 55dd2079..d15aac7d 100644 --- a/bindings/haskell/src/Proto/Scip_Fields.hs +++ b/bindings/haskell/src/Proto/Scip_Fields.hs @@ -38,6 +38,13 @@ code :: (Prelude.Functor f, Data.ProtoLens.Field.HasField s "code" a) => Lens.Family2.LensLike' f s a code = Data.ProtoLens.Field.field @"code" +crossRelationships :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "crossRelationships" a) => + Lens.Family2.LensLike' f s a +crossRelationships + = Data.ProtoLens.Field.field @"crossRelationships" descriptors :: forall f s a. (Prelude.Functor f, @@ -144,6 +151,13 @@ maybe'package :: Data.ProtoLens.Field.HasField s "maybe'package" a) => Lens.Family2.LensLike' f s a maybe'package = Data.ProtoLens.Field.field @"maybe'package" +maybe'relationship :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "maybe'relationship" a) => + Lens.Family2.LensLike' f s a +maybe'relationship + = Data.ProtoLens.Field.field @"maybe'relationship" maybe'signatureDocumentation :: forall f s a. (Prelude.Functor f, @@ -208,6 +222,12 @@ range :: (Prelude.Functor f, Data.ProtoLens.Field.HasField s "range" a) => Lens.Family2.LensLike' f s a range = Data.ProtoLens.Field.field @"range" +relationship :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "relationship" a) => + Lens.Family2.LensLike' f s a +relationship = Data.ProtoLens.Field.field @"relationship" relationships :: forall f s a. (Prelude.Functor f, @@ -243,6 +263,12 @@ source :: (Prelude.Functor f, Data.ProtoLens.Field.HasField s "source" a) => Lens.Family2.LensLike' f s a source = Data.ProtoLens.Field.field @"source" +sourceSymbol :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "sourceSymbol" a) => + Lens.Family2.LensLike' f s a +sourceSymbol = Data.ProtoLens.Field.field @"sourceSymbol" suffix :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "suffix" a) => @@ -299,6 +325,13 @@ vec'arguments :: Data.ProtoLens.Field.HasField s "vec'arguments" a) => Lens.Family2.LensLike' f s a vec'arguments = Data.ProtoLens.Field.field @"vec'arguments" +vec'crossRelationships :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "vec'crossRelationships" a) => + Lens.Family2.LensLike' f s a +vec'crossRelationships + = Data.ProtoLens.Field.field @"vec'crossRelationships" vec'descriptors :: forall f s a. (Prelude.Functor f, diff --git a/bindings/rust/src/generated/scip.rs b/bindings/rust/src/generated/scip.rs index 19eb8ba0..cb67b2a5 100644 --- a/bindings/rust/src/generated/scip.rs +++ b/bindings/rust/src/generated/scip.rs @@ -40,11 +40,7 @@ pub struct Index { /// Documents that belong to this index. // @@protoc_insertion_point(field:scip.Index.documents) pub documents: ::std::vec::Vec, - /// (optional) Symbols that are referenced from this index but are defined in - /// an external package (a separate `Index` message). Leave this field empty - /// if you assume the external package will get indexed separately. If the - /// external package won't get indexed for some reason then you can use this - /// field to provide hover documentation for those external symbols. + /// (DEPRECATED): Use Document.external_symbols instead. // @@protoc_insertion_point(field:scip.Index.external_symbols) pub external_symbols: ::std::vec::Vec, // special fields @@ -588,6 +584,91 @@ pub struct Document { /// use UTF8ByteOffsetFromLineStart. // @@protoc_insertion_point(field:scip.Document.position_encoding) pub position_encoding: ::protobuf::EnumOrUnknown, + /// (optional) Symbols that are referenced from this Document but are defined in + /// an external package (a separate `Index` message). This field can be used + /// for the following purposes: + /// - Provide hover documentation for external symbols. + /// - Mark relationships from an external symbol to a global symbol defined + /// in the current document. + /// + /// Example 1: In Go, if a file defines a new interface I and there is a standard + /// library type T which is imported in the file and implements I, + /// the indexer can add an external symbol for T with an is_implementation + /// relationship to I. + /// + /// Example 2: In Rust, if a file defines a new trait T and add impls for a + /// type X defined in another Index, the indexer can add an external symbol + /// for X with an is_implementation relationship to T. + /// + /// Example 3: If the code references a third-party type X whose definition + /// site may or may not be indexed, the indexer can emit an external symbol + /// for X including its hover documentation. + // @@protoc_insertion_point(field:scip.Document.external_symbols) + pub external_symbols: ::std::vec::Vec, + /// (optional) Relationships that affect code navigation in this Document + /// but are not and cannot be defined in the Document(s) defining + /// source_symbol or the target symbol (relationship.symbol). + /// + /// Example 1: In the case of structurally typed interfaces (or more generally + /// structural subtyping), such as Go, it is possible for one Go package P1 + /// to define an interface I, a second Go package P2 to have a type T which + /// implements the interface I without importing P1, and a third Go package P3 + /// to import both P1 and P2. If P3 has a conversion of a value from + /// P2.T to P1.I, then the indexer can emit a cross-relationship from + /// P2.T to P1.I. + /// + /// This same example carries over to languages like TypeScript which support + /// structural subtyping. + /// + /// Example 2: Rust allows for blanket trait implementations. Consider the + /// following code: + /// + /// ```rust + /// // t1.rs + /// pub trait T1 {} + /// + /// // s.rs + /// use m1::T1; + /// pub struct S; + /// impl T1 for S {} + /// + /// // t2.rs + /// use m1::T1; + /// trait T2 {} + /// impl T2 for T {} // <- blanket implementation that covers S + /// + /// // cross.rs + /// use m3::T2; + /// use m2::S; + /// + /// fn f(s : S) -> Box { Box::new(s) } // derives that S implements T2 + /// ``` + /// + /// If all of these modules correspond to Documents in different SCIP indexes, + /// it is not possible for the indexer to emit an is_implementation relationship + /// from S to T2 in the Documents for t1.rs, s.rs or t2.rs. In this case, + /// the indexer can emit a cross-relationship from S to T2 in the Document for cross.rs. + /// + /// Example 3: Swift allows for retroactive conformances (aka orphan instances + /// in Haskell). Consider the following code: + /// + /// ```swift + /// // P.swift + /// protocol P {} + /// + /// // S.swift + /// struct S {} + /// + /// // cross.swift + /// extension S: P {} + /// ``` + /// + /// If all of these files correspond to Documents in different SCIP indexes, + /// it is not possible for the indexer to emit an is_implementation relationship + /// from S to P in the Documents for P.swift, or S.swift. In this case, + /// the indexer can emit a cross-relationship from S to P in the Document for cross.swift. + // @@protoc_insertion_point(field:scip.Document.cross_relationships) + pub cross_relationships: ::std::vec::Vec, // special fields // @@protoc_insertion_point(special_field:scip.Document.special_fields) pub special_fields: ::protobuf::SpecialFields, @@ -605,7 +686,7 @@ impl Document { } fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { - let mut fields = ::std::vec::Vec::with_capacity(6); + let mut fields = ::std::vec::Vec::with_capacity(8); let mut oneofs = ::std::vec::Vec::with_capacity(0); fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( "language", @@ -637,6 +718,16 @@ impl Document { |m: &Document| { &m.position_encoding }, |m: &mut Document| { &mut m.position_encoding }, )); + fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>( + "external_symbols", + |m: &Document| { &m.external_symbols }, + |m: &mut Document| { &mut m.external_symbols }, + )); + fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>( + "cross_relationships", + |m: &Document| { &m.cross_relationships }, + |m: &mut Document| { &mut m.cross_relationships }, + )); ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( "Document", fields, @@ -673,6 +764,12 @@ impl ::protobuf::Message for Document { 48 => { self.position_encoding = is.read_enum_or_unknown()?; }, + 58 => { + self.external_symbols.push(is.read_message()?); + }, + 66 => { + self.cross_relationships.push(is.read_message()?); + }, tag => { ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; }, @@ -705,6 +802,14 @@ impl ::protobuf::Message for Document { if self.position_encoding != ::protobuf::EnumOrUnknown::new(PositionEncoding::UnspecifiedPositionEncoding) { my_size += ::protobuf::rt::int32_size(6, self.position_encoding.value()); } + for value in &self.external_symbols { + let len = value.compute_size(); + my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len; + }; + for value in &self.cross_relationships { + let len = value.compute_size(); + my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len; + }; my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); self.special_fields.cached_size().set(my_size as u32); my_size @@ -729,6 +834,12 @@ impl ::protobuf::Message for Document { if self.position_encoding != ::protobuf::EnumOrUnknown::new(PositionEncoding::UnspecifiedPositionEncoding) { os.write_enum(6, ::protobuf::EnumOrUnknown::value(&self.position_encoding))?; } + for v in &self.external_symbols { + ::protobuf::rt::write_message_field_with_cached_size(7, v, os)?; + }; + for v in &self.cross_relationships { + ::protobuf::rt::write_message_field_with_cached_size(8, v, os)?; + }; os.write_unknown_fields(self.special_fields.unknown_fields())?; ::std::result::Result::Ok(()) } @@ -752,6 +863,8 @@ impl ::protobuf::Message for Document { self.symbols.clear(); self.text.clear(); self.position_encoding = ::protobuf::EnumOrUnknown::new(PositionEncoding::UnspecifiedPositionEncoding); + self.external_symbols.clear(); + self.cross_relationships.clear(); self.special_fields.clear(); } @@ -763,6 +876,8 @@ impl ::protobuf::Message for Document { symbols: ::std::vec::Vec::new(), text: ::std::string::String::new(), position_encoding: ::protobuf::EnumOrUnknown::from_i32(0), + external_symbols: ::std::vec::Vec::new(), + cross_relationships: ::std::vec::Vec::new(), special_fields: ::protobuf::SpecialFields::new(), }; &instance @@ -827,7 +942,12 @@ impl ::protobuf::reflect::ProtobufValue for Document { /// the file and the node corresponding to the symbol. /// /// Local symbols MUST only be used for entities which are local to a Document, -/// and cannot be accessed from outside the Document. +/// and cannot be accessed from outside the Document via code navigation. +/// +/// Example 1: If the indexer supports emitting 'is_implementation' relationships, +/// then a subclass of a global class, even if declared within a function, +/// must have a global symbol. +/// // @@protoc_insertion_point(message:scip.Symbol) #[derive(PartialEq,Clone,Default,Debug)] pub struct Symbol { @@ -1471,6 +1591,12 @@ pub struct SymbolInformation { // @@protoc_insertion_point(field:scip.SymbolInformation.documentation) pub documentation: ::std::vec::Vec<::std::string::String>, /// (optional) Relationships to other symbols (e.g., implements, type definition). + /// + /// Relationships follow one direction. To represent the other direction: + /// - If the source symbol is defined in the same Index, attach the relationship to + /// its SymbolInformation. + /// - If the source symbol is defined in a different Index, use Document.external_symbols's + /// relationships field. // @@protoc_insertion_point(field:scip.SymbolInformation.relationships) pub relationships: ::std::vec::Vec, /// The kind of this symbol. Use this field instead of @@ -2310,6 +2436,151 @@ pub mod symbol_information { } } +/// NOTE: FullRelationship reuses Relationship instead of a more symmetric representation +/// to reduce the risk of divergence when adding new fields to Relationships. +// @@protoc_insertion_point(message:scip.FullRelationship) +#[derive(PartialEq,Clone,Default,Debug)] +pub struct FullRelationship { + // message fields + /// Represents the symbol that this relationship is about. + // @@protoc_insertion_point(field:scip.FullRelationship.source_symbol) + pub source_symbol: ::std::string::String, + /// Represents the symbol + the relationship that this symbol links to. + // @@protoc_insertion_point(field:scip.FullRelationship.relationship) + pub relationship: ::protobuf::MessageField, + // special fields + // @@protoc_insertion_point(special_field:scip.FullRelationship.special_fields) + pub special_fields: ::protobuf::SpecialFields, +} + +impl<'a> ::std::default::Default for &'a FullRelationship { + fn default() -> &'a FullRelationship { + ::default_instance() + } +} + +impl FullRelationship { + pub fn new() -> FullRelationship { + ::std::default::Default::default() + } + + fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { + let mut fields = ::std::vec::Vec::with_capacity(2); + let mut oneofs = ::std::vec::Vec::with_capacity(0); + fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( + "source_symbol", + |m: &FullRelationship| { &m.source_symbol }, + |m: &mut FullRelationship| { &mut m.source_symbol }, + )); + fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, Relationship>( + "relationship", + |m: &FullRelationship| { &m.relationship }, + |m: &mut FullRelationship| { &mut m.relationship }, + )); + ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( + "FullRelationship", + fields, + oneofs, + ) + } +} + +impl ::protobuf::Message for FullRelationship { + const NAME: &'static str = "FullRelationship"; + + fn is_initialized(&self) -> bool { + true + } + + fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> { + while let Some(tag) = is.read_raw_tag_or_eof()? { + match tag { + 10 => { + self.source_symbol = is.read_string()?; + }, + 18 => { + ::protobuf::rt::read_singular_message_into_field(is, &mut self.relationship)?; + }, + tag => { + ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; + }, + }; + } + ::std::result::Result::Ok(()) + } + + // Compute sizes of nested messages + #[allow(unused_variables)] + fn compute_size(&self) -> u64 { + let mut my_size = 0; + if !self.source_symbol.is_empty() { + my_size += ::protobuf::rt::string_size(1, &self.source_symbol); + } + if let Some(v) = self.relationship.as_ref() { + let len = v.compute_size(); + my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len; + } + my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); + self.special_fields.cached_size().set(my_size as u32); + my_size + } + + fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> { + if !self.source_symbol.is_empty() { + os.write_string(1, &self.source_symbol)?; + } + if let Some(v) = self.relationship.as_ref() { + ::protobuf::rt::write_message_field_with_cached_size(2, v, os)?; + } + os.write_unknown_fields(self.special_fields.unknown_fields())?; + ::std::result::Result::Ok(()) + } + + fn special_fields(&self) -> &::protobuf::SpecialFields { + &self.special_fields + } + + fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields { + &mut self.special_fields + } + + fn new() -> FullRelationship { + FullRelationship::new() + } + + fn clear(&mut self) { + self.source_symbol.clear(); + self.relationship.clear(); + self.special_fields.clear(); + } + + fn default_instance() -> &'static FullRelationship { + static instance: FullRelationship = FullRelationship { + source_symbol: ::std::string::String::new(), + relationship: ::protobuf::MessageField::none(), + special_fields: ::protobuf::SpecialFields::new(), + }; + &instance + } +} + +impl ::protobuf::MessageFull for FullRelationship { + fn descriptor() -> ::protobuf::reflect::MessageDescriptor { + static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new(); + descriptor.get(|| file_descriptor().message_by_package_relative_name("FullRelationship").unwrap()).clone() + } +} + +impl ::std::fmt::Display for FullRelationship { + fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + ::protobuf::text_format::fmt(self, f) + } +} + +impl ::protobuf::reflect::ProtobufValue for FullRelationship { + type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; +} + // @@protoc_insertion_point(message:scip.Relationship) #[derive(PartialEq,Clone,Default,Debug)] pub struct Relationship { @@ -2318,17 +2589,28 @@ pub struct Relationship { pub symbol: ::std::string::String, // @@protoc_insertion_point(field:scip.Relationship.is_reference) pub is_reference: bool, - /// Similar to `is_reference` but for "Find implementations". + /// Similar to `is_reference` but for "Find implementations" and "Find supers". + /// /// It's common for `is_implementation` and `is_reference` to both be true but - /// it's not always the case. - /// In the TypeScript example above, observe that `Dog#` has an - /// `is_implementation` relationship with `"Animal#"` but not `is_reference`. - /// This is because "Find references" on the "Animal#" symbol should not return - /// "Dog#". We only want "Dog#" to return as a result for "Find - /// implementations" on the "Animal#" symbol. + /// it's not always the case. In the TypeScript example above, observe that + /// `Dog#` has an `is_implementation` relationship with `"Animal#"` but not + /// `is_reference`. This is because "Find references" on the "Animal#" symbol + /// should not return "Dog#". We only want "Dog#" to return as a result for + /// "Find implementations" on the "Animal#" symbol. // @@protoc_insertion_point(field:scip.Relationship.is_implementation) pub is_implementation: bool, - /// Similar to `references_symbols` but for "Go to type definition". + /// Represents that "Go to type definition" from the (outer) symbol should go + /// to the (relationship's) symbol for a particular type. + /// + /// A less confusing name for this field would be "has_type", but we + /// cannot change this to avoid breaking generated code. + /// + /// NOTE: In Sourcegraph, this field will not be used for code navigation like + /// "Go to type references" (i.e. identifying all places where there is a + /// variable with a given type, even when type is not mentioned explicitly), + /// since that would mean that an indexer could only utilize local symbols + /// in very limited contexts, since most local variables could be potential + /// targets of such a navigation action. // @@protoc_insertion_point(field:scip.Relationship.is_type_definition) pub is_type_definition: bool, /// Allows overriding the behavior of "Go to definition" and "Find references" @@ -4514,51 +4796,54 @@ static file_descriptor_proto_data: &'static [u8] = b"\ 2\x12.scip.TextEncodingR\x14textDocumentEncoding\"V\n\x08ToolInfo\x12\ \x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x18\n\x07version\x18\x02\ \x20\x01(\tR\x07version\x12\x1c\n\targuments\x18\x03\x20\x03(\tR\targume\ - nts\"\x8b\x02\n\x08Document\x12\x1a\n\x08language\x18\x04\x20\x01(\tR\ + nts\"\x98\x03\n\x08Document\x12\x1a\n\x08language\x18\x04\x20\x01(\tR\ \x08language\x12#\n\rrelative_path\x18\x01\x20\x01(\tR\x0crelativePath\ \x122\n\x0boccurrences\x18\x02\x20\x03(\x0b2\x10.scip.OccurrenceR\x0bocc\ urrences\x121\n\x07symbols\x18\x03\x20\x03(\x0b2\x17.scip.SymbolInformat\ ionR\x07symbols\x12\x12\n\x04text\x18\x05\x20\x01(\tR\x04text\x12C\n\x11\ position_encoding\x18\x06\x20\x01(\x0e2\x16.scip.PositionEncodingR\x10po\ - sitionEncoding\"}\n\x06Symbol\x12\x16\n\x06scheme\x18\x01\x20\x01(\tR\ - \x06scheme\x12'\n\x07package\x18\x02\x20\x01(\x0b2\r.scip.PackageR\x07pa\ - ckage\x122\n\x0bdescriptors\x18\x03\x20\x03(\x0b2\x10.scip.DescriptorR\ - \x0bdescriptors\"Q\n\x07Package\x12\x18\n\x07manager\x18\x01\x20\x01(\tR\ - \x07manager\x12\x12\n\x04name\x18\x02\x20\x01(\tR\x04name\x12\x18\n\x07v\ - ersion\x18\x03\x20\x01(\tR\x07version\"\x9f\x02\n\nDescriptor\x12\x12\n\ - \x04name\x18\x01\x20\x01(\tR\x04name\x12$\n\rdisambiguator\x18\x02\x20\ - \x01(\tR\rdisambiguator\x12/\n\x06suffix\x18\x03\x20\x01(\x0e2\x17.scip.\ - Descriptor.SuffixR\x06suffix\"\xa5\x01\n\x06Suffix\x12\x15\n\x11Unspecif\ - iedSuffix\x10\0\x12\r\n\tNamespace\x10\x01\x12\x0f\n\x07Package\x10\x01\ - \x1a\x02\x08\x01\x12\x08\n\x04Type\x10\x02\x12\x08\n\x04Term\x10\x03\x12\ - \n\n\x06Method\x10\x04\x12\x11\n\rTypeParameter\x10\x05\x12\r\n\tParamet\ - er\x10\x06\x12\x08\n\x04Meta\x10\x07\x12\t\n\x05Local\x10\x08\x12\t\n\ - \x05Macro\x10\t\x1a\x02\x10\x01\"\xc5\x0c\n\x11SymbolInformation\x12\x16\ - \n\x06symbol\x18\x01\x20\x01(\tR\x06symbol\x12$\n\rdocumentation\x18\x03\ - \x20\x03(\tR\rdocumentation\x128\n\rrelationships\x18\x04\x20\x03(\x0b2\ - \x12.scip.RelationshipR\rrelationships\x120\n\x04kind\x18\x05\x20\x01(\ - \x0e2\x1c.scip.SymbolInformation.KindR\x04kind\x12!\n\x0cdisplay_name\ - \x18\x06\x20\x01(\tR\x0bdisplayName\x12G\n\x17signature_documentation\ - \x18\x07\x20\x01(\x0b2\x0e.scip.DocumentR\x16signatureDocumentation\x12)\ - \n\x10enclosing_symbol\x18\x08\x20\x01(\tR\x0fenclosingSymbol\"\xee\t\n\ - \x04Kind\x12\x13\n\x0fUnspecifiedKind\x10\0\x12\x12\n\x0eAbstractMethod\ - \x10B\x12\x0c\n\x08Accessor\x10H\x12\t\n\x05Array\x10\x01\x12\r\n\tAsser\ - tion\x10\x02\x12\x12\n\x0eAssociatedType\x10\x03\x12\r\n\tAttribute\x10\ - \x04\x12\t\n\x05Axiom\x10\x05\x12\x0b\n\x07Boolean\x10\x06\x12\t\n\x05Cl\ - ass\x10\x07\x12\x0c\n\x08Constant\x10\x08\x12\x0f\n\x0bConstructor\x10\t\ - \x12\x0c\n\x08Contract\x10>\x12\x0e\n\nDataFamily\x10\n\x12\x0c\n\x08Del\ - egate\x10I\x12\x08\n\x04Enum\x10\x0b\x12\x0e\n\nEnumMember\x10\x0c\x12\t\ - \n\x05Error\x10?\x12\t\n\x05Event\x10\r\x12\r\n\tExtension\x10T\x12\x08\ - \n\x04Fact\x10\x0e\x12\t\n\x05Field\x10\x0f\x12\x08\n\x04File\x10\x10\ - \x12\x0c\n\x08Function\x10\x11\x12\n\n\x06Getter\x10\x12\x12\x0b\n\x07Gr\ - ammar\x10\x13\x12\x0c\n\x08Instance\x10\x14\x12\r\n\tInterface\x10\x15\ - \x12\x07\n\x03Key\x10\x16\x12\x08\n\x04Lang\x10\x17\x12\t\n\x05Lemma\x10\ - \x18\x12\x0b\n\x07Library\x10@\x12\t\n\x05Macro\x10\x19\x12\n\n\x06Metho\ - d\x10\x1a\x12\x0f\n\x0bMethodAlias\x10J\x12\x12\n\x0eMethodReceiver\x10\ - \x1b\x12\x17\n\x13MethodSpecification\x10C\x12\x0b\n\x07Message\x10\x1c\ - \x12\t\n\x05Mixin\x10U\x12\x0c\n\x08Modifier\x10A\x12\n\n\x06Module\x10\ - \x1d\x12\r\n\tNamespace\x10\x1e\x12\x08\n\x04Null\x10\x1f\x12\n\n\x06Num\ - ber\x10\x20\x12\n\n\x06Object\x10!\x12\x0c\n\x08Operator\x10\"\x12\x0b\n\ + sitionEncoding\x12B\n\x10external_symbols\x18\x07\x20\x03(\x0b2\x17.scip\ + .SymbolInformationR\x0fexternalSymbols\x12G\n\x13cross_relationships\x18\ + \x08\x20\x03(\x0b2\x16.scip.FullRelationshipR\x12crossRelationships\"}\n\ + \x06Symbol\x12\x16\n\x06scheme\x18\x01\x20\x01(\tR\x06scheme\x12'\n\x07p\ + ackage\x18\x02\x20\x01(\x0b2\r.scip.PackageR\x07package\x122\n\x0bdescri\ + ptors\x18\x03\x20\x03(\x0b2\x10.scip.DescriptorR\x0bdescriptors\"Q\n\x07\ + Package\x12\x18\n\x07manager\x18\x01\x20\x01(\tR\x07manager\x12\x12\n\ + \x04name\x18\x02\x20\x01(\tR\x04name\x12\x18\n\x07version\x18\x03\x20\ + \x01(\tR\x07version\"\x9f\x02\n\nDescriptor\x12\x12\n\x04name\x18\x01\ + \x20\x01(\tR\x04name\x12$\n\rdisambiguator\x18\x02\x20\x01(\tR\rdisambig\ + uator\x12/\n\x06suffix\x18\x03\x20\x01(\x0e2\x17.scip.Descriptor.SuffixR\ + \x06suffix\"\xa5\x01\n\x06Suffix\x12\x15\n\x11UnspecifiedSuffix\x10\0\ + \x12\r\n\tNamespace\x10\x01\x12\x0f\n\x07Package\x10\x01\x1a\x02\x08\x01\ + \x12\x08\n\x04Type\x10\x02\x12\x08\n\x04Term\x10\x03\x12\n\n\x06Method\ + \x10\x04\x12\x11\n\rTypeParameter\x10\x05\x12\r\n\tParameter\x10\x06\x12\ + \x08\n\x04Meta\x10\x07\x12\t\n\x05Local\x10\x08\x12\t\n\x05Macro\x10\t\ + \x1a\x02\x10\x01\"\xc5\x0c\n\x11SymbolInformation\x12\x16\n\x06symbol\ + \x18\x01\x20\x01(\tR\x06symbol\x12$\n\rdocumentation\x18\x03\x20\x03(\tR\ + \rdocumentation\x128\n\rrelationships\x18\x04\x20\x03(\x0b2\x12.scip.Rel\ + ationshipR\rrelationships\x120\n\x04kind\x18\x05\x20\x01(\x0e2\x1c.scip.\ + SymbolInformation.KindR\x04kind\x12!\n\x0cdisplay_name\x18\x06\x20\x01(\ + \tR\x0bdisplayName\x12G\n\x17signature_documentation\x18\x07\x20\x01(\ + \x0b2\x0e.scip.DocumentR\x16signatureDocumentation\x12)\n\x10enclosing_s\ + ymbol\x18\x08\x20\x01(\tR\x0fenclosingSymbol\"\xee\t\n\x04Kind\x12\x13\n\ + \x0fUnspecifiedKind\x10\0\x12\x12\n\x0eAbstractMethod\x10B\x12\x0c\n\x08\ + Accessor\x10H\x12\t\n\x05Array\x10\x01\x12\r\n\tAssertion\x10\x02\x12\ + \x12\n\x0eAssociatedType\x10\x03\x12\r\n\tAttribute\x10\x04\x12\t\n\x05A\ + xiom\x10\x05\x12\x0b\n\x07Boolean\x10\x06\x12\t\n\x05Class\x10\x07\x12\ + \x0c\n\x08Constant\x10\x08\x12\x0f\n\x0bConstructor\x10\t\x12\x0c\n\x08C\ + ontract\x10>\x12\x0e\n\nDataFamily\x10\n\x12\x0c\n\x08Delegate\x10I\x12\ + \x08\n\x04Enum\x10\x0b\x12\x0e\n\nEnumMember\x10\x0c\x12\t\n\x05Error\ + \x10?\x12\t\n\x05Event\x10\r\x12\r\n\tExtension\x10T\x12\x08\n\x04Fact\ + \x10\x0e\x12\t\n\x05Field\x10\x0f\x12\x08\n\x04File\x10\x10\x12\x0c\n\ + \x08Function\x10\x11\x12\n\n\x06Getter\x10\x12\x12\x0b\n\x07Grammar\x10\ + \x13\x12\x0c\n\x08Instance\x10\x14\x12\r\n\tInterface\x10\x15\x12\x07\n\ + \x03Key\x10\x16\x12\x08\n\x04Lang\x10\x17\x12\t\n\x05Lemma\x10\x18\x12\ + \x0b\n\x07Library\x10@\x12\t\n\x05Macro\x10\x19\x12\n\n\x06Method\x10\ + \x1a\x12\x0f\n\x0bMethodAlias\x10J\x12\x12\n\x0eMethodReceiver\x10\x1b\ + \x12\x17\n\x13MethodSpecification\x10C\x12\x0b\n\x07Message\x10\x1c\x12\ + \t\n\x05Mixin\x10U\x12\x0c\n\x08Modifier\x10A\x12\n\n\x06Module\x10\x1d\ + \x12\r\n\tNamespace\x10\x1e\x12\x08\n\x04Null\x10\x1f\x12\n\n\x06Number\ + \x10\x20\x12\n\n\x06Object\x10!\x12\x0c\n\x08Operator\x10\"\x12\x0b\n\ \x07Package\x10#\x12\x11\n\rPackageObject\x10$\x12\r\n\tParameter\x10%\ \x12\x12\n\x0eParameterLabel\x10&\x12\x0b\n\x07Pattern\x10'\x12\r\n\tPre\ dicate\x10(\x12\x0c\n\x08Property\x10)\x12\x0c\n\x08Protocol\x10*\x12\ @@ -4574,279 +4859,347 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \n\x04Type\x106\x12\r\n\tTypeAlias\x107\x12\r\n\tTypeClass\x108\x12\x13\ \n\x0fTypeClassMethod\x10G\x12\x0e\n\nTypeFamily\x109\x12\x11\n\rTypePar\ ameter\x10:\x12\t\n\x05Union\x10;\x12\t\n\x05Value\x10<\x12\x0c\n\x08Var\ - iable\x10=\"\xc9\x01\n\x0cRelationship\x12\x16\n\x06symbol\x18\x01\x20\ - \x01(\tR\x06symbol\x12!\n\x0cis_reference\x18\x02\x20\x01(\x08R\x0bisRef\ - erence\x12+\n\x11is_implementation\x18\x03\x20\x01(\x08R\x10isImplementa\ - tion\x12,\n\x12is_type_definition\x18\x04\x20\x01(\x08R\x10isTypeDefinit\ - ion\x12#\n\ris_definition\x18\x05\x20\x01(\x08R\x0cisDefinition\"\xa4\ - \x02\n\nOccurrence\x12\x14\n\x05range\x18\x01\x20\x03(\x05R\x05range\x12\ - \x16\n\x06symbol\x18\x02\x20\x01(\tR\x06symbol\x12!\n\x0csymbol_roles\ - \x18\x03\x20\x01(\x05R\x0bsymbolRoles\x125\n\x16override_documentation\ - \x18\x04\x20\x03(\tR\x15overrideDocumentation\x121\n\x0bsyntax_kind\x18\ - \x05\x20\x01(\x0e2\x10.scip.SyntaxKindR\nsyntaxKind\x122\n\x0bdiagnostic\ - s\x18\x06\x20\x03(\x0b2\x10.scip.DiagnosticR\x0bdiagnostics\x12'\n\x0fen\ - closing_range\x18\x07\x20\x03(\x05R\x0eenclosingRange\"\xa7\x01\n\nDiagn\ - ostic\x12*\n\x08severity\x18\x01\x20\x01(\x0e2\x0e.scip.SeverityR\x08sev\ - erity\x12\x12\n\x04code\x18\x02\x20\x01(\tR\x04code\x12\x18\n\x07message\ - \x18\x03\x20\x01(\tR\x07message\x12\x16\n\x06source\x18\x04\x20\x01(\tR\ - \x06source\x12'\n\x04tags\x18\x05\x20\x03(\x0e2\x13.scip.DiagnosticTagR\ - \x04tags*1\n\x0fProtocolVersion\x12\x1e\n\x1aUnspecifiedProtocolVersion\ - \x10\0*@\n\x0cTextEncoding\x12\x1b\n\x17UnspecifiedTextEncoding\x10\0\ - \x12\x08\n\x04UTF8\x10\x01\x12\t\n\x05UTF16\x10\x02*\xa4\x01\n\x10Positi\ - onEncoding\x12\x1f\n\x1bUnspecifiedPositionEncoding\x10\0\x12#\n\x1fUTF8\ - CodeUnitOffsetFromLineStart\x10\x01\x12$\n\x20UTF16CodeUnitOffsetFromLin\ - eStart\x10\x02\x12$\n\x20UTF32CodeUnitOffsetFromLineStart\x10\x03*\x94\ - \x01\n\nSymbolRole\x12\x19\n\x15UnspecifiedSymbolRole\x10\0\x12\x0e\n\nD\ - efinition\x10\x01\x12\n\n\x06Import\x10\x02\x12\x0f\n\x0bWriteAccess\x10\ - \x04\x12\x0e\n\nReadAccess\x10\x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\ - \x04Test\x10\x20\x12\x15\n\x11ForwardDefinition\x10@*\xea\x06\n\nSyntaxK\ - ind\x12\x19\n\x15UnspecifiedSyntaxKind\x10\0\x12\x0b\n\x07Comment\x10\ - \x01\x12\x18\n\x14PunctuationDelimiter\x10\x02\x12\x16\n\x12PunctuationB\ - racket\x10\x03\x12\x0b\n\x07Keyword\x10\x04\x12\x19\n\x11IdentifierKeywo\ - rd\x10\x04\x1a\x02\x08\x01\x12\x16\n\x12IdentifierOperator\x10\x05\x12\ - \x0e\n\nIdentifier\x10\x06\x12\x15\n\x11IdentifierBuiltin\x10\x07\x12\ - \x12\n\x0eIdentifierNull\x10\x08\x12\x16\n\x12IdentifierConstant\x10\t\ - \x12\x1b\n\x17IdentifierMutableGlobal\x10\n\x12\x17\n\x13IdentifierParam\ - eter\x10\x0b\x12\x13\n\x0fIdentifierLocal\x10\x0c\x12\x16\n\x12Identifie\ - rShadowed\x10\r\x12\x17\n\x13IdentifierNamespace\x10\x0e\x12\x18\n\x10Id\ - entifierModule\x10\x0e\x1a\x02\x08\x01\x12\x16\n\x12IdentifierFunction\ - \x10\x0f\x12\x20\n\x1cIdentifierFunctionDefinition\x10\x10\x12\x13\n\x0f\ - IdentifierMacro\x10\x11\x12\x1d\n\x19IdentifierMacroDefinition\x10\x12\ - \x12\x12\n\x0eIdentifierType\x10\x13\x12\x19\n\x15IdentifierBuiltinType\ - \x10\x14\x12\x17\n\x13IdentifierAttribute\x10\x15\x12\x0f\n\x0bRegexEsca\ - pe\x10\x16\x12\x11\n\rRegexRepeated\x10\x17\x12\x11\n\rRegexWildcard\x10\ - \x18\x12\x12\n\x0eRegexDelimiter\x10\x19\x12\r\n\tRegexJoin\x10\x1a\x12\ - \x11\n\rStringLiteral\x10\x1b\x12\x17\n\x13StringLiteralEscape\x10\x1c\ - \x12\x18\n\x14StringLiteralSpecial\x10\x1d\x12\x14\n\x10StringLiteralKey\ - \x10\x1e\x12\x14\n\x10CharacterLiteral\x10\x1f\x12\x12\n\x0eNumericLiter\ - al\x10\x20\x12\x12\n\x0eBooleanLiteral\x10!\x12\x07\n\x03Tag\x10\"\x12\ - \x10\n\x0cTagAttribute\x10#\x12\x10\n\x0cTagDelimiter\x10$\x1a\x02\x10\ - \x01*V\n\x08Severity\x12\x17\n\x13UnspecifiedSeverity\x10\0\x12\t\n\x05E\ - rror\x10\x01\x12\x0b\n\x07Warning\x10\x02\x12\x0f\n\x0bInformation\x10\ - \x03\x12\x08\n\x04Hint\x10\x04*N\n\rDiagnosticTag\x12\x1c\n\x18Unspecifi\ - edDiagnosticTag\x10\0\x12\x0f\n\x0bUnnecessary\x10\x01\x12\x0e\n\nDeprec\ - ated\x10\x02*\x9b\n\n\x08Language\x12\x17\n\x13UnspecifiedLanguage\x10\0\ - \x12\x08\n\x04ABAP\x10<\x12\x08\n\x04Apex\x10`\x12\x07\n\x03APL\x101\x12\ - \x07\n\x03Ada\x10'\x12\x08\n\x04Agda\x10-\x12\x0c\n\x08AsciiDoc\x10V\x12\ - \x0c\n\x08Assembly\x10:\x12\x07\n\x03Awk\x10B\x12\x07\n\x03Bat\x10D\x12\ - \n\n\x06BibTeX\x10Q\x12\x05\n\x01C\x10\"\x12\t\n\x05COBOL\x10;\x12\x07\n\ - \x03CPP\x10#\x12\x07\n\x03CSS\x10\x1a\x12\n\n\x06CSharp\x10\x01\x12\x0b\ - \n\x07Clojure\x10\x08\x12\x10\n\x0cCoffeescript\x10\x15\x12\x0e\n\nCommo\ - nLisp\x10\t\x12\x07\n\x03Coq\x10/\x12\x08\n\x04CUDA\x10a\x12\x08\n\x04Da\ - rt\x10\x03\x12\n\n\x06Delphi\x109\x12\x08\n\x04Diff\x10X\x12\x0e\n\nDock\ - erfile\x10P\x12\n\n\x06Dyalog\x102\x12\n\n\x06Elixir\x10\x11\x12\n\n\x06\ - Erlang\x10\x12\x12\n\n\x06FSharp\x10*\x12\x08\n\x04Fish\x10A\x12\x08\n\ - \x04Flow\x10\x18\x12\x0b\n\x07Fortran\x108\x12\x0e\n\nGit_Commit\x10[\ - \x12\x0e\n\nGit_Config\x10Y\x12\x0e\n\nGit_Rebase\x10\\\x12\x06\n\x02Go\ - \x10!\x12\x0b\n\x07GraphQL\x10b\x12\n\n\x06Groovy\x10\x07\x12\x08\n\x04H\ - TML\x10\x1e\x12\x08\n\x04Hack\x10\x14\x12\x0e\n\nHandlebars\x10Z\x12\x0b\ - \n\x07Haskell\x10,\x12\t\n\x05Idris\x10.\x12\x07\n\x03Ini\x10H\x12\x05\n\ - \x01J\x103\x12\x08\n\x04JSON\x10K\x12\x08\n\x04Java\x10\x06\x12\x0e\n\nJ\ - avaScript\x10\x16\x12\x13\n\x0fJavaScriptReact\x10]\x12\x0b\n\x07Jsonnet\ - \x10L\x12\t\n\x05Julia\x107\x12\x0c\n\x08Justfile\x10m\x12\n\n\x06Kotlin\ - \x10\x04\x12\t\n\x05LaTeX\x10S\x12\x08\n\x04Lean\x100\x12\x08\n\x04Less\ - \x10\x1b\x12\x07\n\x03Lua\x10\x0c\x12\x08\n\x04Luau\x10l\x12\x0c\n\x08Ma\ - kefile\x10O\x12\x0c\n\x08Markdown\x10T\x12\n\n\x06Matlab\x104\x12\n\n\ - \x06Nickel\x10n\x12\x07\n\x03Nix\x10M\x12\t\n\x05OCaml\x10)\x12\x0f\n\ - \x0bObjective_C\x10$\x12\x11\n\rObjective_CPP\x10%\x12\n\n\x06Pascal\x10\ - c\x12\x07\n\x03PHP\x10\x13\x12\t\n\x05PLSQL\x10F\x12\x08\n\x04Perl\x10\r\ - \x12\x0e\n\nPowerShell\x10C\x12\n\n\x06Prolog\x10G\x12\x0c\n\x08Protobuf\ - \x10d\x12\n\n\x06Python\x10\x0f\x12\x05\n\x01R\x106\x12\n\n\x06Racket\ - \x10\x0b\x12\x08\n\x04Raku\x10\x0e\x12\t\n\x05Razor\x10>\x12\t\n\x05Repr\ - o\x10f\x12\x08\n\x04ReST\x10U\x12\x08\n\x04Ruby\x10\x10\x12\x08\n\x04Rus\ - t\x10(\x12\x07\n\x03SAS\x10=\x12\x08\n\x04SCSS\x10\x1d\x12\x07\n\x03SML\ - \x10+\x12\x07\n\x03SQL\x10E\x12\x08\n\x04Sass\x10\x1c\x12\t\n\x05Scala\ - \x10\x05\x12\n\n\x06Scheme\x10\n\x12\x0f\n\x0bShellScript\x10@\x12\x0b\n\ - \x07Skylark\x10N\x12\t\n\x05Slang\x10k\x12\x0c\n\x08Solidity\x10_\x12\n\ - \n\x06Svelte\x10j\x12\t\n\x05Swift\x10\x02\x12\x07\n\x03Tcl\x10e\x12\x08\ - \n\x04TOML\x10I\x12\x07\n\x03TeX\x10R\x12\n\n\x06Thrift\x10g\x12\x0e\n\n\ - TypeScript\x10\x17\x12\x13\n\x0fTypeScriptReact\x10^\x12\x0b\n\x07Verilo\ - g\x10h\x12\x08\n\x04VHDL\x10i\x12\x0f\n\x0bVisualBasic\x10?\x12\x07\n\ - \x03Vue\x10\x19\x12\x0b\n\x07Wolfram\x105\x12\x07\n\x03XML\x10\x1f\x12\ - \x07\n\x03XSL\x10\x20\x12\x08\n\x04YAML\x10J\x12\x07\n\x03Zig\x10&B/Z-gi\ - thub.com/sourcegraph/scip/bindings/go/scip/J\xd7\xb7\x02\n\x07\x12\x05\n\ - \0\xf0\x06\x01\n\x82\x04\n\x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20ind\ - ex\x20contains\x20one\x20or\x20more\x20pieces\x20of\x20information\x20ab\ - out\x20a\x20given\x20piece\x20of\n\x20source\x20code\x20or\x20software\ - \x20artifact.\x20Complementary\x20information\x20can\x20be\x20merged\n\ - \x20together\x20from\x20multiple\x20sources\x20to\x20provide\x20a\x20uni\ - fied\x20code\x20intelligence\n\x20experience.\n\n\x20Programs\x20produci\ - ng\x20a\x20file\x20of\x20this\x20format\x20is\x20an\x20\"indexer\"\x20an\ - d\x20may\x20operate\n\x20somewhere\x20on\x20the\x20spectrum\x20between\ - \x20precision,\x20such\x20as\x20indexes\x20produced\x20by\n\x20compiler-\ - backed\x20indexers,\x20and\x20heurstics,\x20such\x20as\x20indexes\x20pro\ - duced\x20by\x20local\n\x20syntax-directed\x20analysis\x20for\x20scope\ - \x20rules.\n\n\x08\n\x01\x02\x12\x03\x0c\0\r\n\x08\n\x01\x08\x12\x03\x0e\ - \0D\n\t\n\x02\x08\x0b\x12\x03\x0e\0D\n\xd0\x03\n\x02\x04\0\x12\x04\x16\0\ - #\x01\x1a\xc3\x03\x20Index\x20represents\x20a\x20complete\x20SCIP\x20ind\ - ex\x20for\x20a\x20workspace\x20this\x20is\x20rooted\x20at\x20a\n\x20sing\ - le\x20directory.\x20An\x20Index\x20message\x20payload\x20can\x20have\x20\ - a\x20large\x20memory\x20footprint\n\x20and\x20it's\x20therefore\x20recom\ - mended\x20to\x20emit\x20and\x20consume\x20an\x20Index\x20payload\x20one\ - \x20field\n\x20value\x20at\x20a\x20time.\x20To\x20permit\x20streaming\ - \x20consumption\x20of\x20an\x20Index\x20payload,\x20the\n\x20`metadata`\ - \x20field\x20must\x20appear\x20at\x20the\x20start\x20of\x20the\x20stream\ - \x20and\x20must\x20only\x20appear\n\x20once\x20in\x20the\x20stream.\x20O\ - ther\x20field\x20values\x20may\x20appear\x20in\x20any\x20order.\n\n\n\n\ - \x03\x04\0\x01\x12\x03\x16\x08\r\n)\n\x04\x04\0\x02\0\x12\x03\x18\x02\ - \x18\x1a\x1c\x20Metadata\x20about\x20this\x20index.\n\n\x0c\n\x05\x04\0\ - \x02\0\x06\x12\x03\x18\x02\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x18\x0b\ - \x13\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x18\x16\x17\n3\n\x04\x04\0\x02\ - \x01\x12\x03\x1a\x02\"\x1a&\x20Documents\x20that\x20belong\x20to\x20this\ - \x20index.\n\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\ - \x04\0\x02\x01\x06\x12\x03\x1a\x0b\x13\n\x0c\n\x05\x04\0\x02\x01\x01\x12\ - \x03\x1a\x14\x1d\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x1a\x20!\n\xf6\ - \x03\n\x04\x04\0\x02\x02\x12\x03\x20\x022\x1a\xe9\x02\x20(optional)\x20S\ - ymbols\x20that\x20are\x20referenced\x20from\x20this\x20index\x20but\x20a\ - re\x20defined\x20in\n\x20an\x20external\x20package\x20(a\x20separate\x20\ - `Index`\x20message).\x20Leave\x20this\x20field\x20empty\n\x20if\x20you\ - \x20assume\x20the\x20external\x20package\x20will\x20get\x20indexed\x20se\ - parately.\x20If\x20the\n\x20external\x20package\x20won't\x20get\x20index\ - ed\x20for\x20some\x20reason\x20then\x20you\x20can\x20use\x20this\n\x20fi\ - eld\x20to\x20provide\x20hover\x20documentation\x20for\x20those\x20extern\ - al\x20symbols.\n\"}\x20IMPORTANT:\x20When\x20adding\x20a\x20new\x20field\ - \x20to\x20`Index`\x20here,\x20add\x20a\x20matching\n\x20function\x20in\ - \x20`IndexVisitor`\x20and\x20update\x20`ParseStreaming`.\n\n\x0c\n\x05\ - \x04\0\x02\x02\x04\x12\x03\x20\x02\n\n\x0c\n\x05\x04\0\x02\x02\x06\x12\ - \x03\x20\x0b\x1c\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x20\x1d-\n\x0c\n\ - \x05\x04\0\x02\x02\x03\x12\x03\x2001\n\n\n\x02\x04\x01\x12\x04%\02\x01\n\ - \n\n\x03\x04\x01\x01\x12\x03%\x08\x10\nN\n\x04\x04\x01\x02\0\x12\x03'\ - \x02\x1e\x1aA\x20Which\x20version\x20of\x20this\x20protocol\x20was\x20us\ - ed\x20to\x20generate\x20this\x20index?\n\n\x0c\n\x05\x04\x01\x02\0\x06\ - \x12\x03'\x02\x11\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03'\x12\x19\n\x0c\n\ - \x05\x04\x01\x02\0\x03\x12\x03'\x1c\x1d\nC\n\x04\x04\x01\x02\x01\x12\x03\ - )\x02\x19\x1a6\x20Information\x20about\x20the\x20tool\x20that\x20produce\ - d\x20this\x20index.\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03)\x02\n\n\ - \x0c\n\x05\x04\x01\x02\x01\x01\x12\x03)\x0b\x14\n\x0c\n\x05\x04\x01\x02\ - \x01\x03\x12\x03)\x17\x18\n\xa2\x01\n\x04\x04\x01\x02\x02\x12\x03-\x02\ - \x1a\x1a\x94\x01\x20URI-encoded\x20absolute\x20path\x20to\x20the\x20root\ - \x20directory\x20of\x20this\x20index.\x20All\n\x20documents\x20in\x20thi\ - s\x20index\x20must\x20appear\x20in\x20a\x20subdirectory\x20of\x20this\ - \x20root\n\x20directory.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03-\x02\ - \x08\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03-\t\x15\n\x0c\n\x05\x04\x01\ - \x02\x02\x03\x12\x03-\x18\x19\n\xe0\x01\n\x04\x04\x01\x02\x03\x12\x031\ - \x02*\x1a\xd2\x01\x20Text\x20encoding\x20of\x20the\x20source\x20files\ - \x20on\x20disk\x20that\x20are\x20referenced\x20from\n\x20`Document.relat\ - ive_path`.\x20This\x20value\x20is\x20unrelated\x20to\x20the\x20`Document\ - .text`\n\x20field,\x20which\x20is\x20a\x20Protobuf\x20string\x20and\x20h\ - ence\x20must\x20be\x20UTF-8\x20encoded.\n\n\x0c\n\x05\x04\x01\x02\x03\ - \x06\x12\x031\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x031\x0f%\n\ - \x0c\n\x05\x04\x01\x02\x03\x03\x12\x031()\n\n\n\x02\x05\0\x12\x044\06\ - \x01\n\n\n\x03\x05\0\x01\x12\x034\x05\x14\n\x0b\n\x04\x05\0\x02\0\x12\ - \x035\x02!\n\x0c\n\x05\x05\0\x02\0\x01\x12\x035\x02\x1c\n\x0c\n\x05\x05\ - \0\x02\0\x02\x12\x035\x1f\x20\n\n\n\x02\x05\x01\x12\x048\0<\x01\n\n\n\ - \x03\x05\x01\x01\x12\x038\x05\x11\n\x0b\n\x04\x05\x01\x02\0\x12\x039\x02\ - \x1e\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x039\x02\x19\n\x0c\n\x05\x05\x01\ - \x02\0\x02\x12\x039\x1c\x1d\n\x0b\n\x04\x05\x01\x02\x01\x12\x03:\x02\x0b\ - \n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03:\x02\x06\n\x0c\n\x05\x05\x01\ - \x02\x01\x02\x12\x03:\t\n\n\x0b\n\x04\x05\x01\x02\x02\x12\x03;\x02\x0c\n\ - \x0c\n\x05\x05\x01\x02\x02\x01\x12\x03;\x02\x07\n\x0c\n\x05\x05\x01\x02\ - \x02\x02\x12\x03;\n\x0b\n\n\n\x02\x04\x02\x12\x04>\0E\x01\n\n\n\x03\x04\ - \x02\x01\x12\x03>\x08\x10\n<\n\x04\x04\x02\x02\0\x12\x03@\x02\x12\x1a/\ - \x20Name\x20of\x20the\x20indexer\x20that\x20produced\x20this\x20index.\n\ - \n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03@\x02\x08\n\x0c\n\x05\x04\x02\x02\ - \0\x01\x12\x03@\t\r\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03@\x10\x11\n?\n\ - \x04\x04\x02\x02\x01\x12\x03B\x02\x15\x1a2\x20Version\x20of\x20the\x20in\ - dexer\x20that\x20produced\x20this\x20index.\n\n\x0c\n\x05\x04\x02\x02\ - \x01\x05\x12\x03B\x02\x08\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03B\t\x10\ - \n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03B\x13\x14\nL\n\x04\x04\x02\x02\ - \x02\x12\x03D\x02\x20\x1a?\x20Command-line\x20arguments\x20that\x20were\ - \x20used\x20to\x20invoke\x20this\x20indexer.\n\n\x0c\n\x05\x04\x02\x02\ - \x02\x04\x12\x03D\x02\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03D\x0b\x11\ - \n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03D\x12\x1b\n\x0c\n\x05\x04\x02\ - \x02\x02\x03\x12\x03D\x1e\x1f\nH\n\x02\x04\x03\x12\x04H\0u\x01\x1a<\x20D\ - ocument\x20defines\x20the\x20metadata\x20about\x20a\x20source\x20file\ - \x20on\x20disk.\n\n\n\n\x03\x04\x03\x01\x12\x03H\x08\x10\n\xa5\x02\n\x04\ - \x04\x03\x02\0\x12\x03M\x02\x16\x1a\x97\x02\x20The\x20string\x20ID\x20fo\ - r\x20the\x20programming\x20language\x20this\x20file\x20is\x20written\x20\ - in.\n\x20The\x20`Language`\x20enum\x20contains\x20the\x20names\x20of\x20\ - most\x20common\x20programming\x20languages.\n\x20This\x20field\x20is\x20\ - typed\x20as\x20a\x20string\x20to\x20permit\x20any\x20programming\x20lang\ - uage,\x20including\n\x20ones\x20that\x20are\x20not\x20specified\x20by\ - \x20the\x20`Language`\x20enum.\n\n\x0c\n\x05\x04\x03\x02\0\x05\x12\x03M\ - \x02\x08\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03M\t\x11\n\x0c\n\x05\x04\ - \x03\x02\0\x03\x12\x03M\x14\x15\n\xb5\x03\n\x04\x04\x03\x02\x01\x12\x03W\ - \x02\x1b\x1a\xa7\x03\x20(Required)\x20Unique\x20path\x20to\x20the\x20tex\ - t\x20document.\n\n\x201.\x20The\x20path\x20must\x20be\x20relative\x20to\ - \x20the\x20directory\x20supplied\x20in\x20the\x20associated\n\x20\x20\ - \x20\x20`Metadata.project_root`.\n\x202.\x20The\x20path\x20must\x20not\ - \x20begin\x20with\x20a\x20leading\x20'/'.\n\x203.\x20The\x20path\x20must\ - \x20point\x20to\x20a\x20regular\x20file,\x20not\x20a\x20symbolic\x20link\ - .\n\x204.\x20The\x20path\x20must\x20use\x20'/'\x20as\x20the\x20separator\ - ,\x20including\x20on\x20Windows.\n\x205.\x20The\x20path\x20must\x20be\ - \x20canonical;\x20it\x20cannot\x20include\x20empty\x20components\x20('//\ - '),\n\x20\x20\x20\x20or\x20'.'\x20or\x20'..'.\n\n\x0c\n\x05\x04\x03\x02\ - \x01\x05\x12\x03W\x02\x08\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03W\t\x16\ - \n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03W\x19\x1a\n4\n\x04\x04\x03\x02\ - \x02\x12\x03Y\x02&\x1a'\x20Occurrences\x20that\x20appear\x20in\x20this\ - \x20file.\n\n\x0c\n\x05\x04\x03\x02\x02\x04\x12\x03Y\x02\n\n\x0c\n\x05\ - \x04\x03\x02\x02\x06\x12\x03Y\x0b\x15\n\x0c\n\x05\x04\x03\x02\x02\x01\ - \x12\x03Y\x16!\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03Y$%\n\xea\x01\n\ - \x04\x04\x03\x02\x03\x12\x03_\x02)\x1a\xdc\x01\x20Symbols\x20that\x20are\ - \x20\"defined\"\x20within\x20this\x20document.\n\n\x20This\x20should\x20\ - include\x20symbols\x20which\x20technically\x20do\x20not\x20have\x20any\ - \x20definition,\n\x20but\x20have\x20a\x20reference\x20and\x20are\x20defi\ - ned\x20by\x20some\x20other\x20symbol\x20(see\n\x20Relationship.is_defini\ - tion).\n\n\x0c\n\x05\x04\x03\x02\x03\x04\x12\x03_\x02\n\n\x0c\n\x05\x04\ - \x03\x02\x03\x06\x12\x03_\x0b\x1c\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\ - \x03_\x1d$\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x03_'(\n\xf7\x03\n\x04\ - \x04\x03\x02\x04\x12\x03h\x02\x12\x1a\xe9\x03\x20(optional)\x20Text\x20c\ - ontents\x20of\x20the\x20this\x20document.\x20Indexers\x20are\x20not\x20e\ - xpected\x20to\n\x20include\x20the\x20text\x20by\x20default.\x20It's\x20p\ - referrable\x20that\x20clients\x20read\x20the\x20text\n\x20contents\x20fr\ - om\x20the\x20file\x20system\x20by\x20resolving\x20the\x20absolute\x20pat\ - h\x20from\x20joining\n\x20`Index.metadata.project_root`\x20and\x20`Docum\ - ent.relative_path`.\x20This\x20field\x20was\n\x20introduced\x20to\x20sup\ - port\x20`SymbolInformation.signature_documentation`,\x20but\x20it\n\x20c\ - an\x20be\x20used\x20for\x20other\x20purposes\x20as\x20well,\x20for\x20ex\ - ample\x20testing\x20or\x20when\x20working\n\x20with\x20virtual/in-memory\ - \x20documents.\n\n\x0c\n\x05\x04\x03\x02\x04\x05\x12\x03h\x02\x08\n\x0c\ - \n\x05\x04\x03\x02\x04\x01\x12\x03h\t\r\n\x0c\n\x05\x04\x03\x02\x04\x03\ - \x12\x03h\x10\x11\n\xe7\x03\n\x04\x04\x03\x02\x05\x12\x03t\x02)\x1a\xd9\ - \x03\x20Specifies\x20the\x20encoding\x20used\x20for\x20source\x20ranges\ - \x20in\x20this\x20Document.\n\n\x20Usually,\x20this\x20will\x20match\x20\ - the\x20type\x20used\x20to\x20index\x20the\x20string\x20type\n\x20in\x20t\ - he\x20indexer's\x20implementation\x20language\x20in\x20O(1)\x20time.\n\ - \x20-\x20For\x20an\x20indexer\x20implemented\x20in\x20JVM/.NET\x20langua\ - ge\x20or\x20JavaScript/TypeScript,\n\x20\x20\x20use\x20UTF16CodeUnitOffs\ - etFromLineStart.\n\x20-\x20For\x20an\x20indexer\x20implemented\x20in\x20\ - Python,\n\x20\x20\x20use\x20UTF32CodeUnitOffsetFromLineStart.\n\x20-\x20\ - For\x20an\x20indexer\x20implemented\x20in\x20Go,\x20Rust\x20or\x20C++,\n\ - \x20\x20\x20use\x20UTF8ByteOffsetFromLineStart.\n\n\x0c\n\x05\x04\x03\ - \x02\x05\x06\x12\x03t\x02\x12\n\x0c\n\x05\x04\x03\x02\x05\x01\x12\x03t\ - \x13$\n\x0c\n\x05\x04\x03\x02\x05\x03\x12\x03t'(\nQ\n\x02\x05\x02\x12\ - \x05x\0\x90\x01\x01\x1aD\x20Encoding\x20used\x20to\x20interpret\x20the\ - \x20'character'\x20value\x20in\x20source\x20ranges.\n\n\n\n\x03\x05\x02\ - \x01\x12\x03x\x05\x15\n\x93\x01\n\x04\x05\x02\x02\0\x12\x03{\x02\"\x1a\ - \x85\x01\x20Default\x20value.\x20This\x20value\x20should\x20not\x20be\ - \x20used\x20by\x20new\x20SCIP\x20indexers\n\x20so\x20that\x20a\x20consum\ - er\x20can\x20process\x20the\x20SCIP\x20index\x20without\x20ambiguity.\n\ - \n\x0c\n\x05\x05\x02\x02\0\x01\x12\x03{\x02\x1d\n\x0c\n\x05\x05\x02\x02\ - \0\x02\x12\x03{\x20!\n\xf7\x01\n\x04\x05\x02\x02\x01\x12\x04\x82\x01\x02\ - &\x1a\xe8\x01\x20The\x20'character'\x20value\x20is\x20interpreted\x20as\ - \x20an\x20offset\x20in\x20terms\n\x20of\x20UTF-8\x20code\x20units\x20(i.\ - e.\x20bytes).\n\n\x20Example:\x20For\x20the\x20string\x20\"\xf0\x9f\x9a\ - \x80\x20Woo\"\x20in\x20UTF-8,\x20the\x20bytes\x20are\n\x20[240,\x20159,\ - \x20154,\x20128,\x2032,\x2087,\x20111,\x20111],\x20so\x20the\x20offset\ - \x20for\x20'W'\n\x20would\x20be\x205.\n\n\r\n\x05\x05\x02\x02\x01\x01\ - \x12\x04\x82\x01\x02!\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\x82\x01$%\n\ - \x82\x02\n\x04\x05\x02\x02\x02\x12\x04\x89\x01\x02'\x1a\xf3\x01\x20The\ - \x20'character'\x20value\x20is\x20interpreted\x20as\x20an\x20offset\x20i\ - n\x20terms\n\x20of\x20UTF-16\x20code\x20units\x20(each\x20is\x202\x20byt\ - es).\n\n\x20Example:\x20For\x20the\x20string\x20\"\xf0\x9f\x9a\x80\x20Wo\ - o\",\x20the\x20UTF-16\x20code\x20units\x20are\n\x20['\\ud83d',\x20'\\ude\ - 80',\x20'\x20',\x20'W',\x20'o',\x20'o'],\x20so\x20the\x20offset\x20for\ + iable\x10=\"o\n\x10FullRelationship\x12#\n\rsource_symbol\x18\x01\x20\ + \x01(\tR\x0csourceSymbol\x126\n\x0crelationship\x18\x02\x20\x01(\x0b2\ + \x12.scip.RelationshipR\x0crelationship\"\xc9\x01\n\x0cRelationship\x12\ + \x16\n\x06symbol\x18\x01\x20\x01(\tR\x06symbol\x12!\n\x0cis_reference\ + \x18\x02\x20\x01(\x08R\x0bisReference\x12+\n\x11is_implementation\x18\ + \x03\x20\x01(\x08R\x10isImplementation\x12,\n\x12is_type_definition\x18\ + \x04\x20\x01(\x08R\x10isTypeDefinition\x12#\n\ris_definition\x18\x05\x20\ + \x01(\x08R\x0cisDefinition\"\xa4\x02\n\nOccurrence\x12\x14\n\x05range\ + \x18\x01\x20\x03(\x05R\x05range\x12\x16\n\x06symbol\x18\x02\x20\x01(\tR\ + \x06symbol\x12!\n\x0csymbol_roles\x18\x03\x20\x01(\x05R\x0bsymbolRoles\ + \x125\n\x16override_documentation\x18\x04\x20\x03(\tR\x15overrideDocumen\ + tation\x121\n\x0bsyntax_kind\x18\x05\x20\x01(\x0e2\x10.scip.SyntaxKindR\ + \nsyntaxKind\x122\n\x0bdiagnostics\x18\x06\x20\x03(\x0b2\x10.scip.Diagno\ + sticR\x0bdiagnostics\x12'\n\x0fenclosing_range\x18\x07\x20\x03(\x05R\x0e\ + enclosingRange\"\xa7\x01\n\nDiagnostic\x12*\n\x08severity\x18\x01\x20\ + \x01(\x0e2\x0e.scip.SeverityR\x08severity\x12\x12\n\x04code\x18\x02\x20\ + \x01(\tR\x04code\x12\x18\n\x07message\x18\x03\x20\x01(\tR\x07message\x12\ + \x16\n\x06source\x18\x04\x20\x01(\tR\x06source\x12'\n\x04tags\x18\x05\ + \x20\x03(\x0e2\x13.scip.DiagnosticTagR\x04tags*1\n\x0fProtocolVersion\ + \x12\x1e\n\x1aUnspecifiedProtocolVersion\x10\0*@\n\x0cTextEncoding\x12\ + \x1b\n\x17UnspecifiedTextEncoding\x10\0\x12\x08\n\x04UTF8\x10\x01\x12\t\ + \n\x05UTF16\x10\x02*\xa4\x01\n\x10PositionEncoding\x12\x1f\n\x1bUnspecif\ + iedPositionEncoding\x10\0\x12#\n\x1fUTF8CodeUnitOffsetFromLineStart\x10\ + \x01\x12$\n\x20UTF16CodeUnitOffsetFromLineStart\x10\x02\x12$\n\x20UTF32C\ + odeUnitOffsetFromLineStart\x10\x03*\x94\x01\n\nSymbolRole\x12\x19\n\x15U\ + nspecifiedSymbolRole\x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\x06Impo\ + rt\x10\x02\x12\x0f\n\x0bWriteAccess\x10\x04\x12\x0e\n\nReadAccess\x10\ + \x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\x04Test\x10\x20\x12\x15\n\x11F\ + orwardDefinition\x10@*\xea\x06\n\nSyntaxKind\x12\x19\n\x15UnspecifiedSyn\ + taxKind\x10\0\x12\x0b\n\x07Comment\x10\x01\x12\x18\n\x14PunctuationDelim\ + iter\x10\x02\x12\x16\n\x12PunctuationBracket\x10\x03\x12\x0b\n\x07Keywor\ + d\x10\x04\x12\x19\n\x11IdentifierKeyword\x10\x04\x1a\x02\x08\x01\x12\x16\ + \n\x12IdentifierOperator\x10\x05\x12\x0e\n\nIdentifier\x10\x06\x12\x15\n\ + \x11IdentifierBuiltin\x10\x07\x12\x12\n\x0eIdentifierNull\x10\x08\x12\ + \x16\n\x12IdentifierConstant\x10\t\x12\x1b\n\x17IdentifierMutableGlobal\ + \x10\n\x12\x17\n\x13IdentifierParameter\x10\x0b\x12\x13\n\x0fIdentifierL\ + ocal\x10\x0c\x12\x16\n\x12IdentifierShadowed\x10\r\x12\x17\n\x13Identifi\ + erNamespace\x10\x0e\x12\x18\n\x10IdentifierModule\x10\x0e\x1a\x02\x08\ + \x01\x12\x16\n\x12IdentifierFunction\x10\x0f\x12\x20\n\x1cIdentifierFunc\ + tionDefinition\x10\x10\x12\x13\n\x0fIdentifierMacro\x10\x11\x12\x1d\n\ + \x19IdentifierMacroDefinition\x10\x12\x12\x12\n\x0eIdentifierType\x10\ + \x13\x12\x19\n\x15IdentifierBuiltinType\x10\x14\x12\x17\n\x13IdentifierA\ + ttribute\x10\x15\x12\x0f\n\x0bRegexEscape\x10\x16\x12\x11\n\rRegexRepeat\ + ed\x10\x17\x12\x11\n\rRegexWildcard\x10\x18\x12\x12\n\x0eRegexDelimiter\ + \x10\x19\x12\r\n\tRegexJoin\x10\x1a\x12\x11\n\rStringLiteral\x10\x1b\x12\ + \x17\n\x13StringLiteralEscape\x10\x1c\x12\x18\n\x14StringLiteralSpecial\ + \x10\x1d\x12\x14\n\x10StringLiteralKey\x10\x1e\x12\x14\n\x10CharacterLit\ + eral\x10\x1f\x12\x12\n\x0eNumericLiteral\x10\x20\x12\x12\n\x0eBooleanLit\ + eral\x10!\x12\x07\n\x03Tag\x10\"\x12\x10\n\x0cTagAttribute\x10#\x12\x10\ + \n\x0cTagDelimiter\x10$\x1a\x02\x10\x01*V\n\x08Severity\x12\x17\n\x13Uns\ + pecifiedSeverity\x10\0\x12\t\n\x05Error\x10\x01\x12\x0b\n\x07Warning\x10\ + \x02\x12\x0f\n\x0bInformation\x10\x03\x12\x08\n\x04Hint\x10\x04*N\n\rDia\ + gnosticTag\x12\x1c\n\x18UnspecifiedDiagnosticTag\x10\0\x12\x0f\n\x0bUnne\ + cessary\x10\x01\x12\x0e\n\nDeprecated\x10\x02*\x9b\n\n\x08Language\x12\ + \x17\n\x13UnspecifiedLanguage\x10\0\x12\x08\n\x04ABAP\x10<\x12\x08\n\x04\ + Apex\x10`\x12\x07\n\x03APL\x101\x12\x07\n\x03Ada\x10'\x12\x08\n\x04Agda\ + \x10-\x12\x0c\n\x08AsciiDoc\x10V\x12\x0c\n\x08Assembly\x10:\x12\x07\n\ + \x03Awk\x10B\x12\x07\n\x03Bat\x10D\x12\n\n\x06BibTeX\x10Q\x12\x05\n\x01C\ + \x10\"\x12\t\n\x05COBOL\x10;\x12\x07\n\x03CPP\x10#\x12\x07\n\x03CSS\x10\ + \x1a\x12\n\n\x06CSharp\x10\x01\x12\x0b\n\x07Clojure\x10\x08\x12\x10\n\ + \x0cCoffeescript\x10\x15\x12\x0e\n\nCommonLisp\x10\t\x12\x07\n\x03Coq\ + \x10/\x12\x08\n\x04CUDA\x10a\x12\x08\n\x04Dart\x10\x03\x12\n\n\x06Delphi\ + \x109\x12\x08\n\x04Diff\x10X\x12\x0e\n\nDockerfile\x10P\x12\n\n\x06Dyalo\ + g\x102\x12\n\n\x06Elixir\x10\x11\x12\n\n\x06Erlang\x10\x12\x12\n\n\x06FS\ + harp\x10*\x12\x08\n\x04Fish\x10A\x12\x08\n\x04Flow\x10\x18\x12\x0b\n\x07\ + Fortran\x108\x12\x0e\n\nGit_Commit\x10[\x12\x0e\n\nGit_Config\x10Y\x12\ + \x0e\n\nGit_Rebase\x10\\\x12\x06\n\x02Go\x10!\x12\x0b\n\x07GraphQL\x10b\ + \x12\n\n\x06Groovy\x10\x07\x12\x08\n\x04HTML\x10\x1e\x12\x08\n\x04Hack\ + \x10\x14\x12\x0e\n\nHandlebars\x10Z\x12\x0b\n\x07Haskell\x10,\x12\t\n\ + \x05Idris\x10.\x12\x07\n\x03Ini\x10H\x12\x05\n\x01J\x103\x12\x08\n\x04JS\ + ON\x10K\x12\x08\n\x04Java\x10\x06\x12\x0e\n\nJavaScript\x10\x16\x12\x13\ + \n\x0fJavaScriptReact\x10]\x12\x0b\n\x07Jsonnet\x10L\x12\t\n\x05Julia\ + \x107\x12\x0c\n\x08Justfile\x10m\x12\n\n\x06Kotlin\x10\x04\x12\t\n\x05La\ + TeX\x10S\x12\x08\n\x04Lean\x100\x12\x08\n\x04Less\x10\x1b\x12\x07\n\x03L\ + ua\x10\x0c\x12\x08\n\x04Luau\x10l\x12\x0c\n\x08Makefile\x10O\x12\x0c\n\ + \x08Markdown\x10T\x12\n\n\x06Matlab\x104\x12\n\n\x06Nickel\x10n\x12\x07\ + \n\x03Nix\x10M\x12\t\n\x05OCaml\x10)\x12\x0f\n\x0bObjective_C\x10$\x12\ + \x11\n\rObjective_CPP\x10%\x12\n\n\x06Pascal\x10c\x12\x07\n\x03PHP\x10\ + \x13\x12\t\n\x05PLSQL\x10F\x12\x08\n\x04Perl\x10\r\x12\x0e\n\nPowerShell\ + \x10C\x12\n\n\x06Prolog\x10G\x12\x0c\n\x08Protobuf\x10d\x12\n\n\x06Pytho\ + n\x10\x0f\x12\x05\n\x01R\x106\x12\n\n\x06Racket\x10\x0b\x12\x08\n\x04Rak\ + u\x10\x0e\x12\t\n\x05Razor\x10>\x12\t\n\x05Repro\x10f\x12\x08\n\x04ReST\ + \x10U\x12\x08\n\x04Ruby\x10\x10\x12\x08\n\x04Rust\x10(\x12\x07\n\x03SAS\ + \x10=\x12\x08\n\x04SCSS\x10\x1d\x12\x07\n\x03SML\x10+\x12\x07\n\x03SQL\ + \x10E\x12\x08\n\x04Sass\x10\x1c\x12\t\n\x05Scala\x10\x05\x12\n\n\x06Sche\ + me\x10\n\x12\x0f\n\x0bShellScript\x10@\x12\x0b\n\x07Skylark\x10N\x12\t\n\ + \x05Slang\x10k\x12\x0c\n\x08Solidity\x10_\x12\n\n\x06Svelte\x10j\x12\t\n\ + \x05Swift\x10\x02\x12\x07\n\x03Tcl\x10e\x12\x08\n\x04TOML\x10I\x12\x07\n\ + \x03TeX\x10R\x12\n\n\x06Thrift\x10g\x12\x0e\n\nTypeScript\x10\x17\x12\ + \x13\n\x0fTypeScriptReact\x10^\x12\x0b\n\x07Verilog\x10h\x12\x08\n\x04VH\ + DL\x10i\x12\x0f\n\x0bVisualBasic\x10?\x12\x07\n\x03Vue\x10\x19\x12\x0b\n\ + \x07Wolfram\x105\x12\x07\n\x03XML\x10\x1f\x12\x07\n\x03XSL\x10\x20\x12\ + \x08\n\x04YAML\x10J\x12\x07\n\x03Zig\x10&B/Z-github.com/sourcegraph/scip\ + /bindings/go/scip/J\xd9\xd9\x02\n\x07\x12\x05\n\0\xdf\x07\x01\n\x82\x04\ + \n\x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20index\x20contains\x20one\ + \x20or\x20more\x20pieces\x20of\x20information\x20about\x20a\x20given\x20\ + piece\x20of\n\x20source\x20code\x20or\x20software\x20artifact.\x20Comple\ + mentary\x20information\x20can\x20be\x20merged\n\x20together\x20from\x20m\ + ultiple\x20sources\x20to\x20provide\x20a\x20unified\x20code\x20intellige\ + nce\n\x20experience.\n\n\x20Programs\x20producing\x20a\x20file\x20of\x20\ + this\x20format\x20is\x20an\x20\"indexer\"\x20and\x20may\x20operate\n\x20\ + somewhere\x20on\x20the\x20spectrum\x20between\x20precision,\x20such\x20a\ + s\x20indexes\x20produced\x20by\n\x20compiler-backed\x20indexers,\x20and\ + \x20heurstics,\x20such\x20as\x20indexes\x20produced\x20by\x20local\n\x20\ + syntax-directed\x20analysis\x20for\x20scope\x20rules.\n\n\x08\n\x01\x02\ + \x12\x03\x0c\0\r\n\x08\n\x01\x08\x12\x03\x0e\0D\n\t\n\x02\x08\x0b\x12\ + \x03\x0e\0D\n\xd0\x03\n\x02\x04\0\x12\x04\x16\0\x1f\x01\x1a\xc3\x03\x20I\ + ndex\x20represents\x20a\x20complete\x20SCIP\x20index\x20for\x20a\x20work\ + space\x20this\x20is\x20rooted\x20at\x20a\n\x20single\x20directory.\x20An\ + \x20Index\x20message\x20payload\x20can\x20have\x20a\x20large\x20memory\ + \x20footprint\n\x20and\x20it's\x20therefore\x20recommended\x20to\x20emit\ + \x20and\x20consume\x20an\x20Index\x20payload\x20one\x20field\n\x20value\ + \x20at\x20a\x20time.\x20To\x20permit\x20streaming\x20consumption\x20of\ + \x20an\x20Index\x20payload,\x20the\n\x20`metadata`\x20field\x20must\x20a\ + ppear\x20at\x20the\x20start\x20of\x20the\x20stream\x20and\x20must\x20onl\ + y\x20appear\n\x20once\x20in\x20the\x20stream.\x20Other\x20field\x20value\ + s\x20may\x20appear\x20in\x20any\x20order.\n\n\n\n\x03\x04\0\x01\x12\x03\ + \x16\x08\r\n)\n\x04\x04\0\x02\0\x12\x03\x18\x02\x18\x1a\x1c\x20Metadata\ + \x20about\x20this\x20index.\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x18\ + \x02\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x18\x0b\x13\n\x0c\n\x05\x04\0\ + \x02\0\x03\x12\x03\x18\x16\x17\n3\n\x04\x04\0\x02\x01\x12\x03\x1a\x02\"\ + \x1a&\x20Documents\x20that\x20belong\x20to\x20this\x20index.\n\n\x0c\n\ + \x05\x04\0\x02\x01\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\x04\0\x02\x01\x06\ + \x12\x03\x1a\x0b\x13\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x1a\x14\x1d\n\ + \x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x1a\x20!\n\xc2\x01\n\x04\x04\0\x02\ + \x02\x12\x03\x1c\x022\x1a6\x20(DEPRECATED):\x20Use\x20Document.external_\ + symbols\x20instead.\n\"}\x20IMPORTANT:\x20When\x20adding\x20a\x20new\x20\ + field\x20to\x20`Index`\x20here,\x20add\x20a\x20matching\n\x20function\ + \x20in\x20`IndexVisitor`\x20and\x20update\x20`ParseStreaming`.\n\n\x0c\n\ + \x05\x04\0\x02\x02\x04\x12\x03\x1c\x02\n\n\x0c\n\x05\x04\0\x02\x02\x06\ + \x12\x03\x1c\x0b\x1c\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x1c\x1d-\n\ + \x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x1c01\n\n\n\x02\x04\x01\x12\x04!\0.\ + \x01\n\n\n\x03\x04\x01\x01\x12\x03!\x08\x10\nN\n\x04\x04\x01\x02\0\x12\ + \x03#\x02\x1e\x1aA\x20Which\x20version\x20of\x20this\x20protocol\x20was\ + \x20used\x20to\x20generate\x20this\x20index?\n\n\x0c\n\x05\x04\x01\x02\0\ + \x06\x12\x03#\x02\x11\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03#\x12\x19\n\ + \x0c\n\x05\x04\x01\x02\0\x03\x12\x03#\x1c\x1d\nC\n\x04\x04\x01\x02\x01\ + \x12\x03%\x02\x19\x1a6\x20Information\x20about\x20the\x20tool\x20that\ + \x20produced\x20this\x20index.\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\ + %\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03%\x0b\x14\n\x0c\n\x05\x04\ + \x01\x02\x01\x03\x12\x03%\x17\x18\n\xa2\x01\n\x04\x04\x01\x02\x02\x12\ + \x03)\x02\x1a\x1a\x94\x01\x20URI-encoded\x20absolute\x20path\x20to\x20th\ + e\x20root\x20directory\x20of\x20this\x20index.\x20All\n\x20documents\x20\ + in\x20this\x20index\x20must\x20appear\x20in\x20a\x20subdirectory\x20of\ + \x20this\x20root\n\x20directory.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\ + \x03)\x02\x08\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03)\t\x15\n\x0c\n\x05\ + \x04\x01\x02\x02\x03\x12\x03)\x18\x19\n\xe0\x01\n\x04\x04\x01\x02\x03\ + \x12\x03-\x02*\x1a\xd2\x01\x20Text\x20encoding\x20of\x20the\x20source\ + \x20files\x20on\x20disk\x20that\x20are\x20referenced\x20from\n\x20`Docum\ + ent.relative_path`.\x20This\x20value\x20is\x20unrelated\x20to\x20the\x20\ + `Document.text`\n\x20field,\x20which\x20is\x20a\x20Protobuf\x20string\ + \x20and\x20hence\x20must\x20be\x20UTF-8\x20encoded.\n\n\x0c\n\x05\x04\ + \x01\x02\x03\x06\x12\x03-\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\ + \x03-\x0f%\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03-()\n\n\n\x02\x05\0\ + \x12\x040\02\x01\n\n\n\x03\x05\0\x01\x12\x030\x05\x14\n\x0b\n\x04\x05\0\ + \x02\0\x12\x031\x02!\n\x0c\n\x05\x05\0\x02\0\x01\x12\x031\x02\x1c\n\x0c\ + \n\x05\x05\0\x02\0\x02\x12\x031\x1f\x20\n\n\n\x02\x05\x01\x12\x044\08\ + \x01\n\n\n\x03\x05\x01\x01\x12\x034\x05\x11\n\x0b\n\x04\x05\x01\x02\0\ + \x12\x035\x02\x1e\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x035\x02\x19\n\x0c\n\ + \x05\x05\x01\x02\0\x02\x12\x035\x1c\x1d\n\x0b\n\x04\x05\x01\x02\x01\x12\ + \x036\x02\x0b\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x036\x02\x06\n\x0c\n\ + \x05\x05\x01\x02\x01\x02\x12\x036\t\n\n\x0b\n\x04\x05\x01\x02\x02\x12\ + \x037\x02\x0c\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x037\x02\x07\n\x0c\n\ + \x05\x05\x01\x02\x02\x02\x12\x037\n\x0b\n\n\n\x02\x04\x02\x12\x04:\0A\ + \x01\n\n\n\x03\x04\x02\x01\x12\x03:\x08\x10\n<\n\x04\x04\x02\x02\0\x12\ + \x03<\x02\x12\x1a/\x20Name\x20of\x20the\x20indexer\x20that\x20produced\ + \x20this\x20index.\n\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03<\x02\x08\n\ + \x0c\n\x05\x04\x02\x02\0\x01\x12\x03<\t\r\n\x0c\n\x05\x04\x02\x02\0\x03\ + \x12\x03<\x10\x11\n?\n\x04\x04\x02\x02\x01\x12\x03>\x02\x15\x1a2\x20Vers\ + ion\x20of\x20the\x20indexer\x20that\x20produced\x20this\x20index.\n\n\ + \x0c\n\x05\x04\x02\x02\x01\x05\x12\x03>\x02\x08\n\x0c\n\x05\x04\x02\x02\ + \x01\x01\x12\x03>\t\x10\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03>\x13\x14\ + \nL\n\x04\x04\x02\x02\x02\x12\x03@\x02\x20\x1a?\x20Command-line\x20argum\ + ents\x20that\x20were\x20used\x20to\x20invoke\x20this\x20indexer.\n\n\x0c\ + \n\x05\x04\x02\x02\x02\x04\x12\x03@\x02\n\n\x0c\n\x05\x04\x02\x02\x02\ + \x05\x12\x03@\x0b\x11\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03@\x12\x1b\n\ + \x0c\n\x05\x04\x02\x02\x02\x03\x12\x03@\x1e\x1f\nI\n\x02\x04\x03\x12\x05\ + D\0\xc6\x01\x01\x1a<\x20Document\x20defines\x20the\x20metadata\x20about\ + \x20a\x20source\x20file\x20on\x20disk.\n\n\n\n\x03\x04\x03\x01\x12\x03D\ + \x08\x10\n\xa5\x02\n\x04\x04\x03\x02\0\x12\x03I\x02\x16\x1a\x97\x02\x20T\ + he\x20string\x20ID\x20for\x20the\x20programming\x20language\x20this\x20f\ + ile\x20is\x20written\x20in.\n\x20The\x20`Language`\x20enum\x20contains\ + \x20the\x20names\x20of\x20most\x20common\x20programming\x20languages.\n\ + \x20This\x20field\x20is\x20typed\x20as\x20a\x20string\x20to\x20permit\ + \x20any\x20programming\x20language,\x20including\n\x20ones\x20that\x20ar\ + e\x20not\x20specified\x20by\x20the\x20`Language`\x20enum.\n\n\x0c\n\x05\ + \x04\x03\x02\0\x05\x12\x03I\x02\x08\n\x0c\n\x05\x04\x03\x02\0\x01\x12\ + \x03I\t\x11\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x03I\x14\x15\n\xb5\x03\n\ + \x04\x04\x03\x02\x01\x12\x03S\x02\x1b\x1a\xa7\x03\x20(Required)\x20Uniqu\ + e\x20path\x20to\x20the\x20text\x20document.\n\n\x201.\x20The\x20path\x20\ + must\x20be\x20relative\x20to\x20the\x20directory\x20supplied\x20in\x20th\ + e\x20associated\n\x20\x20\x20\x20`Metadata.project_root`.\n\x202.\x20The\ + \x20path\x20must\x20not\x20begin\x20with\x20a\x20leading\x20'/'.\n\x203.\ + \x20The\x20path\x20must\x20point\x20to\x20a\x20regular\x20file,\x20not\ + \x20a\x20symbolic\x20link.\n\x204.\x20The\x20path\x20must\x20use\x20'/'\ + \x20as\x20the\x20separator,\x20including\x20on\x20Windows.\n\x205.\x20Th\ + e\x20path\x20must\x20be\x20canonical;\x20it\x20cannot\x20include\x20empt\ + y\x20components\x20('//'),\n\x20\x20\x20\x20or\x20'.'\x20or\x20'..'.\n\n\ + \x0c\n\x05\x04\x03\x02\x01\x05\x12\x03S\x02\x08\n\x0c\n\x05\x04\x03\x02\ + \x01\x01\x12\x03S\t\x16\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03S\x19\x1a\ + \n4\n\x04\x04\x03\x02\x02\x12\x03U\x02&\x1a'\x20Occurrences\x20that\x20a\ + ppear\x20in\x20this\x20file.\n\n\x0c\n\x05\x04\x03\x02\x02\x04\x12\x03U\ + \x02\n\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x03U\x0b\x15\n\x0c\n\x05\x04\ + \x03\x02\x02\x01\x12\x03U\x16!\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03U$\ + %\n\xea\x01\n\x04\x04\x03\x02\x03\x12\x03[\x02)\x1a\xdc\x01\x20Symbols\ + \x20that\x20are\x20\"defined\"\x20within\x20this\x20document.\n\n\x20Thi\ + s\x20should\x20include\x20symbols\x20which\x20technically\x20do\x20not\ + \x20have\x20any\x20definition,\n\x20but\x20have\x20a\x20reference\x20and\ + \x20are\x20defined\x20by\x20some\x20other\x20symbol\x20(see\n\x20Relatio\ + nship.is_definition).\n\n\x0c\n\x05\x04\x03\x02\x03\x04\x12\x03[\x02\n\n\ + \x0c\n\x05\x04\x03\x02\x03\x06\x12\x03[\x0b\x1c\n\x0c\n\x05\x04\x03\x02\ + \x03\x01\x12\x03[\x1d$\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x03['(\n\xf7\ + \x03\n\x04\x04\x03\x02\x04\x12\x03d\x02\x12\x1a\xe9\x03\x20(optional)\ + \x20Text\x20contents\x20of\x20the\x20this\x20document.\x20Indexers\x20ar\ + e\x20not\x20expected\x20to\n\x20include\x20the\x20text\x20by\x20default.\ + \x20It's\x20preferrable\x20that\x20clients\x20read\x20the\x20text\n\x20c\ + ontents\x20from\x20the\x20file\x20system\x20by\x20resolving\x20the\x20ab\ + solute\x20path\x20from\x20joining\n\x20`Index.metadata.project_root`\x20\ + and\x20`Document.relative_path`.\x20This\x20field\x20was\n\x20introduced\ + \x20to\x20support\x20`SymbolInformation.signature_documentation`,\x20but\ + \x20it\n\x20can\x20be\x20used\x20for\x20other\x20purposes\x20as\x20well,\ + \x20for\x20example\x20testing\x20or\x20when\x20working\n\x20with\x20virt\ + ual/in-memory\x20documents.\n\n\x0c\n\x05\x04\x03\x02\x04\x05\x12\x03d\ + \x02\x08\n\x0c\n\x05\x04\x03\x02\x04\x01\x12\x03d\t\r\n\x0c\n\x05\x04\ + \x03\x02\x04\x03\x12\x03d\x10\x11\n\xe7\x03\n\x04\x04\x03\x02\x05\x12\ + \x03p\x02)\x1a\xd9\x03\x20Specifies\x20the\x20encoding\x20used\x20for\ + \x20source\x20ranges\x20in\x20this\x20Document.\n\n\x20Usually,\x20this\ + \x20will\x20match\x20the\x20type\x20used\x20to\x20index\x20the\x20string\ + \x20type\n\x20in\x20the\x20indexer's\x20implementation\x20language\x20in\ + \x20O(1)\x20time.\n\x20-\x20For\x20an\x20indexer\x20implemented\x20in\ + \x20JVM/.NET\x20language\x20or\x20JavaScript/TypeScript,\n\x20\x20\x20us\ + e\x20UTF16CodeUnitOffsetFromLineStart.\n\x20-\x20For\x20an\x20indexer\ + \x20implemented\x20in\x20Python,\n\x20\x20\x20use\x20UTF32CodeUnitOffset\ + FromLineStart.\n\x20-\x20For\x20an\x20indexer\x20implemented\x20in\x20Go\ + ,\x20Rust\x20or\x20C++,\n\x20\x20\x20use\x20UTF8ByteOffsetFromLineStart.\ + \n\n\x0c\n\x05\x04\x03\x02\x05\x06\x12\x03p\x02\x12\n\x0c\n\x05\x04\x03\ + \x02\x05\x01\x12\x03p\x13$\n\x0c\n\x05\x04\x03\x02\x05\x03\x12\x03p'(\n\ + \xce\x07\n\x04\x04\x03\x02\x06\x12\x04\x85\x01\x022\x1a\xbf\x07\x20(opti\ + onal)\x20Symbols\x20that\x20are\x20referenced\x20from\x20this\x20Documen\ + t\x20but\x20are\x20defined\x20in\n\x20an\x20external\x20package\x20(a\ + \x20separate\x20`Index`\x20message).\x20This\x20field\x20can\x20be\x20us\ + ed\n\x20for\x20the\x20following\x20purposes:\n\x20-\x20Provide\x20hover\ + \x20documentation\x20for\x20external\x20symbols.\n\x20-\x20Mark\x20relat\ + ionships\x20from\x20an\x20external\x20symbol\x20to\x20a\x20global\x20sym\ + bol\x20defined\n\x20\x20\x20in\x20the\x20current\x20document.\n\n\x20Exa\ + mple\x201:\x20In\x20Go,\x20if\x20a\x20file\x20defines\x20a\x20new\x20int\ + erface\x20I\x20and\x20there\x20is\x20a\x20standard\n\x20library\x20type\ + \x20T\x20which\x20is\x20imported\x20in\x20the\x20file\x20and\x20implemen\ + ts\x20I,\n\x20the\x20indexer\x20can\x20add\x20an\x20external\x20symbol\ + \x20for\x20T\x20with\x20an\x20is_implementation\n\x20relationship\x20to\ + \x20I.\n\n\x20Example\x202:\x20In\x20Rust,\x20if\x20a\x20file\x20defines\ + \x20a\x20new\x20trait\x20T\x20and\x20add\x20impls\x20for\x20a\n\x20type\ + \x20X\x20defined\x20in\x20another\x20Index,\x20the\x20indexer\x20can\x20\ + add\x20an\x20external\x20symbol\n\x20for\x20X\x20with\x20an\x20is_implem\ + entation\x20relationship\x20to\x20T.\n\n\x20Example\x203:\x20If\x20the\ + \x20code\x20references\x20a\x20third-party\x20type\x20X\x20whose\x20defi\ + nition\n\x20site\x20may\x20or\x20may\x20not\x20be\x20indexed,\x20the\x20\ + indexer\x20can\x20emit\x20an\x20external\x20symbol\n\x20for\x20X\x20incl\ + uding\x20its\x20hover\x20documentation.\n\n\r\n\x05\x04\x03\x02\x06\x04\ + \x12\x04\x85\x01\x02\n\n\r\n\x05\x04\x03\x02\x06\x06\x12\x04\x85\x01\x0b\ + \x1c\n\r\n\x05\x04\x03\x02\x06\x01\x12\x04\x85\x01\x1d-\n\r\n\x05\x04\ + \x03\x02\x06\x03\x12\x04\x85\x0101\n\xda\x0f\n\x04\x04\x03\x02\x07\x12\ + \x04\xc5\x01\x024\x1a\xcb\x0f\x20(optional)\x20Relationships\x20that\x20\ + affect\x20code\x20navigation\x20in\x20this\x20Document\n\x20but\x20are\ + \x20not\x20and\x20cannot\x20be\x20defined\x20in\x20the\x20Document(s)\ + \x20defining\n\x20source_symbol\x20or\x20the\x20target\x20symbol\x20(rel\ + ationship.symbol).\n\n\x20Example\x201:\x20In\x20the\x20case\x20of\x20st\ + ructurally\x20typed\x20interfaces\x20(or\x20more\x20generally\n\x20struc\ + tural\x20subtyping),\x20such\x20as\x20Go,\x20it\x20is\x20possible\x20for\ + \x20one\x20Go\x20package\x20P1\n\x20to\x20define\x20an\x20interface\x20I\ + ,\x20a\x20second\x20Go\x20package\x20P2\x20to\x20have\x20a\x20type\x20T\ + \x20which\n\x20implements\x20the\x20interface\x20I\x20without\x20importi\ + ng\x20P1,\x20and\x20a\x20third\x20Go\x20package\x20P3\n\x20to\x20import\ + \x20both\x20P1\x20and\x20P2.\x20If\x20P3\x20has\x20a\x20conversion\x20of\ + \x20a\x20value\x20from\n\x20P2.T\x20to\x20P1.I,\x20then\x20the\x20indexe\ + r\x20can\x20emit\x20a\x20cross-relationship\x20from\n\x20P2.T\x20to\x20P\ + 1.I.\n\n\x20This\x20same\x20example\x20carries\x20over\x20to\x20language\ + s\x20like\x20TypeScript\x20which\x20support\n\x20structural\x20subtyping\ + .\n\n\x20Example\x202:\x20Rust\x20allows\x20for\x20blanket\x20trait\x20i\ + mplementations.\x20Consider\x20the\n\x20following\x20code:\n\n\x20```rus\ + t\n\x20//\x20t1.rs\n\x20pub\x20trait\x20T1\x20{}\n\n\x20//\x20s.rs\n\x20\ + use\x20m1::T1;\n\x20pub\x20struct\x20S;\n\x20impl\x20T1\x20for\x20S\x20{\ + }\n\n\x20//\x20t2.rs\n\x20use\x20m1::T1;\n\x20trait\x20T2\x20{}\n\x20imp\ + l\x20T2\x20for\x20T\x20{}\x20//\x20<-\x20blanket\x20implementa\ + tion\x20that\x20covers\x20S\n\n\x20//\x20cross.rs\n\x20use\x20m3::T2;\n\ + \x20use\x20m2::S;\n\n\x20fn\x20f(s\x20:\x20S)\x20->\x20Box\ + \x20{\x20Box::new(s)\x20}\x20//\x20derives\x20that\x20S\x20implements\ + \x20T2\n\x20```\n\n\x20If\x20all\x20of\x20these\x20modules\x20correspond\ + \x20to\x20Documents\x20in\x20different\x20SCIP\x20indexes,\n\x20it\x20is\ + \x20not\x20possible\x20for\x20the\x20indexer\x20to\x20emit\x20an\x20is_i\ + mplementation\x20relationship\n\x20from\x20S\x20to\x20T2\x20in\x20the\ + \x20Documents\x20for\x20t1.rs,\x20s.rs\x20or\x20t2.rs.\x20In\x20this\x20\ + case,\n\x20the\x20indexer\x20can\x20emit\x20a\x20cross-relationship\x20f\ + rom\x20S\x20to\x20T2\x20in\x20the\x20Document\x20for\x20cross.rs.\n\n\ + \x20Example\x203:\x20Swift\x20allows\x20for\x20retroactive\x20conformanc\ + es\x20(aka\x20orphan\x20instances\n\x20in\x20Haskell).\x20Consider\x20th\ + e\x20following\x20code:\n\n\x20```swift\n\x20//\x20P.swift\n\x20protocol\ + \x20P\x20{}\n\n\x20//\x20S.swift\n\x20struct\x20S\x20{}\n\n\x20//\x20cro\ + ss.swift\n\x20extension\x20S:\x20P\x20{}\n\x20```\n\n\x20If\x20all\x20of\ + \x20these\x20files\x20correspond\x20to\x20Documents\x20in\x20different\ + \x20SCIP\x20indexes,\n\x20it\x20is\x20not\x20possible\x20for\x20the\x20i\ + ndexer\x20to\x20emit\x20an\x20is_implementation\x20relationship\n\x20fro\ + m\x20S\x20to\x20P\x20in\x20the\x20Documents\x20for\x20P.swift,\x20or\x20\ + S.swift.\x20In\x20this\x20case,\n\x20the\x20indexer\x20can\x20emit\x20a\ + \x20cross-relationship\x20from\x20S\x20to\x20P\x20in\x20the\x20Document\ + \x20for\x20cross.swift.\n\n\r\n\x05\x04\x03\x02\x07\x04\x12\x04\xc5\x01\ + \x02\n\n\r\n\x05\x04\x03\x02\x07\x06\x12\x04\xc5\x01\x0b\x1b\n\r\n\x05\ + \x04\x03\x02\x07\x01\x12\x04\xc5\x01\x1c/\n\r\n\x05\x04\x03\x02\x07\x03\ + \x12\x04\xc5\x0123\nR\n\x02\x05\x02\x12\x06\xc9\x01\0\xe1\x01\x01\x1aD\ + \x20Encoding\x20used\x20to\x20interpret\x20the\x20'character'\x20value\ + \x20in\x20source\x20ranges.\n\n\x0b\n\x03\x05\x02\x01\x12\x04\xc9\x01\ + \x05\x15\n\x94\x01\n\x04\x05\x02\x02\0\x12\x04\xcc\x01\x02\"\x1a\x85\x01\ + \x20Default\x20value.\x20This\x20value\x20should\x20not\x20be\x20used\ + \x20by\x20new\x20SCIP\x20indexers\n\x20so\x20that\x20a\x20consumer\x20ca\ + n\x20process\x20the\x20SCIP\x20index\x20without\x20ambiguity.\n\n\r\n\ + \x05\x05\x02\x02\0\x01\x12\x04\xcc\x01\x02\x1d\n\r\n\x05\x05\x02\x02\0\ + \x02\x12\x04\xcc\x01\x20!\n\xf7\x01\n\x04\x05\x02\x02\x01\x12\x04\xd3\ + \x01\x02&\x1a\xe8\x01\x20The\x20'character'\x20value\x20is\x20interprete\ + d\x20as\x20an\x20offset\x20in\x20terms\n\x20of\x20UTF-8\x20code\x20units\ + \x20(i.e.\x20bytes).\n\n\x20Example:\x20For\x20the\x20string\x20\"\xf0\ + \x9f\x9a\x80\x20Woo\"\x20in\x20UTF-8,\x20the\x20bytes\x20are\n\x20[240,\ + \x20159,\x20154,\x20128,\x2032,\x2087,\x20111,\x20111],\x20so\x20the\x20\ + offset\x20for\x20'W'\n\x20would\x20be\x205.\n\n\r\n\x05\x05\x02\x02\x01\ + \x01\x12\x04\xd3\x01\x02!\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\xd3\x01$\ + %\n\x82\x02\n\x04\x05\x02\x02\x02\x12\x04\xda\x01\x02'\x1a\xf3\x01\x20Th\ + e\x20'character'\x20value\x20is\x20interpreted\x20as\x20an\x20offset\x20\ + in\x20terms\n\x20of\x20UTF-16\x20code\x20units\x20(each\x20is\x202\x20by\ + tes).\n\n\x20Example:\x20For\x20the\x20string\x20\"\xf0\x9f\x9a\x80\x20W\ + oo\",\x20the\x20UTF-16\x20code\x20units\x20are\n\x20['\\ud83d',\x20'\\ud\ + e80',\x20'\x20',\x20'W',\x20'o',\x20'o'],\x20so\x20the\x20offset\x20for\ \x20'W'\n\x20would\x20be\x203.\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\x04\ - \x89\x01\x02\"\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\x89\x01%&\n\xf5\x01\ - \n\x04\x05\x02\x02\x03\x12\x04\x8f\x01\x02'\x1a\xe6\x01\x20The\x20'chara\ + \xda\x01\x02\"\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\xda\x01%&\n\xf5\x01\ + \n\x04\x05\x02\x02\x03\x12\x04\xe0\x01\x02'\x1a\xe6\x01\x20The\x20'chara\ cter'\x20value\x20is\x20interpreted\x20as\x20an\x20offset\x20in\x20terms\ \n\x20of\x20UTF-32\x20code\x20units\x20(each\x20is\x204\x20bytes).\n\n\ \x20Example:\x20For\x20the\x20string\x20\"\xf0\x9f\x9a\x80\x20Woo\",\x20\ the\x20UTF-32\x20code\x20units\x20are\n\x20['\xf0\x9f\x9a\x80',\x20'\x20\ ',\x20'W',\x20'o',\x20'o'],\x20so\x20the\x20offset\x20for\x20'W'\x20woul\ - d\x20be\x202.\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\x8f\x01\x02\"\n\r\ - \n\x05\x05\x02\x02\x03\x02\x12\x04\x8f\x01%&\n\xcc\x12\n\x02\x04\x04\x12\ - \x06\xbc\x01\0\xc0\x01\x01\x1a\xbd\x12\x20Symbol\x20is\x20similar\x20to\ + d\x20be\x202.\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\xe0\x01\x02\"\n\r\ + \n\x05\x05\x02\x02\x03\x02\x12\x04\xe0\x01%&\n\x96\x14\n\x02\x04\x04\x12\ + \x06\x92\x02\0\x96\x02\x01\x1a\x87\x14\x20Symbol\x20is\x20similar\x20to\ \x20a\x20URI,\x20it\x20identifies\x20a\x20class,\x20method,\x20or\x20a\ \x20local\n\x20variable.\x20`SymbolInformation`\x20contains\x20rich\x20m\ etadata\x20about\x20symbols\x20such\x20as\n\x20the\x20docstring.\n\n\x20\ @@ -4903,477 +5256,513 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20and\x20the\x20node\x20corresponding\x20to\x20the\x20symbol.\n\n\x20L\ ocal\x20symbols\x20MUST\x20only\x20be\x20used\x20for\x20entities\x20whic\ h\x20are\x20local\x20to\x20a\x20Document,\n\x20and\x20cannot\x20be\x20ac\ - cessed\x20from\x20outside\x20the\x20Document.\n\n\x0b\n\x03\x04\x04\x01\ - \x12\x04\xbc\x01\x08\x0e\n\x0c\n\x04\x04\x04\x02\0\x12\x04\xbd\x01\x02\ - \x14\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\xbd\x01\x02\x08\n\r\n\x05\x04\ - \x04\x02\0\x01\x12\x04\xbd\x01\t\x0f\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\ - \xbd\x01\x12\x13\n\x0c\n\x04\x04\x04\x02\x01\x12\x04\xbe\x01\x02\x16\n\r\ - \n\x05\x04\x04\x02\x01\x06\x12\x04\xbe\x01\x02\t\n\r\n\x05\x04\x04\x02\ - \x01\x01\x12\x04\xbe\x01\n\x11\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\xbe\ - \x01\x14\x15\n\x0c\n\x04\x04\x04\x02\x02\x12\x04\xbf\x01\x02&\n\r\n\x05\ - \x04\x04\x02\x02\x04\x12\x04\xbf\x01\x02\n\n\r\n\x05\x04\x04\x02\x02\x06\ - \x12\x04\xbf\x01\x0b\x15\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\xbf\x01\ - \x16!\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\xbf\x01$%\nq\n\x02\x04\x05\ - \x12\x06\xc5\x01\0\xc9\x01\x01\x1ac\x20Unit\x20of\x20packaging\x20and\ - \x20distribution.\n\n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20modu\ - le\x20in\x20Go\x20and\x20JVM\x20languages.\n\n\x0b\n\x03\x04\x05\x01\x12\ - \x04\xc5\x01\x08\x0f\n\x0c\n\x04\x04\x05\x02\0\x12\x04\xc6\x01\x02\x15\n\ - \r\n\x05\x04\x05\x02\0\x05\x12\x04\xc6\x01\x02\x08\n\r\n\x05\x04\x05\x02\ - \0\x01\x12\x04\xc6\x01\t\x10\n\r\n\x05\x04\x05\x02\0\x03\x12\x04\xc6\x01\ - \x13\x14\n\x0c\n\x04\x04\x05\x02\x01\x12\x04\xc7\x01\x02\x12\n\r\n\x05\ - \x04\x05\x02\x01\x05\x12\x04\xc7\x01\x02\x08\n\r\n\x05\x04\x05\x02\x01\ - \x01\x12\x04\xc7\x01\t\r\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\xc7\x01\ - \x10\x11\n\x0c\n\x04\x04\x05\x02\x02\x12\x04\xc8\x01\x02\x15\n\r\n\x05\ - \x04\x05\x02\x02\x05\x12\x04\xc8\x01\x02\x08\n\r\n\x05\x04\x05\x02\x02\ - \x01\x12\x04\xc8\x01\t\x10\n\r\n\x05\x04\x05\x02\x02\x03\x12\x04\xc8\x01\ - \x13\x14\n\x0c\n\x02\x04\x06\x12\x06\xcb\x01\0\xe2\x01\x01\n\x0b\n\x03\ - \x04\x06\x01\x12\x04\xcb\x01\x08\x12\n\x0e\n\x04\x04\x06\x04\0\x12\x06\ - \xcc\x01\x02\xde\x01\x03\n\r\n\x05\x04\x06\x04\0\x01\x12\x04\xcc\x01\x07\ - \r\n\r\n\x05\x04\x06\x04\0\x03\x12\x04\xcd\x01\x04\x1e\n\x0e\n\x06\x04\ - \x06\x04\0\x03\x02\x12\x04\xcd\x01\x04\x1e\n\x0e\n\x06\x04\x06\x04\0\x02\ - \0\x12\x04\xce\x01\x04\x1a\n\x0f\n\x07\x04\x06\x04\0\x02\0\x01\x12\x04\ - \xce\x01\x04\x15\n\x0f\n\x07\x04\x06\x04\0\x02\0\x02\x12\x04\xce\x01\x18\ - \x19\n}\n\x06\x04\x06\x04\0\x02\x01\x12\x04\xd2\x01\x04\x12\x1am\x20Unit\ - \x20of\x20code\x20abstraction\x20and/or\x20namespacing.\n\n\x20NOTE:\x20\ - This\x20corresponds\x20to\x20a\x20package\x20in\x20Go\x20and\x20JVM\x20l\ - anguages.\n\n\x0f\n\x07\x04\x06\x04\0\x02\x01\x01\x12\x04\xd2\x01\x04\r\ - \n\x0f\n\x07\x04\x06\x04\0\x02\x01\x02\x12\x04\xd2\x01\x10\x11\n(\n\x06\ - \x04\x06\x04\0\x02\x02\x12\x04\xd4\x01\x04\"\x1a\x18\x20Use\x20Namespace\ - \x20instead.\n\n\x0f\n\x07\x04\x06\x04\0\x02\x02\x01\x12\x04\xd4\x01\x04\ - \x0b\n\x0f\n\x07\x04\x06\x04\0\x02\x02\x02\x12\x04\xd4\x01\x0e\x0f\n\x0f\ - \n\x07\x04\x06\x04\0\x02\x02\x03\x12\x04\xd4\x01\x10!\n\x10\n\x08\x04\ - \x06\x04\0\x02\x02\x03\x01\x12\x04\xd4\x01\x11\x20\n\x0e\n\x06\x04\x06\ - \x04\0\x02\x03\x12\x04\xd5\x01\x04\r\n\x0f\n\x07\x04\x06\x04\0\x02\x03\ - \x01\x12\x04\xd5\x01\x04\x08\n\x0f\n\x07\x04\x06\x04\0\x02\x03\x02\x12\ - \x04\xd5\x01\x0b\x0c\n\x0e\n\x06\x04\x06\x04\0\x02\x04\x12\x04\xd6\x01\ - \x04\r\n\x0f\n\x07\x04\x06\x04\0\x02\x04\x01\x12\x04\xd6\x01\x04\x08\n\ - \x0f\n\x07\x04\x06\x04\0\x02\x04\x02\x12\x04\xd6\x01\x0b\x0c\n\x0e\n\x06\ - \x04\x06\x04\0\x02\x05\x12\x04\xd7\x01\x04\x0f\n\x0f\n\x07\x04\x06\x04\0\ - \x02\x05\x01\x12\x04\xd7\x01\x04\n\n\x0f\n\x07\x04\x06\x04\0\x02\x05\x02\ - \x12\x04\xd7\x01\r\x0e\n\x0e\n\x06\x04\x06\x04\0\x02\x06\x12\x04\xd8\x01\ - \x04\x16\n\x0f\n\x07\x04\x06\x04\0\x02\x06\x01\x12\x04\xd8\x01\x04\x11\n\ - \x0f\n\x07\x04\x06\x04\0\x02\x06\x02\x12\x04\xd8\x01\x14\x15\n\x0e\n\x06\ - \x04\x06\x04\0\x02\x07\x12\x04\xd9\x01\x04\x12\n\x0f\n\x07\x04\x06\x04\0\ - \x02\x07\x01\x12\x04\xd9\x01\x04\r\n\x0f\n\x07\x04\x06\x04\0\x02\x07\x02\ - \x12\x04\xd9\x01\x10\x11\n.\n\x06\x04\x06\x04\0\x02\x08\x12\x04\xdb\x01\ - \x04\r\x1a\x1e\x20Can\x20be\x20used\x20for\x20any\x20purpose.\n\n\x0f\n\ - \x07\x04\x06\x04\0\x02\x08\x01\x12\x04\xdb\x01\x04\x08\n\x0f\n\x07\x04\ - \x06\x04\0\x02\x08\x02\x12\x04\xdb\x01\x0b\x0c\n\x0e\n\x06\x04\x06\x04\0\ - \x02\t\x12\x04\xdc\x01\x04\x0e\n\x0f\n\x07\x04\x06\x04\0\x02\t\x01\x12\ - \x04\xdc\x01\x04\t\n\x0f\n\x07\x04\x06\x04\0\x02\t\x02\x12\x04\xdc\x01\ - \x0c\r\n\x0e\n\x06\x04\x06\x04\0\x02\n\x12\x04\xdd\x01\x04\x0e\n\x0f\n\ - \x07\x04\x06\x04\0\x02\n\x01\x12\x04\xdd\x01\x04\t\n\x0f\n\x07\x04\x06\ - \x04\0\x02\n\x02\x12\x04\xdd\x01\x0c\r\n\x0c\n\x04\x04\x06\x02\0\x12\x04\ - \xdf\x01\x02\x12\n\r\n\x05\x04\x06\x02\0\x05\x12\x04\xdf\x01\x02\x08\n\r\ - \n\x05\x04\x06\x02\0\x01\x12\x04\xdf\x01\t\r\n\r\n\x05\x04\x06\x02\0\x03\ - \x12\x04\xdf\x01\x10\x11\n\x0c\n\x04\x04\x06\x02\x01\x12\x04\xe0\x01\x02\ - \x1b\n\r\n\x05\x04\x06\x02\x01\x05\x12\x04\xe0\x01\x02\x08\n\r\n\x05\x04\ - \x06\x02\x01\x01\x12\x04\xe0\x01\t\x16\n\r\n\x05\x04\x06\x02\x01\x03\x12\ - \x04\xe0\x01\x19\x1a\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xe1\x01\x02\x14\ - \n\r\n\x05\x04\x06\x02\x02\x06\x12\x04\xe1\x01\x02\x08\n\r\n\x05\x04\x06\ - \x02\x02\x01\x12\x04\xe1\x01\t\x0f\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\ - \xe1\x01\x12\x13\n\x83\x01\n\x02\x04\x07\x12\x06\xe6\x01\0\xb6\x03\x01\ - \x1au\x20SymbolInformation\x20defines\x20metadata\x20about\x20a\x20symbo\ - l,\x20such\x20as\x20the\x20symbol's\n\x20docstring\x20or\x20what\x20pack\ - age\x20it's\x20defined\x20it.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xe6\x01\ - \x08\x19\n\xa0\x01\n\x04\x04\x07\x02\0\x12\x04\xe9\x01\x02\x14\x1a\x91\ - \x01\x20Identifier\x20of\x20this\x20symbol,\x20which\x20can\x20be\x20ref\ - erenced\x20from\x20`Occurence.symbol`.\n\x20The\x20string\x20must\x20be\ - \x20formatted\x20according\x20to\x20the\x20grammar\x20in\x20`Symbol`.\n\ - \n\r\n\x05\x04\x07\x02\0\x05\x12\x04\xe9\x01\x02\x08\n\r\n\x05\x04\x07\ - \x02\0\x01\x12\x04\xe9\x01\t\x0f\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\xe9\ - \x01\x12\x13\n\xb4\x03\n\x04\x04\x07\x02\x01\x12\x04\xf0\x01\x02$\x1a\ - \xa5\x03\x20(optional,\x20but\x20strongly\x20recommended)\x20The\x20mark\ - down-formatted\x20documentation\n\x20for\x20this\x20symbol.\x20Use\x20`S\ - ymbolInformation.signature_documentation`\x20to\n\x20document\x20the\x20\ - method/class/type\x20signature\x20of\x20this\x20symbol.\n\x20Due\x20to\ - \x20historical\x20reasons,\x20indexers\x20may\x20include\x20signature\ - \x20documentation\x20in\n\x20this\x20field\x20by\x20rendering\x20markdow\ - n\x20code\x20blocks.\x20New\x20indexers\x20should\x20only\n\x20include\ - \x20non-code\x20documentation\x20in\x20this\x20field,\x20for\x20example\ - \x20docstrings.\n\n\r\n\x05\x04\x07\x02\x01\x04\x12\x04\xf0\x01\x02\n\n\ - \r\n\x05\x04\x07\x02\x01\x05\x12\x04\xf0\x01\x0b\x11\n\r\n\x05\x04\x07\ - \x02\x01\x01\x12\x04\xf0\x01\x12\x1f\n\r\n\x05\x04\x07\x02\x01\x03\x12\ - \x04\xf0\x01\"#\n^\n\x04\x04\x07\x02\x02\x12\x04\xf2\x01\x02*\x1aP\x20(o\ - ptional)\x20Relationships\x20to\x20other\x20symbols\x20(e.g.,\x20impleme\ - nts,\x20type\x20definition).\n\n\r\n\x05\x04\x07\x02\x02\x04\x12\x04\xf2\ - \x01\x02\n\n\r\n\x05\x04\x07\x02\x02\x06\x12\x04\xf2\x01\x0b\x17\n\r\n\ - \x05\x04\x07\x02\x02\x01\x12\x04\xf2\x01\x18%\n\r\n\x05\x04\x07\x02\x02\ - \x03\x12\x04\xf2\x01()\n\xa4\x01\n\x04\x04\x07\x02\x03\x12\x04\xf6\x01\ - \x02\x10\x1a\x95\x01\x20The\x20kind\x20of\x20this\x20symbol.\x20Use\x20t\ - his\x20field\x20instead\x20of\n\x20`SymbolDescriptor.Suffix`\x20to\x20de\ - termine\x20whether\x20something\x20is,\x20for\x20example,\x20a\n\x20clas\ - s\x20or\x20a\x20method.\n\n\r\n\x05\x04\x07\x02\x03\x06\x12\x04\xf6\x01\ - \x02\x06\n\r\n\x05\x04\x07\x02\x03\x01\x12\x04\xf6\x01\x07\x0b\n\r\n\x05\ - \x04\x07\x02\x03\x03\x12\x04\xf6\x01\x0e\x0f\n\xf5\x05\n\x04\x04\x07\x04\ - \0\x12\x06\x85\x02\x02\x92\x03\x03\x1a\xe4\x05\x20(optional)\x20Kind\x20\ - represents\x20the\x20fine-grained\x20category\x20of\x20a\x20symbol,\x20s\ - uitable\x20for\x20presenting\n\x20information\x20about\x20the\x20symbol'\ - s\x20meaning\x20in\x20the\x20language.\n\n\x20For\x20example:\n\x20-\x20\ - A\x20Java\x20method\x20would\x20have\x20the\x20kind\x20`Method`\x20while\ - \x20a\x20Go\x20function\x20would\n\x20\x20\x20have\x20the\x20kind\x20`Fu\ - nction`,\x20even\x20if\x20the\x20symbols\x20for\x20these\x20use\x20the\ - \x20same\n\x20\x20\x20syntax\x20for\x20the\x20descriptor\x20`SymbolDescr\ - iptor.Suffix.Method`.\n\x20-\x20A\x20Go\x20struct\x20has\x20the\x20symbo\ - l\x20kind\x20`Struct`\x20while\x20a\x20Java\x20class\x20has\n\x20\x20\ - \x20the\x20symbol\x20kind\x20`Class`\x20even\x20if\x20they\x20both\x20ha\ - ve\x20the\x20same\x20descriptor:\n\x20\x20\x20`SymbolDescriptor.Suffix.T\ - ype`.\n\n\x20Since\x20Kind\x20is\x20more\x20fine-grained\x20than\x20Suff\ - ix:\n\x20-\x20If\x20two\x20symbols\x20have\x20the\x20same\x20Kind,\x20th\ - ey\x20should\x20share\x20the\x20same\x20Suffix.\n\x20-\x20If\x20two\x20s\ - ymbols\x20have\x20different\x20Suffixes,\x20they\x20should\x20have\x20di\ - fferent\x20Kinds.\n\n\r\n\x05\x04\x07\x04\0\x01\x12\x04\x85\x02\x07\x0b\ - \n\x0e\n\x06\x04\x07\x04\0\x02\0\x12\x04\x86\x02\x06\x1a\n\x0f\n\x07\x04\ - \x07\x04\0\x02\0\x01\x12\x04\x86\x02\x06\x15\n\x0f\n\x07\x04\x07\x04\0\ - \x02\0\x02\x12\x04\x86\x02\x18\x19\nR\n\x06\x04\x07\x04\0\x02\x01\x12\ - \x04\x88\x02\x06\x1a\x1aB\x20A\x20method\x20which\x20may\x20or\x20may\ - \x20not\x20have\x20a\x20body.\x20For\x20Java,\x20Kotlin\x20etc.\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x01\x01\x12\x04\x88\x02\x06\x14\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x01\x02\x12\x04\x88\x02\x17\x19\n*\n\x06\x04\x07\x04\0\ - \x02\x02\x12\x04\x8a\x02\x06\x14\x1a\x1a\x20For\x20Ruby's\x20attr_access\ - or\n\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x01\x12\x04\x8a\x02\x06\x0e\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x02\x02\x12\x04\x8a\x02\x11\x13\n\x0e\n\x06\x04\ - \x07\x04\0\x02\x03\x12\x04\x8b\x02\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\ - \x03\x01\x12\x04\x8b\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x03\x02\ - \x12\x04\x8b\x02\x0e\x0f\n\x1b\n\x06\x04\x07\x04\0\x02\x04\x12\x04\x8d\ - \x02\x06\x14\x1a\x0b\x20For\x20Alloy\n\n\x0f\n\x07\x04\x07\x04\0\x02\x04\ - \x01\x12\x04\x8d\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x04\x02\x12\ - \x04\x8d\x02\x12\x13\n\x0e\n\x06\x04\x07\x04\0\x02\x05\x12\x04\x8e\x02\ - \x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02\x05\x01\x12\x04\x8e\x02\x06\x14\n\ - \x0f\n\x07\x04\x07\x04\0\x02\x05\x02\x12\x04\x8e\x02\x17\x18\n\x19\n\x06\ - \x04\x07\x04\0\x02\x06\x12\x04\x90\x02\x06\x14\x1a\t\x20For\x20C++\n\n\ - \x0f\n\x07\x04\x07\x04\0\x02\x06\x01\x12\x04\x90\x02\x06\x0f\n\x0f\n\x07\ - \x04\x07\x04\0\x02\x06\x02\x12\x04\x90\x02\x12\x13\n\x1a\n\x06\x04\x07\ - \x04\0\x02\x07\x12\x04\x92\x02\x06\x10\x1a\n\x20For\x20Lean\n\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x07\x01\x12\x04\x92\x02\x06\x0b\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x07\x02\x12\x04\x92\x02\x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\ - \x02\x08\x12\x04\x93\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x08\x01\ - \x12\x04\x93\x02\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02\x08\x02\x12\x04\x93\ - \x02\x10\x11\n\x0e\n\x06\x04\x07\x04\0\x02\t\x12\x04\x94\x02\x06\x10\n\ - \x0f\n\x07\x04\x07\x04\0\x02\t\x01\x12\x04\x94\x02\x06\x0b\n\x0f\n\x07\ - \x04\x07\x04\0\x02\t\x02\x12\x04\x94\x02\x0e\x0f\n\x0e\n\x06\x04\x07\x04\ - \0\x02\n\x12\x04\x95\x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02\n\x01\x12\ - \x04\x95\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\n\x02\x12\x04\x95\x02\ - \x11\x12\n\x0e\n\x06\x04\x07\x04\0\x02\x0b\x12\x04\x96\x02\x06\x16\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x0b\x01\x12\x04\x96\x02\x06\x11\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x0b\x02\x12\x04\x96\x02\x14\x15\n\x1e\n\x06\x04\x07\x04\0\ - \x02\x0c\x12\x04\x98\x02\x06\x14\x1a\x0e\x20For\x20Solidity\n\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x0c\x01\x12\x04\x98\x02\x06\x0e\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x0c\x02\x12\x04\x98\x02\x11\x13\n\x1d\n\x06\x04\x07\x04\0\ - \x02\r\x12\x04\x9a\x02\x06\x16\x1a\r\x20For\x20Haskell\n\n\x0f\n\x07\x04\ - \x07\x04\0\x02\r\x01\x12\x04\x9a\x02\x06\x10\n\x0f\n\x07\x04\x07\x04\0\ - \x02\r\x02\x12\x04\x9a\x02\x13\x15\n\x1f\n\x06\x04\x07\x04\0\x02\x0e\x12\ - \x04\x9c\x02\x06\x14\x1a\x0f\x20For\x20C#\x20and\x20F#\n\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x0e\x01\x12\x04\x9c\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\ - \x02\x0e\x02\x12\x04\x9c\x02\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02\x0f\ - \x12\x04\x9d\x02\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x0f\x01\x12\x04\ - \x9d\x02\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\x0f\x02\x12\x04\x9d\x02\r\ - \x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x10\x12\x04\x9e\x02\x06\x16\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x10\x01\x12\x04\x9e\x02\x06\x10\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x10\x02\x12\x04\x9e\x02\x13\x15\n\x0e\n\x06\x04\x07\x04\0\ - \x02\x11\x12\x04\x9f\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x11\x01\ - \x12\x04\x9f\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x11\x02\x12\x04\ - \x9f\x02\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02\x12\x12\x04\xa0\x02\x06\ - \x11\n\x0f\n\x07\x04\x07\x04\0\x02\x12\x01\x12\x04\xa0\x02\x06\x0b\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x12\x02\x12\x04\xa0\x02\x0e\x10\n\x1a\n\x06\x04\ - \x07\x04\0\x02\x13\x12\x04\xa2\x02\x06\x15\x1a\n\x20For\x20Dart\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x13\x01\x12\x04\xa2\x02\x06\x0f\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x13\x02\x12\x04\xa2\x02\x12\x14\n\x1b\n\x06\x04\x07\x04\0\ - \x02\x14\x12\x04\xa4\x02\x06\x10\x1a\x0b\x20For\x20Alloy\n\n\x0f\n\x07\ - \x04\x07\x04\0\x02\x14\x01\x12\x04\xa4\x02\x06\n\n\x0f\n\x07\x04\x07\x04\ - \0\x02\x14\x02\x12\x04\xa4\x02\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x15\ - \x12\x04\xa5\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x15\x01\x12\x04\ - \xa5\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x15\x02\x12\x04\xa5\x02\ - \x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02\x16\x12\x04\xa6\x02\x06\x10\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x16\x01\x12\x04\xa6\x02\x06\n\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x16\x02\x12\x04\xa6\x02\r\x0f\n\x0e\n\x06\x04\x07\x04\0\ - \x02\x17\x12\x04\xa7\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x17\x01\ - \x12\x04\xa7\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x17\x02\x12\x04\ - \xa7\x02\x11\x13\n;\n\x06\x04\x07\x04\0\x02\x18\x12\x04\xa9\x02\x06\x12\ - \x1a+\x20For\x20'get'\x20in\x20Swift,\x20'attr_reader'\x20in\x20Ruby\n\n\ - \x0f\n\x07\x04\x07\x04\0\x02\x18\x01\x12\x04\xa9\x02\x06\x0c\n\x0f\n\x07\ - \x04\x07\x04\0\x02\x18\x02\x12\x04\xa9\x02\x0f\x11\n\x1a\n\x06\x04\x07\ - \x04\0\x02\x19\x12\x04\xab\x02\x06\x13\x1a\n\x20For\x20Raku\n\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x19\x01\x12\x04\xab\x02\x06\r\n\x0f\n\x07\x04\x07\ - \x04\0\x02\x19\x02\x12\x04\xab\x02\x10\x12\n)\n\x06\x04\x07\x04\0\x02\ - \x1a\x12\x04\xad\x02\x06\x14\x1a\x19\x20For\x20Purescript\x20and\x20Lean\ - \n\n\x0f\n\x07\x04\x07\x04\0\x02\x1a\x01\x12\x04\xad\x02\x06\x0e\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x1a\x02\x12\x04\xad\x02\x11\x13\n\x0e\n\x06\x04\ - \x07\x04\0\x02\x1b\x12\x04\xae\x02\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\ - \x1b\x01\x12\x04\xae\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x1b\x02\ - \x12\x04\xae\x02\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x02\x1c\x12\x04\xaf\ - \x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x1c\x01\x12\x04\xaf\x02\x06\t\ - \n\x0f\n\x07\x04\x07\x04\0\x02\x1c\x02\x12\x04\xaf\x02\x0c\x0e\n\x1c\n\ - \x06\x04\x07\x04\0\x02\x1d\x12\x04\xb1\x02\x06\x10\x1a\x0c\x20For\x20Rac\ - ket\n\n\x0f\n\x07\x04\x07\x04\0\x02\x1d\x01\x12\x04\xb1\x02\x06\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x1d\x02\x12\x04\xb1\x02\r\x0f\n\x1a\n\x06\x04\ - \x07\x04\0\x02\x1e\x12\x04\xb3\x02\x06\x11\x1a\n\x20For\x20Lean\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x1e\x01\x12\x04\xb3\x02\x06\x0b\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x1e\x02\x12\x04\xb3\x02\x0e\x10\n\x1e\n\x06\x04\x07\x04\0\ - \x02\x1f\x12\x04\xb5\x02\x06\x13\x1a\x0e\x20For\x20solidity\n\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x1f\x01\x12\x04\xb5\x02\x06\r\n\x0f\n\x07\x04\x07\ - \x04\0\x02\x1f\x02\x12\x04\xb5\x02\x10\x12\n\x0e\n\x06\x04\x07\x04\0\x02\ - \x20\x12\x04\xb6\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x20\x01\x12\ - \x04\xb6\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x20\x02\x12\x04\xb6\ - \x02\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02!\x12\x04\xb7\x02\x06\x12\n\ - \x0f\n\x07\x04\x07\x04\0\x02!\x01\x12\x04\xb7\x02\x06\x0c\n\x0f\n\x07\ - \x04\x07\x04\0\x02!\x02\x12\x04\xb7\x02\x0f\x11\n\x1a\n\x06\x04\x07\x04\ - \0\x02\"\x12\x04\xb9\x02\x06\x17\x1a\n\x20For\x20Ruby\n\n\x0f\n\x07\x04\ - \x07\x04\0\x02\"\x01\x12\x04\xb9\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\ - \x02\"\x02\x12\x04\xb9\x02\x14\x16\n\x94\x01\n\x06\x04\x07\x04\0\x02#\ - \x12\x04\xbc\x02\x06\x1a\x1a\x83\x01\x20Analogous\x20to\x20'ThisParamete\ - r'\x20and\x20'SelfParameter',\x20but\x20for\x20languages\n\x20like\x20Go\ - \x20where\x20the\x20receiver\x20doesn't\x20have\x20a\x20conventional\x20\ - name.\n\n\x0f\n\x07\x04\x07\x04\0\x02#\x01\x12\x04\xbc\x02\x06\x14\n\x0f\ - \n\x07\x04\x07\x04\0\x02#\x02\x12\x04\xbc\x02\x17\x19\n8\n\x06\x04\x07\ - \x04\0\x02$\x12\x04\xbe\x02\x06\x1f\x1a(\x20Analogous\x20to\x20'Abstract\ - Method',\x20for\x20Go.\n\n\x0f\n\x07\x04\x07\x04\0\x02$\x01\x12\x04\xbe\ - \x02\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02$\x02\x12\x04\xbe\x02\x1c\x1e\ - \n\x1e\n\x06\x04\x07\x04\0\x02%\x12\x04\xc0\x02\x06\x13\x1a\x0e\x20For\ - \x20Protobuf\n\n\x0f\n\x07\x04\x07\x04\0\x02%\x01\x12\x04\xc0\x02\x06\r\ - \n\x0f\n\x07\x04\x07\x04\0\x02%\x02\x12\x04\xc0\x02\x10\x12\n\x1a\n\x06\ - \x04\x07\x04\0\x02&\x12\x04\xc2\x02\x06\x11\x1a\n\x20For\x20Dart\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02&\x01\x12\x04\xc2\x02\x06\x0b\n\x0f\n\x07\x04\ - \x07\x04\0\x02&\x02\x12\x04\xc2\x02\x0e\x10\n\x1e\n\x06\x04\x07\x04\0\ - \x02'\x12\x04\xc4\x02\x06\x14\x1a\x0e\x20For\x20Solidity\n\n\x0f\n\x07\ - \x04\x07\x04\0\x02'\x01\x12\x04\xc4\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\ - \0\x02'\x02\x12\x04\xc4\x02\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02(\x12\ - \x04\xc5\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02(\x01\x12\x04\xc5\x02\ - \x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02(\x02\x12\x04\xc5\x02\x0f\x11\n\ - \x0e\n\x06\x04\x07\x04\0\x02)\x12\x04\xc6\x02\x06\x15\n\x0f\n\x07\x04\ - \x07\x04\0\x02)\x01\x12\x04\xc6\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\ - \x02)\x02\x12\x04\xc6\x02\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x02*\x12\x04\ - \xc7\x02\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02*\x01\x12\x04\xc7\x02\x06\ - \n\n\x0f\n\x07\x04\x07\x04\0\x02*\x02\x12\x04\xc7\x02\r\x0f\n\x0e\n\x06\ - \x04\x07\x04\0\x02+\x12\x04\xc8\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\ - \x02+\x01\x12\x04\xc8\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02+\x02\x12\ - \x04\xc8\x02\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02,\x12\x04\xc9\x02\x06\ - \x12\n\x0f\n\x07\x04\x07\x04\0\x02,\x01\x12\x04\xc9\x02\x06\x0c\n\x0f\n\ - \x07\x04\x07\x04\0\x02,\x02\x12\x04\xc9\x02\x0f\x11\n\x0e\n\x06\x04\x07\ - \x04\0\x02-\x12\x04\xca\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02-\x01\ - \x12\x04\xca\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02-\x02\x12\x04\xca\ - \x02\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02.\x12\x04\xcb\x02\x06\x13\n\ - \x0f\n\x07\x04\x07\x04\0\x02.\x01\x12\x04\xcb\x02\x06\r\n\x0f\n\x07\x04\ - \x07\x04\0\x02.\x02\x12\x04\xcb\x02\x10\x12\n\x0e\n\x06\x04\x07\x04\0\ - \x02/\x12\x04\xcc\x02\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02/\x01\x12\x04\ - \xcc\x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02/\x02\x12\x04\xcc\x02\x16\ - \x18\n\x0e\n\x06\x04\x07\x04\0\x020\x12\x04\xcd\x02\x06\x15\n\x0f\n\x07\ - \x04\x07\x04\0\x020\x01\x12\x04\xcd\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\ - \0\x020\x02\x12\x04\xcd\x02\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x021\x12\ - \x04\xce\x02\x06\x1a\n\x0f\n\x07\x04\x07\x04\0\x021\x01\x12\x04\xce\x02\ - \x06\x14\n\x0f\n\x07\x04\x07\x04\0\x021\x02\x12\x04\xce\x02\x17\x19\n/\n\ - \x06\x04\x07\x04\0\x022\x12\x04\xd0\x02\x06\x13\x1a\x1f\x20For\x20Haskel\ - l's\x20PatternSynonyms\n\n\x0f\n\x07\x04\x07\x04\0\x022\x01\x12\x04\xd0\ - \x02\x06\r\n\x0f\n\x07\x04\x07\x04\0\x022\x02\x12\x04\xd0\x02\x10\x12\n\ - \x1b\n\x06\x04\x07\x04\0\x023\x12\x04\xd2\x02\x06\x15\x1a\x0b\x20For\x20\ - Alloy\n\n\x0f\n\x07\x04\x07\x04\0\x023\x01\x12\x04\xd2\x02\x06\x0f\n\x0f\ - \n\x07\x04\x07\x04\0\x023\x02\x12\x04\xd2\x02\x12\x14\n\x0e\n\x06\x04\ - \x07\x04\0\x024\x12\x04\xd3\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x024\ - \x01\x12\x04\xd3\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x024\x02\x12\x04\ - \xd3\x02\x11\x13\nQ\n\x06\x04\x07\x04\0\x025\x12\x04\xd5\x02\x06\x14\x1a\ - A\x20Analogous\x20to\x20'Trait'\x20and\x20'TypeClass',\x20for\x20Swift\ - \x20and\x20Objective-C\n\n\x0f\n\x07\x04\x07\x04\0\x025\x01\x12\x04\xd5\ - \x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x025\x02\x12\x04\xd5\x02\x11\x13\ - \nK\n\x06\x04\x07\x04\0\x026\x12\x04\xd7\x02\x06\x1a\x1a;\x20Analogous\ - \x20to\x20'AbstractMethod',\x20for\x20Swift\x20and\x20Objective-C.\n\n\ - \x0f\n\x07\x04\x07\x04\0\x026\x01\x12\x04\xd7\x02\x06\x14\n\x0f\n\x07\ - \x04\x07\x04\0\x026\x02\x12\x04\xd7\x02\x17\x19\n9\n\x06\x04\x07\x04\0\ - \x027\x12\x04\xd9\x02\x06\x1d\x1a)\x20Analogous\x20to\x20'AbstractMethod\ - ',\x20for\x20C++.\n\n\x0f\n\x07\x04\x07\x04\0\x027\x01\x12\x04\xd9\x02\ - \x06\x17\n\x0f\n\x07\x04\x07\x04\0\x027\x02\x12\x04\xd9\x02\x1a\x1c\n\ - \x1d\n\x06\x04\x07\x04\0\x028\x12\x04\xdb\x02\x06\x17\x1a\r\x20For\x20Ha\ - skell\n\n\x0f\n\x07\x04\x07\x04\0\x028\x01\x12\x04\xdb\x02\x06\x11\n\x0f\ - \n\x07\x04\x07\x04\0\x028\x02\x12\x04\xdb\x02\x14\x16\n4\n\x06\x04\x07\ - \x04\0\x029\x12\x04\xdd\x02\x06\x19\x1a$\x20'self'\x20in\x20Python,\x20R\ - ust,\x20Swift\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x029\x01\x12\x04\xdd\ - \x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x029\x02\x12\x04\xdd\x02\x16\x18\ - \n;\n\x06\x04\x07\x04\0\x02:\x12\x04\xdf\x02\x06\x12\x1a+\x20For\x20'set\ - '\x20in\x20Swift,\x20'attr_writer'\x20in\x20Ruby\n\n\x0f\n\x07\x04\x07\ - \x04\0\x02:\x01\x12\x04\xdf\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02:\ - \x02\x12\x04\xdf\x02\x0f\x11\n3\n\x06\x04\x07\x04\0\x02;\x12\x04\xe1\x02\ - \x06\x15\x1a#\x20For\x20Alloy,\x20analogous\x20to\x20'Struct'.\n\n\x0f\n\ - \x07\x04\x07\x04\0\x02;\x01\x12\x04\xe1\x02\x06\x0f\n\x0f\n\x07\x04\x07\ - \x04\0\x02;\x02\x12\x04\xe1\x02\x12\x14\n\x1a\n\x06\x04\x07\x04\0\x02<\ - \x12\x04\xe3\x02\x06\x1a\x1a\n\x20For\x20Ruby\n\n\x0f\n\x07\x04\x07\x04\ - \0\x02<\x01\x12\x04\xe3\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02<\x02\ - \x12\x04\xe3\x02\x17\x19\n8\n\x06\x04\x07\x04\0\x02=\x12\x04\xe5\x02\x06\ - \x1b\x1a(\x20Analogous\x20to\x20'StaticMethod',\x20for\x20Ruby.\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02=\x01\x12\x04\xe5\x02\x06\x15\n\x0f\n\x07\x04\ - \x07\x04\0\x02=\x02\x12\x04\xe5\x02\x18\x1a\n5\n\x06\x04\x07\x04\0\x02>\ - \x12\x04\xe7\x02\x06\x1c\x1a%\x20Analogous\x20to\x20'StaticField',\x20fo\ - r\x20C++\n\n\x0f\n\x07\x04\x07\x04\0\x02>\x01\x12\x04\xe7\x02\x06\x16\n\ - \x0f\n\x07\x04\x07\x04\0\x02>\x02\x12\x04\xe7\x02\x19\x1b\n\x18\n\x06\ - \x04\x07\x04\0\x02?\x12\x04\xe9\x02\x06\x17\x1a\x08\x20For\x20C#\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02?\x01\x12\x04\xe9\x02\x06\x11\n\x0f\n\x07\x04\ - \x07\x04\0\x02?\x02\x12\x04\xe9\x02\x14\x16\n\x18\n\x06\x04\x07\x04\0\ - \x02@\x12\x04\xeb\x02\x06\x17\x1a\x08\x20For\x20C#\n\n\x0f\n\x07\x04\x07\ - \x04\0\x02@\x01\x12\x04\xeb\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02@\ - \x02\x12\x04\xeb\x02\x14\x16\n(\n\x06\x04\x07\x04\0\x02A\x12\x04\xed\x02\ - \x06\x18\x1a\x18\x20For\x20Java,\x20C#,\x20C++\x20etc.\n\n\x0f\n\x07\x04\ - \x07\x04\0\x02A\x01\x12\x04\xed\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\ - \x02A\x02\x12\x04\xed\x02\x15\x17\n)\n\x06\x04\x07\x04\0\x02B\x12\x04\ - \xef\x02\x06\x1a\x1a\x19\x20For\x20C#,\x20TypeScript\x20etc.\n\n\x0f\n\ - \x07\x04\x07\x04\0\x02B\x01\x12\x04\xef\x02\x06\x14\n\x0f\n\x07\x04\x07\ - \x04\0\x02B\x02\x12\x04\xef\x02\x17\x19\n\x1c\n\x06\x04\x07\x04\0\x02C\ - \x12\x04\xf1\x02\x06\x1a\x1a\x0c\x20For\x20C,\x20C++\n\n\x0f\n\x07\x04\ - \x07\x04\0\x02C\x01\x12\x04\xf1\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\ - \x02C\x02\x12\x04\xf1\x02\x17\x19\n\x0e\n\x06\x04\x07\x04\0\x02D\x12\x04\ - \xf2\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02D\x01\x12\x04\xf2\x02\x06\ - \x0c\n\x0f\n\x07\x04\x07\x04\0\x02D\x02\x12\x04\xf2\x02\x0f\x11\n\x0e\n\ - \x06\x04\x07\x04\0\x02E\x12\x04\xf3\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\ - \0\x02E\x01\x12\x04\xf3\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02E\x02\ - \x12\x04\xf3\x02\x0f\x11\n\x1b\n\x06\x04\x07\x04\0\x02F\x12\x04\xf5\x02\ - \x06\x15\x1a\x0b\x20For\x20Swift\n\n\x0f\n\x07\x04\x07\x04\0\x02F\x01\ - \x12\x04\xf5\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02F\x02\x12\x04\xf5\ - \x02\x12\x14\n\x1a\n\x06\x04\x07\x04\0\x02G\x12\x04\xf7\x02\x06\x12\x1a\ - \n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02G\x01\x12\x04\xf7\x02\ - \x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02G\x02\x12\x04\xf7\x02\x0f\x11\n\ - \x1a\n\x06\x04\x07\x04\0\x02H\x12\x04\xf9\x02\x06\x13\x1a\n\x20For\x20Le\ - an\n\n\x0f\n\x07\x04\x07\x04\0\x02H\x01\x12\x04\xf9\x02\x06\r\n\x0f\n\ - \x07\x04\x07\x04\0\x02H\x02\x12\x04\xf9\x02\x10\x12\nU\n\x06\x04\x07\x04\ - \0\x02I\x12\x04\xfc\x02\x06\x19\x1aE\x20Method\x20receiver\x20for\x20lan\ - guages\n\x20'this'\x20in\x20JavaScript,\x20C++,\x20Java\x20etc.\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02I\x01\x12\x04\xfc\x02\x06\x13\n\x0f\n\x07\x04\ - \x07\x04\0\x02I\x02\x12\x04\xfc\x02\x16\x18\nO\n\x06\x04\x07\x04\0\x02J\ - \x12\x04\xfe\x02\x06\x11\x1a?\x20Analogous\x20to\x20'Protocol'\x20and\ - \x20'TypeClass',\x20for\x20Rust,\x20Scala\x20etc.\n\n\x0f\n\x07\x04\x07\ - \x04\0\x02J\x01\x12\x04\xfe\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02J\ - \x02\x12\x04\xfe\x02\x0e\x10\nE\n\x06\x04\x07\x04\0\x02K\x12\x04\x80\x03\ - \x06\x17\x1a5\x20Analogous\x20to\x20'AbstractMethod',\x20for\x20Rust,\ - \x20Scala\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02K\x01\x12\x04\x80\x03\ - \x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02K\x02\x12\x04\x80\x03\x14\x16\n\ - \x89\x01\n\x06\x04\x07\x04\0\x02L\x12\x04\x83\x03\x06\x10\x1ay\x20Data\ - \x20type\x20definition\x20for\x20languages\x20like\x20OCaml\x20which\x20\ - use\x20`type`\n\x20rather\x20than\x20separate\x20keywords\x20like\x20`st\ - ruct`\x20and\x20`enum`.\n\n\x0f\n\x07\x04\x07\x04\0\x02L\x01\x12\x04\x83\ - \x03\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02L\x02\x12\x04\x83\x03\r\x0f\n\ - \x0e\n\x06\x04\x07\x04\0\x02M\x12\x04\x84\x03\x06\x15\n\x0f\n\x07\x04\ - \x07\x04\0\x02M\x01\x12\x04\x84\x03\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\ - \x02M\x02\x12\x04\x84\x03\x12\x14\nS\n\x06\x04\x07\x04\0\x02N\x12\x04\ - \x86\x03\x06\x15\x1aC\x20Analogous\x20to\x20'Trait'\x20and\x20'Protocol'\ - ,\x20for\x20Haskell,\x20Purescript\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\ - \x02N\x01\x12\x04\x86\x03\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02N\x02\x12\ - \x04\x86\x03\x12\x14\nM\n\x06\x04\x07\x04\0\x02O\x12\x04\x88\x03\x06\x1b\ - \x1a=\x20Analogous\x20to\x20'AbstractMethod',\x20for\x20Haskell,\x20Pure\ - script\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02O\x01\x12\x04\x88\x03\x06\ - \x15\n\x0f\n\x07\x04\x07\x04\0\x02O\x02\x12\x04\x88\x03\x18\x1a\n\x1d\n\ - \x06\x04\x07\x04\0\x02P\x12\x04\x8a\x03\x06\x16\x1a\r\x20For\x20Haskell\ - \n\n\x0f\n\x07\x04\x07\x04\0\x02P\x01\x12\x04\x8a\x03\x06\x10\n\x0f\n\ - \x07\x04\x07\x04\0\x02P\x02\x12\x04\x8a\x03\x13\x15\n\x0e\n\x06\x04\x07\ - \x04\0\x02Q\x12\x04\x8b\x03\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02Q\x01\ - \x12\x04\x8b\x03\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02Q\x02\x12\x04\x8b\ - \x03\x16\x18\n(\n\x06\x04\x07\x04\0\x02R\x12\x04\x8d\x03\x06\x11\x1a\x18\ - \x20For\x20C,\x20C++,\x20Capn\x20Proto\n\n\x0f\n\x07\x04\x07\x04\0\x02R\ - \x01\x12\x04\x8d\x03\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02R\x02\x12\x04\ - \x8d\x03\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02S\x12\x04\x8e\x03\x06\x11\ - \n\x0f\n\x07\x04\x07\x04\0\x02S\x01\x12\x04\x8e\x03\x06\x0b\n\x0f\n\x07\ - \x04\x07\x04\0\x02S\x02\x12\x04\x8e\x03\x0e\x10\n[\n\x06\x04\x07\x04\0\ - \x02T\x12\x04\x8f\x03\x06\x14\"K\x20Next\x20=\x2086;\n\x20Feel\x20free\ - \x20to\x20open\x20a\x20PR\x20proposing\x20new\x20language-specific\x20ki\ - nds.\n\n\x0f\n\x07\x04\x07\x04\0\x02T\x01\x12\x04\x8f\x03\x06\x0e\n\x0f\ - \n\x07\x04\x07\x04\0\x02T\x02\x12\x04\x8f\x03\x11\x13\n\xf3\x03\n\x04\ - \x04\x07\x02\x04\x12\x04\x9c\x03\x02\x1a\x1a\xe4\x03\x20(optional)\x20Th\ - e\x20name\x20of\x20this\x20symbol\x20as\x20it\x20should\x20be\x20display\ - ed\x20to\x20the\x20user.\n\x20For\x20example,\x20the\x20symbol\x20\"com/\ - example/MyClass#myMethod(+1).\"\x20should\x20have\x20the\n\x20display\ - \x20name\x20\"myMethod\".\x20The\x20`symbol`\x20field\x20is\x20not\x20a\ - \x20reliable\x20source\x20of\n\x20the\x20display\x20name\x20for\x20sever\ - al\x20reasons:\n\n\x20-\x20Local\x20symbols\x20don't\x20encode\x20the\ - \x20name.\n\x20-\x20Some\x20languages\x20have\x20case-insensitive\x20nam\ - es,\x20so\x20the\x20symbol\x20is\x20all-lowercase.\n\x20-\x20The\x20symb\ - ol\x20may\x20encode\x20names\x20with\x20special\x20characters\x20that\ - \x20should\x20not\x20be\n\x20\x20\x20displayed\x20to\x20the\x20user.\n\n\ - \r\n\x05\x04\x07\x02\x04\x05\x12\x04\x9c\x03\x02\x08\n\r\n\x05\x04\x07\ - \x02\x04\x01\x12\x04\x9c\x03\t\x15\n\r\n\x05\x04\x07\x02\x04\x03\x12\x04\ - \x9c\x03\x18\x19\n\xc4\x03\n\x04\x04\x07\x02\x05\x12\x04\xa3\x03\x02'\ - \x1a\xb5\x03\x20(optional)\x20The\x20signature\x20of\x20this\x20symbol\ - \x20as\x20it's\x20displayed\x20in\x20API\n\x20documentation\x20or\x20in\ - \x20hover\x20tooltips.\x20For\x20example,\x20a\x20Java\x20method\x20that\ - \x20adds\n\x20two\x20numbers\x20this\x20would\x20have\x20`Document.langu\ - age\x20=\x20\"java\"`\x20and\x20`Document.text\n\x20=\x20\"void\x20add(i\ - nt\x20a,\x20int\x20b)\".\x20The\x20`language`\x20and\x20`text`\x20fields\ - \x20are\x20required\n\x20while\x20other\x20fields\x20such\x20as\x20`Docu\ - mentation.occurrences`\x20can\x20be\x20optionally\n\x20included\x20to\ - \x20support\x20hyperlinking\x20referenced\x20symbols\x20in\x20the\x20sig\ - nature.\n\n\r\n\x05\x04\x07\x02\x05\x06\x12\x04\xa3\x03\x02\n\n\r\n\x05\ - \x04\x07\x02\x05\x01\x12\x04\xa3\x03\x0b\"\n\r\n\x05\x04\x07\x02\x05\x03\ - \x12\x04\xa3\x03%&\n\xc9\x08\n\x04\x04\x07\x02\x06\x12\x04\xb5\x03\x02\ - \x1e\x1a\xba\x08\x20(optional)\x20The\x20enclosing\x20symbol\x20if\x20th\ - is\x20is\x20a\x20local\x20symbol.\x20\x20For\x20non-local\n\x20symbols,\ - \x20the\x20enclosing\x20symbol\x20should\x20be\x20parsed\x20from\x20the\ - \x20`symbol`\x20field\n\x20using\x20the\x20`Descriptor`\x20grammar.\n\n\ - \x20The\x20primary\x20use-case\x20for\x20this\x20field\x20is\x20to\x20al\ - low\x20local\x20symbol\x20to\x20be\x20displayed\n\x20in\x20a\x20symbol\ - \x20hierarchy\x20for\x20API\x20documentation.\x20It's\x20OK\x20to\x20lea\ - ve\x20this\x20field\n\x20empty\x20for\x20local\x20variables\x20since\x20\ - local\x20variables\x20usually\x20don't\x20belong\x20in\x20API\n\x20docum\ - entation.\x20However,\x20in\x20the\x20situation\x20that\x20you\x20wish\ - \x20to\x20include\x20a\x20local\n\x20symbol\x20in\x20the\x20hierarchy,\ - \x20then\x20you\x20can\x20use\x20`enclosing_symbol`\x20to\x20locate\x20t\ - he\n\x20\"parent\"\x20or\x20\"owner\"\x20of\x20this\x20local\x20symbol.\ - \x20For\x20example,\x20a\x20Java\x20indexer\x20may\n\x20choose\x20to\x20\ - use\x20local\x20symbols\x20for\x20private\x20class\x20fields\x20while\ - \x20providing\x20an\n\x20`enclosing_symbol`\x20to\x20reference\x20the\ - \x20enclosing\x20class\x20to\x20allow\x20the\x20field\x20to\n\x20be\x20p\ - art\x20of\x20the\x20class\x20documentation\x20hierarchy.\x20From\x20the\ - \x20perspective\x20of\x20an\n\x20author\x20of\x20an\x20indexer,\x20the\ - \x20decision\x20to\x20use\x20a\x20local\x20symbol\x20or\x20global\x20sym\ - bol\n\x20should\x20exclusively\x20be\x20determined\x20whether\x20the\x20\ - local\x20symbol\x20is\x20accessible\n\x20outside\x20the\x20document,\x20\ - not\x20by\x20the\x20capability\x20to\x20find\x20the\x20enclosing\n\x20sy\ - mbol.\n\n\r\n\x05\x04\x07\x02\x06\x05\x12\x04\xb5\x03\x02\x08\n\r\n\x05\ - \x04\x07\x02\x06\x01\x12\x04\xb5\x03\t\x19\n\r\n\x05\x04\x07\x02\x06\x03\ - \x12\x04\xb5\x03\x1c\x1d\n\x0c\n\x02\x04\x08\x12\x06\xb9\x03\0\xf1\x03\ - \x01\n\x0b\n\x03\x04\x08\x01\x12\x04\xb9\x03\x08\x14\n\x0c\n\x04\x04\x08\ - \x02\0\x12\x04\xba\x03\x02\x14\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xba\ - \x03\x02\x08\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xba\x03\t\x0f\n\r\n\x05\ - \x04\x08\x02\0\x03\x12\x04\xba\x03\x12\x13\n\xde\x08\n\x04\x04\x08\x02\ - \x01\x12\x04\xd3\x03\x02\x18\x1a\xcf\x08\x20When\x20resolving\x20\"Find\ - \x20references\",\x20this\x20field\x20documents\x20what\x20other\x20symb\ - ols\n\x20should\x20be\x20included\x20together\x20with\x20this\x20symbol.\ - \x20For\x20example,\x20consider\x20the\n\x20following\x20TypeScript\x20c\ - ode\x20that\x20defines\x20two\x20symbols\x20`Animal#sound()`\x20and\n\ - \x20`Dog#sound()`:\n\x20```ts\n\x20interface\x20Animal\x20{\n\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^\x20definition\x20Animal#\n\ - \x20\x20\x20sound():\x20string\n\x20\x20\x20^^^^^\x20definition\x20Anima\ - l#sound()\n\x20}\n\x20class\x20Dog\x20implements\x20Animal\x20{\n\x20\ - \x20\x20\x20\x20\x20\x20^^^\x20definition\x20Dog#,\x20relationships\x20=\ - \x20[{symbol:\x20\"Animal#\",\x20is_implementation:\x20true}]\n\x20\x20\ - \x20public\x20sound():\x20string\x20{\x20return\x20\"woof\"\x20}\n\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20definition\x20Dog#sound(),\ - \x20references_symbols\x20=\x20Animal#sound(),\x20relationships\x20=\x20\ - [{symbol:\x20\"Animal#sound()\",\x20is_implementation:true,\x20is_refere\ - nce:\x20true}]\n\x20}\n\x20const\x20animal:\x20Animal\x20=\x20new\x20Dog\ - ()\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^\ - \x20reference\x20Animal#\n\x20console.log(animal.sound())\n\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^\ - ^\x20reference\x20Animal#sound()\n\x20```\n\x20Doing\x20\"Find\x20refere\ - nces\"\x20on\x20the\x20symbol\x20`Animal#sound()`\x20should\x20return\n\ - \x20references\x20to\x20the\x20`Dog#sound()`\x20method\x20as\x20well.\ - \x20Vice-versa,\x20doing\x20\"Find\n\x20references\"\x20on\x20the\x20`Do\ - g#sound()`\x20method\x20should\x20include\x20references\x20to\x20the\n\ - \x20`Animal#sound()`\x20method\x20as\x20well.\n\n\r\n\x05\x04\x08\x02\ - \x01\x05\x12\x04\xd3\x03\x02\x06\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\ - \xd3\x03\x07\x13\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xd3\x03\x16\x17\n\ - \xee\x03\n\x04\x04\x08\x02\x02\x12\x04\xdc\x03\x02\x1d\x1a\xdf\x03\x20Si\ - milar\x20to\x20`is_reference`\x20but\x20for\x20\"Find\x20implementations\ - \".\n\x20It's\x20common\x20for\x20`is_implementation`\x20and\x20`is_refe\ - rence`\x20to\x20both\x20be\x20true\x20but\n\x20it's\x20not\x20always\x20\ - the\x20case.\n\x20In\x20the\x20TypeScript\x20example\x20above,\x20observ\ - e\x20that\x20`Dog#`\x20has\x20an\n\x20`is_implementation`\x20relationshi\ - p\x20with\x20`\"Animal#\"`\x20but\x20not\x20`is_reference`.\n\x20This\ - \x20is\x20because\x20\"Find\x20references\"\x20on\x20the\x20\"Animal#\"\ - \x20symbol\x20should\x20not\x20return\n\x20\"Dog#\".\x20We\x20only\x20wa\ - nt\x20\"Dog#\"\x20to\x20return\x20as\x20a\x20result\x20for\x20\"Find\n\ - \x20implementations\"\x20on\x20the\x20\"Animal#\"\x20symbol.\n\n\r\n\x05\ - \x04\x08\x02\x02\x05\x12\x04\xdc\x03\x02\x06\n\r\n\x05\x04\x08\x02\x02\ - \x01\x12\x04\xdc\x03\x07\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xdc\ - \x03\x1b\x1c\nP\n\x04\x04\x08\x02\x03\x12\x04\xde\x03\x02\x1e\x1aB\x20Si\ - milar\x20to\x20`references_symbols`\x20but\x20for\x20\"Go\x20to\x20type\ - \x20definition\".\n\n\r\n\x05\x04\x08\x02\x03\x05\x12\x04\xde\x03\x02\ - \x06\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xde\x03\x07\x19\n\r\n\x05\x04\ - \x08\x02\x03\x03\x12\x04\xde\x03\x1c\x1d\n\xa7\x07\n\x04\x04\x08\x02\x04\ - \x12\x04\xef\x03\x02\x19\x1a\xd5\x06\x20Allows\x20overriding\x20the\x20b\ + cessed\x20from\x20outside\x20the\x20Document\x20via\x20code\x20navigatio\ + n.\n\n\x20Example\x201:\x20If\x20the\x20indexer\x20supports\x20emitting\ + \x20'is_implementation'\x20relationships,\n\x20then\x20a\x20subclass\x20\ + of\x20a\x20global\x20class,\x20even\x20if\x20declared\x20within\x20a\x20\ + function,\n\x20must\x20have\x20a\x20global\x20symbol.\n\n\n\x0b\n\x03\ + \x04\x04\x01\x12\x04\x92\x02\x08\x0e\n\x0c\n\x04\x04\x04\x02\0\x12\x04\ + \x93\x02\x02\x14\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\x93\x02\x02\x08\n\r\ + \n\x05\x04\x04\x02\0\x01\x12\x04\x93\x02\t\x0f\n\r\n\x05\x04\x04\x02\0\ + \x03\x12\x04\x93\x02\x12\x13\n\x0c\n\x04\x04\x04\x02\x01\x12\x04\x94\x02\ + \x02\x16\n\r\n\x05\x04\x04\x02\x01\x06\x12\x04\x94\x02\x02\t\n\r\n\x05\ + \x04\x04\x02\x01\x01\x12\x04\x94\x02\n\x11\n\r\n\x05\x04\x04\x02\x01\x03\ + \x12\x04\x94\x02\x14\x15\n\x0c\n\x04\x04\x04\x02\x02\x12\x04\x95\x02\x02\ + &\n\r\n\x05\x04\x04\x02\x02\x04\x12\x04\x95\x02\x02\n\n\r\n\x05\x04\x04\ + \x02\x02\x06\x12\x04\x95\x02\x0b\x15\n\r\n\x05\x04\x04\x02\x02\x01\x12\ + \x04\x95\x02\x16!\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\x95\x02$%\nq\n\ + \x02\x04\x05\x12\x06\x9b\x02\0\x9f\x02\x01\x1ac\x20Unit\x20of\x20packagi\ + ng\x20and\x20distribution.\n\n\x20NOTE:\x20This\x20corresponds\x20to\x20\ + a\x20module\x20in\x20Go\x20and\x20JVM\x20languages.\n\n\x0b\n\x03\x04\ + \x05\x01\x12\x04\x9b\x02\x08\x0f\n\x0c\n\x04\x04\x05\x02\0\x12\x04\x9c\ + \x02\x02\x15\n\r\n\x05\x04\x05\x02\0\x05\x12\x04\x9c\x02\x02\x08\n\r\n\ + \x05\x04\x05\x02\0\x01\x12\x04\x9c\x02\t\x10\n\r\n\x05\x04\x05\x02\0\x03\ + \x12\x04\x9c\x02\x13\x14\n\x0c\n\x04\x04\x05\x02\x01\x12\x04\x9d\x02\x02\ + \x12\n\r\n\x05\x04\x05\x02\x01\x05\x12\x04\x9d\x02\x02\x08\n\r\n\x05\x04\ + \x05\x02\x01\x01\x12\x04\x9d\x02\t\r\n\r\n\x05\x04\x05\x02\x01\x03\x12\ + \x04\x9d\x02\x10\x11\n\x0c\n\x04\x04\x05\x02\x02\x12\x04\x9e\x02\x02\x15\ + \n\r\n\x05\x04\x05\x02\x02\x05\x12\x04\x9e\x02\x02\x08\n\r\n\x05\x04\x05\ + \x02\x02\x01\x12\x04\x9e\x02\t\x10\n\r\n\x05\x04\x05\x02\x02\x03\x12\x04\ + \x9e\x02\x13\x14\n\x0c\n\x02\x04\x06\x12\x06\xa1\x02\0\xb8\x02\x01\n\x0b\ + \n\x03\x04\x06\x01\x12\x04\xa1\x02\x08\x12\n\x0e\n\x04\x04\x06\x04\0\x12\ + \x06\xa2\x02\x02\xb4\x02\x03\n\r\n\x05\x04\x06\x04\0\x01\x12\x04\xa2\x02\ + \x07\r\n\r\n\x05\x04\x06\x04\0\x03\x12\x04\xa3\x02\x04\x1e\n\x0e\n\x06\ + \x04\x06\x04\0\x03\x02\x12\x04\xa3\x02\x04\x1e\n\x0e\n\x06\x04\x06\x04\0\ + \x02\0\x12\x04\xa4\x02\x04\x1a\n\x0f\n\x07\x04\x06\x04\0\x02\0\x01\x12\ + \x04\xa4\x02\x04\x15\n\x0f\n\x07\x04\x06\x04\0\x02\0\x02\x12\x04\xa4\x02\ + \x18\x19\n}\n\x06\x04\x06\x04\0\x02\x01\x12\x04\xa8\x02\x04\x12\x1am\x20\ + Unit\x20of\x20code\x20abstraction\x20and/or\x20namespacing.\n\n\x20NOTE:\ + \x20This\x20corresponds\x20to\x20a\x20package\x20in\x20Go\x20and\x20JVM\ + \x20languages.\n\n\x0f\n\x07\x04\x06\x04\0\x02\x01\x01\x12\x04\xa8\x02\ + \x04\r\n\x0f\n\x07\x04\x06\x04\0\x02\x01\x02\x12\x04\xa8\x02\x10\x11\n(\ + \n\x06\x04\x06\x04\0\x02\x02\x12\x04\xaa\x02\x04\"\x1a\x18\x20Use\x20Nam\ + espace\x20instead.\n\n\x0f\n\x07\x04\x06\x04\0\x02\x02\x01\x12\x04\xaa\ + \x02\x04\x0b\n\x0f\n\x07\x04\x06\x04\0\x02\x02\x02\x12\x04\xaa\x02\x0e\ + \x0f\n\x0f\n\x07\x04\x06\x04\0\x02\x02\x03\x12\x04\xaa\x02\x10!\n\x10\n\ + \x08\x04\x06\x04\0\x02\x02\x03\x01\x12\x04\xaa\x02\x11\x20\n\x0e\n\x06\ + \x04\x06\x04\0\x02\x03\x12\x04\xab\x02\x04\r\n\x0f\n\x07\x04\x06\x04\0\ + \x02\x03\x01\x12\x04\xab\x02\x04\x08\n\x0f\n\x07\x04\x06\x04\0\x02\x03\ + \x02\x12\x04\xab\x02\x0b\x0c\n\x0e\n\x06\x04\x06\x04\0\x02\x04\x12\x04\ + \xac\x02\x04\r\n\x0f\n\x07\x04\x06\x04\0\x02\x04\x01\x12\x04\xac\x02\x04\ + \x08\n\x0f\n\x07\x04\x06\x04\0\x02\x04\x02\x12\x04\xac\x02\x0b\x0c\n\x0e\ + \n\x06\x04\x06\x04\0\x02\x05\x12\x04\xad\x02\x04\x0f\n\x0f\n\x07\x04\x06\ + \x04\0\x02\x05\x01\x12\x04\xad\x02\x04\n\n\x0f\n\x07\x04\x06\x04\0\x02\ + \x05\x02\x12\x04\xad\x02\r\x0e\n\x0e\n\x06\x04\x06\x04\0\x02\x06\x12\x04\ + \xae\x02\x04\x16\n\x0f\n\x07\x04\x06\x04\0\x02\x06\x01\x12\x04\xae\x02\ + \x04\x11\n\x0f\n\x07\x04\x06\x04\0\x02\x06\x02\x12\x04\xae\x02\x14\x15\n\ + \x0e\n\x06\x04\x06\x04\0\x02\x07\x12\x04\xaf\x02\x04\x12\n\x0f\n\x07\x04\ + \x06\x04\0\x02\x07\x01\x12\x04\xaf\x02\x04\r\n\x0f\n\x07\x04\x06\x04\0\ + \x02\x07\x02\x12\x04\xaf\x02\x10\x11\n.\n\x06\x04\x06\x04\0\x02\x08\x12\ + \x04\xb1\x02\x04\r\x1a\x1e\x20Can\x20be\x20used\x20for\x20any\x20purpose\ + .\n\n\x0f\n\x07\x04\x06\x04\0\x02\x08\x01\x12\x04\xb1\x02\x04\x08\n\x0f\ + \n\x07\x04\x06\x04\0\x02\x08\x02\x12\x04\xb1\x02\x0b\x0c\n\x0e\n\x06\x04\ + \x06\x04\0\x02\t\x12\x04\xb2\x02\x04\x0e\n\x0f\n\x07\x04\x06\x04\0\x02\t\ + \x01\x12\x04\xb2\x02\x04\t\n\x0f\n\x07\x04\x06\x04\0\x02\t\x02\x12\x04\ + \xb2\x02\x0c\r\n\x0e\n\x06\x04\x06\x04\0\x02\n\x12\x04\xb3\x02\x04\x0e\n\ + \x0f\n\x07\x04\x06\x04\0\x02\n\x01\x12\x04\xb3\x02\x04\t\n\x0f\n\x07\x04\ + \x06\x04\0\x02\n\x02\x12\x04\xb3\x02\x0c\r\n\x0c\n\x04\x04\x06\x02\0\x12\ + \x04\xb5\x02\x02\x12\n\r\n\x05\x04\x06\x02\0\x05\x12\x04\xb5\x02\x02\x08\ + \n\r\n\x05\x04\x06\x02\0\x01\x12\x04\xb5\x02\t\r\n\r\n\x05\x04\x06\x02\0\ + \x03\x12\x04\xb5\x02\x10\x11\n\x0c\n\x04\x04\x06\x02\x01\x12\x04\xb6\x02\ + \x02\x1b\n\r\n\x05\x04\x06\x02\x01\x05\x12\x04\xb6\x02\x02\x08\n\r\n\x05\ + \x04\x06\x02\x01\x01\x12\x04\xb6\x02\t\x16\n\r\n\x05\x04\x06\x02\x01\x03\ + \x12\x04\xb6\x02\x19\x1a\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xb7\x02\x02\ + \x14\n\r\n\x05\x04\x06\x02\x02\x06\x12\x04\xb7\x02\x02\x08\n\r\n\x05\x04\ + \x06\x02\x02\x01\x12\x04\xb7\x02\t\x0f\n\r\n\x05\x04\x06\x02\x02\x03\x12\ + \x04\xb7\x02\x12\x13\n\x83\x01\n\x02\x04\x07\x12\x06\xbc\x02\0\x92\x04\ + \x01\x1au\x20SymbolInformation\x20defines\x20metadata\x20about\x20a\x20s\ + ymbol,\x20such\x20as\x20the\x20symbol's\n\x20docstring\x20or\x20what\x20\ + package\x20it's\x20defined\x20it.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xbc\ + \x02\x08\x19\n\xa0\x01\n\x04\x04\x07\x02\0\x12\x04\xbf\x02\x02\x14\x1a\ + \x91\x01\x20Identifier\x20of\x20this\x20symbol,\x20which\x20can\x20be\ + \x20referenced\x20from\x20`Occurence.symbol`.\n\x20The\x20string\x20must\ + \x20be\x20formatted\x20according\x20to\x20the\x20grammar\x20in\x20`Symbo\ + l`.\n\n\r\n\x05\x04\x07\x02\0\x05\x12\x04\xbf\x02\x02\x08\n\r\n\x05\x04\ + \x07\x02\0\x01\x12\x04\xbf\x02\t\x0f\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\ + \xbf\x02\x12\x13\n\xb4\x03\n\x04\x04\x07\x02\x01\x12\x04\xc6\x02\x02$\ + \x1a\xa5\x03\x20(optional,\x20but\x20strongly\x20recommended)\x20The\x20\ + markdown-formatted\x20documentation\n\x20for\x20this\x20symbol.\x20Use\ + \x20`SymbolInformation.signature_documentation`\x20to\n\x20document\x20t\ + he\x20method/class/type\x20signature\x20of\x20this\x20symbol.\n\x20Due\ + \x20to\x20historical\x20reasons,\x20indexers\x20may\x20include\x20signat\ + ure\x20documentation\x20in\n\x20this\x20field\x20by\x20rendering\x20mark\ + down\x20code\x20blocks.\x20New\x20indexers\x20should\x20only\n\x20includ\ + e\x20non-code\x20documentation\x20in\x20this\x20field,\x20for\x20example\ + \x20docstrings.\n\n\r\n\x05\x04\x07\x02\x01\x04\x12\x04\xc6\x02\x02\n\n\ + \r\n\x05\x04\x07\x02\x01\x05\x12\x04\xc6\x02\x0b\x11\n\r\n\x05\x04\x07\ + \x02\x01\x01\x12\x04\xc6\x02\x12\x1f\n\r\n\x05\x04\x07\x02\x01\x03\x12\ + \x04\xc6\x02\"#\n\x83\x03\n\x04\x04\x07\x02\x02\x12\x04\xce\x02\x02*\x1a\ + \xf4\x02\x20(optional)\x20Relationships\x20to\x20other\x20symbols\x20(e.\ + g.,\x20implements,\x20type\x20definition).\n\n\x20Relationships\x20follo\ + w\x20one\x20direction.\x20To\x20represent\x20the\x20other\x20direction:\ + \n\x20-\x20If\x20the\x20source\x20symbol\x20is\x20defined\x20in\x20the\ + \x20same\x20Index,\x20attach\x20the\x20relationship\x20to\n\x20\x20\x20i\ + ts\x20SymbolInformation.\n\x20-\x20If\x20the\x20source\x20symbol\x20is\ + \x20defined\x20in\x20a\x20different\x20Index,\x20use\x20Document.externa\ + l_symbols's\n\x20\x20\x20relationships\x20field.\n\n\r\n\x05\x04\x07\x02\ + \x02\x04\x12\x04\xce\x02\x02\n\n\r\n\x05\x04\x07\x02\x02\x06\x12\x04\xce\ + \x02\x0b\x17\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\xce\x02\x18%\n\r\n\ + \x05\x04\x07\x02\x02\x03\x12\x04\xce\x02()\n\xa4\x01\n\x04\x04\x07\x02\ + \x03\x12\x04\xd2\x02\x02\x10\x1a\x95\x01\x20The\x20kind\x20of\x20this\ + \x20symbol.\x20Use\x20this\x20field\x20instead\x20of\n\x20`SymbolDescrip\ + tor.Suffix`\x20to\x20determine\x20whether\x20something\x20is,\x20for\x20\ + example,\x20a\n\x20class\x20or\x20a\x20method.\n\n\r\n\x05\x04\x07\x02\ + \x03\x06\x12\x04\xd2\x02\x02\x06\n\r\n\x05\x04\x07\x02\x03\x01\x12\x04\ + \xd2\x02\x07\x0b\n\r\n\x05\x04\x07\x02\x03\x03\x12\x04\xd2\x02\x0e\x0f\n\ + \xf5\x05\n\x04\x04\x07\x04\0\x12\x06\xe1\x02\x02\xee\x03\x03\x1a\xe4\x05\ + \x20(optional)\x20Kind\x20represents\x20the\x20fine-grained\x20category\ + \x20of\x20a\x20symbol,\x20suitable\x20for\x20presenting\n\x20information\ + \x20about\x20the\x20symbol's\x20meaning\x20in\x20the\x20language.\n\n\ + \x20For\x20example:\n\x20-\x20A\x20Java\x20method\x20would\x20have\x20th\ + e\x20kind\x20`Method`\x20while\x20a\x20Go\x20function\x20would\n\x20\x20\ + \x20have\x20the\x20kind\x20`Function`,\x20even\x20if\x20the\x20symbols\ + \x20for\x20these\x20use\x20the\x20same\n\x20\x20\x20syntax\x20for\x20the\ + \x20descriptor\x20`SymbolDescriptor.Suffix.Method`.\n\x20-\x20A\x20Go\ + \x20struct\x20has\x20the\x20symbol\x20kind\x20`Struct`\x20while\x20a\x20\ + Java\x20class\x20has\n\x20\x20\x20the\x20symbol\x20kind\x20`Class`\x20ev\ + en\x20if\x20they\x20both\x20have\x20the\x20same\x20descriptor:\n\x20\x20\ + \x20`SymbolDescriptor.Suffix.Type`.\n\n\x20Since\x20Kind\x20is\x20more\ + \x20fine-grained\x20than\x20Suffix:\n\x20-\x20If\x20two\x20symbols\x20ha\ + ve\x20the\x20same\x20Kind,\x20they\x20should\x20share\x20the\x20same\x20\ + Suffix.\n\x20-\x20If\x20two\x20symbols\x20have\x20different\x20Suffixes,\ + \x20they\x20should\x20have\x20different\x20Kinds.\n\n\r\n\x05\x04\x07\ + \x04\0\x01\x12\x04\xe1\x02\x07\x0b\n\x0e\n\x06\x04\x07\x04\0\x02\0\x12\ + \x04\xe2\x02\x06\x1a\n\x0f\n\x07\x04\x07\x04\0\x02\0\x01\x12\x04\xe2\x02\ + \x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\0\x02\x12\x04\xe2\x02\x18\x19\nR\ + \n\x06\x04\x07\x04\0\x02\x01\x12\x04\xe4\x02\x06\x1a\x1aB\x20A\x20method\ + \x20which\x20may\x20or\x20may\x20not\x20have\x20a\x20body.\x20For\x20Jav\ + a,\x20Kotlin\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02\x01\x01\x12\x04\xe4\ + \x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x01\x02\x12\x04\xe4\x02\x17\ + \x19\n*\n\x06\x04\x07\x04\0\x02\x02\x12\x04\xe6\x02\x06\x14\x1a\x1a\x20F\ + or\x20Ruby's\x20attr_accessor\n\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x01\ + \x12\x04\xe6\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x02\x12\x04\ + \xe6\x02\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02\x03\x12\x04\xe7\x02\x06\ + \x10\n\x0f\n\x07\x04\x07\x04\0\x02\x03\x01\x12\x04\xe7\x02\x06\x0b\n\x0f\ + \n\x07\x04\x07\x04\0\x02\x03\x02\x12\x04\xe7\x02\x0e\x0f\n\x1b\n\x06\x04\ + \x07\x04\0\x02\x04\x12\x04\xe9\x02\x06\x14\x1a\x0b\x20For\x20Alloy\n\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x04\x01\x12\x04\xe9\x02\x06\x0f\n\x0f\n\x07\ + \x04\x07\x04\0\x02\x04\x02\x12\x04\xe9\x02\x12\x13\n\x0e\n\x06\x04\x07\ + \x04\0\x02\x05\x12\x04\xea\x02\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02\x05\ + \x01\x12\x04\xea\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x05\x02\x12\ + \x04\xea\x02\x17\x18\n\x19\n\x06\x04\x07\x04\0\x02\x06\x12\x04\xec\x02\ + \x06\x14\x1a\t\x20For\x20C++\n\n\x0f\n\x07\x04\x07\x04\0\x02\x06\x01\x12\ + \x04\xec\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x06\x02\x12\x04\xec\ + \x02\x12\x13\n\x1a\n\x06\x04\x07\x04\0\x02\x07\x12\x04\xee\x02\x06\x10\ + \x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02\x07\x01\x12\x04\ + \xee\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x07\x02\x12\x04\xee\x02\ + \x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x08\x12\x04\xef\x02\x06\x12\n\x0f\ + \n\x07\x04\x07\x04\0\x02\x08\x01\x12\x04\xef\x02\x06\r\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x08\x02\x12\x04\xef\x02\x10\x11\n\x0e\n\x06\x04\x07\x04\0\ + \x02\t\x12\x04\xf0\x02\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\t\x01\x12\ + \x04\xf0\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\t\x02\x12\x04\xf0\x02\ + \x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\n\x12\x04\xf1\x02\x06\x13\n\x0f\n\ + \x07\x04\x07\x04\0\x02\n\x01\x12\x04\xf1\x02\x06\x0e\n\x0f\n\x07\x04\x07\ + \x04\0\x02\n\x02\x12\x04\xf1\x02\x11\x12\n\x0e\n\x06\x04\x07\x04\0\x02\ + \x0b\x12\x04\xf2\x02\x06\x16\n\x0f\n\x07\x04\x07\x04\0\x02\x0b\x01\x12\ + \x04\xf2\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x0b\x02\x12\x04\xf2\ + \x02\x14\x15\n\x1e\n\x06\x04\x07\x04\0\x02\x0c\x12\x04\xf4\x02\x06\x14\ + \x1a\x0e\x20For\x20Solidity\n\n\x0f\n\x07\x04\x07\x04\0\x02\x0c\x01\x12\ + \x04\xf4\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x0c\x02\x12\x04\xf4\ + \x02\x11\x13\n\x1d\n\x06\x04\x07\x04\0\x02\r\x12\x04\xf6\x02\x06\x16\x1a\ + \r\x20For\x20Haskell\n\n\x0f\n\x07\x04\x07\x04\0\x02\r\x01\x12\x04\xf6\ + \x02\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\r\x02\x12\x04\xf6\x02\x13\x15\ + \n\x1f\n\x06\x04\x07\x04\0\x02\x0e\x12\x04\xf8\x02\x06\x14\x1a\x0f\x20Fo\ + r\x20C#\x20and\x20F#\n\n\x0f\n\x07\x04\x07\x04\0\x02\x0e\x01\x12\x04\xf8\ + \x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x0e\x02\x12\x04\xf8\x02\x11\ + \x13\n\x0e\n\x06\x04\x07\x04\0\x02\x0f\x12\x04\xf9\x02\x06\x10\n\x0f\n\ + \x07\x04\x07\x04\0\x02\x0f\x01\x12\x04\xf9\x02\x06\n\n\x0f\n\x07\x04\x07\ + \x04\0\x02\x0f\x02\x12\x04\xf9\x02\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\ + \x10\x12\x04\xfa\x02\x06\x16\n\x0f\n\x07\x04\x07\x04\0\x02\x10\x01\x12\ + \x04\xfa\x02\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x10\x02\x12\x04\xfa\ + \x02\x13\x15\n\x0e\n\x06\x04\x07\x04\0\x02\x11\x12\x04\xfb\x02\x06\x11\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x11\x01\x12\x04\xfb\x02\x06\x0b\n\x0f\n\x07\ + \x04\x07\x04\0\x02\x11\x02\x12\x04\xfb\x02\x0e\x10\n\x0e\n\x06\x04\x07\ + \x04\0\x02\x12\x12\x04\xfc\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x12\ + \x01\x12\x04\xfc\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x12\x02\x12\ + \x04\xfc\x02\x0e\x10\n\x1a\n\x06\x04\x07\x04\0\x02\x13\x12\x04\xfe\x02\ + \x06\x15\x1a\n\x20For\x20Dart\n\n\x0f\n\x07\x04\x07\x04\0\x02\x13\x01\ + \x12\x04\xfe\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x13\x02\x12\x04\ + \xfe\x02\x12\x14\n\x1b\n\x06\x04\x07\x04\0\x02\x14\x12\x04\x80\x03\x06\ + \x10\x1a\x0b\x20For\x20Alloy\n\n\x0f\n\x07\x04\x07\x04\0\x02\x14\x01\x12\ + \x04\x80\x03\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\x14\x02\x12\x04\x80\x03\ + \r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x15\x12\x04\x81\x03\x06\x11\n\x0f\n\ + \x07\x04\x07\x04\0\x02\x15\x01\x12\x04\x81\x03\x06\x0b\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x15\x02\x12\x04\x81\x03\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\ + \x02\x16\x12\x04\x82\x03\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x16\x01\ + \x12\x04\x82\x03\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\x16\x02\x12\x04\x82\ + \x03\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x17\x12\x04\x83\x03\x06\x14\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x17\x01\x12\x04\x83\x03\x06\x0e\n\x0f\n\x07\ + \x04\x07\x04\0\x02\x17\x02\x12\x04\x83\x03\x11\x13\n;\n\x06\x04\x07\x04\ + \0\x02\x18\x12\x04\x85\x03\x06\x12\x1a+\x20For\x20'get'\x20in\x20Swift,\ + \x20'attr_reader'\x20in\x20Ruby\n\n\x0f\n\x07\x04\x07\x04\0\x02\x18\x01\ + \x12\x04\x85\x03\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x18\x02\x12\x04\ + \x85\x03\x0f\x11\n\x1a\n\x06\x04\x07\x04\0\x02\x19\x12\x04\x87\x03\x06\ + \x13\x1a\n\x20For\x20Raku\n\n\x0f\n\x07\x04\x07\x04\0\x02\x19\x01\x12\ + \x04\x87\x03\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02\x19\x02\x12\x04\x87\x03\ + \x10\x12\n)\n\x06\x04\x07\x04\0\x02\x1a\x12\x04\x89\x03\x06\x14\x1a\x19\ + \x20For\x20Purescript\x20and\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02\x1a\ + \x01\x12\x04\x89\x03\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x1a\x02\x12\ + \x04\x89\x03\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02\x1b\x12\x04\x8a\x03\ + \x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\x1b\x01\x12\x04\x8a\x03\x06\x0f\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x1b\x02\x12\x04\x8a\x03\x12\x14\n\x0e\n\x06\ + \x04\x07\x04\0\x02\x1c\x12\x04\x8b\x03\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x1c\x01\x12\x04\x8b\x03\x06\t\n\x0f\n\x07\x04\x07\x04\0\x02\x1c\x02\ + \x12\x04\x8b\x03\x0c\x0e\n\x1c\n\x06\x04\x07\x04\0\x02\x1d\x12\x04\x8d\ + \x03\x06\x10\x1a\x0c\x20For\x20Racket\n\n\x0f\n\x07\x04\x07\x04\0\x02\ + \x1d\x01\x12\x04\x8d\x03\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\x1d\x02\x12\ + \x04\x8d\x03\r\x0f\n\x1a\n\x06\x04\x07\x04\0\x02\x1e\x12\x04\x8f\x03\x06\ + \x11\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02\x1e\x01\x12\ + \x04\x8f\x03\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x1e\x02\x12\x04\x8f\ + \x03\x0e\x10\n\x1e\n\x06\x04\x07\x04\0\x02\x1f\x12\x04\x91\x03\x06\x13\ + \x1a\x0e\x20For\x20solidity\n\n\x0f\n\x07\x04\x07\x04\0\x02\x1f\x01\x12\ + \x04\x91\x03\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02\x1f\x02\x12\x04\x91\x03\ + \x10\x12\n\x0e\n\x06\x04\x07\x04\0\x02\x20\x12\x04\x92\x03\x06\x11\n\x0f\ + \n\x07\x04\x07\x04\0\x02\x20\x01\x12\x04\x92\x03\x06\x0b\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x20\x02\x12\x04\x92\x03\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\ + \x02!\x12\x04\x93\x03\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02!\x01\x12\x04\ + \x93\x03\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02!\x02\x12\x04\x93\x03\x0f\ + \x11\n\x1a\n\x06\x04\x07\x04\0\x02\"\x12\x04\x95\x03\x06\x17\x1a\n\x20Fo\ + r\x20Ruby\n\n\x0f\n\x07\x04\x07\x04\0\x02\"\x01\x12\x04\x95\x03\x06\x11\ + \n\x0f\n\x07\x04\x07\x04\0\x02\"\x02\x12\x04\x95\x03\x14\x16\n\x94\x01\n\ + \x06\x04\x07\x04\0\x02#\x12\x04\x98\x03\x06\x1a\x1a\x83\x01\x20Analogous\ + \x20to\x20'ThisParameter'\x20and\x20'SelfParameter',\x20but\x20for\x20la\ + nguages\n\x20like\x20Go\x20where\x20the\x20receiver\x20doesn't\x20have\ + \x20a\x20conventional\x20name.\n\n\x0f\n\x07\x04\x07\x04\0\x02#\x01\x12\ + \x04\x98\x03\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02#\x02\x12\x04\x98\x03\ + \x17\x19\n8\n\x06\x04\x07\x04\0\x02$\x12\x04\x9a\x03\x06\x1f\x1a(\x20Ana\ + logous\x20to\x20'AbstractMethod',\x20for\x20Go.\n\n\x0f\n\x07\x04\x07\ + \x04\0\x02$\x01\x12\x04\x9a\x03\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02$\ + \x02\x12\x04\x9a\x03\x1c\x1e\n\x1e\n\x06\x04\x07\x04\0\x02%\x12\x04\x9c\ + \x03\x06\x13\x1a\x0e\x20For\x20Protobuf\n\n\x0f\n\x07\x04\x07\x04\0\x02%\ + \x01\x12\x04\x9c\x03\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02%\x02\x12\x04\ + \x9c\x03\x10\x12\n\x1a\n\x06\x04\x07\x04\0\x02&\x12\x04\x9e\x03\x06\x11\ + \x1a\n\x20For\x20Dart\n\n\x0f\n\x07\x04\x07\x04\0\x02&\x01\x12\x04\x9e\ + \x03\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02&\x02\x12\x04\x9e\x03\x0e\x10\ + \n\x1e\n\x06\x04\x07\x04\0\x02'\x12\x04\xa0\x03\x06\x14\x1a\x0e\x20For\ + \x20Solidity\n\n\x0f\n\x07\x04\x07\x04\0\x02'\x01\x12\x04\xa0\x03\x06\ + \x0e\n\x0f\n\x07\x04\x07\x04\0\x02'\x02\x12\x04\xa0\x03\x11\x13\n\x0e\n\ + \x06\x04\x07\x04\0\x02(\x12\x04\xa1\x03\x06\x12\n\x0f\n\x07\x04\x07\x04\ + \0\x02(\x01\x12\x04\xa1\x03\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02(\x02\ + \x12\x04\xa1\x03\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02)\x12\x04\xa2\x03\ + \x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02)\x01\x12\x04\xa2\x03\x06\x0f\n\ + \x0f\n\x07\x04\x07\x04\0\x02)\x02\x12\x04\xa2\x03\x12\x14\n\x0e\n\x06\ + \x04\x07\x04\0\x02*\x12\x04\xa3\x03\x06\x10\n\x0f\n\x07\x04\x07\x04\0\ + \x02*\x01\x12\x04\xa3\x03\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02*\x02\x12\ + \x04\xa3\x03\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02+\x12\x04\xa4\x03\x06\ + \x12\n\x0f\n\x07\x04\x07\x04\0\x02+\x01\x12\x04\xa4\x03\x06\x0c\n\x0f\n\ + \x07\x04\x07\x04\0\x02+\x02\x12\x04\xa4\x03\x0f\x11\n\x0e\n\x06\x04\x07\ + \x04\0\x02,\x12\x04\xa5\x03\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02,\x01\ + \x12\x04\xa5\x03\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02,\x02\x12\x04\xa5\ + \x03\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02-\x12\x04\xa6\x03\x06\x14\n\ + \x0f\n\x07\x04\x07\x04\0\x02-\x01\x12\x04\xa6\x03\x06\x0e\n\x0f\n\x07\ + \x04\x07\x04\0\x02-\x02\x12\x04\xa6\x03\x11\x13\n\x0e\n\x06\x04\x07\x04\ + \0\x02.\x12\x04\xa7\x03\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02.\x01\x12\ + \x04\xa7\x03\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02.\x02\x12\x04\xa7\x03\ + \x10\x12\n\x0e\n\x06\x04\x07\x04\0\x02/\x12\x04\xa8\x03\x06\x19\n\x0f\n\ + \x07\x04\x07\x04\0\x02/\x01\x12\x04\xa8\x03\x06\x13\n\x0f\n\x07\x04\x07\ + \x04\0\x02/\x02\x12\x04\xa8\x03\x16\x18\n\x0e\n\x06\x04\x07\x04\0\x020\ + \x12\x04\xa9\x03\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x020\x01\x12\x04\xa9\ + \x03\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x020\x02\x12\x04\xa9\x03\x12\x14\ + \n\x0e\n\x06\x04\x07\x04\0\x021\x12\x04\xaa\x03\x06\x1a\n\x0f\n\x07\x04\ + \x07\x04\0\x021\x01\x12\x04\xaa\x03\x06\x14\n\x0f\n\x07\x04\x07\x04\0\ + \x021\x02\x12\x04\xaa\x03\x17\x19\n/\n\x06\x04\x07\x04\0\x022\x12\x04\ + \xac\x03\x06\x13\x1a\x1f\x20For\x20Haskell's\x20PatternSynonyms\n\n\x0f\ + \n\x07\x04\x07\x04\0\x022\x01\x12\x04\xac\x03\x06\r\n\x0f\n\x07\x04\x07\ + \x04\0\x022\x02\x12\x04\xac\x03\x10\x12\n\x1b\n\x06\x04\x07\x04\0\x023\ + \x12\x04\xae\x03\x06\x15\x1a\x0b\x20For\x20Alloy\n\n\x0f\n\x07\x04\x07\ + \x04\0\x023\x01\x12\x04\xae\x03\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x023\ + \x02\x12\x04\xae\x03\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x024\x12\x04\xaf\ + \x03\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x024\x01\x12\x04\xaf\x03\x06\x0e\ + \n\x0f\n\x07\x04\x07\x04\0\x024\x02\x12\x04\xaf\x03\x11\x13\nQ\n\x06\x04\ + \x07\x04\0\x025\x12\x04\xb1\x03\x06\x14\x1aA\x20Analogous\x20to\x20'Trai\ + t'\x20and\x20'TypeClass',\x20for\x20Swift\x20and\x20Objective-C\n\n\x0f\ + \n\x07\x04\x07\x04\0\x025\x01\x12\x04\xb1\x03\x06\x0e\n\x0f\n\x07\x04\ + \x07\x04\0\x025\x02\x12\x04\xb1\x03\x11\x13\nK\n\x06\x04\x07\x04\0\x026\ + \x12\x04\xb3\x03\x06\x1a\x1a;\x20Analogous\x20to\x20'AbstractMethod',\ + \x20for\x20Swift\x20and\x20Objective-C.\n\n\x0f\n\x07\x04\x07\x04\0\x026\ + \x01\x12\x04\xb3\x03\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x026\x02\x12\x04\ + \xb3\x03\x17\x19\n9\n\x06\x04\x07\x04\0\x027\x12\x04\xb5\x03\x06\x1d\x1a\ + )\x20Analogous\x20to\x20'AbstractMethod',\x20for\x20C++.\n\n\x0f\n\x07\ + \x04\x07\x04\0\x027\x01\x12\x04\xb5\x03\x06\x17\n\x0f\n\x07\x04\x07\x04\ + \0\x027\x02\x12\x04\xb5\x03\x1a\x1c\n\x1d\n\x06\x04\x07\x04\0\x028\x12\ + \x04\xb7\x03\x06\x17\x1a\r\x20For\x20Haskell\n\n\x0f\n\x07\x04\x07\x04\0\ + \x028\x01\x12\x04\xb7\x03\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x028\x02\x12\ + \x04\xb7\x03\x14\x16\n4\n\x06\x04\x07\x04\0\x029\x12\x04\xb9\x03\x06\x19\ + \x1a$\x20'self'\x20in\x20Python,\x20Rust,\x20Swift\x20etc.\n\n\x0f\n\x07\ + \x04\x07\x04\0\x029\x01\x12\x04\xb9\x03\x06\x13\n\x0f\n\x07\x04\x07\x04\ + \0\x029\x02\x12\x04\xb9\x03\x16\x18\n;\n\x06\x04\x07\x04\0\x02:\x12\x04\ + \xbb\x03\x06\x12\x1a+\x20For\x20'set'\x20in\x20Swift,\x20'attr_writer'\ + \x20in\x20Ruby\n\n\x0f\n\x07\x04\x07\x04\0\x02:\x01\x12\x04\xbb\x03\x06\ + \x0c\n\x0f\n\x07\x04\x07\x04\0\x02:\x02\x12\x04\xbb\x03\x0f\x11\n3\n\x06\ + \x04\x07\x04\0\x02;\x12\x04\xbd\x03\x06\x15\x1a#\x20For\x20Alloy,\x20ana\ + logous\x20to\x20'Struct'.\n\n\x0f\n\x07\x04\x07\x04\0\x02;\x01\x12\x04\ + \xbd\x03\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02;\x02\x12\x04\xbd\x03\x12\ + \x14\n\x1a\n\x06\x04\x07\x04\0\x02<\x12\x04\xbf\x03\x06\x1a\x1a\n\x20For\ + \x20Ruby\n\n\x0f\n\x07\x04\x07\x04\0\x02<\x01\x12\x04\xbf\x03\x06\x14\n\ + \x0f\n\x07\x04\x07\x04\0\x02<\x02\x12\x04\xbf\x03\x17\x19\n8\n\x06\x04\ + \x07\x04\0\x02=\x12\x04\xc1\x03\x06\x1b\x1a(\x20Analogous\x20to\x20'Stat\ + icMethod',\x20for\x20Ruby.\n\n\x0f\n\x07\x04\x07\x04\0\x02=\x01\x12\x04\ + \xc1\x03\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02=\x02\x12\x04\xc1\x03\x18\ + \x1a\n5\n\x06\x04\x07\x04\0\x02>\x12\x04\xc3\x03\x06\x1c\x1a%\x20Analogo\ + us\x20to\x20'StaticField',\x20for\x20C++\n\n\x0f\n\x07\x04\x07\x04\0\x02\ + >\x01\x12\x04\xc3\x03\x06\x16\n\x0f\n\x07\x04\x07\x04\0\x02>\x02\x12\x04\ + \xc3\x03\x19\x1b\n\x18\n\x06\x04\x07\x04\0\x02?\x12\x04\xc5\x03\x06\x17\ + \x1a\x08\x20For\x20C#\n\n\x0f\n\x07\x04\x07\x04\0\x02?\x01\x12\x04\xc5\ + \x03\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02?\x02\x12\x04\xc5\x03\x14\x16\ + \n\x18\n\x06\x04\x07\x04\0\x02@\x12\x04\xc7\x03\x06\x17\x1a\x08\x20For\ + \x20C#\n\n\x0f\n\x07\x04\x07\x04\0\x02@\x01\x12\x04\xc7\x03\x06\x11\n\ + \x0f\n\x07\x04\x07\x04\0\x02@\x02\x12\x04\xc7\x03\x14\x16\n(\n\x06\x04\ + \x07\x04\0\x02A\x12\x04\xc9\x03\x06\x18\x1a\x18\x20For\x20Java,\x20C#,\ + \x20C++\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02A\x01\x12\x04\xc9\x03\x06\ + \x12\n\x0f\n\x07\x04\x07\x04\0\x02A\x02\x12\x04\xc9\x03\x15\x17\n)\n\x06\ + \x04\x07\x04\0\x02B\x12\x04\xcb\x03\x06\x1a\x1a\x19\x20For\x20C#,\x20Typ\ + eScript\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02B\x01\x12\x04\xcb\x03\x06\ + \x14\n\x0f\n\x07\x04\x07\x04\0\x02B\x02\x12\x04\xcb\x03\x17\x19\n\x1c\n\ + \x06\x04\x07\x04\0\x02C\x12\x04\xcd\x03\x06\x1a\x1a\x0c\x20For\x20C,\x20\ + C++\n\n\x0f\n\x07\x04\x07\x04\0\x02C\x01\x12\x04\xcd\x03\x06\x14\n\x0f\n\ + \x07\x04\x07\x04\0\x02C\x02\x12\x04\xcd\x03\x17\x19\n\x0e\n\x06\x04\x07\ + \x04\0\x02D\x12\x04\xce\x03\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02D\x01\ + \x12\x04\xce\x03\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02D\x02\x12\x04\xce\ + \x03\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02E\x12\x04\xcf\x03\x06\x12\n\ + \x0f\n\x07\x04\x07\x04\0\x02E\x01\x12\x04\xcf\x03\x06\x0c\n\x0f\n\x07\ + \x04\x07\x04\0\x02E\x02\x12\x04\xcf\x03\x0f\x11\n\x1b\n\x06\x04\x07\x04\ + \0\x02F\x12\x04\xd1\x03\x06\x15\x1a\x0b\x20For\x20Swift\n\n\x0f\n\x07\ + \x04\x07\x04\0\x02F\x01\x12\x04\xd1\x03\x06\x0f\n\x0f\n\x07\x04\x07\x04\ + \0\x02F\x02\x12\x04\xd1\x03\x12\x14\n\x1a\n\x06\x04\x07\x04\0\x02G\x12\ + \x04\xd3\x03\x06\x12\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\ + \x02G\x01\x12\x04\xd3\x03\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02G\x02\x12\ + \x04\xd3\x03\x0f\x11\n\x1a\n\x06\x04\x07\x04\0\x02H\x12\x04\xd5\x03\x06\ + \x13\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02H\x01\x12\x04\ + \xd5\x03\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02H\x02\x12\x04\xd5\x03\x10\ + \x12\nU\n\x06\x04\x07\x04\0\x02I\x12\x04\xd8\x03\x06\x19\x1aE\x20Method\ + \x20receiver\x20for\x20languages\n\x20'this'\x20in\x20JavaScript,\x20C++\ + ,\x20Java\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02I\x01\x12\x04\xd8\x03\ + \x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02I\x02\x12\x04\xd8\x03\x16\x18\nO\n\ + \x06\x04\x07\x04\0\x02J\x12\x04\xda\x03\x06\x11\x1a?\x20Analogous\x20to\ + \x20'Protocol'\x20and\x20'TypeClass',\x20for\x20Rust,\x20Scala\x20etc.\n\ + \n\x0f\n\x07\x04\x07\x04\0\x02J\x01\x12\x04\xda\x03\x06\x0b\n\x0f\n\x07\ + \x04\x07\x04\0\x02J\x02\x12\x04\xda\x03\x0e\x10\nE\n\x06\x04\x07\x04\0\ + \x02K\x12\x04\xdc\x03\x06\x17\x1a5\x20Analogous\x20to\x20'AbstractMethod\ + ',\x20for\x20Rust,\x20Scala\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02K\x01\ + \x12\x04\xdc\x03\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02K\x02\x12\x04\xdc\ + \x03\x14\x16\n\x89\x01\n\x06\x04\x07\x04\0\x02L\x12\x04\xdf\x03\x06\x10\ + \x1ay\x20Data\x20type\x20definition\x20for\x20languages\x20like\x20OCaml\ + \x20which\x20use\x20`type`\n\x20rather\x20than\x20separate\x20keywords\ + \x20like\x20`struct`\x20and\x20`enum`.\n\n\x0f\n\x07\x04\x07\x04\0\x02L\ + \x01\x12\x04\xdf\x03\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02L\x02\x12\x04\ + \xdf\x03\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02M\x12\x04\xe0\x03\x06\x15\n\ + \x0f\n\x07\x04\x07\x04\0\x02M\x01\x12\x04\xe0\x03\x06\x0f\n\x0f\n\x07\ + \x04\x07\x04\0\x02M\x02\x12\x04\xe0\x03\x12\x14\nS\n\x06\x04\x07\x04\0\ + \x02N\x12\x04\xe2\x03\x06\x15\x1aC\x20Analogous\x20to\x20'Trait'\x20and\ + \x20'Protocol',\x20for\x20Haskell,\x20Purescript\x20etc.\n\n\x0f\n\x07\ + \x04\x07\x04\0\x02N\x01\x12\x04\xe2\x03\x06\x0f\n\x0f\n\x07\x04\x07\x04\ + \0\x02N\x02\x12\x04\xe2\x03\x12\x14\nM\n\x06\x04\x07\x04\0\x02O\x12\x04\ + \xe4\x03\x06\x1b\x1a=\x20Analogous\x20to\x20'AbstractMethod',\x20for\x20\ + Haskell,\x20Purescript\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02O\x01\x12\ + \x04\xe4\x03\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02O\x02\x12\x04\xe4\x03\ + \x18\x1a\n\x1d\n\x06\x04\x07\x04\0\x02P\x12\x04\xe6\x03\x06\x16\x1a\r\ + \x20For\x20Haskell\n\n\x0f\n\x07\x04\x07\x04\0\x02P\x01\x12\x04\xe6\x03\ + \x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02P\x02\x12\x04\xe6\x03\x13\x15\n\ + \x0e\n\x06\x04\x07\x04\0\x02Q\x12\x04\xe7\x03\x06\x19\n\x0f\n\x07\x04\ + \x07\x04\0\x02Q\x01\x12\x04\xe7\x03\x06\x13\n\x0f\n\x07\x04\x07\x04\0\ + \x02Q\x02\x12\x04\xe7\x03\x16\x18\n(\n\x06\x04\x07\x04\0\x02R\x12\x04\ + \xe9\x03\x06\x11\x1a\x18\x20For\x20C,\x20C++,\x20Capn\x20Proto\n\n\x0f\n\ + \x07\x04\x07\x04\0\x02R\x01\x12\x04\xe9\x03\x06\x0b\n\x0f\n\x07\x04\x07\ + \x04\0\x02R\x02\x12\x04\xe9\x03\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02S\ + \x12\x04\xea\x03\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02S\x01\x12\x04\xea\ + \x03\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02S\x02\x12\x04\xea\x03\x0e\x10\ + \n[\n\x06\x04\x07\x04\0\x02T\x12\x04\xeb\x03\x06\x14\"K\x20Next\x20=\x20\ + 86;\n\x20Feel\x20free\x20to\x20open\x20a\x20PR\x20proposing\x20new\x20la\ + nguage-specific\x20kinds.\n\n\x0f\n\x07\x04\x07\x04\0\x02T\x01\x12\x04\ + \xeb\x03\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02T\x02\x12\x04\xeb\x03\x11\ + \x13\n\xf3\x03\n\x04\x04\x07\x02\x04\x12\x04\xf8\x03\x02\x1a\x1a\xe4\x03\ + \x20(optional)\x20The\x20name\x20of\x20this\x20symbol\x20as\x20it\x20sho\ + uld\x20be\x20displayed\x20to\x20the\x20user.\n\x20For\x20example,\x20the\ + \x20symbol\x20\"com/example/MyClass#myMethod(+1).\"\x20should\x20have\ + \x20the\n\x20display\x20name\x20\"myMethod\".\x20The\x20`symbol`\x20fiel\ + d\x20is\x20not\x20a\x20reliable\x20source\x20of\n\x20the\x20display\x20n\ + ame\x20for\x20several\x20reasons:\n\n\x20-\x20Local\x20symbols\x20don't\ + \x20encode\x20the\x20name.\n\x20-\x20Some\x20languages\x20have\x20case-i\ + nsensitive\x20names,\x20so\x20the\x20symbol\x20is\x20all-lowercase.\n\ + \x20-\x20The\x20symbol\x20may\x20encode\x20names\x20with\x20special\x20c\ + haracters\x20that\x20should\x20not\x20be\n\x20\x20\x20displayed\x20to\ + \x20the\x20user.\n\n\r\n\x05\x04\x07\x02\x04\x05\x12\x04\xf8\x03\x02\x08\ + \n\r\n\x05\x04\x07\x02\x04\x01\x12\x04\xf8\x03\t\x15\n\r\n\x05\x04\x07\ + \x02\x04\x03\x12\x04\xf8\x03\x18\x19\n\xc4\x03\n\x04\x04\x07\x02\x05\x12\ + \x04\xff\x03\x02'\x1a\xb5\x03\x20(optional)\x20The\x20signature\x20of\ + \x20this\x20symbol\x20as\x20it's\x20displayed\x20in\x20API\n\x20document\ + ation\x20or\x20in\x20hover\x20tooltips.\x20For\x20example,\x20a\x20Java\ + \x20method\x20that\x20adds\n\x20two\x20numbers\x20this\x20would\x20have\ + \x20`Document.language\x20=\x20\"java\"`\x20and\x20`Document.text\n\x20=\ + \x20\"void\x20add(int\x20a,\x20int\x20b)\".\x20The\x20`language`\x20and\ + \x20`text`\x20fields\x20are\x20required\n\x20while\x20other\x20fields\ + \x20such\x20as\x20`Documentation.occurrences`\x20can\x20be\x20optionally\ + \n\x20included\x20to\x20support\x20hyperlinking\x20referenced\x20symbols\ + \x20in\x20the\x20signature.\n\n\r\n\x05\x04\x07\x02\x05\x06\x12\x04\xff\ + \x03\x02\n\n\r\n\x05\x04\x07\x02\x05\x01\x12\x04\xff\x03\x0b\"\n\r\n\x05\ + \x04\x07\x02\x05\x03\x12\x04\xff\x03%&\n\xc9\x08\n\x04\x04\x07\x02\x06\ + \x12\x04\x91\x04\x02\x1e\x1a\xba\x08\x20(optional)\x20The\x20enclosing\ + \x20symbol\x20if\x20this\x20is\x20a\x20local\x20symbol.\x20\x20For\x20no\ + n-local\n\x20symbols,\x20the\x20enclosing\x20symbol\x20should\x20be\x20p\ + arsed\x20from\x20the\x20`symbol`\x20field\n\x20using\x20the\x20`Descript\ + or`\x20grammar.\n\n\x20The\x20primary\x20use-case\x20for\x20this\x20fiel\ + d\x20is\x20to\x20allow\x20local\x20symbol\x20to\x20be\x20displayed\n\x20\ + in\x20a\x20symbol\x20hierarchy\x20for\x20API\x20documentation.\x20It's\ + \x20OK\x20to\x20leave\x20this\x20field\n\x20empty\x20for\x20local\x20var\ + iables\x20since\x20local\x20variables\x20usually\x20don't\x20belong\x20i\ + n\x20API\n\x20documentation.\x20However,\x20in\x20the\x20situation\x20th\ + at\x20you\x20wish\x20to\x20include\x20a\x20local\n\x20symbol\x20in\x20th\ + e\x20hierarchy,\x20then\x20you\x20can\x20use\x20`enclosing_symbol`\x20to\ + \x20locate\x20the\n\x20\"parent\"\x20or\x20\"owner\"\x20of\x20this\x20lo\ + cal\x20symbol.\x20For\x20example,\x20a\x20Java\x20indexer\x20may\n\x20ch\ + oose\x20to\x20use\x20local\x20symbols\x20for\x20private\x20class\x20fiel\ + ds\x20while\x20providing\x20an\n\x20`enclosing_symbol`\x20to\x20referenc\ + e\x20the\x20enclosing\x20class\x20to\x20allow\x20the\x20field\x20to\n\ + \x20be\x20part\x20of\x20the\x20class\x20documentation\x20hierarchy.\x20F\ + rom\x20the\x20perspective\x20of\x20an\n\x20author\x20of\x20an\x20indexer\ + ,\x20the\x20decision\x20to\x20use\x20a\x20local\x20symbol\x20or\x20globa\ + l\x20symbol\n\x20should\x20exclusively\x20be\x20determined\x20whether\ + \x20the\x20local\x20symbol\x20is\x20accessible\n\x20outside\x20the\x20do\ + cument,\x20not\x20by\x20the\x20capability\x20to\x20find\x20the\x20enclos\ + ing\n\x20symbol.\n\n\r\n\x05\x04\x07\x02\x06\x05\x12\x04\x91\x04\x02\x08\ + \n\r\n\x05\x04\x07\x02\x06\x01\x12\x04\x91\x04\t\x19\n\r\n\x05\x04\x07\ + \x02\x06\x03\x12\x04\x91\x04\x1c\x1d\n\xb1\x01\n\x02\x04\x08\x12\x06\x96\ + \x04\0\x9b\x04\x01\x1a\xa2\x01\x20NOTE:\x20FullRelationship\x20reuses\ + \x20Relationship\x20instead\x20of\x20a\x20more\x20symmetric\x20represent\ + ation\n\x20to\x20reduce\x20the\x20risk\x20of\x20divergence\x20when\x20ad\ + ding\x20new\x20fields\x20to\x20Relationships.\n\n\x0b\n\x03\x04\x08\x01\ + \x12\x04\x96\x04\x08\x18\nF\n\x04\x04\x08\x02\0\x12\x04\x98\x04\x02\x1b\ + \x1a8\x20Represents\x20the\x20symbol\x20that\x20this\x20relationship\x20\ + is\x20about.\n\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\x98\x04\x02\x08\n\r\n\ + \x05\x04\x08\x02\0\x01\x12\x04\x98\x04\t\x16\n\r\n\x05\x04\x08\x02\0\x03\ + \x12\x04\x98\x04\x19\x1a\nS\n\x04\x04\x08\x02\x01\x12\x04\x9a\x04\x02\ + \x20\x1aE\x20Represents\x20the\x20symbol\x20+\x20the\x20relationship\x20\ + that\x20this\x20symbol\x20links\x20to.\n\n\r\n\x05\x04\x08\x02\x01\x06\ + \x12\x04\x9a\x04\x02\x0e\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x9a\x04\ + \x0f\x1b\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\x9a\x04\x1e\x1f\n\x0c\n\ + \x02\x04\t\x12\x06\x9d\x04\0\xe0\x04\x01\n\x0b\n\x03\x04\t\x01\x12\x04\ + \x9d\x04\x08\x14\n\x0c\n\x04\x04\t\x02\0\x12\x04\x9e\x04\x02\x14\n\r\n\ + \x05\x04\t\x02\0\x05\x12\x04\x9e\x04\x02\x08\n\r\n\x05\x04\t\x02\0\x01\ + \x12\x04\x9e\x04\t\x0f\n\r\n\x05\x04\t\x02\0\x03\x12\x04\x9e\x04\x12\x13\ + \n\xde\x08\n\x04\x04\t\x02\x01\x12\x04\xb7\x04\x02\x18\x1a\xcf\x08\x20Wh\ + en\x20resolving\x20\"Find\x20references\",\x20this\x20field\x20documents\ + \x20what\x20other\x20symbols\n\x20should\x20be\x20included\x20together\ + \x20with\x20this\x20symbol.\x20For\x20example,\x20consider\x20the\n\x20f\ + ollowing\x20TypeScript\x20code\x20that\x20defines\x20two\x20symbols\x20`\ + Animal#sound()`\x20and\n\x20`Dog#sound()`:\n\x20```ts\n\x20interface\x20\ + Animal\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^\x20defin\ + ition\x20Animal#\n\x20\x20\x20sound():\x20string\n\x20\x20\x20^^^^^\x20d\ + efinition\x20Animal#sound()\n\x20}\n\x20class\x20Dog\x20implements\x20An\ + imal\x20{\n\x20\x20\x20\x20\x20\x20\x20^^^\x20definition\x20Dog#,\x20rel\ + ationships\x20=\x20[{symbol:\x20\"Animal#\",\x20is_implementation:\x20tr\ + ue}]\n\x20\x20\x20public\x20sound():\x20string\x20{\x20return\x20\"woof\ + \"\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20definition\x20\ + Dog#sound(),\x20references_symbols\x20=\x20Animal#sound(),\x20relationsh\ + ips\x20=\x20[{symbol:\x20\"Animal#sound()\",\x20is_implementation:true,\ + \x20is_reference:\x20true}]\n\x20}\n\x20const\x20animal:\x20Animal\x20=\ + \x20new\x20Dog()\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20^^^^^^\x20reference\x20Animal#\n\x20console.log(animal.sound())\ + \n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20^^^^^\x20reference\x20Animal#sound()\n\x20```\n\x20Doing\x20\ + \"Find\x20references\"\x20on\x20the\x20symbol\x20`Animal#sound()`\x20sho\ + uld\x20return\n\x20references\x20to\x20the\x20`Dog#sound()`\x20method\ + \x20as\x20well.\x20Vice-versa,\x20doing\x20\"Find\n\x20references\"\x20o\ + n\x20the\x20`Dog#sound()`\x20method\x20should\x20include\x20references\ + \x20to\x20the\n\x20`Animal#sound()`\x20method\x20as\x20well.\n\n\r\n\x05\ + \x04\t\x02\x01\x05\x12\x04\xb7\x04\x02\x06\n\r\n\x05\x04\t\x02\x01\x01\ + \x12\x04\xb7\x04\x07\x13\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\xb7\x04\x16\ + \x17\n\x80\x04\n\x04\x04\t\x02\x02\x12\x04\xc0\x04\x02\x1d\x1a\xf1\x03\ + \x20Similar\x20to\x20`is_reference`\x20but\x20for\x20\"Find\x20implement\ + ations\"\x20and\x20\"Find\x20supers\".\n\n\x20It's\x20common\x20for\x20`\ + is_implementation`\x20and\x20`is_reference`\x20to\x20both\x20be\x20true\ + \x20but\n\x20it's\x20not\x20always\x20the\x20case.\x20In\x20the\x20TypeS\ + cript\x20example\x20above,\x20observe\x20that\n\x20`Dog#`\x20has\x20an\ + \x20`is_implementation`\x20relationship\x20with\x20`\"Animal#\"`\x20but\ + \x20not\n\x20`is_reference`.\x20This\x20is\x20because\x20\"Find\x20refer\ + ences\"\x20on\x20the\x20\"Animal#\"\x20symbol\n\x20should\x20not\x20retu\ + rn\x20\"Dog#\".\x20We\x20only\x20want\x20\"Dog#\"\x20to\x20return\x20as\ + \x20a\x20result\x20for\n\x20\"Find\x20implementations\"\x20on\x20the\x20\ + \"Animal#\"\x20symbol.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\xc0\x04\x02\ + \x06\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xc0\x04\x07\x18\n\r\n\x05\x04\t\ + \x02\x02\x03\x12\x04\xc0\x04\x1b\x1c\n\x9f\x05\n\x04\x04\t\x02\x03\x12\ + \x04\xcd\x04\x02\x1e\x1a\x90\x05\x20Represents\x20that\x20\"Go\x20to\x20\ + type\x20definition\"\x20from\x20the\x20(outer)\x20symbol\x20should\x20go\ + \n\x20to\x20the\x20(relationship's)\x20symbol\x20for\x20a\x20particular\ + \x20type.\n\n\x20A\x20less\x20confusing\x20name\x20for\x20this\x20field\ + \x20would\x20be\x20\"has_type\",\x20but\x20we\n\x20cannot\x20change\x20t\ + his\x20to\x20avoid\x20breaking\x20generated\x20code.\n\n\x20NOTE:\x20In\ + \x20Sourcegraph,\x20this\x20field\x20will\x20not\x20be\x20used\x20for\ + \x20code\x20navigation\x20like\n\x20\"Go\x20to\x20type\x20references\"\ + \x20(i.e.\x20identifying\x20all\x20places\x20where\x20there\x20is\x20a\n\ + \x20variable\x20with\x20a\x20given\x20type,\x20even\x20when\x20type\x20i\ + s\x20not\x20mentioned\x20explicitly),\n\x20since\x20that\x20would\x20mea\ + n\x20that\x20an\x20indexer\x20could\x20only\x20utilize\x20local\x20symbo\ + ls\n\x20in\x20very\x20limited\x20contexts,\x20since\x20most\x20local\x20\ + variables\x20could\x20be\x20potential\n\x20targets\x20of\x20such\x20a\ + \x20navigation\x20action.\n\n\r\n\x05\x04\t\x02\x03\x05\x12\x04\xcd\x04\ + \x02\x06\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\xcd\x04\x07\x19\n\r\n\x05\ + \x04\t\x02\x03\x03\x12\x04\xcd\x04\x1c\x1d\n\xa7\x07\n\x04\x04\t\x02\x04\ + \x12\x04\xde\x04\x02\x19\x1a\xd5\x06\x20Allows\x20overriding\x20the\x20b\ ehavior\x20of\x20\"Go\x20to\x20definition\"\x20and\x20\"Find\x20referenc\ es\"\n\x20for\x20symbols\x20which\x20do\x20not\x20have\x20a\x20definitio\ n\x20of\x20their\x20own\x20or\x20could\n\x20potentially\x20have\x20multi\ @@ -5392,182 +5781,182 @@ static file_descriptor_proto_data: &'static [u8] = b"\ bols\x20in\x20an\x20index\x20are\x20allowed\x20to\x20use\x20is_definitio\ n.\n\x20The\x20relationship\x20may\x20not\x20get\x20recorded\x20if\x20ei\ ther\x20symbol\x20is\x20local.\n\"A\x20Update\x20registerInverseRelation\ - ships\x20on\x20adding\x20a\x20new\x20field\x20here.\n\n\r\n\x05\x04\x08\ - \x02\x04\x05\x12\x04\xef\x03\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\ - \x04\xef\x03\x07\x14\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\xef\x03\x17\ - \x18\n\x88\x03\n\x02\x05\x03\x12\x06\xf8\x03\0\x8e\x04\x01\x1a\xf9\x02\ - \x20SymbolRole\x20declares\x20what\x20\"role\"\x20a\x20symbol\x20has\x20\ - in\x20an\x20occurrence.\x20A\x20role\x20is\n\x20encoded\x20as\x20a\x20bi\ - tset\x20where\x20each\x20bit\x20represents\x20a\x20different\x20role.\ - \x20For\x20example,\n\x20to\x20determine\x20if\x20the\x20`Import`\x20rol\ - e\x20is\x20set,\x20test\x20whether\x20the\x20second\x20bit\x20of\x20the\ - \n\x20enum\x20value\x20is\x20defined.\x20In\x20pseudocode,\x20this\x20ca\ - n\x20be\x20implemented\x20with\x20the\n\x20logic:\x20`const\x20isImportR\ - ole\x20=\x20(role.value\x20&\x20SymbolRole.Import.value)\x20>\x200`.\n\n\ - \x0b\n\x03\x05\x03\x01\x12\x04\xf8\x03\x05\x0f\nv\n\x04\x05\x03\x02\0\ - \x12\x04\xfb\x03\x02\x1c\x1ah\x20This\x20case\x20is\x20not\x20meant\x20t\ - o\x20be\x20used;\x20it\x20only\x20exists\x20to\x20avoid\x20an\x20error\n\ - \x20from\x20the\x20Protobuf\x20code\x20generator.\n\n\r\n\x05\x05\x03\ - \x02\0\x01\x12\x04\xfb\x03\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\ - \xfb\x03\x1a\x1b\nT\n\x04\x05\x03\x02\x01\x12\x04\xfd\x03\x02\x13\x1aF\ - \x20Is\x20the\x20symbol\x20defined\x20here?\x20If\x20not,\x20then\x20thi\ - s\x20is\x20a\x20symbol\x20reference.\n\n\r\n\x05\x05\x03\x02\x01\x01\x12\ - \x04\xfd\x03\x02\x0c\n\r\n\x05\x05\x03\x02\x01\x02\x12\x04\xfd\x03\x0f\ - \x12\n,\n\x04\x05\x03\x02\x02\x12\x04\xff\x03\x02\x0f\x1a\x1e\x20Is\x20t\ - he\x20symbol\x20imported\x20here?\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\ - \x04\xff\x03\x02\x08\n\r\n\x05\x05\x03\x02\x02\x02\x12\x04\xff\x03\x0b\ - \x0e\n+\n\x04\x05\x03\x02\x03\x12\x04\x81\x04\x02\x14\x1a\x1d\x20Is\x20t\ - he\x20symbol\x20written\x20here?\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\ - \x81\x04\x02\r\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\x81\x04\x10\x13\n(\ - \n\x04\x05\x03\x02\x04\x12\x04\x83\x04\x02\x13\x1a\x1a\x20Is\x20the\x20s\ - ymbol\x20read\x20here?\n\n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\x83\x04\ - \x02\x0c\n\r\n\x05\x05\x03\x02\x04\x02\x12\x04\x83\x04\x0f\x12\n0\n\x04\ - \x05\x03\x02\x05\x12\x04\x85\x04\x02\x13\x1a\"\x20Is\x20the\x20symbol\ - \x20in\x20generated\x20code?\n\n\r\n\x05\x05\x03\x02\x05\x01\x12\x04\x85\ - \x04\x02\x0b\n\r\n\x05\x05\x03\x02\x05\x02\x12\x04\x85\x04\x0e\x12\n+\n\ - \x04\x05\x03\x02\x06\x12\x04\x87\x04\x02\x0e\x1a\x1d\x20Is\x20the\x20sym\ - bol\x20in\x20test\x20code?\n\n\r\n\x05\x05\x03\x02\x06\x01\x12\x04\x87\ - \x04\x02\x06\n\r\n\x05\x05\x03\x02\x06\x02\x12\x04\x87\x04\t\r\n\xed\x01\ - \n\x04\x05\x03\x02\x07\x12\x04\x8d\x04\x02\x1b\x1a\xde\x01\x20Is\x20this\ - \x20a\x20signature\x20for\x20a\x20symbol\x20that\x20is\x20defined\x20els\ - ewhere?\n\n\x20Applies\x20to\x20forward\x20declarations\x20for\x20langua\ - ges\x20like\x20C,\x20C++\n\x20and\x20Objective-C,\x20as\x20well\x20as\ - \x20`val`\x20declarations\x20in\x20interface\n\x20files\x20in\x20languag\ - es\x20like\x20SML\x20and\x20OCaml.\n\n\r\n\x05\x05\x03\x02\x07\x01\x12\ - \x04\x8d\x04\x02\x13\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\x8d\x04\x16\ - \x1a\n\x0c\n\x02\x05\x04\x12\x06\x90\x04\0\xed\x04\x01\n\x0b\n\x03\x05\ - \x04\x01\x12\x04\x90\x04\x05\x0f\n\x0b\n\x03\x05\x04\x03\x12\x04\x91\x04\ - \x02\x1c\n\x0c\n\x04\x05\x04\x03\x02\x12\x04\x91\x04\x02\x1c\n\x0c\n\x04\ - \x05\x04\x02\0\x12\x04\x93\x04\x02\x1c\n\r\n\x05\x05\x04\x02\0\x01\x12\ - \x04\x93\x04\x02\x17\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\x93\x04\x1a\x1b\ - \n;\n\x04\x05\x04\x02\x01\x12\x04\x96\x04\x02\x0e\x1a-\x20Comment,\x20in\ - cluding\x20comment\x20markers\x20and\x20text\n\n\r\n\x05\x05\x04\x02\x01\ - \x01\x12\x04\x96\x04\x02\t\n\r\n\x05\x05\x04\x02\x01\x02\x12\x04\x96\x04\ - \x0c\r\n\x1b\n\x04\x05\x04\x02\x02\x12\x04\x99\x04\x02\x1b\x1a\r\x20`;`\ - \x20`.`\x20`,`\n\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\x99\x04\x02\x16\n\ - \r\n\x05\x05\x04\x02\x02\x02\x12\x04\x99\x04\x19\x1a\n2\n\x04\x05\x04\ - \x02\x03\x12\x04\x9b\x04\x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20use\ - d\x20syntactically\n\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\x9b\x04\x02\ - \x14\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\x9b\x04\x17\x18\n5\n\x04\x05\ - \x04\x02\x04\x12\x04\x9e\x04\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return\ - `,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\x9e\x04\ - \x02\t\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\x9e\x04\x0c\r\n\x0c\n\x04\ - \x05\x04\x02\x05\x12\x04\x9f\x04\x02*\n\r\n\x05\x05\x04\x02\x05\x01\x12\ - \x04\x9f\x04\x02\x13\n\r\n\x05\x05\x04\x02\x05\x02\x12\x04\x9f\x04\x16\ - \x17\n\r\n\x05\x05\x04\x02\x05\x03\x12\x04\x9f\x04\x18)\n\x0e\n\x06\x05\ - \x04\x02\x05\x03\x01\x12\x04\x9f\x04\x19(\n\x1e\n\x04\x05\x04\x02\x06\ - \x12\x04\xa2\x04\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\ - \x04\x02\x06\x01\x12\x04\xa2\x04\x02\x14\n\r\n\x05\x05\x04\x02\x06\x02\ - \x12\x04\xa2\x04\x17\x18\nX\n\x04\x05\x04\x02\x07\x12\x04\xa5\x04\x02\ + ships\x20on\x20adding\x20a\x20new\x20field\x20here.\n\n\r\n\x05\x04\t\ + \x02\x04\x05\x12\x04\xde\x04\x02\x06\n\r\n\x05\x04\t\x02\x04\x01\x12\x04\ + \xde\x04\x07\x14\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\xde\x04\x17\x18\n\ + \x88\x03\n\x02\x05\x03\x12\x06\xe7\x04\0\xfd\x04\x01\x1a\xf9\x02\x20Symb\ + olRole\x20declares\x20what\x20\"role\"\x20a\x20symbol\x20has\x20in\x20an\ + \x20occurrence.\x20A\x20role\x20is\n\x20encoded\x20as\x20a\x20bitset\x20\ + where\x20each\x20bit\x20represents\x20a\x20different\x20role.\x20For\x20\ + example,\n\x20to\x20determine\x20if\x20the\x20`Import`\x20role\x20is\x20\ + set,\x20test\x20whether\x20the\x20second\x20bit\x20of\x20the\n\x20enum\ + \x20value\x20is\x20defined.\x20In\x20pseudocode,\x20this\x20can\x20be\ + \x20implemented\x20with\x20the\n\x20logic:\x20`const\x20isImportRole\x20\ + =\x20(role.value\x20&\x20SymbolRole.Import.value)\x20>\x200`.\n\n\x0b\n\ + \x03\x05\x03\x01\x12\x04\xe7\x04\x05\x0f\nv\n\x04\x05\x03\x02\0\x12\x04\ + \xea\x04\x02\x1c\x1ah\x20This\x20case\x20is\x20not\x20meant\x20to\x20be\ + \x20used;\x20it\x20only\x20exists\x20to\x20avoid\x20an\x20error\n\x20fro\ + m\x20the\x20Protobuf\x20code\x20generator.\n\n\r\n\x05\x05\x03\x02\0\x01\ + \x12\x04\xea\x04\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\xea\x04\x1a\ + \x1b\nT\n\x04\x05\x03\x02\x01\x12\x04\xec\x04\x02\x13\x1aF\x20Is\x20the\ + \x20symbol\x20defined\x20here?\x20If\x20not,\x20then\x20this\x20is\x20a\ + \x20symbol\x20reference.\n\n\r\n\x05\x05\x03\x02\x01\x01\x12\x04\xec\x04\ + \x02\x0c\n\r\n\x05\x05\x03\x02\x01\x02\x12\x04\xec\x04\x0f\x12\n,\n\x04\ + \x05\x03\x02\x02\x12\x04\xee\x04\x02\x0f\x1a\x1e\x20Is\x20the\x20symbol\ + \x20imported\x20here?\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\xee\x04\ + \x02\x08\n\r\n\x05\x05\x03\x02\x02\x02\x12\x04\xee\x04\x0b\x0e\n+\n\x04\ + \x05\x03\x02\x03\x12\x04\xf0\x04\x02\x14\x1a\x1d\x20Is\x20the\x20symbol\ + \x20written\x20here?\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\xf0\x04\x02\ + \r\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\xf0\x04\x10\x13\n(\n\x04\x05\ + \x03\x02\x04\x12\x04\xf2\x04\x02\x13\x1a\x1a\x20Is\x20the\x20symbol\x20r\ + ead\x20here?\n\n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\xf2\x04\x02\x0c\n\r\ + \n\x05\x05\x03\x02\x04\x02\x12\x04\xf2\x04\x0f\x12\n0\n\x04\x05\x03\x02\ + \x05\x12\x04\xf4\x04\x02\x13\x1a\"\x20Is\x20the\x20symbol\x20in\x20gener\ + ated\x20code?\n\n\r\n\x05\x05\x03\x02\x05\x01\x12\x04\xf4\x04\x02\x0b\n\ + \r\n\x05\x05\x03\x02\x05\x02\x12\x04\xf4\x04\x0e\x12\n+\n\x04\x05\x03\ + \x02\x06\x12\x04\xf6\x04\x02\x0e\x1a\x1d\x20Is\x20the\x20symbol\x20in\ + \x20test\x20code?\n\n\r\n\x05\x05\x03\x02\x06\x01\x12\x04\xf6\x04\x02\ + \x06\n\r\n\x05\x05\x03\x02\x06\x02\x12\x04\xf6\x04\t\r\n\xed\x01\n\x04\ + \x05\x03\x02\x07\x12\x04\xfc\x04\x02\x1b\x1a\xde\x01\x20Is\x20this\x20a\ + \x20signature\x20for\x20a\x20symbol\x20that\x20is\x20defined\x20elsewher\ + e?\n\n\x20Applies\x20to\x20forward\x20declarations\x20for\x20languages\ + \x20like\x20C,\x20C++\n\x20and\x20Objective-C,\x20as\x20well\x20as\x20`v\ + al`\x20declarations\x20in\x20interface\n\x20files\x20in\x20languages\x20\ + like\x20SML\x20and\x20OCaml.\n\n\r\n\x05\x05\x03\x02\x07\x01\x12\x04\xfc\ + \x04\x02\x13\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\xfc\x04\x16\x1a\n\x0c\ + \n\x02\x05\x04\x12\x06\xff\x04\0\xdc\x05\x01\n\x0b\n\x03\x05\x04\x01\x12\ + \x04\xff\x04\x05\x0f\n\x0b\n\x03\x05\x04\x03\x12\x04\x80\x05\x02\x1c\n\ + \x0c\n\x04\x05\x04\x03\x02\x12\x04\x80\x05\x02\x1c\n\x0c\n\x04\x05\x04\ + \x02\0\x12\x04\x82\x05\x02\x1c\n\r\n\x05\x05\x04\x02\0\x01\x12\x04\x82\ + \x05\x02\x17\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\x82\x05\x1a\x1b\n;\n\ + \x04\x05\x04\x02\x01\x12\x04\x85\x05\x02\x0e\x1a-\x20Comment,\x20includi\ + ng\x20comment\x20markers\x20and\x20text\n\n\r\n\x05\x05\x04\x02\x01\x01\ + \x12\x04\x85\x05\x02\t\n\r\n\x05\x05\x04\x02\x01\x02\x12\x04\x85\x05\x0c\ + \r\n\x1b\n\x04\x05\x04\x02\x02\x12\x04\x88\x05\x02\x1b\x1a\r\x20`;`\x20`\ + .`\x20`,`\n\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\x88\x05\x02\x16\n\r\n\ + \x05\x05\x04\x02\x02\x02\x12\x04\x88\x05\x19\x1a\n2\n\x04\x05\x04\x02\ + \x03\x12\x04\x8a\x05\x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20used\ + \x20syntactically\n\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\x8a\x05\x02\ + \x14\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\x8a\x05\x17\x18\n5\n\x04\x05\ + \x04\x02\x04\x12\x04\x8d\x05\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return\ + `,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\x8d\x05\ + \x02\t\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\x8d\x05\x0c\r\n\x0c\n\x04\ + \x05\x04\x02\x05\x12\x04\x8e\x05\x02*\n\r\n\x05\x05\x04\x02\x05\x01\x12\ + \x04\x8e\x05\x02\x13\n\r\n\x05\x05\x04\x02\x05\x02\x12\x04\x8e\x05\x16\ + \x17\n\r\n\x05\x05\x04\x02\x05\x03\x12\x04\x8e\x05\x18)\n\x0e\n\x06\x05\ + \x04\x02\x05\x03\x01\x12\x04\x8e\x05\x19(\n\x1e\n\x04\x05\x04\x02\x06\ + \x12\x04\x91\x05\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\ + \x04\x02\x06\x01\x12\x04\x91\x05\x02\x14\n\r\n\x05\x05\x04\x02\x06\x02\ + \x12\x04\x91\x05\x17\x18\nX\n\x04\x05\x04\x02\x07\x12\x04\x94\x05\x02\ \x11\x1aJ\x20non-specific\x20catch-all\x20for\x20any\x20identifier\x20no\ t\x20better\x20described\x20elsewhere\n\n\r\n\x05\x05\x04\x02\x07\x01\ - \x12\x04\xa5\x04\x02\x0c\n\r\n\x05\x05\x04\x02\x07\x02\x12\x04\xa5\x04\ - \x0f\x10\nN\n\x04\x05\x04\x02\x08\x12\x04\xa7\x04\x02\x18\x1a@\x20Identi\ + \x12\x04\x94\x05\x02\x0c\n\r\n\x05\x05\x04\x02\x07\x02\x12\x04\x94\x05\ + \x0f\x10\nN\n\x04\x05\x04\x02\x08\x12\x04\x96\x05\x02\x18\x1a@\x20Identi\ fiers\x20builtin\x20to\x20the\x20language:\x20`min`,\x20`print`\x20in\ - \x20Python.\n\n\r\n\x05\x05\x04\x02\x08\x01\x12\x04\xa7\x04\x02\x13\n\r\ - \n\x05\x05\x04\x02\x08\x02\x12\x04\xa7\x04\x16\x17\n[\n\x04\x05\x04\x02\ - \t\x12\x04\xa9\x04\x02\x15\x1aM\x20Identifiers\x20representing\x20`null`\ + \x20Python.\n\n\r\n\x05\x05\x04\x02\x08\x01\x12\x04\x96\x05\x02\x13\n\r\ + \n\x05\x05\x04\x02\x08\x02\x12\x04\x96\x05\x16\x17\n[\n\x04\x05\x04\x02\ + \t\x12\x04\x98\x05\x02\x15\x1aM\x20Identifiers\x20representing\x20`null`\ -like\x20values:\x20`None`\x20in\x20Python,\x20`nil`\x20in\x20Go.\n\n\r\ - \n\x05\x05\x04\x02\t\x01\x12\x04\xa9\x04\x02\x10\n\r\n\x05\x05\x04\x02\t\ - \x02\x12\x04\xa9\x04\x13\x14\n.\n\x04\x05\x04\x02\n\x12\x04\xab\x04\x02\ + \n\x05\x05\x04\x02\t\x01\x12\x04\x98\x05\x02\x10\n\r\n\x05\x05\x04\x02\t\ + \x02\x12\x04\x98\x05\x13\x14\n.\n\x04\x05\x04\x02\n\x12\x04\x9a\x05\x02\ \x19\x1a\x20\x20`xyz`\x20in\x20`const\x20xyz\x20=\x20\"hello\"`\n\n\r\n\ - \x05\x05\x04\x02\n\x01\x12\x04\xab\x04\x02\x14\n\r\n\x05\x05\x04\x02\n\ - \x02\x12\x04\xab\x04\x17\x18\n'\n\x04\x05\x04\x02\x0b\x12\x04\xad\x04\ + \x05\x05\x04\x02\n\x01\x12\x04\x9a\x05\x02\x14\n\r\n\x05\x05\x04\x02\n\ + \x02\x12\x04\x9a\x05\x17\x18\n'\n\x04\x05\x04\x02\x0b\x12\x04\x9c\x05\ \x02\x1f\x1a\x19\x20`var\x20X\x20=\x20\"hello\"`\x20in\x20Go\n\n\r\n\x05\ - \x05\x04\x02\x0b\x01\x12\x04\xad\x04\x02\x19\n\r\n\x05\x05\x04\x02\x0b\ - \x02\x12\x04\xad\x04\x1c\x1e\n3\n\x04\x05\x04\x02\x0c\x12\x04\xaf\x04\ + \x05\x04\x02\x0b\x01\x12\x04\x9c\x05\x02\x19\n\r\n\x05\x05\x04\x02\x0b\ + \x02\x12\x04\x9c\x05\x1c\x1e\n3\n\x04\x05\x04\x02\x0c\x12\x04\x9e\x05\ \x02\x1b\x1a%\x20Parameter\x20definition\x20and\x20references\n\n\r\n\ - \x05\x05\x04\x02\x0c\x01\x12\x04\xaf\x04\x02\x15\n\r\n\x05\x05\x04\x02\ - \x0c\x02\x12\x04\xaf\x04\x18\x1a\nX\n\x04\x05\x04\x02\r\x12\x04\xb1\x04\ + \x05\x05\x04\x02\x0c\x01\x12\x04\x9e\x05\x02\x15\n\r\n\x05\x05\x04\x02\ + \x0c\x02\x12\x04\x9e\x05\x18\x1a\nX\n\x04\x05\x04\x02\r\x12\x04\xa0\x05\ \x02\x17\x1aJ\x20Identifiers\x20for\x20variable\x20definitions\x20and\ \x20references\x20within\x20a\x20local\x20scope\n\n\r\n\x05\x05\x04\x02\ - \r\x01\x12\x04\xb1\x04\x02\x11\n\r\n\x05\x05\x04\x02\r\x02\x12\x04\xb1\ - \x04\x14\x16\nK\n\x04\x05\x04\x02\x0e\x12\x04\xb3\x04\x02\x1a\x1a=\x20Id\ + \r\x01\x12\x04\xa0\x05\x02\x11\n\r\n\x05\x05\x04\x02\r\x02\x12\x04\xa0\ + \x05\x14\x16\nK\n\x04\x05\x04\x02\x0e\x12\x04\xa2\x05\x02\x1a\x1a=\x20Id\ entifiers\x20that\x20shadow\x20other\x20identifiers\x20in\x20an\x20outer\ - \x20scope\n\n\r\n\x05\x05\x04\x02\x0e\x01\x12\x04\xb3\x04\x02\x14\n\r\n\ - \x05\x05\x04\x02\x0e\x02\x12\x04\xb3\x04\x17\x19\n\xcd\x01\n\x04\x05\x04\ - \x02\x0f\x12\x04\xb8\x04\x02\x1b\x1a\xbe\x01\x20Identifier\x20representi\ + \x20scope\n\n\r\n\x05\x05\x04\x02\x0e\x01\x12\x04\xa2\x05\x02\x14\n\r\n\ + \x05\x05\x04\x02\x0e\x02\x12\x04\xa2\x05\x17\x19\n\xcd\x01\n\x04\x05\x04\ + \x02\x0f\x12\x04\xa7\x05\x02\x1b\x1a\xbe\x01\x20Identifier\x20representi\ ng\x20a\x20unit\x20of\x20code\x20abstraction\x20and/or\x20namespacing.\n\ \n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20package\x20in\x20Go\x20\ and\x20JVM\x20languages,\n\x20and\x20a\x20module\x20in\x20languages\x20l\ ike\x20Python\x20and\x20JavaScript.\n\n\r\n\x05\x05\x04\x02\x0f\x01\x12\ - \x04\xb8\x04\x02\x15\n\r\n\x05\x05\x04\x02\x0f\x02\x12\x04\xb8\x04\x18\ - \x1a\n\x0c\n\x04\x05\x04\x02\x10\x12\x04\xb9\x04\x02*\n\r\n\x05\x05\x04\ - \x02\x10\x01\x12\x04\xb9\x04\x02\x12\n\r\n\x05\x05\x04\x02\x10\x02\x12\ - \x04\xb9\x04\x15\x17\n\r\n\x05\x05\x04\x02\x10\x03\x12\x04\xb9\x04\x18)\ - \n\x0e\n\x06\x05\x04\x02\x10\x03\x01\x12\x04\xb9\x04\x19(\n4\n\x04\x05\ - \x04\x02\x11\x12\x04\xbc\x04\x02\x1a\x1a&\x20Function\x20references,\x20\ - including\x20calls\n\n\r\n\x05\x05\x04\x02\x11\x01\x12\x04\xbc\x04\x02\ - \x14\n\r\n\x05\x05\x04\x02\x11\x02\x12\x04\xbc\x04\x17\x19\n(\n\x04\x05\ - \x04\x02\x12\x12\x04\xbe\x04\x02$\x1a\x1a\x20Function\x20definition\x20o\ - nly\n\n\r\n\x05\x05\x04\x02\x12\x01\x12\x04\xbe\x04\x02\x1e\n\r\n\x05\ - \x05\x04\x02\x12\x02\x12\x04\xbe\x04!#\n7\n\x04\x05\x04\x02\x13\x12\x04\ - \xc1\x04\x02\x17\x1a)\x20Macro\x20references,\x20including\x20invocation\ - s\n\n\r\n\x05\x05\x04\x02\x13\x01\x12\x04\xc1\x04\x02\x11\n\r\n\x05\x05\ - \x04\x02\x13\x02\x12\x04\xc1\x04\x14\x16\n%\n\x04\x05\x04\x02\x14\x12\ - \x04\xc3\x04\x02!\x1a\x17\x20Macro\x20definition\x20only\n\n\r\n\x05\x05\ - \x04\x02\x14\x01\x12\x04\xc3\x04\x02\x1b\n\r\n\x05\x05\x04\x02\x14\x02\ - \x12\x04\xc3\x04\x1e\x20\n!\n\x04\x05\x04\x02\x15\x12\x04\xc6\x04\x02\ + \x04\xa7\x05\x02\x15\n\r\n\x05\x05\x04\x02\x0f\x02\x12\x04\xa7\x05\x18\ + \x1a\n\x0c\n\x04\x05\x04\x02\x10\x12\x04\xa8\x05\x02*\n\r\n\x05\x05\x04\ + \x02\x10\x01\x12\x04\xa8\x05\x02\x12\n\r\n\x05\x05\x04\x02\x10\x02\x12\ + \x04\xa8\x05\x15\x17\n\r\n\x05\x05\x04\x02\x10\x03\x12\x04\xa8\x05\x18)\ + \n\x0e\n\x06\x05\x04\x02\x10\x03\x01\x12\x04\xa8\x05\x19(\n4\n\x04\x05\ + \x04\x02\x11\x12\x04\xab\x05\x02\x1a\x1a&\x20Function\x20references,\x20\ + including\x20calls\n\n\r\n\x05\x05\x04\x02\x11\x01\x12\x04\xab\x05\x02\ + \x14\n\r\n\x05\x05\x04\x02\x11\x02\x12\x04\xab\x05\x17\x19\n(\n\x04\x05\ + \x04\x02\x12\x12\x04\xad\x05\x02$\x1a\x1a\x20Function\x20definition\x20o\ + nly\n\n\r\n\x05\x05\x04\x02\x12\x01\x12\x04\xad\x05\x02\x1e\n\r\n\x05\ + \x05\x04\x02\x12\x02\x12\x04\xad\x05!#\n7\n\x04\x05\x04\x02\x13\x12\x04\ + \xb0\x05\x02\x17\x1a)\x20Macro\x20references,\x20including\x20invocation\ + s\n\n\r\n\x05\x05\x04\x02\x13\x01\x12\x04\xb0\x05\x02\x11\n\r\n\x05\x05\ + \x04\x02\x13\x02\x12\x04\xb0\x05\x14\x16\n%\n\x04\x05\x04\x02\x14\x12\ + \x04\xb2\x05\x02!\x1a\x17\x20Macro\x20definition\x20only\n\n\r\n\x05\x05\ + \x04\x02\x14\x01\x12\x04\xb2\x05\x02\x1b\n\r\n\x05\x05\x04\x02\x14\x02\ + \x12\x04\xb2\x05\x1e\x20\n!\n\x04\x05\x04\x02\x15\x12\x04\xb5\x05\x02\ \x16\x1a\x13\x20non-builtin\x20types\n\n\r\n\x05\x05\x04\x02\x15\x01\x12\ - \x04\xc6\x04\x02\x10\n\r\n\x05\x05\x04\x02\x15\x02\x12\x04\xc6\x04\x13\ - \x15\nK\n\x04\x05\x04\x02\x16\x12\x04\xc8\x04\x02\x1d\x1a=\x20builtin\ + \x04\xb5\x05\x02\x10\n\r\n\x05\x05\x04\x02\x15\x02\x12\x04\xb5\x05\x13\ + \x15\nK\n\x04\x05\x04\x02\x16\x12\x04\xb7\x05\x02\x1d\x1a=\x20builtin\ \x20types\x20only,\x20such\x20as\x20`str`\x20for\x20Python\x20or\x20`int\ - `\x20in\x20Go\n\n\r\n\x05\x05\x04\x02\x16\x01\x12\x04\xc8\x04\x02\x17\n\ - \r\n\x05\x05\x04\x02\x16\x02\x12\x04\xc8\x04\x1a\x1c\n7\n\x04\x05\x04\ - \x02\x17\x12\x04\xcb\x04\x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\ - \x20__attribute__\n\n\r\n\x05\x05\x04\x02\x17\x01\x12\x04\xcb\x04\x02\ - \x15\n\r\n\x05\x05\x04\x02\x17\x02\x12\x04\xcb\x04\x18\x1a\n\x14\n\x04\ - \x05\x04\x02\x18\x12\x04\xce\x04\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\ - \x05\x04\x02\x18\x01\x12\x04\xce\x04\x02\r\n\r\n\x05\x05\x04\x02\x18\x02\ - \x12\x04\xce\x04\x10\x12\n\x18\n\x04\x05\x04\x02\x19\x12\x04\xd0\x04\x02\ - \x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x04\x02\x19\x01\x12\x04\xd0\ - \x04\x02\x0f\n\r\n\x05\x05\x04\x02\x19\x02\x12\x04\xd0\x04\x12\x14\n\x13\ - \n\x04\x05\x04\x02\x1a\x12\x04\xd2\x04\x02\x15\x1a\x05\x20`.`\n\n\r\n\ - \x05\x05\x04\x02\x1a\x01\x12\x04\xd2\x04\x02\x0f\n\r\n\x05\x05\x04\x02\ - \x1a\x02\x12\x04\xd2\x04\x12\x14\n\"\n\x04\x05\x04\x02\x1b\x12\x04\xd4\ - \x04\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x04\ - \x02\x1b\x01\x12\x04\xd4\x04\x02\x10\n\r\n\x05\x05\x04\x02\x1b\x02\x12\ - \x04\xd4\x04\x13\x15\n\x18\n\x04\x05\x04\x02\x1c\x12\x04\xd6\x04\x02\x11\ - \x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x04\x02\x1c\x01\x12\x04\xd6\x04\ - \x02\x0b\n\r\n\x05\x05\x04\x02\x1c\x02\x12\x04\xd6\x04\x0e\x10\n0\n\x04\ - \x05\x04\x02\x1d\x12\x04\xd9\x04\x02\x15\x1a\"\x20Literal\x20strings:\ - \x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x04\x02\x1d\x01\x12\x04\xd9\x04\ - \x02\x0f\n\r\n\x05\x05\x04\x02\x1d\x02\x12\x04\xd9\x04\x12\x14\n-\n\x04\ - \x05\x04\x02\x1e\x12\x04\xdb\x04\x02\x1b\x1a\x1f\x20non-regex\x20escapes\ - :\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x04\x02\x1e\x01\x12\x04\xdb\x04\ - \x02\x15\n\r\n\x05\x05\x04\x02\x1e\x02\x12\x04\xdb\x04\x18\x1a\n_\n\x04\ - \x05\x04\x02\x1f\x12\x04\xdd\x04\x02\x1c\x1aQ\x20datetimes\x20within\x20\ + `\x20in\x20Go\n\n\r\n\x05\x05\x04\x02\x16\x01\x12\x04\xb7\x05\x02\x17\n\ + \r\n\x05\x05\x04\x02\x16\x02\x12\x04\xb7\x05\x1a\x1c\n7\n\x04\x05\x04\ + \x02\x17\x12\x04\xba\x05\x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\ + \x20__attribute__\n\n\r\n\x05\x05\x04\x02\x17\x01\x12\x04\xba\x05\x02\ + \x15\n\r\n\x05\x05\x04\x02\x17\x02\x12\x04\xba\x05\x18\x1a\n\x14\n\x04\ + \x05\x04\x02\x18\x12\x04\xbd\x05\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\ + \x05\x04\x02\x18\x01\x12\x04\xbd\x05\x02\r\n\r\n\x05\x05\x04\x02\x18\x02\ + \x12\x04\xbd\x05\x10\x12\n\x18\n\x04\x05\x04\x02\x19\x12\x04\xbf\x05\x02\ + \x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x04\x02\x19\x01\x12\x04\xbf\ + \x05\x02\x0f\n\r\n\x05\x05\x04\x02\x19\x02\x12\x04\xbf\x05\x12\x14\n\x13\ + \n\x04\x05\x04\x02\x1a\x12\x04\xc1\x05\x02\x15\x1a\x05\x20`.`\n\n\r\n\ + \x05\x05\x04\x02\x1a\x01\x12\x04\xc1\x05\x02\x0f\n\r\n\x05\x05\x04\x02\ + \x1a\x02\x12\x04\xc1\x05\x12\x14\n\"\n\x04\x05\x04\x02\x1b\x12\x04\xc3\ + \x05\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x04\ + \x02\x1b\x01\x12\x04\xc3\x05\x02\x10\n\r\n\x05\x05\x04\x02\x1b\x02\x12\ + \x04\xc3\x05\x13\x15\n\x18\n\x04\x05\x04\x02\x1c\x12\x04\xc5\x05\x02\x11\ + \x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x04\x02\x1c\x01\x12\x04\xc5\x05\ + \x02\x0b\n\r\n\x05\x05\x04\x02\x1c\x02\x12\x04\xc5\x05\x0e\x10\n0\n\x04\ + \x05\x04\x02\x1d\x12\x04\xc8\x05\x02\x15\x1a\"\x20Literal\x20strings:\ + \x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x04\x02\x1d\x01\x12\x04\xc8\x05\ + \x02\x0f\n\r\n\x05\x05\x04\x02\x1d\x02\x12\x04\xc8\x05\x12\x14\n-\n\x04\ + \x05\x04\x02\x1e\x12\x04\xca\x05\x02\x1b\x1a\x1f\x20non-regex\x20escapes\ + :\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x04\x02\x1e\x01\x12\x04\xca\x05\ + \x02\x15\n\r\n\x05\x05\x04\x02\x1e\x02\x12\x04\xca\x05\x18\x1a\n_\n\x04\ + \x05\x04\x02\x1f\x12\x04\xcc\x05\x02\x1c\x1aQ\x20datetimes\x20within\x20\ strings,\x20special\x20words\x20within\x20a\x20string,\x20`{}`\x20in\x20\ - format\x20strings\n\n\r\n\x05\x05\x04\x02\x1f\x01\x12\x04\xdd\x04\x02\ - \x16\n\r\n\x05\x05\x04\x02\x1f\x02\x12\x04\xdd\x04\x19\x1b\nG\n\x04\x05\ - \x04\x02\x20\x12\x04\xdf\x04\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\ + format\x20strings\n\n\r\n\x05\x05\x04\x02\x1f\x01\x12\x04\xcc\x05\x02\ + \x16\n\r\n\x05\x05\x04\x02\x1f\x02\x12\x04\xcc\x05\x19\x1b\nG\n\x04\x05\ + \x04\x02\x20\x12\x04\xce\x05\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\ \":\x20\"value\"\x20},\x20useful\x20for\x20example\x20in\x20JSON\n\n\r\n\ - \x05\x05\x04\x02\x20\x01\x12\x04\xdf\x04\x02\x12\n\r\n\x05\x05\x04\x02\ - \x20\x02\x12\x04\xdf\x04\x15\x17\nV\n\x04\x05\x04\x02!\x12\x04\xe1\x04\ + \x05\x05\x04\x02\x20\x01\x12\x04\xce\x05\x02\x12\n\r\n\x05\x05\x04\x02\ + \x20\x02\x12\x04\xce\x05\x15\x17\nV\n\x04\x05\x04\x02!\x12\x04\xd0\x05\ \x02\x18\x1aH\x20'c'\x20or\x20similar,\x20in\x20languages\x20that\x20dif\ ferentiate\x20strings\x20and\x20characters\n\n\r\n\x05\x05\x04\x02!\x01\ - \x12\x04\xe1\x04\x02\x12\n\r\n\x05\x05\x04\x02!\x02\x12\x04\xe1\x04\x15\ - \x17\n9\n\x04\x05\x04\x02\"\x12\x04\xe3\x04\x02\x16\x1a+\x20Literal\x20n\ + \x12\x04\xd0\x05\x02\x12\n\r\n\x05\x05\x04\x02!\x02\x12\x04\xd0\x05\x15\ + \x17\n9\n\x04\x05\x04\x02\"\x12\x04\xd2\x05\x02\x16\x1a+\x20Literal\x20n\ umbers,\x20both\x20floats\x20and\x20integers\n\n\r\n\x05\x05\x04\x02\"\ - \x01\x12\x04\xe3\x04\x02\x10\n\r\n\x05\x05\x04\x02\"\x02\x12\x04\xe3\x04\ - \x13\x15\n\x1f\n\x04\x05\x04\x02#\x12\x04\xe5\x04\x02\x16\x1a\x11\x20`tr\ - ue`,\x20`false`\n\n\r\n\x05\x05\x04\x02#\x01\x12\x04\xe5\x04\x02\x10\n\r\ - \n\x05\x05\x04\x02#\x02\x12\x04\xe5\x04\x13\x15\n&\n\x04\x05\x04\x02$\ - \x12\x04\xe8\x04\x02\x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\ - \r\n\x05\x05\x04\x02$\x01\x12\x04\xe8\x04\x02\x05\n\r\n\x05\x05\x04\x02$\ - \x02\x12\x04\xe8\x04\x08\n\n/\n\x04\x05\x04\x02%\x12\x04\xea\x04\x02\x14\ + \x01\x12\x04\xd2\x05\x02\x10\n\r\n\x05\x05\x04\x02\"\x02\x12\x04\xd2\x05\ + \x13\x15\n\x1f\n\x04\x05\x04\x02#\x12\x04\xd4\x05\x02\x16\x1a\x11\x20`tr\ + ue`,\x20`false`\n\n\r\n\x05\x05\x04\x02#\x01\x12\x04\xd4\x05\x02\x10\n\r\ + \n\x05\x05\x04\x02#\x02\x12\x04\xd4\x05\x13\x15\n&\n\x04\x05\x04\x02$\ + \x12\x04\xd7\x05\x02\x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\ + \r\n\x05\x05\x04\x02$\x01\x12\x04\xd7\x05\x02\x05\n\r\n\x05\x05\x04\x02$\ + \x02\x12\x04\xd7\x05\x08\n\n/\n\x04\x05\x04\x02%\x12\x04\xd9\x05\x02\x14\ \x1a!\x20Attribute\x20name\x20in\x20XML-like\x20tags\n\n\r\n\x05\x05\x04\ - \x02%\x01\x12\x04\xea\x04\x02\x0e\n\r\n\x05\x05\x04\x02%\x02\x12\x04\xea\ - \x04\x11\x13\n,\n\x04\x05\x04\x02&\x12\x04\xec\x04\x02\x14\x1a\x1e\x20De\ + \x02%\x01\x12\x04\xd9\x05\x02\x0e\n\r\n\x05\x05\x04\x02%\x02\x12\x04\xd9\ + \x05\x11\x13\n,\n\x04\x05\x04\x02&\x12\x04\xdb\x05\x02\x14\x1a\x1e\x20De\ limiters\x20for\x20XML-like\x20tags\n\n\r\n\x05\x05\x04\x02&\x01\x12\x04\ - \xec\x04\x02\x0e\n\r\n\x05\x05\x04\x02&\x02\x12\x04\xec\x04\x11\x13\n\ - \xf9\x01\n\x02\x04\t\x12\x06\xf4\x04\0\xd5\x05\x01\x1a\xea\x01\x20Occurr\ + \xdb\x05\x02\x0e\n\r\n\x05\x05\x04\x02&\x02\x12\x04\xdb\x05\x11\x13\n\ + \xf9\x01\n\x02\x04\n\x12\x06\xe3\x05\0\xc4\x06\x01\x1a\xea\x01\x20Occurr\ ence\x20associates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20\ and/or\x20highlighting\n\x20information.\n\n\x20If\x20possible,\x20index\ ers\x20should\x20try\x20to\x20bundle\x20logically\x20related\x20informat\ ion\n\x20across\x20occurrences\x20into\x20a\x20single\x20occurrence\x20t\ - o\x20reduce\x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xf4\x04\ - \x08\x12\n\xe8\x08\n\x04\x04\t\x02\0\x12\x04\x8c\x05\x02\x1b\x1a\xd9\x08\ + o\x20reduce\x20payload\x20sizes.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xe3\x05\ + \x08\x12\n\xe8\x08\n\x04\x04\n\x02\0\x12\x04\xfb\x05\x02\x1b\x1a\xd9\x08\ \x20Half-open\x20[start,\x20end)\x20range\x20of\x20this\x20occurrence.\ \x20Must\x20be\x20exactly\x20three\x20or\x20four\n\x20elements:\n\n\x20-\ \x20Four\x20elements:\x20`[startLine,\x20startCharacter,\x20endLine,\x20\ @@ -5591,21 +5980,21 @@ static file_descriptor_proto_data: &'static [u8] = b"\ ncoding\x20is\x20admittedly\x20more\x20embarrassing\x20to\n\x20work\x20w\ ith\x20in\x20some\x20programming\x20languages\x20but\x20we\x20hope\x20th\ e\x20performance\n\x20improvements\x20make\x20up\x20for\x20it.\n\n\r\n\ - \x05\x04\t\x02\0\x04\x12\x04\x8c\x05\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\ - \x04\x8c\x05\x0b\x10\n\r\n\x05\x04\t\x02\0\x01\x12\x04\x8c\x05\x11\x16\n\ - \r\n\x05\x04\t\x02\0\x03\x12\x04\x8c\x05\x19\x1a\n\x8a\x01\n\x04\x04\t\ - \x02\x01\x12\x04\x8f\x05\x02\x14\x1a|\x20(optional)\x20The\x20symbol\x20\ + \x05\x04\n\x02\0\x04\x12\x04\xfb\x05\x02\n\n\r\n\x05\x04\n\x02\0\x05\x12\ + \x04\xfb\x05\x0b\x10\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xfb\x05\x11\x16\n\ + \r\n\x05\x04\n\x02\0\x03\x12\x04\xfb\x05\x19\x1a\n\x8a\x01\n\x04\x04\n\ + \x02\x01\x12\x04\xfe\x05\x02\x14\x1a|\x20(optional)\x20The\x20symbol\x20\ that\x20appears\x20at\x20this\x20position.\x20See\n\x20`SymbolInformatio\ n.symbol`\x20for\x20how\x20to\x20format\x20symbols\x20as\x20strings.\n\n\ - \r\n\x05\x04\t\x02\x01\x05\x12\x04\x8f\x05\x02\x08\n\r\n\x05\x04\t\x02\ - \x01\x01\x12\x04\x8f\x05\t\x0f\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x8f\ - \x05\x12\x13\n\x97\x01\n\x04\x04\t\x02\x02\x12\x04\x92\x05\x02\x19\x1a\ + \r\n\x05\x04\n\x02\x01\x05\x12\x04\xfe\x05\x02\x08\n\r\n\x05\x04\n\x02\ + \x01\x01\x12\x04\xfe\x05\t\x0f\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xfe\ + \x05\x12\x13\n\x97\x01\n\x04\x04\n\x02\x02\x12\x04\x81\x06\x02\x19\x1a\ \x88\x01\x20(optional)\x20Bitset\x20containing\x20`SymbolRole`s\x20in\ \x20this\x20occurrence.\n\x20See\x20`SymbolRole`'s\x20documentation\x20f\ or\x20how\x20to\x20read\x20and\x20write\x20this\x20field.\n\n\r\n\x05\ - \x04\t\x02\x02\x05\x12\x04\x92\x05\x02\x07\n\r\n\x05\x04\t\x02\x02\x01\ - \x12\x04\x92\x05\x08\x14\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\x92\x05\x17\ - \x18\n\xf1\x03\n\x04\x04\t\x02\x03\x12\x04\x9b\x05\x02-\x1a\xe2\x03\x20(\ + \x04\n\x02\x02\x05\x12\x04\x81\x06\x02\x07\n\r\n\x05\x04\n\x02\x02\x01\ + \x12\x04\x81\x06\x08\x14\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\x81\x06\x17\ + \x18\n\xf1\x03\n\x04\x04\n\x02\x03\x12\x04\x8a\x06\x02-\x1a\xe2\x03\x20(\ optional)\x20CommonMark-formatted\x20documentation\x20for\x20this\x20spe\ cific\x20range.\x20If\n\x20empty,\x20the\x20`Symbol.documentation`\x20fi\ eld\x20is\x20used\x20instead.\x20One\x20example\n\x20where\x20this\x20fi\ @@ -5615,20 +6004,20 @@ static file_descriptor_proto_data: &'static [u8] = b"\ e\x20know\x20the\x20exact\x20values\x20(such\x20as\x20`List`).\n\ \n\x20This\x20field\x20can\x20also\x20be\x20used\x20for\x20dynamically\ \x20or\x20gradually\x20typed\x20languages,\n\x20which\x20commonly\x20all\ - ow\x20for\x20type-changing\x20assignment.\n\n\r\n\x05\x04\t\x02\x03\x04\ - \x12\x04\x9b\x05\x02\n\n\r\n\x05\x04\t\x02\x03\x05\x12\x04\x9b\x05\x0b\ - \x11\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\x9b\x05\x12(\n\r\n\x05\x04\t\ - \x02\x03\x03\x12\x04\x9b\x05+,\nX\n\x04\x04\t\x02\x04\x12\x04\x9d\x05\ + ow\x20for\x20type-changing\x20assignment.\n\n\r\n\x05\x04\n\x02\x03\x04\ + \x12\x04\x8a\x06\x02\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\x8a\x06\x0b\ + \x11\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\x8a\x06\x12(\n\r\n\x05\x04\n\ + \x02\x03\x03\x12\x04\x8a\x06+,\nX\n\x04\x04\n\x02\x04\x12\x04\x8c\x06\ \x02\x1d\x1aJ\x20(optional)\x20What\x20syntax\x20highlighting\x20class\ - \x20should\x20be\x20used\x20for\x20this\x20range?\n\n\r\n\x05\x04\t\x02\ - \x04\x06\x12\x04\x9d\x05\x02\x0c\n\r\n\x05\x04\t\x02\x04\x01\x12\x04\x9d\ - \x05\r\x18\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\x9d\x05\x1b\x1c\nW\n\x04\ - \x04\t\x02\x05\x12\x04\x9f\x05\x02&\x1aI\x20(optional)\x20Diagnostics\ + \x20should\x20be\x20used\x20for\x20this\x20range?\n\n\r\n\x05\x04\n\x02\ + \x04\x06\x12\x04\x8c\x06\x02\x0c\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\x8c\ + \x06\r\x18\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\x8c\x06\x1b\x1c\nW\n\x04\ + \x04\n\x02\x05\x12\x04\x8e\x06\x02&\x1aI\x20(optional)\x20Diagnostics\ \x20that\x20have\x20been\x20reported\x20for\x20this\x20specific\x20range\ - .\n\n\r\n\x05\x04\t\x02\x05\x04\x12\x04\x9f\x05\x02\n\n\r\n\x05\x04\t\ - \x02\x05\x06\x12\x04\x9f\x05\x0b\x15\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\ - \x9f\x05\x16!\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\x9f\x05$%\n\xb7\x0e\n\ - \x04\x04\t\x02\x06\x12\x04\xd4\x05\x02%\x1a\xa8\x0e\x20(optional)\x20Usi\ + .\n\n\r\n\x05\x04\n\x02\x05\x04\x12\x04\x8e\x06\x02\n\n\r\n\x05\x04\n\ + \x02\x05\x06\x12\x04\x8e\x06\x0b\x15\n\r\n\x05\x04\n\x02\x05\x01\x12\x04\ + \x8e\x06\x16!\n\r\n\x05\x04\n\x02\x05\x03\x12\x04\x8e\x06$%\n\xb7\x0e\n\ + \x04\x04\n\x02\x06\x12\x04\xc3\x06\x02%\x1a\xa8\x0e\x20(optional)\x20Usi\ ng\x20the\x20same\x20encoding\x20as\x20the\x20sibling\x20`range`\x20fiel\ d,\x20half-open\n\x20source\x20range\x20of\x20the\x20nearest\x20non-triv\ ial\x20enclosing\x20AST\x20node.\x20This\x20range\x20must\n\x20enclose\ @@ -5675,313 +6064,314 @@ static file_descriptor_proto_data: &'static [u8] = b"\ nclosing_range\n\x20const\x20b\x20=\x20a.b(41).f(42).g(43)\n\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^\x20ran\ ge\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^^^^^^^^\x20enclosi\ - ng_range\n\x20```\n\n\r\n\x05\x04\t\x02\x06\x04\x12\x04\xd4\x05\x02\n\n\ - \r\n\x05\x04\t\x02\x06\x05\x12\x04\xd4\x05\x0b\x10\n\r\n\x05\x04\t\x02\ - \x06\x01\x12\x04\xd4\x05\x11\x20\n\r\n\x05\x04\t\x02\x06\x03\x12\x04\xd4\ - \x05#$\nw\n\x02\x04\n\x12\x06\xd9\x05\0\xe4\x05\x01\x1ai\x20Represents\ + ng_range\n\x20```\n\n\r\n\x05\x04\n\x02\x06\x04\x12\x04\xc3\x06\x02\n\n\ + \r\n\x05\x04\n\x02\x06\x05\x12\x04\xc3\x06\x0b\x10\n\r\n\x05\x04\n\x02\ + \x06\x01\x12\x04\xc3\x06\x11\x20\n\r\n\x05\x04\n\x02\x06\x03\x12\x04\xc3\ + \x06#$\nw\n\x02\x04\x0b\x12\x06\xc8\x06\0\xd3\x06\x01\x1ai\x20Represents\ \x20a\x20diagnostic,\x20such\x20as\x20a\x20compiler\x20error\x20or\x20wa\ rning,\x20which\x20should\x20be\n\x20reported\x20for\x20a\x20document.\n\ - \n\x0b\n\x03\x04\n\x01\x12\x04\xd9\x05\x08\x12\nW\n\x04\x04\n\x02\0\x12\ - \x04\xdb\x05\x02\x18\x1aI\x20Should\x20this\x20diagnostic\x20be\x20repor\ - ted\x20as\x20an\x20error,\x20warning,\x20info,\x20or\x20hint?\n\n\r\n\ - \x05\x04\n\x02\0\x06\x12\x04\xdb\x05\x02\n\n\r\n\x05\x04\n\x02\0\x01\x12\ - \x04\xdb\x05\x0b\x13\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xdb\x05\x16\x17\n\ - ]\n\x04\x04\n\x02\x01\x12\x04\xdd\x05\x02\x12\x1aO\x20(optional)\x20Code\ - \x20of\x20this\x20diagnostic,\x20which\x20might\x20appear\x20in\x20the\ - \x20user\x20interface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xdd\x05\x02\ - \x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xdd\x05\t\r\n\r\n\x05\x04\n\x02\ - \x01\x03\x12\x04\xdd\x05\x10\x11\n+\n\x04\x04\n\x02\x02\x12\x04\xdf\x05\ - \x02\x15\x1a\x1d\x20Message\x20of\x20this\x20diagnostic.\n\n\r\n\x05\x04\ - \n\x02\x02\x05\x12\x04\xdf\x05\x02\x08\n\r\n\x05\x04\n\x02\x02\x01\x12\ - \x04\xdf\x05\t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xdf\x05\x13\x14\n\ - ~\n\x04\x04\n\x02\x03\x12\x04\xe2\x05\x02\x14\x1ap\x20(optional)\x20Huma\ - n-readable\x20string\x20describing\x20the\x20source\x20of\x20this\x20dia\ - gnostic,\x20e.g.\n\x20'typescript'\x20or\x20'super\x20lint'.\n\n\r\n\x05\ - \x04\n\x02\x03\x05\x12\x04\xe2\x05\x02\x08\n\r\n\x05\x04\n\x02\x03\x01\ - \x12\x04\xe2\x05\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xe2\x05\x12\ - \x13\n\x0c\n\x04\x04\n\x02\x04\x12\x04\xe3\x05\x02\"\n\r\n\x05\x04\n\x02\ - \x04\x04\x12\x04\xe3\x05\x02\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\xe3\ - \x05\x0b\x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xe3\x05\x19\x1d\n\r\n\ - \x05\x04\n\x02\x04\x03\x12\x04\xe3\x05\x20!\n\x0c\n\x02\x05\x05\x12\x06\ - \xe6\x05\0\xec\x05\x01\n\x0b\n\x03\x05\x05\x01\x12\x04\xe6\x05\x05\r\n\ - \x0c\n\x04\x05\x05\x02\0\x12\x04\xe7\x05\x02\x1a\n\r\n\x05\x05\x05\x02\0\ - \x01\x12\x04\xe7\x05\x02\x15\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\xe7\x05\ - \x18\x19\n\x0c\n\x04\x05\x05\x02\x01\x12\x04\xe8\x05\x02\x0c\n\r\n\x05\ - \x05\x05\x02\x01\x01\x12\x04\xe8\x05\x02\x07\n\r\n\x05\x05\x05\x02\x01\ - \x02\x12\x04\xe8\x05\n\x0b\n\x0c\n\x04\x05\x05\x02\x02\x12\x04\xe9\x05\ - \x02\x0e\n\r\n\x05\x05\x05\x02\x02\x01\x12\x04\xe9\x05\x02\t\n\r\n\x05\ - \x05\x05\x02\x02\x02\x12\x04\xe9\x05\x0c\r\n\x0c\n\x04\x05\x05\x02\x03\ - \x12\x04\xea\x05\x02\x12\n\r\n\x05\x05\x05\x02\x03\x01\x12\x04\xea\x05\ - \x02\r\n\r\n\x05\x05\x05\x02\x03\x02\x12\x04\xea\x05\x10\x11\n\x0c\n\x04\ - \x05\x05\x02\x04\x12\x04\xeb\x05\x02\x0b\n\r\n\x05\x05\x05\x02\x04\x01\ - \x12\x04\xeb\x05\x02\x06\n\r\n\x05\x05\x05\x02\x04\x02\x12\x04\xeb\x05\t\ - \n\n\x0c\n\x02\x05\x06\x12\x06\xee\x05\0\xf2\x05\x01\n\x0b\n\x03\x05\x06\ - \x01\x12\x04\xee\x05\x05\x12\n\x0c\n\x04\x05\x06\x02\0\x12\x04\xef\x05\ - \x02\x1f\n\r\n\x05\x05\x06\x02\0\x01\x12\x04\xef\x05\x02\x1a\n\r\n\x05\ - \x05\x06\x02\0\x02\x12\x04\xef\x05\x1d\x1e\n\x0c\n\x04\x05\x06\x02\x01\ - \x12\x04\xf0\x05\x02\x12\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xf0\x05\ - \x02\r\n\r\n\x05\x05\x06\x02\x01\x02\x12\x04\xf0\x05\x10\x11\n\x0c\n\x04\ - \x05\x06\x02\x02\x12\x04\xf1\x05\x02\x11\n\r\n\x05\x05\x06\x02\x02\x01\ - \x12\x04\xf1\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\xf1\x05\ - \x0f\x10\n\xd0\x03\n\x02\x05\x07\x12\x06\xfa\x05\0\xf0\x06\x01\x1a\xc1\ - \x03\x20Language\x20standardises\x20names\x20of\x20common\x20programming\ - \x20languages\x20that\x20can\x20be\x20used\n\x20for\x20the\x20`Document.\ - language`\x20field.\x20The\x20primary\x20purpose\x20of\x20this\x20enum\ - \x20is\x20to\n\x20prevent\x20a\x20situation\x20where\x20we\x20have\x20a\ - \x20single\x20programming\x20language\x20ends\x20up\x20with\n\x20multipl\ - e\x20string\x20representations.\x20For\x20example,\x20the\x20C++\x20lang\ - uage\x20uses\x20the\x20name\n\x20\"CPP\"\x20in\x20this\x20enum\x20and\ - \x20other\x20names\x20such\x20as\x20\"cpp\"\x20are\x20incompatible.\n\ - \x20Feel\x20free\x20to\x20send\x20a\x20pull-request\x20to\x20add\x20miss\ - ing\x20programming\x20languages.\n\n\x0b\n\x03\x05\x07\x01\x12\x04\xfa\ - \x05\x05\r\n\x0c\n\x04\x05\x07\x02\0\x12\x04\xfb\x05\x02\x1a\n\r\n\x05\ - \x05\x07\x02\0\x01\x12\x04\xfb\x05\x02\x15\n\r\n\x05\x05\x07\x02\0\x02\ - \x12\x04\xfb\x05\x18\x19\n\x0c\n\x04\x05\x07\x02\x01\x12\x04\xfc\x05\x02\ - \x0c\n\r\n\x05\x05\x07\x02\x01\x01\x12\x04\xfc\x05\x02\x06\n\r\n\x05\x05\ - \x07\x02\x01\x02\x12\x04\xfc\x05\t\x0b\n\x0c\n\x04\x05\x07\x02\x02\x12\ - \x04\xfd\x05\x02\x0c\n\r\n\x05\x05\x07\x02\x02\x01\x12\x04\xfd\x05\x02\ - \x06\n\r\n\x05\x05\x07\x02\x02\x02\x12\x04\xfd\x05\t\x0b\n\x0c\n\x04\x05\ - \x07\x02\x03\x12\x04\xfe\x05\x02\x0b\n\r\n\x05\x05\x07\x02\x03\x01\x12\ - \x04\xfe\x05\x02\x05\n\r\n\x05\x05\x07\x02\x03\x02\x12\x04\xfe\x05\x08\n\ - \n\x0c\n\x04\x05\x07\x02\x04\x12\x04\xff\x05\x02\x0b\n\r\n\x05\x05\x07\ - \x02\x04\x01\x12\x04\xff\x05\x02\x05\n\r\n\x05\x05\x07\x02\x04\x02\x12\ - \x04\xff\x05\x08\n\n\x0c\n\x04\x05\x07\x02\x05\x12\x04\x80\x06\x02\x0c\n\ - \r\n\x05\x05\x07\x02\x05\x01\x12\x04\x80\x06\x02\x06\n\r\n\x05\x05\x07\ - \x02\x05\x02\x12\x04\x80\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x06\x12\x04\ - \x81\x06\x02\x10\n\r\n\x05\x05\x07\x02\x06\x01\x12\x04\x81\x06\x02\n\n\r\ - \n\x05\x05\x07\x02\x06\x02\x12\x04\x81\x06\r\x0f\n\x0c\n\x04\x05\x07\x02\ - \x07\x12\x04\x82\x06\x02\x10\n\r\n\x05\x05\x07\x02\x07\x01\x12\x04\x82\ - \x06\x02\n\n\r\n\x05\x05\x07\x02\x07\x02\x12\x04\x82\x06\r\x0f\n\x0c\n\ - \x04\x05\x07\x02\x08\x12\x04\x83\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x08\ - \x01\x12\x04\x83\x06\x02\x05\n\r\n\x05\x05\x07\x02\x08\x02\x12\x04\x83\ - \x06\x08\n\n\x0c\n\x04\x05\x07\x02\t\x12\x04\x84\x06\x02\x0b\n\r\n\x05\ - \x05\x07\x02\t\x01\x12\x04\x84\x06\x02\x05\n\r\n\x05\x05\x07\x02\t\x02\ - \x12\x04\x84\x06\x08\n\n\x0c\n\x04\x05\x07\x02\n\x12\x04\x85\x06\x02\x0e\ - \n\r\n\x05\x05\x07\x02\n\x01\x12\x04\x85\x06\x02\x08\n\r\n\x05\x05\x07\ - \x02\n\x02\x12\x04\x85\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x0b\x12\x04\x86\ - \x06\x02\t\n\r\n\x05\x05\x07\x02\x0b\x01\x12\x04\x86\x06\x02\x03\n\r\n\ - \x05\x05\x07\x02\x0b\x02\x12\x04\x86\x06\x06\x08\n\x0c\n\x04\x05\x07\x02\ - \x0c\x12\x04\x87\x06\x02\r\n\r\n\x05\x05\x07\x02\x0c\x01\x12\x04\x87\x06\ - \x02\x07\n\r\n\x05\x05\x07\x02\x0c\x02\x12\x04\x87\x06\n\x0c\nH\n\x04\ - \x05\x07\x02\r\x12\x04\x88\x06\x02\x0b\":\x20C++\x20(the\x20name\x20\"CP\ - P\"\x20was\x20chosen\x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\ - \x05\x07\x02\r\x01\x12\x04\x88\x06\x02\x05\n\r\n\x05\x05\x07\x02\r\x02\ - \x12\x04\x88\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x0e\x12\x04\x89\x06\x02\ - \x0b\n\r\n\x05\x05\x07\x02\x0e\x01\x12\x04\x89\x06\x02\x05\n\r\n\x05\x05\ - \x07\x02\x0e\x02\x12\x04\x89\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x0f\x12\ - \x04\x8a\x06\x02\r\n\r\n\x05\x05\x07\x02\x0f\x01\x12\x04\x8a\x06\x02\x08\ - \n\r\n\x05\x05\x07\x02\x0f\x02\x12\x04\x8a\x06\x0b\x0c\n\x0c\n\x04\x05\ - \x07\x02\x10\x12\x04\x8b\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x10\x01\x12\ - \x04\x8b\x06\x02\t\n\r\n\x05\x05\x07\x02\x10\x02\x12\x04\x8b\x06\x0c\r\n\ - \x0c\n\x04\x05\x07\x02\x11\x12\x04\x8c\x06\x02\x14\n\r\n\x05\x05\x07\x02\ - \x11\x01\x12\x04\x8c\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x11\x02\x12\x04\ - \x8c\x06\x11\x13\n\x0c\n\x04\x05\x07\x02\x12\x12\x04\x8d\x06\x02\x11\n\r\ - \n\x05\x05\x07\x02\x12\x01\x12\x04\x8d\x06\x02\x0c\n\r\n\x05\x05\x07\x02\ - \x12\x02\x12\x04\x8d\x06\x0f\x10\n\x0c\n\x04\x05\x07\x02\x13\x12\x04\x8e\ - \x06\x02\x0b\n\r\n\x05\x05\x07\x02\x13\x01\x12\x04\x8e\x06\x02\x05\n\r\n\ - \x05\x05\x07\x02\x13\x02\x12\x04\x8e\x06\x08\n\n\x0c\n\x04\x05\x07\x02\ - \x14\x12\x04\x8f\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x14\x01\x12\x04\x8f\ - \x06\x02\x06\n\r\n\x05\x05\x07\x02\x14\x02\x12\x04\x8f\x06\t\x0b\n\x0c\n\ - \x04\x05\x07\x02\x15\x12\x04\x90\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x15\ - \x01\x12\x04\x90\x06\x02\x06\n\r\n\x05\x05\x07\x02\x15\x02\x12\x04\x90\ - \x06\t\n\n\x0c\n\x04\x05\x07\x02\x16\x12\x04\x91\x06\x02\x0e\n\r\n\x05\ - \x05\x07\x02\x16\x01\x12\x04\x91\x06\x02\x08\n\r\n\x05\x05\x07\x02\x16\ - \x02\x12\x04\x91\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x17\x12\x04\x92\x06\ - \x02\x0c\n\r\n\x05\x05\x07\x02\x17\x01\x12\x04\x92\x06\x02\x06\n\r\n\x05\ - \x05\x07\x02\x17\x02\x12\x04\x92\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x18\ - \x12\x04\x93\x06\x02\x12\n\r\n\x05\x05\x07\x02\x18\x01\x12\x04\x93\x06\ - \x02\x0c\n\r\n\x05\x05\x07\x02\x18\x02\x12\x04\x93\x06\x0f\x11\n\x0c\n\ - \x04\x05\x07\x02\x19\x12\x04\x94\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x19\ - \x01\x12\x04\x94\x06\x02\x08\n\r\n\x05\x05\x07\x02\x19\x02\x12\x04\x94\ - \x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x1a\x12\x04\x95\x06\x02\x0e\n\r\n\x05\ - \x05\x07\x02\x1a\x01\x12\x04\x95\x06\x02\x08\n\r\n\x05\x05\x07\x02\x1a\ - \x02\x12\x04\x95\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x1b\x12\x04\x96\x06\ - \x02\x0e\n\r\n\x05\x05\x07\x02\x1b\x01\x12\x04\x96\x06\x02\x08\n\r\n\x05\ - \x05\x07\x02\x1b\x02\x12\x04\x96\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x1c\ - \x12\x04\x97\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x1c\x01\x12\x04\x97\x06\ - \x02\x08\n\r\n\x05\x05\x07\x02\x1c\x02\x12\x04\x97\x06\x0b\r\n\x0c\n\x04\ - \x05\x07\x02\x1d\x12\x04\x98\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x1d\x01\ - \x12\x04\x98\x06\x02\x06\n\r\n\x05\x05\x07\x02\x1d\x02\x12\x04\x98\x06\t\ - \x0b\n\x0c\n\x04\x05\x07\x02\x1e\x12\x04\x99\x06\x02\x0c\n\r\n\x05\x05\ - \x07\x02\x1e\x01\x12\x04\x99\x06\x02\x06\n\r\n\x05\x05\x07\x02\x1e\x02\ - \x12\x04\x99\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x1f\x12\x04\x9a\x06\x02\ - \x0f\n\r\n\x05\x05\x07\x02\x1f\x01\x12\x04\x9a\x06\x02\t\n\r\n\x05\x05\ - \x07\x02\x1f\x02\x12\x04\x9a\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02\x20\x12\ - \x04\x9b\x06\x02\x12\n\r\n\x05\x05\x07\x02\x20\x01\x12\x04\x9b\x06\x02\ - \x0c\n\r\n\x05\x05\x07\x02\x20\x02\x12\x04\x9b\x06\x0f\x11\n\x0c\n\x04\ - \x05\x07\x02!\x12\x04\x9c\x06\x02\x12\n\r\n\x05\x05\x07\x02!\x01\x12\x04\ - \x9c\x06\x02\x0c\n\r\n\x05\x05\x07\x02!\x02\x12\x04\x9c\x06\x0f\x11\n\ - \x0c\n\x04\x05\x07\x02\"\x12\x04\x9d\x06\x02\x12\n\r\n\x05\x05\x07\x02\"\ - \x01\x12\x04\x9d\x06\x02\x0c\n\r\n\x05\x05\x07\x02\"\x02\x12\x04\x9d\x06\ - \x0f\x11\n\x0c\n\x04\x05\x07\x02#\x12\x04\x9e\x06\x02\n\n\r\n\x05\x05\ - \x07\x02#\x01\x12\x04\x9e\x06\x02\x04\n\r\n\x05\x05\x07\x02#\x02\x12\x04\ - \x9e\x06\x07\t\n\x0c\n\x04\x05\x07\x02$\x12\x04\x9f\x06\x02\x0f\n\r\n\ - \x05\x05\x07\x02$\x01\x12\x04\x9f\x06\x02\t\n\r\n\x05\x05\x07\x02$\x02\ - \x12\x04\x9f\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02%\x12\x04\xa0\x06\x02\r\ - \n\r\n\x05\x05\x07\x02%\x01\x12\x04\xa0\x06\x02\x08\n\r\n\x05\x05\x07\ - \x02%\x02\x12\x04\xa0\x06\x0b\x0c\n\x0c\n\x04\x05\x07\x02&\x12\x04\xa1\ - \x06\x02\x0c\n\r\n\x05\x05\x07\x02&\x01\x12\x04\xa1\x06\x02\x06\n\r\n\ - \x05\x05\x07\x02&\x02\x12\x04\xa1\x06\t\x0b\n\x0c\n\x04\x05\x07\x02'\x12\ - \x04\xa2\x06\x02\x0c\n\r\n\x05\x05\x07\x02'\x01\x12\x04\xa2\x06\x02\x06\ - \n\r\n\x05\x05\x07\x02'\x02\x12\x04\xa2\x06\t\x0b\n\x0c\n\x04\x05\x07\ - \x02(\x12\x04\xa3\x06\x02\x12\n\r\n\x05\x05\x07\x02(\x01\x12\x04\xa3\x06\ - \x02\x0c\n\r\n\x05\x05\x07\x02(\x02\x12\x04\xa3\x06\x0f\x11\n\x0c\n\x04\ - \x05\x07\x02)\x12\x04\xa4\x06\x02\x0f\n\r\n\x05\x05\x07\x02)\x01\x12\x04\ - \xa4\x06\x02\t\n\r\n\x05\x05\x07\x02)\x02\x12\x04\xa4\x06\x0c\x0e\n\x0c\ - \n\x04\x05\x07\x02*\x12\x04\xa5\x06\x02\r\n\r\n\x05\x05\x07\x02*\x01\x12\ - \x04\xa5\x06\x02\x07\n\r\n\x05\x05\x07\x02*\x02\x12\x04\xa5\x06\n\x0c\n\ - \x0c\n\x04\x05\x07\x02+\x12\x04\xa6\x06\x02\x0b\n\r\n\x05\x05\x07\x02+\ - \x01\x12\x04\xa6\x06\x02\x05\n\r\n\x05\x05\x07\x02+\x02\x12\x04\xa6\x06\ - \x08\n\n\x0c\n\x04\x05\x07\x02,\x12\x04\xa7\x06\x02\t\n\r\n\x05\x05\x07\ - \x02,\x01\x12\x04\xa7\x06\x02\x03\n\r\n\x05\x05\x07\x02,\x02\x12\x04\xa7\ - \x06\x06\x08\n\x0c\n\x04\x05\x07\x02-\x12\x04\xa8\x06\x02\x0c\n\r\n\x05\ - \x05\x07\x02-\x01\x12\x04\xa8\x06\x02\x06\n\r\n\x05\x05\x07\x02-\x02\x12\ - \x04\xa8\x06\t\x0b\n\x0c\n\x04\x05\x07\x02.\x12\x04\xa9\x06\x02\x0b\n\r\ - \n\x05\x05\x07\x02.\x01\x12\x04\xa9\x06\x02\x06\n\r\n\x05\x05\x07\x02.\ - \x02\x12\x04\xa9\x06\t\n\n\x0c\n\x04\x05\x07\x02/\x12\x04\xaa\x06\x02\ - \x12\n\r\n\x05\x05\x07\x02/\x01\x12\x04\xaa\x06\x02\x0c\n\r\n\x05\x05\ - \x07\x02/\x02\x12\x04\xaa\x06\x0f\x11\n\x0c\n\x04\x05\x07\x020\x12\x04\ - \xab\x06\x02\x17\n\r\n\x05\x05\x07\x020\x01\x12\x04\xab\x06\x02\x11\n\r\ - \n\x05\x05\x07\x020\x02\x12\x04\xab\x06\x14\x16\n\x0c\n\x04\x05\x07\x021\ - \x12\x04\xac\x06\x02\x0f\n\r\n\x05\x05\x07\x021\x01\x12\x04\xac\x06\x02\ - \t\n\r\n\x05\x05\x07\x021\x02\x12\x04\xac\x06\x0c\x0e\n\x0c\n\x04\x05\ - \x07\x022\x12\x04\xad\x06\x02\x0e\n\r\n\x05\x05\x07\x022\x01\x12\x04\xad\ - \x06\x02\x07\n\r\n\x05\x05\x07\x022\x02\x12\x04\xad\x06\x0b\r\n\x0c\n\ - \x04\x05\x07\x023\x12\x04\xae\x06\x02\x11\n\r\n\x05\x05\x07\x023\x01\x12\ - \x04\xae\x06\x02\n\n\r\n\x05\x05\x07\x023\x02\x12\x04\xae\x06\r\x10\n\ - \x0c\n\x04\x05\x07\x024\x12\x04\xaf\x06\x02\r\n\r\n\x05\x05\x07\x024\x01\ - \x12\x04\xaf\x06\x02\x08\n\r\n\x05\x05\x07\x024\x02\x12\x04\xaf\x06\x0b\ - \x0c\n\x0c\n\x04\x05\x07\x025\x12\x04\xb0\x06\x02\r\n\r\n\x05\x05\x07\ - \x025\x01\x12\x04\xb0\x06\x02\x07\n\r\n\x05\x05\x07\x025\x02\x12\x04\xb0\ - \x06\n\x0c\n\x0c\n\x04\x05\x07\x026\x12\x04\xb1\x06\x02\x0c\n\r\n\x05\ - \x05\x07\x026\x01\x12\x04\xb1\x06\x02\x06\n\r\n\x05\x05\x07\x026\x02\x12\ - \x04\xb1\x06\t\x0b\n\x0c\n\x04\x05\x07\x027\x12\x04\xb2\x06\x02\x0c\n\r\ - \n\x05\x05\x07\x027\x01\x12\x04\xb2\x06\x02\x06\n\r\n\x05\x05\x07\x027\ - \x02\x12\x04\xb2\x06\t\x0b\n\x0c\n\x04\x05\x07\x028\x12\x04\xb3\x06\x02\ - \x0b\n\r\n\x05\x05\x07\x028\x01\x12\x04\xb3\x06\x02\x05\n\r\n\x05\x05\ - \x07\x028\x02\x12\x04\xb3\x06\x08\n\n\x0c\n\x04\x05\x07\x029\x12\x04\xb4\ - \x06\x02\r\n\r\n\x05\x05\x07\x029\x01\x12\x04\xb4\x06\x02\x06\n\r\n\x05\ - \x05\x07\x029\x02\x12\x04\xb4\x06\t\x0c\n\x0c\n\x04\x05\x07\x02:\x12\x04\ - \xb5\x06\x02\x10\n\r\n\x05\x05\x07\x02:\x01\x12\x04\xb5\x06\x02\n\n\r\n\ - \x05\x05\x07\x02:\x02\x12\x04\xb5\x06\r\x0f\n\x0c\n\x04\x05\x07\x02;\x12\ - \x04\xb6\x06\x02\x10\n\r\n\x05\x05\x07\x02;\x01\x12\x04\xb6\x06\x02\n\n\ - \r\n\x05\x05\x07\x02;\x02\x12\x04\xb6\x06\r\x0f\n\x0c\n\x04\x05\x07\x02<\ - \x12\x04\xb7\x06\x02\x0e\n\r\n\x05\x05\x07\x02<\x01\x12\x04\xb7\x06\x02\ - \x08\n\r\n\x05\x05\x07\x02<\x02\x12\x04\xb7\x06\x0b\r\n(\n\x04\x05\x07\ - \x02=\x12\x04\xb8\x06\x02\x0f\"\x1a\x20https://nickel-lang.org/\n\n\r\n\ - \x05\x05\x07\x02=\x01\x12\x04\xb8\x06\x02\x08\n\r\n\x05\x05\x07\x02=\x02\ - \x12\x04\xb8\x06\x0b\x0e\n\x0c\n\x04\x05\x07\x02>\x12\x04\xb9\x06\x02\ - \x0b\n\r\n\x05\x05\x07\x02>\x01\x12\x04\xb9\x06\x02\x05\n\r\n\x05\x05\ - \x07\x02>\x02\x12\x04\xb9\x06\x08\n\n\x0c\n\x04\x05\x07\x02?\x12\x04\xba\ - \x06\x02\r\n\r\n\x05\x05\x07\x02?\x01\x12\x04\xba\x06\x02\x07\n\r\n\x05\ - \x05\x07\x02?\x02\x12\x04\xba\x06\n\x0c\n\x0c\n\x04\x05\x07\x02@\x12\x04\ - \xbb\x06\x02\x13\n\r\n\x05\x05\x07\x02@\x01\x12\x04\xbb\x06\x02\r\n\r\n\ - \x05\x05\x07\x02@\x02\x12\x04\xbb\x06\x10\x12\n\x0c\n\x04\x05\x07\x02A\ - \x12\x04\xbc\x06\x02\x15\n\r\n\x05\x05\x07\x02A\x01\x12\x04\xbc\x06\x02\ - \x0f\n\r\n\x05\x05\x07\x02A\x02\x12\x04\xbc\x06\x12\x14\n\x0c\n\x04\x05\ - \x07\x02B\x12\x04\xbd\x06\x02\x0e\n\r\n\x05\x05\x07\x02B\x01\x12\x04\xbd\ - \x06\x02\x08\n\r\n\x05\x05\x07\x02B\x02\x12\x04\xbd\x06\x0b\r\n\x0c\n\ - \x04\x05\x07\x02C\x12\x04\xbe\x06\x02\x0b\n\r\n\x05\x05\x07\x02C\x01\x12\ - \x04\xbe\x06\x02\x05\n\r\n\x05\x05\x07\x02C\x02\x12\x04\xbe\x06\x08\n\n\ - \x0c\n\x04\x05\x07\x02D\x12\x04\xbf\x06\x02\r\n\r\n\x05\x05\x07\x02D\x01\ - \x12\x04\xbf\x06\x02\x07\n\r\n\x05\x05\x07\x02D\x02\x12\x04\xbf\x06\n\ - \x0c\n\x0c\n\x04\x05\x07\x02E\x12\x04\xc0\x06\x02\x0c\n\r\n\x05\x05\x07\ - \x02E\x01\x12\x04\xc0\x06\x02\x06\n\r\n\x05\x05\x07\x02E\x02\x12\x04\xc0\ - \x06\t\x0b\n\x0c\n\x04\x05\x07\x02F\x12\x04\xc1\x06\x02\x12\n\r\n\x05\ - \x05\x07\x02F\x01\x12\x04\xc1\x06\x02\x0c\n\r\n\x05\x05\x07\x02F\x02\x12\ - \x04\xc1\x06\x0f\x11\n\x0c\n\x04\x05\x07\x02G\x12\x04\xc2\x06\x02\x0e\n\ - \r\n\x05\x05\x07\x02G\x01\x12\x04\xc2\x06\x02\x08\n\r\n\x05\x05\x07\x02G\ - \x02\x12\x04\xc2\x06\x0b\r\n\x0c\n\x04\x05\x07\x02H\x12\x04\xc3\x06\x02\ - \x11\n\r\n\x05\x05\x07\x02H\x01\x12\x04\xc3\x06\x02\n\n\r\n\x05\x05\x07\ - \x02H\x02\x12\x04\xc3\x06\r\x10\n\x0c\n\x04\x05\x07\x02I\x12\x04\xc4\x06\ - \x02\x0e\n\r\n\x05\x05\x07\x02I\x01\x12\x04\xc4\x06\x02\x08\n\r\n\x05\ - \x05\x07\x02I\x02\x12\x04\xc4\x06\x0b\r\n\x0c\n\x04\x05\x07\x02J\x12\x04\ - \xc5\x06\x02\t\n\r\n\x05\x05\x07\x02J\x01\x12\x04\xc5\x06\x02\x03\n\r\n\ - \x05\x05\x07\x02J\x02\x12\x04\xc5\x06\x06\x08\n\x0c\n\x04\x05\x07\x02K\ - \x12\x04\xc6\x06\x02\x0e\n\r\n\x05\x05\x07\x02K\x01\x12\x04\xc6\x06\x02\ - \x08\n\r\n\x05\x05\x07\x02K\x02\x12\x04\xc6\x06\x0b\r\n\x0c\n\x04\x05\ - \x07\x02L\x12\x04\xc7\x06\x02\x0c\n\r\n\x05\x05\x07\x02L\x01\x12\x04\xc7\ - \x06\x02\x06\n\r\n\x05\x05\x07\x02L\x02\x12\x04\xc7\x06\t\x0b\n\x0c\n\ - \x04\x05\x07\x02M\x12\x04\xc8\x06\x02\r\n\r\n\x05\x05\x07\x02M\x01\x12\ - \x04\xc8\x06\x02\x07\n\r\n\x05\x05\x07\x02M\x02\x12\x04\xc8\x06\n\x0c\n2\ - \n\x04\x05\x07\x02N\x12\x04\xc9\x06\x02\x0e\"$\x20Internal\x20language\ - \x20for\x20testing\x20SCIP\n\n\r\n\x05\x05\x07\x02N\x01\x12\x04\xc9\x06\ - \x02\x07\n\r\n\x05\x05\x07\x02N\x02\x12\x04\xc9\x06\n\r\n\x0c\n\x04\x05\ - \x07\x02O\x12\x04\xca\x06\x02\x0c\n\r\n\x05\x05\x07\x02O\x01\x12\x04\xca\ - \x06\x02\x06\n\r\n\x05\x05\x07\x02O\x02\x12\x04\xca\x06\t\x0b\n\x0c\n\ - \x04\x05\x07\x02P\x12\x04\xcb\x06\x02\x0c\n\r\n\x05\x05\x07\x02P\x01\x12\ - \x04\xcb\x06\x02\x06\n\r\n\x05\x05\x07\x02P\x02\x12\x04\xcb\x06\t\x0b\n\ - \x0c\n\x04\x05\x07\x02Q\x12\x04\xcc\x06\x02\x0c\n\r\n\x05\x05\x07\x02Q\ - \x01\x12\x04\xcc\x06\x02\x06\n\r\n\x05\x05\x07\x02Q\x02\x12\x04\xcc\x06\ - \t\x0b\n\x0c\n\x04\x05\x07\x02R\x12\x04\xcd\x06\x02\x0b\n\r\n\x05\x05\ - \x07\x02R\x01\x12\x04\xcd\x06\x02\x05\n\r\n\x05\x05\x07\x02R\x02\x12\x04\ - \xcd\x06\x08\n\n\x0c\n\x04\x05\x07\x02S\x12\x04\xce\x06\x02\x0c\n\r\n\ - \x05\x05\x07\x02S\x01\x12\x04\xce\x06\x02\x06\n\r\n\x05\x05\x07\x02S\x02\ - \x12\x04\xce\x06\t\x0b\n\x0c\n\x04\x05\x07\x02T\x12\x04\xcf\x06\x02\x0b\ - \n\r\n\x05\x05\x07\x02T\x01\x12\x04\xcf\x06\x02\x05\n\r\n\x05\x05\x07\ - \x02T\x02\x12\x04\xcf\x06\x08\n\n\x0c\n\x04\x05\x07\x02U\x12\x04\xd0\x06\ - \x02\x0b\n\r\n\x05\x05\x07\x02U\x01\x12\x04\xd0\x06\x02\x05\n\r\n\x05\ - \x05\x07\x02U\x02\x12\x04\xd0\x06\x08\n\n\x0c\n\x04\x05\x07\x02V\x12\x04\ - \xd1\x06\x02\x0c\n\r\n\x05\x05\x07\x02V\x01\x12\x04\xd1\x06\x02\x06\n\r\ - \n\x05\x05\x07\x02V\x02\x12\x04\xd1\x06\t\x0b\n\x0c\n\x04\x05\x07\x02W\ - \x12\x04\xd2\x06\x02\x0c\n\r\n\x05\x05\x07\x02W\x01\x12\x04\xd2\x06\x02\ - \x07\n\r\n\x05\x05\x07\x02W\x02\x12\x04\xd2\x06\n\x0b\n\x0c\n\x04\x05\ - \x07\x02X\x12\x04\xd3\x06\x02\x0e\n\r\n\x05\x05\x07\x02X\x01\x12\x04\xd3\ - \x06\x02\x08\n\r\n\x05\x05\x07\x02X\x02\x12\x04\xd3\x06\x0b\r\n\x14\n\ - \x04\x05\x07\x02Y\x12\x04\xd4\x06\x02\x13\"\x06\x20Bash\n\n\r\n\x05\x05\ - \x07\x02Y\x01\x12\x04\xd4\x06\x02\r\n\r\n\x05\x05\x07\x02Y\x02\x12\x04\ - \xd4\x06\x10\x12\n\x0c\n\x04\x05\x07\x02Z\x12\x04\xd5\x06\x02\x0f\n\r\n\ - \x05\x05\x07\x02Z\x01\x12\x04\xd5\x06\x02\t\n\r\n\x05\x05\x07\x02Z\x02\ - \x12\x04\xd5\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02[\x12\x04\xd6\x06\x02\ - \x0e\n\r\n\x05\x05\x07\x02[\x01\x12\x04\xd6\x06\x02\x07\n\r\n\x05\x05\ - \x07\x02[\x02\x12\x04\xd6\x06\n\r\n\x0c\n\x04\x05\x07\x02\\\x12\x04\xd7\ - \x06\x02\x10\n\r\n\x05\x05\x07\x02\\\x01\x12\x04\xd7\x06\x02\n\n\r\n\x05\ - \x05\x07\x02\\\x02\x12\x04\xd7\x06\r\x0f\n\x0c\n\x04\x05\x07\x02]\x12\ - \x04\xd8\x06\x02\x0f\n\r\n\x05\x05\x07\x02]\x01\x12\x04\xd8\x06\x02\x08\ - \n\r\n\x05\x05\x07\x02]\x02\x12\x04\xd8\x06\x0b\x0e\n\x0c\n\x04\x05\x07\ - \x02^\x12\x04\xd9\x06\x02\x0c\n\r\n\x05\x05\x07\x02^\x01\x12\x04\xd9\x06\ - \x02\x07\n\r\n\x05\x05\x07\x02^\x02\x12\x04\xd9\x06\n\x0b\n\x0c\n\x04\ - \x05\x07\x02_\x12\x04\xda\x06\x02\x0c\n\r\n\x05\x05\x07\x02_\x01\x12\x04\ - \xda\x06\x02\x05\n\r\n\x05\x05\x07\x02_\x02\x12\x04\xda\x06\x08\x0b\n\ - \x0c\n\x04\x05\x07\x02`\x12\x04\xdb\x06\x02\x0c\n\r\n\x05\x05\x07\x02`\ - \x01\x12\x04\xdb\x06\x02\x06\n\r\n\x05\x05\x07\x02`\x02\x12\x04\xdb\x06\ - \t\x0b\n\x0c\n\x04\x05\x07\x02a\x12\x04\xdc\x06\x02\x0b\n\r\n\x05\x05\ - \x07\x02a\x01\x12\x04\xdc\x06\x02\x05\n\r\n\x05\x05\x07\x02a\x02\x12\x04\ - \xdc\x06\x08\n\n\x0c\n\x04\x05\x07\x02b\x12\x04\xdd\x06\x02\x0f\n\r\n\ - \x05\x05\x07\x02b\x01\x12\x04\xdd\x06\x02\x08\n\r\n\x05\x05\x07\x02b\x02\ - \x12\x04\xdd\x06\x0b\x0e\n\x0c\n\x04\x05\x07\x02c\x12\x04\xde\x06\x02\ - \x12\n\r\n\x05\x05\x07\x02c\x01\x12\x04\xde\x06\x02\x0c\n\r\n\x05\x05\ - \x07\x02c\x02\x12\x04\xde\x06\x0f\x11\n\x0c\n\x04\x05\x07\x02d\x12\x04\ - \xdf\x06\x02\x17\n\r\n\x05\x05\x07\x02d\x01\x12\x04\xdf\x06\x02\x11\n\r\ - \n\x05\x05\x07\x02d\x02\x12\x04\xdf\x06\x14\x16\n\x0c\n\x04\x05\x07\x02e\ - \x12\x04\xe0\x06\x02\x10\n\r\n\x05\x05\x07\x02e\x01\x12\x04\xe0\x06\x02\ - \t\n\r\n\x05\x05\x07\x02e\x02\x12\x04\xe0\x06\x0c\x0f\n\x0c\n\x04\x05\ - \x07\x02f\x12\x04\xe1\x06\x02\r\n\r\n\x05\x05\x07\x02f\x01\x12\x04\xe1\ - \x06\x02\x06\n\r\n\x05\x05\x07\x02f\x02\x12\x04\xe1\x06\t\x0c\n\x0c\n\ - \x04\x05\x07\x02g\x12\x04\xe2\x06\x02\x13\n\r\n\x05\x05\x07\x02g\x01\x12\ - \x04\xe2\x06\x02\r\n\r\n\x05\x05\x07\x02g\x02\x12\x04\xe2\x06\x10\x12\n\ - \x0c\n\x04\x05\x07\x02h\x12\x04\xe3\x06\x02\x0b\n\r\n\x05\x05\x07\x02h\ - \x01\x12\x04\xe3\x06\x02\x05\n\r\n\x05\x05\x07\x02h\x02\x12\x04\xe3\x06\ - \x08\n\n\x0c\n\x04\x05\x07\x02i\x12\x04\xe4\x06\x02\x0f\n\r\n\x05\x05\ - \x07\x02i\x01\x12\x04\xe4\x06\x02\t\n\r\n\x05\x05\x07\x02i\x02\x12\x04\ - \xe4\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02j\x12\x04\xe5\x06\x02\x0b\n\r\n\ - \x05\x05\x07\x02j\x01\x12\x04\xe5\x06\x02\x05\n\r\n\x05\x05\x07\x02j\x02\ - \x12\x04\xe5\x06\x08\n\n\x0c\n\x04\x05\x07\x02k\x12\x04\xe6\x06\x02\x0b\ - \n\r\n\x05\x05\x07\x02k\x01\x12\x04\xe6\x06\x02\x05\n\r\n\x05\x05\x07\ - \x02k\x02\x12\x04\xe6\x06\x08\n\n\x0c\n\x04\x05\x07\x02l\x12\x04\xe7\x06\ - \x02\x0c\n\r\n\x05\x05\x07\x02l\x01\x12\x04\xe7\x06\x02\x06\n\r\n\x05\ - \x05\x07\x02l\x02\x12\x04\xe7\x06\t\x0b\n\x93\x03\n\x04\x05\x07\x02m\x12\ - \x04\xe8\x06\x02\x0b\"\x84\x03\x20NextLanguage\x20=\x20111;\n\x20Steps\ - \x20add\x20a\x20new\x20language:\n\x201.\x20Copy-paste\x20the\x20\"NextL\ - anguage\x20=\x20N\"\x20line\x20above\n\x202.\x20Increment\x20\"NextLangu\ - age\x20=\x20N\"\x20to\x20\"NextLanguage\x20=\x20N+1\"\n\x203.\x20Replace\ - \x20\"NextLanguage\x20=\x20N\"\x20with\x20the\x20name\x20of\x20the\x20ne\ - w\x20language.\n\x204.\x20Move\x20the\x20new\x20language\x20to\x20the\ - \x20correct\x20line\x20above\x20using\x20alphabetical\x20order\n\x205.\ - \x20(optional)\x20Add\x20a\x20brief\x20comment\x20behind\x20the\x20langu\ - age\x20if\x20the\x20name\x20is\x20not\x20self-explanatory\n\n\r\n\x05\ - \x05\x07\x02m\x01\x12\x04\xe8\x06\x02\x05\n\r\n\x05\x05\x07\x02m\x02\x12\ - \x04\xe8\x06\x08\nb\x06proto3\ + \n\x0b\n\x03\x04\x0b\x01\x12\x04\xc8\x06\x08\x12\nW\n\x04\x04\x0b\x02\0\ + \x12\x04\xca\x06\x02\x18\x1aI\x20Should\x20this\x20diagnostic\x20be\x20r\ + eported\x20as\x20an\x20error,\x20warning,\x20info,\x20or\x20hint?\n\n\r\ + \n\x05\x04\x0b\x02\0\x06\x12\x04\xca\x06\x02\n\n\r\n\x05\x04\x0b\x02\0\ + \x01\x12\x04\xca\x06\x0b\x13\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xca\x06\ + \x16\x17\n]\n\x04\x04\x0b\x02\x01\x12\x04\xcc\x06\x02\x12\x1aO\x20(optio\ + nal)\x20Code\x20of\x20this\x20diagnostic,\x20which\x20might\x20appear\ + \x20in\x20the\x20user\x20interface.\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\ + \x04\xcc\x06\x02\x08\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xcc\x06\t\r\n\ + \r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xcc\x06\x10\x11\n+\n\x04\x04\x0b\ + \x02\x02\x12\x04\xce\x06\x02\x15\x1a\x1d\x20Message\x20of\x20this\x20dia\ + gnostic.\n\n\r\n\x05\x04\x0b\x02\x02\x05\x12\x04\xce\x06\x02\x08\n\r\n\ + \x05\x04\x0b\x02\x02\x01\x12\x04\xce\x06\t\x10\n\r\n\x05\x04\x0b\x02\x02\ + \x03\x12\x04\xce\x06\x13\x14\n~\n\x04\x04\x0b\x02\x03\x12\x04\xd1\x06\ + \x02\x14\x1ap\x20(optional)\x20Human-readable\x20string\x20describing\ + \x20the\x20source\x20of\x20this\x20diagnostic,\x20e.g.\n\x20'typescript'\ + \x20or\x20'super\x20lint'.\n\n\r\n\x05\x04\x0b\x02\x03\x05\x12\x04\xd1\ + \x06\x02\x08\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\xd1\x06\t\x0f\n\r\n\ + \x05\x04\x0b\x02\x03\x03\x12\x04\xd1\x06\x12\x13\n\x0c\n\x04\x04\x0b\x02\ + \x04\x12\x04\xd2\x06\x02\"\n\r\n\x05\x04\x0b\x02\x04\x04\x12\x04\xd2\x06\ + \x02\n\n\r\n\x05\x04\x0b\x02\x04\x06\x12\x04\xd2\x06\x0b\x18\n\r\n\x05\ + \x04\x0b\x02\x04\x01\x12\x04\xd2\x06\x19\x1d\n\r\n\x05\x04\x0b\x02\x04\ + \x03\x12\x04\xd2\x06\x20!\n\x0c\n\x02\x05\x05\x12\x06\xd5\x06\0\xdb\x06\ + \x01\n\x0b\n\x03\x05\x05\x01\x12\x04\xd5\x06\x05\r\n\x0c\n\x04\x05\x05\ + \x02\0\x12\x04\xd6\x06\x02\x1a\n\r\n\x05\x05\x05\x02\0\x01\x12\x04\xd6\ + \x06\x02\x15\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\xd6\x06\x18\x19\n\x0c\n\ + \x04\x05\x05\x02\x01\x12\x04\xd7\x06\x02\x0c\n\r\n\x05\x05\x05\x02\x01\ + \x01\x12\x04\xd7\x06\x02\x07\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\xd7\ + \x06\n\x0b\n\x0c\n\x04\x05\x05\x02\x02\x12\x04\xd8\x06\x02\x0e\n\r\n\x05\ + \x05\x05\x02\x02\x01\x12\x04\xd8\x06\x02\t\n\r\n\x05\x05\x05\x02\x02\x02\ + \x12\x04\xd8\x06\x0c\r\n\x0c\n\x04\x05\x05\x02\x03\x12\x04\xd9\x06\x02\ + \x12\n\r\n\x05\x05\x05\x02\x03\x01\x12\x04\xd9\x06\x02\r\n\r\n\x05\x05\ + \x05\x02\x03\x02\x12\x04\xd9\x06\x10\x11\n\x0c\n\x04\x05\x05\x02\x04\x12\ + \x04\xda\x06\x02\x0b\n\r\n\x05\x05\x05\x02\x04\x01\x12\x04\xda\x06\x02\ + \x06\n\r\n\x05\x05\x05\x02\x04\x02\x12\x04\xda\x06\t\n\n\x0c\n\x02\x05\ + \x06\x12\x06\xdd\x06\0\xe1\x06\x01\n\x0b\n\x03\x05\x06\x01\x12\x04\xdd\ + \x06\x05\x12\n\x0c\n\x04\x05\x06\x02\0\x12\x04\xde\x06\x02\x1f\n\r\n\x05\ + \x05\x06\x02\0\x01\x12\x04\xde\x06\x02\x1a\n\r\n\x05\x05\x06\x02\0\x02\ + \x12\x04\xde\x06\x1d\x1e\n\x0c\n\x04\x05\x06\x02\x01\x12\x04\xdf\x06\x02\ + \x12\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xdf\x06\x02\r\n\r\n\x05\x05\ + \x06\x02\x01\x02\x12\x04\xdf\x06\x10\x11\n\x0c\n\x04\x05\x06\x02\x02\x12\ + \x04\xe0\x06\x02\x11\n\r\n\x05\x05\x06\x02\x02\x01\x12\x04\xe0\x06\x02\ + \x0c\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\xe0\x06\x0f\x10\n\xd0\x03\n\ + \x02\x05\x07\x12\x06\xe9\x06\0\xdf\x07\x01\x1a\xc1\x03\x20Language\x20st\ + andardises\x20names\x20of\x20common\x20programming\x20languages\x20that\ + \x20can\x20be\x20used\n\x20for\x20the\x20`Document.language`\x20field.\ + \x20The\x20primary\x20purpose\x20of\x20this\x20enum\x20is\x20to\n\x20pre\ + vent\x20a\x20situation\x20where\x20we\x20have\x20a\x20single\x20programm\ + ing\x20language\x20ends\x20up\x20with\n\x20multiple\x20string\x20represe\ + ntations.\x20For\x20example,\x20the\x20C++\x20language\x20uses\x20the\ + \x20name\n\x20\"CPP\"\x20in\x20this\x20enum\x20and\x20other\x20names\x20\ + such\x20as\x20\"cpp\"\x20are\x20incompatible.\n\x20Feel\x20free\x20to\ + \x20send\x20a\x20pull-request\x20to\x20add\x20missing\x20programming\x20\ + languages.\n\n\x0b\n\x03\x05\x07\x01\x12\x04\xe9\x06\x05\r\n\x0c\n\x04\ + \x05\x07\x02\0\x12\x04\xea\x06\x02\x1a\n\r\n\x05\x05\x07\x02\0\x01\x12\ + \x04\xea\x06\x02\x15\n\r\n\x05\x05\x07\x02\0\x02\x12\x04\xea\x06\x18\x19\ + \n\x0c\n\x04\x05\x07\x02\x01\x12\x04\xeb\x06\x02\x0c\n\r\n\x05\x05\x07\ + \x02\x01\x01\x12\x04\xeb\x06\x02\x06\n\r\n\x05\x05\x07\x02\x01\x02\x12\ + \x04\xeb\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x02\x12\x04\xec\x06\x02\x0c\n\ + \r\n\x05\x05\x07\x02\x02\x01\x12\x04\xec\x06\x02\x06\n\r\n\x05\x05\x07\ + \x02\x02\x02\x12\x04\xec\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x03\x12\x04\ + \xed\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x03\x01\x12\x04\xed\x06\x02\x05\n\ + \r\n\x05\x05\x07\x02\x03\x02\x12\x04\xed\x06\x08\n\n\x0c\n\x04\x05\x07\ + \x02\x04\x12\x04\xee\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x04\x01\x12\x04\ + \xee\x06\x02\x05\n\r\n\x05\x05\x07\x02\x04\x02\x12\x04\xee\x06\x08\n\n\ + \x0c\n\x04\x05\x07\x02\x05\x12\x04\xef\x06\x02\x0c\n\r\n\x05\x05\x07\x02\ + \x05\x01\x12\x04\xef\x06\x02\x06\n\r\n\x05\x05\x07\x02\x05\x02\x12\x04\ + \xef\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x06\x12\x04\xf0\x06\x02\x10\n\r\n\ + \x05\x05\x07\x02\x06\x01\x12\x04\xf0\x06\x02\n\n\r\n\x05\x05\x07\x02\x06\ + \x02\x12\x04\xf0\x06\r\x0f\n\x0c\n\x04\x05\x07\x02\x07\x12\x04\xf1\x06\ + \x02\x10\n\r\n\x05\x05\x07\x02\x07\x01\x12\x04\xf1\x06\x02\n\n\r\n\x05\ + \x05\x07\x02\x07\x02\x12\x04\xf1\x06\r\x0f\n\x0c\n\x04\x05\x07\x02\x08\ + \x12\x04\xf2\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x08\x01\x12\x04\xf2\x06\ + \x02\x05\n\r\n\x05\x05\x07\x02\x08\x02\x12\x04\xf2\x06\x08\n\n\x0c\n\x04\ + \x05\x07\x02\t\x12\x04\xf3\x06\x02\x0b\n\r\n\x05\x05\x07\x02\t\x01\x12\ + \x04\xf3\x06\x02\x05\n\r\n\x05\x05\x07\x02\t\x02\x12\x04\xf3\x06\x08\n\n\ + \x0c\n\x04\x05\x07\x02\n\x12\x04\xf4\x06\x02\x0e\n\r\n\x05\x05\x07\x02\n\ + \x01\x12\x04\xf4\x06\x02\x08\n\r\n\x05\x05\x07\x02\n\x02\x12\x04\xf4\x06\ + \x0b\r\n\x0c\n\x04\x05\x07\x02\x0b\x12\x04\xf5\x06\x02\t\n\r\n\x05\x05\ + \x07\x02\x0b\x01\x12\x04\xf5\x06\x02\x03\n\r\n\x05\x05\x07\x02\x0b\x02\ + \x12\x04\xf5\x06\x06\x08\n\x0c\n\x04\x05\x07\x02\x0c\x12\x04\xf6\x06\x02\ + \r\n\r\n\x05\x05\x07\x02\x0c\x01\x12\x04\xf6\x06\x02\x07\n\r\n\x05\x05\ + \x07\x02\x0c\x02\x12\x04\xf6\x06\n\x0c\nH\n\x04\x05\x07\x02\r\x12\x04\ + \xf7\x06\x02\x0b\":\x20C++\x20(the\x20name\x20\"CPP\"\x20was\x20chosen\ + \x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\x05\x07\x02\r\x01\x12\ + \x04\xf7\x06\x02\x05\n\r\n\x05\x05\x07\x02\r\x02\x12\x04\xf7\x06\x08\n\n\ + \x0c\n\x04\x05\x07\x02\x0e\x12\x04\xf8\x06\x02\x0b\n\r\n\x05\x05\x07\x02\ + \x0e\x01\x12\x04\xf8\x06\x02\x05\n\r\n\x05\x05\x07\x02\x0e\x02\x12\x04\ + \xf8\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x0f\x12\x04\xf9\x06\x02\r\n\r\n\ + \x05\x05\x07\x02\x0f\x01\x12\x04\xf9\x06\x02\x08\n\r\n\x05\x05\x07\x02\ + \x0f\x02\x12\x04\xf9\x06\x0b\x0c\n\x0c\n\x04\x05\x07\x02\x10\x12\x04\xfa\ + \x06\x02\x0e\n\r\n\x05\x05\x07\x02\x10\x01\x12\x04\xfa\x06\x02\t\n\r\n\ + \x05\x05\x07\x02\x10\x02\x12\x04\xfa\x06\x0c\r\n\x0c\n\x04\x05\x07\x02\ + \x11\x12\x04\xfb\x06\x02\x14\n\r\n\x05\x05\x07\x02\x11\x01\x12\x04\xfb\ + \x06\x02\x0e\n\r\n\x05\x05\x07\x02\x11\x02\x12\x04\xfb\x06\x11\x13\n\x0c\ + \n\x04\x05\x07\x02\x12\x12\x04\xfc\x06\x02\x11\n\r\n\x05\x05\x07\x02\x12\ + \x01\x12\x04\xfc\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x12\x02\x12\x04\xfc\ + \x06\x0f\x10\n\x0c\n\x04\x05\x07\x02\x13\x12\x04\xfd\x06\x02\x0b\n\r\n\ + \x05\x05\x07\x02\x13\x01\x12\x04\xfd\x06\x02\x05\n\r\n\x05\x05\x07\x02\ + \x13\x02\x12\x04\xfd\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x14\x12\x04\xfe\ + \x06\x02\x0c\n\r\n\x05\x05\x07\x02\x14\x01\x12\x04\xfe\x06\x02\x06\n\r\n\ + \x05\x05\x07\x02\x14\x02\x12\x04\xfe\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\ + \x15\x12\x04\xff\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x15\x01\x12\x04\xff\ + \x06\x02\x06\n\r\n\x05\x05\x07\x02\x15\x02\x12\x04\xff\x06\t\n\n\x0c\n\ + \x04\x05\x07\x02\x16\x12\x04\x80\x07\x02\x0e\n\r\n\x05\x05\x07\x02\x16\ + \x01\x12\x04\x80\x07\x02\x08\n\r\n\x05\x05\x07\x02\x16\x02\x12\x04\x80\ + \x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x17\x12\x04\x81\x07\x02\x0c\n\r\n\x05\ + \x05\x07\x02\x17\x01\x12\x04\x81\x07\x02\x06\n\r\n\x05\x05\x07\x02\x17\ + \x02\x12\x04\x81\x07\t\x0b\n\x0c\n\x04\x05\x07\x02\x18\x12\x04\x82\x07\ + \x02\x12\n\r\n\x05\x05\x07\x02\x18\x01\x12\x04\x82\x07\x02\x0c\n\r\n\x05\ + \x05\x07\x02\x18\x02\x12\x04\x82\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02\x19\ + \x12\x04\x83\x07\x02\x0e\n\r\n\x05\x05\x07\x02\x19\x01\x12\x04\x83\x07\ + \x02\x08\n\r\n\x05\x05\x07\x02\x19\x02\x12\x04\x83\x07\x0b\r\n\x0c\n\x04\ + \x05\x07\x02\x1a\x12\x04\x84\x07\x02\x0e\n\r\n\x05\x05\x07\x02\x1a\x01\ + \x12\x04\x84\x07\x02\x08\n\r\n\x05\x05\x07\x02\x1a\x02\x12\x04\x84\x07\ + \x0b\r\n\x0c\n\x04\x05\x07\x02\x1b\x12\x04\x85\x07\x02\x0e\n\r\n\x05\x05\ + \x07\x02\x1b\x01\x12\x04\x85\x07\x02\x08\n\r\n\x05\x05\x07\x02\x1b\x02\ + \x12\x04\x85\x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x1c\x12\x04\x86\x07\x02\ + \x0e\n\r\n\x05\x05\x07\x02\x1c\x01\x12\x04\x86\x07\x02\x08\n\r\n\x05\x05\ + \x07\x02\x1c\x02\x12\x04\x86\x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x1d\x12\ + \x04\x87\x07\x02\x0c\n\r\n\x05\x05\x07\x02\x1d\x01\x12\x04\x87\x07\x02\ + \x06\n\r\n\x05\x05\x07\x02\x1d\x02\x12\x04\x87\x07\t\x0b\n\x0c\n\x04\x05\ + \x07\x02\x1e\x12\x04\x88\x07\x02\x0c\n\r\n\x05\x05\x07\x02\x1e\x01\x12\ + \x04\x88\x07\x02\x06\n\r\n\x05\x05\x07\x02\x1e\x02\x12\x04\x88\x07\t\x0b\ + \n\x0c\n\x04\x05\x07\x02\x1f\x12\x04\x89\x07\x02\x0f\n\r\n\x05\x05\x07\ + \x02\x1f\x01\x12\x04\x89\x07\x02\t\n\r\n\x05\x05\x07\x02\x1f\x02\x12\x04\ + \x89\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02\x20\x12\x04\x8a\x07\x02\x12\n\r\ + \n\x05\x05\x07\x02\x20\x01\x12\x04\x8a\x07\x02\x0c\n\r\n\x05\x05\x07\x02\ + \x20\x02\x12\x04\x8a\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02!\x12\x04\x8b\ + \x07\x02\x12\n\r\n\x05\x05\x07\x02!\x01\x12\x04\x8b\x07\x02\x0c\n\r\n\ + \x05\x05\x07\x02!\x02\x12\x04\x8b\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02\"\ + \x12\x04\x8c\x07\x02\x12\n\r\n\x05\x05\x07\x02\"\x01\x12\x04\x8c\x07\x02\ + \x0c\n\r\n\x05\x05\x07\x02\"\x02\x12\x04\x8c\x07\x0f\x11\n\x0c\n\x04\x05\ + \x07\x02#\x12\x04\x8d\x07\x02\n\n\r\n\x05\x05\x07\x02#\x01\x12\x04\x8d\ + \x07\x02\x04\n\r\n\x05\x05\x07\x02#\x02\x12\x04\x8d\x07\x07\t\n\x0c\n\ + \x04\x05\x07\x02$\x12\x04\x8e\x07\x02\x0f\n\r\n\x05\x05\x07\x02$\x01\x12\ + \x04\x8e\x07\x02\t\n\r\n\x05\x05\x07\x02$\x02\x12\x04\x8e\x07\x0c\x0e\n\ + \x0c\n\x04\x05\x07\x02%\x12\x04\x8f\x07\x02\r\n\r\n\x05\x05\x07\x02%\x01\ + \x12\x04\x8f\x07\x02\x08\n\r\n\x05\x05\x07\x02%\x02\x12\x04\x8f\x07\x0b\ + \x0c\n\x0c\n\x04\x05\x07\x02&\x12\x04\x90\x07\x02\x0c\n\r\n\x05\x05\x07\ + \x02&\x01\x12\x04\x90\x07\x02\x06\n\r\n\x05\x05\x07\x02&\x02\x12\x04\x90\ + \x07\t\x0b\n\x0c\n\x04\x05\x07\x02'\x12\x04\x91\x07\x02\x0c\n\r\n\x05\ + \x05\x07\x02'\x01\x12\x04\x91\x07\x02\x06\n\r\n\x05\x05\x07\x02'\x02\x12\ + \x04\x91\x07\t\x0b\n\x0c\n\x04\x05\x07\x02(\x12\x04\x92\x07\x02\x12\n\r\ + \n\x05\x05\x07\x02(\x01\x12\x04\x92\x07\x02\x0c\n\r\n\x05\x05\x07\x02(\ + \x02\x12\x04\x92\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02)\x12\x04\x93\x07\ + \x02\x0f\n\r\n\x05\x05\x07\x02)\x01\x12\x04\x93\x07\x02\t\n\r\n\x05\x05\ + \x07\x02)\x02\x12\x04\x93\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02*\x12\x04\ + \x94\x07\x02\r\n\r\n\x05\x05\x07\x02*\x01\x12\x04\x94\x07\x02\x07\n\r\n\ + \x05\x05\x07\x02*\x02\x12\x04\x94\x07\n\x0c\n\x0c\n\x04\x05\x07\x02+\x12\ + \x04\x95\x07\x02\x0b\n\r\n\x05\x05\x07\x02+\x01\x12\x04\x95\x07\x02\x05\ + \n\r\n\x05\x05\x07\x02+\x02\x12\x04\x95\x07\x08\n\n\x0c\n\x04\x05\x07\ + \x02,\x12\x04\x96\x07\x02\t\n\r\n\x05\x05\x07\x02,\x01\x12\x04\x96\x07\ + \x02\x03\n\r\n\x05\x05\x07\x02,\x02\x12\x04\x96\x07\x06\x08\n\x0c\n\x04\ + \x05\x07\x02-\x12\x04\x97\x07\x02\x0c\n\r\n\x05\x05\x07\x02-\x01\x12\x04\ + \x97\x07\x02\x06\n\r\n\x05\x05\x07\x02-\x02\x12\x04\x97\x07\t\x0b\n\x0c\ + \n\x04\x05\x07\x02.\x12\x04\x98\x07\x02\x0b\n\r\n\x05\x05\x07\x02.\x01\ + \x12\x04\x98\x07\x02\x06\n\r\n\x05\x05\x07\x02.\x02\x12\x04\x98\x07\t\n\ + \n\x0c\n\x04\x05\x07\x02/\x12\x04\x99\x07\x02\x12\n\r\n\x05\x05\x07\x02/\ + \x01\x12\x04\x99\x07\x02\x0c\n\r\n\x05\x05\x07\x02/\x02\x12\x04\x99\x07\ + \x0f\x11\n\x0c\n\x04\x05\x07\x020\x12\x04\x9a\x07\x02\x17\n\r\n\x05\x05\ + \x07\x020\x01\x12\x04\x9a\x07\x02\x11\n\r\n\x05\x05\x07\x020\x02\x12\x04\ + \x9a\x07\x14\x16\n\x0c\n\x04\x05\x07\x021\x12\x04\x9b\x07\x02\x0f\n\r\n\ + \x05\x05\x07\x021\x01\x12\x04\x9b\x07\x02\t\n\r\n\x05\x05\x07\x021\x02\ + \x12\x04\x9b\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x022\x12\x04\x9c\x07\x02\ + \x0e\n\r\n\x05\x05\x07\x022\x01\x12\x04\x9c\x07\x02\x07\n\r\n\x05\x05\ + \x07\x022\x02\x12\x04\x9c\x07\x0b\r\n\x0c\n\x04\x05\x07\x023\x12\x04\x9d\ + \x07\x02\x11\n\r\n\x05\x05\x07\x023\x01\x12\x04\x9d\x07\x02\n\n\r\n\x05\ + \x05\x07\x023\x02\x12\x04\x9d\x07\r\x10\n\x0c\n\x04\x05\x07\x024\x12\x04\ + \x9e\x07\x02\r\n\r\n\x05\x05\x07\x024\x01\x12\x04\x9e\x07\x02\x08\n\r\n\ + \x05\x05\x07\x024\x02\x12\x04\x9e\x07\x0b\x0c\n\x0c\n\x04\x05\x07\x025\ + \x12\x04\x9f\x07\x02\r\n\r\n\x05\x05\x07\x025\x01\x12\x04\x9f\x07\x02\ + \x07\n\r\n\x05\x05\x07\x025\x02\x12\x04\x9f\x07\n\x0c\n\x0c\n\x04\x05\ + \x07\x026\x12\x04\xa0\x07\x02\x0c\n\r\n\x05\x05\x07\x026\x01\x12\x04\xa0\ + \x07\x02\x06\n\r\n\x05\x05\x07\x026\x02\x12\x04\xa0\x07\t\x0b\n\x0c\n\ + \x04\x05\x07\x027\x12\x04\xa1\x07\x02\x0c\n\r\n\x05\x05\x07\x027\x01\x12\ + \x04\xa1\x07\x02\x06\n\r\n\x05\x05\x07\x027\x02\x12\x04\xa1\x07\t\x0b\n\ + \x0c\n\x04\x05\x07\x028\x12\x04\xa2\x07\x02\x0b\n\r\n\x05\x05\x07\x028\ + \x01\x12\x04\xa2\x07\x02\x05\n\r\n\x05\x05\x07\x028\x02\x12\x04\xa2\x07\ + \x08\n\n\x0c\n\x04\x05\x07\x029\x12\x04\xa3\x07\x02\r\n\r\n\x05\x05\x07\ + \x029\x01\x12\x04\xa3\x07\x02\x06\n\r\n\x05\x05\x07\x029\x02\x12\x04\xa3\ + \x07\t\x0c\n\x0c\n\x04\x05\x07\x02:\x12\x04\xa4\x07\x02\x10\n\r\n\x05\ + \x05\x07\x02:\x01\x12\x04\xa4\x07\x02\n\n\r\n\x05\x05\x07\x02:\x02\x12\ + \x04\xa4\x07\r\x0f\n\x0c\n\x04\x05\x07\x02;\x12\x04\xa5\x07\x02\x10\n\r\ + \n\x05\x05\x07\x02;\x01\x12\x04\xa5\x07\x02\n\n\r\n\x05\x05\x07\x02;\x02\ + \x12\x04\xa5\x07\r\x0f\n\x0c\n\x04\x05\x07\x02<\x12\x04\xa6\x07\x02\x0e\ + \n\r\n\x05\x05\x07\x02<\x01\x12\x04\xa6\x07\x02\x08\n\r\n\x05\x05\x07\ + \x02<\x02\x12\x04\xa6\x07\x0b\r\n(\n\x04\x05\x07\x02=\x12\x04\xa7\x07\ + \x02\x0f\"\x1a\x20https://nickel-lang.org/\n\n\r\n\x05\x05\x07\x02=\x01\ + \x12\x04\xa7\x07\x02\x08\n\r\n\x05\x05\x07\x02=\x02\x12\x04\xa7\x07\x0b\ + \x0e\n\x0c\n\x04\x05\x07\x02>\x12\x04\xa8\x07\x02\x0b\n\r\n\x05\x05\x07\ + \x02>\x01\x12\x04\xa8\x07\x02\x05\n\r\n\x05\x05\x07\x02>\x02\x12\x04\xa8\ + \x07\x08\n\n\x0c\n\x04\x05\x07\x02?\x12\x04\xa9\x07\x02\r\n\r\n\x05\x05\ + \x07\x02?\x01\x12\x04\xa9\x07\x02\x07\n\r\n\x05\x05\x07\x02?\x02\x12\x04\ + \xa9\x07\n\x0c\n\x0c\n\x04\x05\x07\x02@\x12\x04\xaa\x07\x02\x13\n\r\n\ + \x05\x05\x07\x02@\x01\x12\x04\xaa\x07\x02\r\n\r\n\x05\x05\x07\x02@\x02\ + \x12\x04\xaa\x07\x10\x12\n\x0c\n\x04\x05\x07\x02A\x12\x04\xab\x07\x02\ + \x15\n\r\n\x05\x05\x07\x02A\x01\x12\x04\xab\x07\x02\x0f\n\r\n\x05\x05\ + \x07\x02A\x02\x12\x04\xab\x07\x12\x14\n\x0c\n\x04\x05\x07\x02B\x12\x04\ + \xac\x07\x02\x0e\n\r\n\x05\x05\x07\x02B\x01\x12\x04\xac\x07\x02\x08\n\r\ + \n\x05\x05\x07\x02B\x02\x12\x04\xac\x07\x0b\r\n\x0c\n\x04\x05\x07\x02C\ + \x12\x04\xad\x07\x02\x0b\n\r\n\x05\x05\x07\x02C\x01\x12\x04\xad\x07\x02\ + \x05\n\r\n\x05\x05\x07\x02C\x02\x12\x04\xad\x07\x08\n\n\x0c\n\x04\x05\ + \x07\x02D\x12\x04\xae\x07\x02\r\n\r\n\x05\x05\x07\x02D\x01\x12\x04\xae\ + \x07\x02\x07\n\r\n\x05\x05\x07\x02D\x02\x12\x04\xae\x07\n\x0c\n\x0c\n\ + \x04\x05\x07\x02E\x12\x04\xaf\x07\x02\x0c\n\r\n\x05\x05\x07\x02E\x01\x12\ + \x04\xaf\x07\x02\x06\n\r\n\x05\x05\x07\x02E\x02\x12\x04\xaf\x07\t\x0b\n\ + \x0c\n\x04\x05\x07\x02F\x12\x04\xb0\x07\x02\x12\n\r\n\x05\x05\x07\x02F\ + \x01\x12\x04\xb0\x07\x02\x0c\n\r\n\x05\x05\x07\x02F\x02\x12\x04\xb0\x07\ + \x0f\x11\n\x0c\n\x04\x05\x07\x02G\x12\x04\xb1\x07\x02\x0e\n\r\n\x05\x05\ + \x07\x02G\x01\x12\x04\xb1\x07\x02\x08\n\r\n\x05\x05\x07\x02G\x02\x12\x04\ + \xb1\x07\x0b\r\n\x0c\n\x04\x05\x07\x02H\x12\x04\xb2\x07\x02\x11\n\r\n\ + \x05\x05\x07\x02H\x01\x12\x04\xb2\x07\x02\n\n\r\n\x05\x05\x07\x02H\x02\ + \x12\x04\xb2\x07\r\x10\n\x0c\n\x04\x05\x07\x02I\x12\x04\xb3\x07\x02\x0e\ + \n\r\n\x05\x05\x07\x02I\x01\x12\x04\xb3\x07\x02\x08\n\r\n\x05\x05\x07\ + \x02I\x02\x12\x04\xb3\x07\x0b\r\n\x0c\n\x04\x05\x07\x02J\x12\x04\xb4\x07\ + \x02\t\n\r\n\x05\x05\x07\x02J\x01\x12\x04\xb4\x07\x02\x03\n\r\n\x05\x05\ + \x07\x02J\x02\x12\x04\xb4\x07\x06\x08\n\x0c\n\x04\x05\x07\x02K\x12\x04\ + \xb5\x07\x02\x0e\n\r\n\x05\x05\x07\x02K\x01\x12\x04\xb5\x07\x02\x08\n\r\ + \n\x05\x05\x07\x02K\x02\x12\x04\xb5\x07\x0b\r\n\x0c\n\x04\x05\x07\x02L\ + \x12\x04\xb6\x07\x02\x0c\n\r\n\x05\x05\x07\x02L\x01\x12\x04\xb6\x07\x02\ + \x06\n\r\n\x05\x05\x07\x02L\x02\x12\x04\xb6\x07\t\x0b\n\x0c\n\x04\x05\ + \x07\x02M\x12\x04\xb7\x07\x02\r\n\r\n\x05\x05\x07\x02M\x01\x12\x04\xb7\ + \x07\x02\x07\n\r\n\x05\x05\x07\x02M\x02\x12\x04\xb7\x07\n\x0c\n2\n\x04\ + \x05\x07\x02N\x12\x04\xb8\x07\x02\x0e\"$\x20Internal\x20language\x20for\ + \x20testing\x20SCIP\n\n\r\n\x05\x05\x07\x02N\x01\x12\x04\xb8\x07\x02\x07\ + \n\r\n\x05\x05\x07\x02N\x02\x12\x04\xb8\x07\n\r\n\x0c\n\x04\x05\x07\x02O\ + \x12\x04\xb9\x07\x02\x0c\n\r\n\x05\x05\x07\x02O\x01\x12\x04\xb9\x07\x02\ + \x06\n\r\n\x05\x05\x07\x02O\x02\x12\x04\xb9\x07\t\x0b\n\x0c\n\x04\x05\ + \x07\x02P\x12\x04\xba\x07\x02\x0c\n\r\n\x05\x05\x07\x02P\x01\x12\x04\xba\ + \x07\x02\x06\n\r\n\x05\x05\x07\x02P\x02\x12\x04\xba\x07\t\x0b\n\x0c\n\ + \x04\x05\x07\x02Q\x12\x04\xbb\x07\x02\x0c\n\r\n\x05\x05\x07\x02Q\x01\x12\ + \x04\xbb\x07\x02\x06\n\r\n\x05\x05\x07\x02Q\x02\x12\x04\xbb\x07\t\x0b\n\ + \x0c\n\x04\x05\x07\x02R\x12\x04\xbc\x07\x02\x0b\n\r\n\x05\x05\x07\x02R\ + \x01\x12\x04\xbc\x07\x02\x05\n\r\n\x05\x05\x07\x02R\x02\x12\x04\xbc\x07\ + \x08\n\n\x0c\n\x04\x05\x07\x02S\x12\x04\xbd\x07\x02\x0c\n\r\n\x05\x05\ + \x07\x02S\x01\x12\x04\xbd\x07\x02\x06\n\r\n\x05\x05\x07\x02S\x02\x12\x04\ + \xbd\x07\t\x0b\n\x0c\n\x04\x05\x07\x02T\x12\x04\xbe\x07\x02\x0b\n\r\n\ + \x05\x05\x07\x02T\x01\x12\x04\xbe\x07\x02\x05\n\r\n\x05\x05\x07\x02T\x02\ + \x12\x04\xbe\x07\x08\n\n\x0c\n\x04\x05\x07\x02U\x12\x04\xbf\x07\x02\x0b\ + \n\r\n\x05\x05\x07\x02U\x01\x12\x04\xbf\x07\x02\x05\n\r\n\x05\x05\x07\ + \x02U\x02\x12\x04\xbf\x07\x08\n\n\x0c\n\x04\x05\x07\x02V\x12\x04\xc0\x07\ + \x02\x0c\n\r\n\x05\x05\x07\x02V\x01\x12\x04\xc0\x07\x02\x06\n\r\n\x05\ + \x05\x07\x02V\x02\x12\x04\xc0\x07\t\x0b\n\x0c\n\x04\x05\x07\x02W\x12\x04\ + \xc1\x07\x02\x0c\n\r\n\x05\x05\x07\x02W\x01\x12\x04\xc1\x07\x02\x07\n\r\ + \n\x05\x05\x07\x02W\x02\x12\x04\xc1\x07\n\x0b\n\x0c\n\x04\x05\x07\x02X\ + \x12\x04\xc2\x07\x02\x0e\n\r\n\x05\x05\x07\x02X\x01\x12\x04\xc2\x07\x02\ + \x08\n\r\n\x05\x05\x07\x02X\x02\x12\x04\xc2\x07\x0b\r\n\x14\n\x04\x05\ + \x07\x02Y\x12\x04\xc3\x07\x02\x13\"\x06\x20Bash\n\n\r\n\x05\x05\x07\x02Y\ + \x01\x12\x04\xc3\x07\x02\r\n\r\n\x05\x05\x07\x02Y\x02\x12\x04\xc3\x07\ + \x10\x12\n\x0c\n\x04\x05\x07\x02Z\x12\x04\xc4\x07\x02\x0f\n\r\n\x05\x05\ + \x07\x02Z\x01\x12\x04\xc4\x07\x02\t\n\r\n\x05\x05\x07\x02Z\x02\x12\x04\ + \xc4\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02[\x12\x04\xc5\x07\x02\x0e\n\r\n\ + \x05\x05\x07\x02[\x01\x12\x04\xc5\x07\x02\x07\n\r\n\x05\x05\x07\x02[\x02\ + \x12\x04\xc5\x07\n\r\n\x0c\n\x04\x05\x07\x02\\\x12\x04\xc6\x07\x02\x10\n\ + \r\n\x05\x05\x07\x02\\\x01\x12\x04\xc6\x07\x02\n\n\r\n\x05\x05\x07\x02\\\ + \x02\x12\x04\xc6\x07\r\x0f\n\x0c\n\x04\x05\x07\x02]\x12\x04\xc7\x07\x02\ + \x0f\n\r\n\x05\x05\x07\x02]\x01\x12\x04\xc7\x07\x02\x08\n\r\n\x05\x05\ + \x07\x02]\x02\x12\x04\xc7\x07\x0b\x0e\n\x0c\n\x04\x05\x07\x02^\x12\x04\ + \xc8\x07\x02\x0c\n\r\n\x05\x05\x07\x02^\x01\x12\x04\xc8\x07\x02\x07\n\r\ + \n\x05\x05\x07\x02^\x02\x12\x04\xc8\x07\n\x0b\n\x0c\n\x04\x05\x07\x02_\ + \x12\x04\xc9\x07\x02\x0c\n\r\n\x05\x05\x07\x02_\x01\x12\x04\xc9\x07\x02\ + \x05\n\r\n\x05\x05\x07\x02_\x02\x12\x04\xc9\x07\x08\x0b\n\x0c\n\x04\x05\ + \x07\x02`\x12\x04\xca\x07\x02\x0c\n\r\n\x05\x05\x07\x02`\x01\x12\x04\xca\ + \x07\x02\x06\n\r\n\x05\x05\x07\x02`\x02\x12\x04\xca\x07\t\x0b\n\x0c\n\ + \x04\x05\x07\x02a\x12\x04\xcb\x07\x02\x0b\n\r\n\x05\x05\x07\x02a\x01\x12\ + \x04\xcb\x07\x02\x05\n\r\n\x05\x05\x07\x02a\x02\x12\x04\xcb\x07\x08\n\n\ + \x0c\n\x04\x05\x07\x02b\x12\x04\xcc\x07\x02\x0f\n\r\n\x05\x05\x07\x02b\ + \x01\x12\x04\xcc\x07\x02\x08\n\r\n\x05\x05\x07\x02b\x02\x12\x04\xcc\x07\ + \x0b\x0e\n\x0c\n\x04\x05\x07\x02c\x12\x04\xcd\x07\x02\x12\n\r\n\x05\x05\ + \x07\x02c\x01\x12\x04\xcd\x07\x02\x0c\n\r\n\x05\x05\x07\x02c\x02\x12\x04\ + \xcd\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02d\x12\x04\xce\x07\x02\x17\n\r\n\ + \x05\x05\x07\x02d\x01\x12\x04\xce\x07\x02\x11\n\r\n\x05\x05\x07\x02d\x02\ + \x12\x04\xce\x07\x14\x16\n\x0c\n\x04\x05\x07\x02e\x12\x04\xcf\x07\x02\ + \x10\n\r\n\x05\x05\x07\x02e\x01\x12\x04\xcf\x07\x02\t\n\r\n\x05\x05\x07\ + \x02e\x02\x12\x04\xcf\x07\x0c\x0f\n\x0c\n\x04\x05\x07\x02f\x12\x04\xd0\ + \x07\x02\r\n\r\n\x05\x05\x07\x02f\x01\x12\x04\xd0\x07\x02\x06\n\r\n\x05\ + \x05\x07\x02f\x02\x12\x04\xd0\x07\t\x0c\n\x0c\n\x04\x05\x07\x02g\x12\x04\ + \xd1\x07\x02\x13\n\r\n\x05\x05\x07\x02g\x01\x12\x04\xd1\x07\x02\r\n\r\n\ + \x05\x05\x07\x02g\x02\x12\x04\xd1\x07\x10\x12\n\x0c\n\x04\x05\x07\x02h\ + \x12\x04\xd2\x07\x02\x0b\n\r\n\x05\x05\x07\x02h\x01\x12\x04\xd2\x07\x02\ + \x05\n\r\n\x05\x05\x07\x02h\x02\x12\x04\xd2\x07\x08\n\n\x0c\n\x04\x05\ + \x07\x02i\x12\x04\xd3\x07\x02\x0f\n\r\n\x05\x05\x07\x02i\x01\x12\x04\xd3\ + \x07\x02\t\n\r\n\x05\x05\x07\x02i\x02\x12\x04\xd3\x07\x0c\x0e\n\x0c\n\ + \x04\x05\x07\x02j\x12\x04\xd4\x07\x02\x0b\n\r\n\x05\x05\x07\x02j\x01\x12\ + \x04\xd4\x07\x02\x05\n\r\n\x05\x05\x07\x02j\x02\x12\x04\xd4\x07\x08\n\n\ + \x0c\n\x04\x05\x07\x02k\x12\x04\xd5\x07\x02\x0b\n\r\n\x05\x05\x07\x02k\ + \x01\x12\x04\xd5\x07\x02\x05\n\r\n\x05\x05\x07\x02k\x02\x12\x04\xd5\x07\ + \x08\n\n\x0c\n\x04\x05\x07\x02l\x12\x04\xd6\x07\x02\x0c\n\r\n\x05\x05\ + \x07\x02l\x01\x12\x04\xd6\x07\x02\x06\n\r\n\x05\x05\x07\x02l\x02\x12\x04\ + \xd6\x07\t\x0b\n\x93\x03\n\x04\x05\x07\x02m\x12\x04\xd7\x07\x02\x0b\"\ + \x84\x03\x20NextLanguage\x20=\x20111;\n\x20Steps\x20add\x20a\x20new\x20l\ + anguage:\n\x201.\x20Copy-paste\x20the\x20\"NextLanguage\x20=\x20N\"\x20l\ + ine\x20above\n\x202.\x20Increment\x20\"NextLanguage\x20=\x20N\"\x20to\ + \x20\"NextLanguage\x20=\x20N+1\"\n\x203.\x20Replace\x20\"NextLanguage\ + \x20=\x20N\"\x20with\x20the\x20name\x20of\x20the\x20new\x20language.\n\ + \x204.\x20Move\x20the\x20new\x20language\x20to\x20the\x20correct\x20line\ + \x20above\x20using\x20alphabetical\x20order\n\x205.\x20(optional)\x20Add\ + \x20a\x20brief\x20comment\x20behind\x20the\x20language\x20if\x20the\x20n\ + ame\x20is\x20not\x20self-explanatory\n\n\r\n\x05\x05\x07\x02m\x01\x12\ + \x04\xd7\x07\x02\x05\n\r\n\x05\x05\x07\x02m\x02\x12\x04\xd7\x07\x08\nb\ + \x06proto3\ "; /// `FileDescriptorProto` object which was a source for this generated file @@ -5999,7 +6389,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor { file_descriptor.get(|| { let generated_file_descriptor = generated_file_descriptor_lazy.get(|| { let mut deps = ::std::vec::Vec::with_capacity(0); - let mut messages = ::std::vec::Vec::with_capacity(11); + let mut messages = ::std::vec::Vec::with_capacity(12); messages.push(Index::generated_message_descriptor_data()); messages.push(Metadata::generated_message_descriptor_data()); messages.push(ToolInfo::generated_message_descriptor_data()); @@ -6008,6 +6398,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor { messages.push(Package::generated_message_descriptor_data()); messages.push(Descriptor::generated_message_descriptor_data()); messages.push(SymbolInformation::generated_message_descriptor_data()); + messages.push(FullRelationship::generated_message_descriptor_data()); messages.push(Relationship::generated_message_descriptor_data()); messages.push(Occurrence::generated_message_descriptor_data()); messages.push(Diagnostic::generated_message_descriptor_data()); diff --git a/bindings/typescript/scip.ts b/bindings/typescript/scip.ts index 67bb7fc7..5a936d25 100644 --- a/bindings/typescript/scip.ts +++ b/bindings/typescript/scip.ts @@ -573,9 +573,11 @@ export namespace scip { symbols?: SymbolInformation[]; text?: string; position_encoding?: PositionEncoding; + external_symbols?: SymbolInformation[]; + cross_relationships?: FullRelationship[]; }) { super(); - pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [2, 3], this.#one_of_decls); + pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [2, 3, 7, 8], this.#one_of_decls); if (!Array.isArray(data) && typeof data == "object") { if ("language" in data && data.language != undefined) { this.language = data.language; @@ -595,6 +597,12 @@ export namespace scip { if ("position_encoding" in data && data.position_encoding != undefined) { this.position_encoding = data.position_encoding; } + if ("external_symbols" in data && data.external_symbols != undefined) { + this.external_symbols = data.external_symbols; + } + if ("cross_relationships" in data && data.cross_relationships != undefined) { + this.cross_relationships = data.cross_relationships; + } } } get language() { @@ -633,6 +641,18 @@ export namespace scip { set position_encoding(value: PositionEncoding) { pb_1.Message.setField(this, 6, value); } + get external_symbols() { + return pb_1.Message.getRepeatedWrapperField(this, SymbolInformation, 7) as SymbolInformation[]; + } + set external_symbols(value: SymbolInformation[]) { + pb_1.Message.setRepeatedWrapperField(this, 7, value); + } + get cross_relationships() { + return pb_1.Message.getRepeatedWrapperField(this, FullRelationship, 8) as FullRelationship[]; + } + set cross_relationships(value: FullRelationship[]) { + pb_1.Message.setRepeatedWrapperField(this, 8, value); + } static fromObject(data: { language?: string; relative_path?: string; @@ -640,6 +660,8 @@ export namespace scip { symbols?: ReturnType[]; text?: string; position_encoding?: PositionEncoding; + external_symbols?: ReturnType[]; + cross_relationships?: ReturnType[]; }): Document { const message = new Document({}); if (data.language != null) { @@ -660,6 +682,12 @@ export namespace scip { if (data.position_encoding != null) { message.position_encoding = data.position_encoding; } + if (data.external_symbols != null) { + message.external_symbols = data.external_symbols.map(item => SymbolInformation.fromObject(item)); + } + if (data.cross_relationships != null) { + message.cross_relationships = data.cross_relationships.map(item => FullRelationship.fromObject(item)); + } return message; } toObject() { @@ -670,6 +698,8 @@ export namespace scip { symbols?: ReturnType[]; text?: string; position_encoding?: PositionEncoding; + external_symbols?: ReturnType[]; + cross_relationships?: ReturnType[]; } = {}; if (this.language != null) { data.language = this.language; @@ -689,6 +719,12 @@ export namespace scip { if (this.position_encoding != null) { data.position_encoding = this.position_encoding; } + if (this.external_symbols != null) { + data.external_symbols = this.external_symbols.map((item: SymbolInformation) => item.toObject()); + } + if (this.cross_relationships != null) { + data.cross_relationships = this.cross_relationships.map((item: FullRelationship) => item.toObject()); + } return data; } serialize(): Uint8Array; @@ -707,6 +743,10 @@ export namespace scip { writer.writeString(5, this.text); if (this.position_encoding != PositionEncoding.UnspecifiedPositionEncoding) writer.writeEnum(6, this.position_encoding); + if (this.external_symbols.length) + writer.writeRepeatedMessage(7, this.external_symbols, (item: SymbolInformation) => item.serialize(writer)); + if (this.cross_relationships.length) + writer.writeRepeatedMessage(8, this.cross_relationships, (item: FullRelationship) => item.serialize(writer)); if (!w) return writer.getResultBuffer(); } @@ -734,6 +774,12 @@ export namespace scip { case 6: message.position_encoding = reader.readEnum(); break; + case 7: + reader.readMessage(message.external_symbols, () => pb_1.Message.addToRepeatedWrapperField(message, 7, SymbolInformation.deserialize(reader), SymbolInformation)); + break; + case 8: + reader.readMessage(message.cross_relationships, () => pb_1.Message.addToRepeatedWrapperField(message, 8, FullRelationship.deserialize(reader), FullRelationship)); + break; default: reader.skipField(); } } @@ -1401,6 +1447,99 @@ export namespace scip { Variable = 61 } } + export class FullRelationship extends pb_1.Message { + #one_of_decls: number[][] = []; + constructor(data?: any[] | { + source_symbol?: string; + relationship?: Relationship; + }) { + super(); + pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls); + if (!Array.isArray(data) && typeof data == "object") { + if ("source_symbol" in data && data.source_symbol != undefined) { + this.source_symbol = data.source_symbol; + } + if ("relationship" in data && data.relationship != undefined) { + this.relationship = data.relationship; + } + } + } + get source_symbol() { + return pb_1.Message.getFieldWithDefault(this, 1, "") as string; + } + set source_symbol(value: string) { + pb_1.Message.setField(this, 1, value); + } + get relationship() { + return pb_1.Message.getWrapperField(this, Relationship, 2) as Relationship; + } + set relationship(value: Relationship) { + pb_1.Message.setWrapperField(this, 2, value); + } + get has_relationship() { + return pb_1.Message.getField(this, 2) != null; + } + static fromObject(data: { + source_symbol?: string; + relationship?: ReturnType; + }): FullRelationship { + const message = new FullRelationship({}); + if (data.source_symbol != null) { + message.source_symbol = data.source_symbol; + } + if (data.relationship != null) { + message.relationship = Relationship.fromObject(data.relationship); + } + return message; + } + toObject() { + const data: { + source_symbol?: string; + relationship?: ReturnType; + } = {}; + if (this.source_symbol != null) { + data.source_symbol = this.source_symbol; + } + if (this.relationship != null) { + data.relationship = this.relationship.toObject(); + } + return data; + } + serialize(): Uint8Array; + serialize(w: pb_1.BinaryWriter): void; + serialize(w?: pb_1.BinaryWriter): Uint8Array | void { + const writer = w || new pb_1.BinaryWriter(); + if (this.source_symbol.length) + writer.writeString(1, this.source_symbol); + if (this.has_relationship) + writer.writeMessage(2, this.relationship, () => this.relationship.serialize(writer)); + if (!w) + return writer.getResultBuffer(); + } + static deserialize(bytes: Uint8Array | pb_1.BinaryReader): FullRelationship { + const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new FullRelationship(); + while (reader.nextField()) { + if (reader.isEndGroup()) + break; + switch (reader.getFieldNumber()) { + case 1: + message.source_symbol = reader.readString(); + break; + case 2: + reader.readMessage(message.relationship, () => message.relationship = Relationship.deserialize(reader)); + break; + default: reader.skipField(); + } + } + return message; + } + serializeBinary(): Uint8Array { + return this.serialize(); + } + static deserializeBinary(bytes: Uint8Array): FullRelationship { + return FullRelationship.deserialize(bytes); + } + } export class Relationship extends pb_1.Message { #one_of_decls: number[][] = []; constructor(data?: any[] | { diff --git a/docs/scip.md b/docs/scip.md index 5c603fc8..23f4cfa0 100644 --- a/docs/scip.md +++ b/docs/scip.md @@ -50,14 +50,16 @@ reported for a document. Document defines the metadata about a source file on disk. -| Name | Type | Description | -| ------------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **language** | string | The string ID for the programming language this file is written in. The `Language` enum contains the names of most common programming languages. This field is typed as a string to permit any programming language, including ones that are not specified by the `Language` enum. | -| **relative_path** | string | (Required) Unique path to the text document. | -| repeated **occurrences** | Occurrence | Occurrences that appear in this file. | -| repeated **symbols** | SymbolInformation | Symbols that are "defined" within this document. | -| **text** | string | (optional) Text contents of the this document. Indexers are not expected to include the text by default. It's preferrable that clients read the text contents from the file system by resolving the absolute path from joining `Index.metadata.project_root` and `Document.relative_path`. This field was introduced to support `SymbolInformation.signature_documentation`, but it can be used for other purposes as well, for example testing or when working with virtual/in-memory documents. | -| **position_encoding** | PositionEncoding | Specifies the encoding used for source ranges in this Document. | +| Name | Type | Description | +| -------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **language** | string | The string ID for the programming language this file is written in. The `Language` enum contains the names of most common programming languages. This field is typed as a string to permit any programming language, including ones that are not specified by the `Language` enum. | +| **relative_path** | string | (Required) Unique path to the text document. | +| repeated **occurrences** | Occurrence | Occurrences that appear in this file. | +| repeated **symbols** | SymbolInformation | Symbols that are "defined" within this document. | +| **text** | string | (optional) Text contents of the this document. Indexers are not expected to include the text by default. It's preferrable that clients read the text contents from the file system by resolving the absolute path from joining `Index.metadata.project_root` and `Document.relative_path`. This field was introduced to support `SymbolInformation.signature_documentation`, but it can be used for other purposes as well, for example testing or when working with virtual/in-memory documents. | +| **position_encoding** | PositionEncoding | Specifies the encoding used for source ranges in this Document. | +| repeated **external_symbols** | SymbolInformation | (optional) Symbols that are referenced from this Document but are defined in an external package (a separate `Index` message). This field can be used for the following purposes: - Provide hover documentation for external symbols. - Mark relationships from an external symbol to a global symbol defined in the current document. | +| repeated **cross_relationships** | FullRelationship | (optional) Relationships that affect code navigation in this Document but are not and cannot be defined in the Document(s) defining source_symbol or the target symbol (relationship.symbol). | Additional notes on **relative_path**: @@ -93,6 +95,104 @@ in the indexer's implementation language in O(1) time. - For an indexer implemented in Go, Rust or C++, use UTF8ByteOffsetFromLineStart. +Additional notes on **external_symbols**: + +(optional) Symbols that are referenced from this Document but are defined in +an external package (a separate `Index` message). This field can be used +for the following purposes: + +- Provide hover documentation for external symbols. +- Mark relationships from an external symbol to a global symbol defined + in the current document. + +Example 1: In Go, if a file defines a new interface I and there is a standard +library type T which is imported in the file and implements I, +the indexer can add an external symbol for T with an is_implementation +relationship to I. + +Example 2: In Rust, if a file defines a new trait T and add impls for a +type X defined in another Index, the indexer can add an external symbol +for X with an is_implementation relationship to T. + +Example 3: If the code references a third-party type X whose definition +site may or may not be indexed, the indexer can emit an external symbol +for X including its hover documentation. + +Additional notes on **cross_relationships**: + +(optional) Relationships that affect code navigation in this Document +but are not and cannot be defined in the Document(s) defining +source_symbol or the target symbol (relationship.symbol). + +Example 1: In the case of structurally typed interfaces (or more generally +structural subtyping), such as Go, it is possible for one Go package P1 +to define an interface I, a second Go package P2 to have a type T which +implements the interface I without importing P1, and a third Go package P3 +to import both P1 and P2. If P3 has a conversion of a value from +P2.T to P1.I, then the indexer can emit a cross-relationship from +P2.T to P1.I. + +This same example carries over to languages like TypeScript which support +structural subtyping. + +Example 2: Rust allows for blanket trait implementations. Consider the +following code: + +```rust +// t1.rs +pub trait T1 {} + +// s.rs +use m1::T1; +pub struct S; +impl T1 for S {} + +// t2.rs +use m1::T1; +trait T2 {} +impl T2 for T {} // <- blanket implementation that covers S + +// cross.rs +use m3::T2; +use m2::S; + +fn f(s : S) -> Box { Box::new(s) } // derives that S implements T2 +``` + +If all of these modules correspond to Documents in different SCIP indexes, +it is not possible for the indexer to emit an is_implementation relationship +from S to T2 in the Documents for t1.rs, s.rs or t2.rs. In this case, +the indexer can emit a cross-relationship from S to T2 in the Document for cross.rs. + +Example 3: Swift allows for retroactive conformances (aka orphan instances +in Haskell). Consider the following code: + +```swift +// P.swift +protocol P {} + +// S.swift +struct S {} + +// cross.swift +extension S: P {} +``` + +If all of these files correspond to Documents in different SCIP indexes, +it is not possible for the indexer to emit an is_implementation relationship +from S to P in the Documents for P.swift, or S.swift. In this case, +the indexer can emit a cross-relationship from S to P in the Document for cross.swift. + +### FullRelationship + +NOTE: FullRelationship reuses Relationship instead of a more symmetric representation +to reduce the risk of divergence when adding new fields to Relationships. + +| Name | Type | Description | +| ----------------- | ------------ | ------------------------------------------------------------------- | +| **source_symbol** | string | Represents the symbol that this relationship is about. | +| **relationship** | Relationship | Represents the symbol + the relationship that this symbol links to. | + ### Index Index represents a complete SCIP index for a workspace this is rooted at a @@ -102,19 +202,15 @@ value at a time. To permit streaming consumption of an Index payload, the `metadata` field must appear at the start of the stream and must only appear once in the stream. Other field values may appear in any order. -| Name | Type | Description | -| ----------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **metadata** | Metadata | Metadata about this index. | -| repeated **documents** | Document | Documents that belong to this index. | -| repeated **external_symbols** | SymbolInformation | (optional) Symbols that are referenced from this index but are defined in an external package (a separate `Index` message). Leave this field empty if you assume the external package will get indexed separately. If the external package won't get indexed for some reason then you can use this field to provide hover documentation for those external symbols. | +| Name | Type | Description | +| ----------------------------- | ----------------- | ---------------------------------------------------- | +| **metadata** | Metadata | Metadata about this index. | +| repeated **documents** | Document | Documents that belong to this index. | +| repeated **external_symbols** | SymbolInformation | (DEPRECATED): Use Document.external_symbols instead. | Additional notes on **external_symbols**: -(optional) Symbols that are referenced from this index but are defined in -an external package (a separate `Index` message). Leave this field empty -if you assume the external package will get indexed separately. If the -external package won't get indexed for some reason then you can use this -field to provide hover documentation for those external symbols. +(DEPRECATED): Use Document.external_symbols instead. IMPORTANT: When adding a new field to `Index` here, add a matching function in `IndexVisitor` and update `ParseStreaming`. @@ -258,10 +354,36 @@ NOTE: This corresponds to a module in Go and JVM languages. | ---------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **symbol** | string | | **is_reference** | bool | When resolving "Find references", this field documents what other symbols should be included together with this symbol. For example, consider the following TypeScript code that defines two symbols `Animal#sound()` and `Dog#sound()`: `ts interface Animal { ^^^^^^ definition Animal# sound(): string ^^^^^ definition Animal#sound() } class Dog implements Animal { ^^^ definition Dog#, relationships = [{symbol: "Animal#", is_implementation: true}] public sound(): string { return "woof" } ^^^^^ definition Dog#sound(), references_symbols = Animal#sound(), relationships = [{symbol: "Animal#sound()", is_implementation:true, is_reference: true}] } const animal: Animal = new Dog() ^^^^^^ reference Animal# console.log(animal.sound()) ^^^^^ reference Animal#sound() ` Doing "Find references" on the symbol `Animal#sound()` should return references to the `Dog#sound()` method as well. Vice-versa, doing "Find references" on the `Dog#sound()` method should include references to the `Animal#sound()` method as well. | -| **is_implementation** | bool | Similar to `is_reference` but for "Find implementations". It's common for `is_implementation` and `is_reference` to both be true but it's not always the case. In the TypeScript example above, observe that `Dog#` has an `is_implementation` relationship with `"Animal#"` but not `is_reference`. This is because "Find references" on the "Animal#" symbol should not return "Dog#". We only want "Dog#" to return as a result for "Find implementations" on the "Animal#" symbol. | -| **is_type_definition** | bool | Similar to `references_symbols` but for "Go to type definition". | +| **is_implementation** | bool | Similar to `is_reference` but for "Find implementations" and "Find supers". | +| **is_type_definition** | bool | Represents that "Go to type definition" from the (outer) symbol should go to the (relationship's) symbol for a particular type. | | **is_definition** | bool | Allows overriding the behavior of "Go to definition" and "Find references" for symbols which do not have a definition of their own or could potentially have multiple definitions. | +Additional notes on **is_implementation**: + +Similar to `is_reference` but for "Find implementations" and "Find supers". + +It's common for `is_implementation` and `is_reference` to both be true but +it's not always the case. In the TypeScript example above, observe that +`Dog#` has an `is_implementation` relationship with `"Animal#"` but not +`is_reference`. This is because "Find references" on the "Animal#" symbol +should not return "Dog#". We only want "Dog#" to return as a result for +"Find implementations" on the "Animal#" symbol. + +Additional notes on **is_type_definition**: + +Represents that "Go to type definition" from the (outer) symbol should go +to the (relationship's) symbol for a particular type. + +A less confusing name for this field would be "has_type", but we +cannot change this to avoid breaking generated code. + +NOTE: In Sourcegraph, this field will not be used for code navigation like +"Go to type references" (i.e. identifying all places where there is a +variable with a given type, even when type is not mentioned explicitly), +since that would mean that an indexer could only utilize local symbols +in very limited contexts, since most local variables could be potential +targets of such a navigation action. + Additional notes on **is_definition**: Allows overriding the behavior of "Go to definition" and "Find references" @@ -327,7 +449,11 @@ for every node in the AST (along the ancestry path) between the root of the file and the node corresponding to the symbol. Local symbols MUST only be used for entities which are local to a Document, -and cannot be accessed from outside the Document. +and cannot be accessed from outside the Document via code navigation. + +Example 1: If the indexer supports emitting 'is_implementation' relationships, +then a subclass of a global class, even if declared within a function, +must have a global symbol. | Name | Type | Description | | ------------------------ | ---------- | ----------- | @@ -350,6 +476,17 @@ docstring or what package it's defined it. | **signature_documentation** | Document | (optional) The signature of this symbol as it's displayed in API documentation or in hover tooltips. For example, a Java method that adds two numbers this would have `Document.language = "java"` and `Document.text = "void add(int a, int b)". The `language`and`text`fields are required while other fields such as`Documentation.occurrences` can be optionally included to support hyperlinking referenced symbols in the signature. | | **enclosing_symbol** | string | (optional) The enclosing symbol if this is a local symbol. For non-local symbols, the enclosing symbol should be parsed from the `symbol` field using the `Descriptor` grammar. | +Additional notes on **relationships**: + +(optional) Relationships to other symbols (e.g., implements, type definition). + +Relationships follow one direction. To represent the other direction: + +- If the source symbol is defined in the same Index, attach the relationship to + its SymbolInformation. +- If the source symbol is defined in a different Index, use Document.external_symbols's + relationships field. + Additional notes on **display_name**: (optional) The name of this symbol as it should be displayed to the user. diff --git a/scip.proto b/scip.proto index 17d6e2a6..cfe94ea5 100644 --- a/scip.proto +++ b/scip.proto @@ -25,11 +25,7 @@ message Index { Metadata metadata = 1; // Documents that belong to this index. repeated Document documents = 2; - // (optional) Symbols that are referenced from this index but are defined in - // an external package (a separate `Index` message). Leave this field empty - // if you assume the external package will get indexed separately. If the - // external package won't get indexed for some reason then you can use this - // field to provide hover documentation for those external symbols. + // (DEPRECATED): Use Document.external_symbols instead. repeated SymbolInformation external_symbols = 3; // IMPORTANT: When adding a new field to `Index` here, add a matching // function in `IndexVisitor` and update `ParseStreaming`. @@ -115,6 +111,91 @@ message Document { // - For an indexer implemented in Go, Rust or C++, // use UTF8ByteOffsetFromLineStart. PositionEncoding position_encoding = 6; + + // (optional) Symbols that are referenced from this Document but are defined in + // an external package (a separate `Index` message). This field can be used + // for the following purposes: + // - Provide hover documentation for external symbols. + // - Mark relationships from an external symbol to a global symbol defined + // in the current document. + // + // Example 1: In Go, if a file defines a new interface I and there is a standard + // library type T which is imported in the file and implements I, + // the indexer can add an external symbol for T with an is_implementation + // relationship to I. + // + // Example 2: In Rust, if a file defines a new trait T and add impls for a + // type X defined in another Index, the indexer can add an external symbol + // for X with an is_implementation relationship to T. + // + // Example 3: If the code references a third-party type X whose definition + // site may or may not be indexed, the indexer can emit an external symbol + // for X including its hover documentation. + repeated SymbolInformation external_symbols = 7; + + // (optional) Relationships that affect code navigation in this Document + // but are not and cannot be defined in the Document(s) defining + // source_symbol or the target symbol (relationship.symbol). + // + // Example 1: In the case of structurally typed interfaces (or more generally + // structural subtyping), such as Go, it is possible for one Go package P1 + // to define an interface I, a second Go package P2 to have a type T which + // implements the interface I without importing P1, and a third Go package P3 + // to import both P1 and P2. If P3 has a conversion of a value from + // P2.T to P1.I, then the indexer can emit a cross-relationship from + // P2.T to P1.I. + // + // This same example carries over to languages like TypeScript which support + // structural subtyping. + // + // Example 2: Rust allows for blanket trait implementations. Consider the + // following code: + // + // ```rust + // // t1.rs + // pub trait T1 {} + // + // // s.rs + // use m1::T1; + // pub struct S; + // impl T1 for S {} + // + // // t2.rs + // use m1::T1; + // trait T2 {} + // impl T2 for T {} // <- blanket implementation that covers S + // + // // cross.rs + // use m3::T2; + // use m2::S; + // + // fn f(s : S) -> Box { Box::new(s) } // derives that S implements T2 + // ``` + // + // If all of these modules correspond to Documents in different SCIP indexes, + // it is not possible for the indexer to emit an is_implementation relationship + // from S to T2 in the Documents for t1.rs, s.rs or t2.rs. In this case, + // the indexer can emit a cross-relationship from S to T2 in the Document for cross.rs. + // + // Example 3: Swift allows for retroactive conformances (aka orphan instances + // in Haskell). Consider the following code: + // + // ```swift + // // P.swift + // protocol P {} + // + // // S.swift + // struct S {} + // + // // cross.swift + // extension S: P {} + // ``` + // + // If all of these files correspond to Documents in different SCIP indexes, + // it is not possible for the indexer to emit an is_implementation relationship + // from S to P in the Documents for P.swift, or S.swift. In this case, + // the indexer can emit a cross-relationship from S to P in the Document for cross.swift. + repeated FullRelationship cross_relationships = 8; } // Encoding used to interpret the 'character' value in source ranges. @@ -185,7 +266,12 @@ enum PositionEncoding { // the file and the node corresponding to the symbol. // // Local symbols MUST only be used for entities which are local to a Document, -// and cannot be accessed from outside the Document. +// and cannot be accessed from outside the Document via code navigation. +// +// Example 1: If the indexer supports emitting 'is_implementation' relationships, +// then a subclass of a global class, even if declared within a function, +// must have a global symbol. +// message Symbol { string scheme = 1; Package package = 2; @@ -240,6 +326,12 @@ message SymbolInformation { // include non-code documentation in this field, for example docstrings. repeated string documentation = 3; // (optional) Relationships to other symbols (e.g., implements, type definition). + // + // Relationships follow one direction. To represent the other direction: + // - If the source symbol is defined in the same Index, attach the relationship to + // its SymbolInformation. + // - If the source symbol is defined in a different Index, use Document.external_symbols's + // relationships field. repeated Relationship relationships = 4; // The kind of this symbol. Use this field instead of // `SymbolDescriptor.Suffix` to determine whether something is, for example, a @@ -438,6 +530,14 @@ message SymbolInformation { string enclosing_symbol = 8; } +// NOTE: FullRelationship reuses Relationship instead of a more symmetric representation +// to reduce the risk of divergence when adding new fields to Relationships. +message FullRelationship { + // Represents the symbol that this relationship is about. + string source_symbol = 1; + // Represents the symbol + the relationship that this symbol links to. + Relationship relationship = 2; +} message Relationship { string symbol = 1; @@ -466,16 +566,27 @@ message Relationship { // references" on the `Dog#sound()` method should include references to the // `Animal#sound()` method as well. bool is_reference = 2; - // Similar to `is_reference` but for "Find implementations". + // Similar to `is_reference` but for "Find implementations" and "Find supers". + // // It's common for `is_implementation` and `is_reference` to both be true but - // it's not always the case. - // In the TypeScript example above, observe that `Dog#` has an - // `is_implementation` relationship with `"Animal#"` but not `is_reference`. - // This is because "Find references" on the "Animal#" symbol should not return - // "Dog#". We only want "Dog#" to return as a result for "Find - // implementations" on the "Animal#" symbol. + // it's not always the case. In the TypeScript example above, observe that + // `Dog#` has an `is_implementation` relationship with `"Animal#"` but not + // `is_reference`. This is because "Find references" on the "Animal#" symbol + // should not return "Dog#". We only want "Dog#" to return as a result for + // "Find implementations" on the "Animal#" symbol. bool is_implementation = 3; - // Similar to `references_symbols` but for "Go to type definition". + // Represents that "Go to type definition" from the (outer) symbol should go + // to the (relationship's) symbol for a particular type. + // + // A less confusing name for this field would be "has_type", but we + // cannot change this to avoid breaking generated code. + // + // NOTE: In Sourcegraph, this field will not be used for code navigation like + // "Go to type references" (i.e. identifying all places where there is a + // variable with a given type, even when type is not mentioned explicitly), + // since that would mean that an indexer could only utilize local symbols + // in very limited contexts, since most local variables could be potential + // targets of such a navigation action. bool is_type_definition = 4; // Allows overriding the behavior of "Go to definition" and "Find references" // for symbols which do not have a definition of their own or could From 2ff6c5ff6883d991a66d1194e4838a70d9d4712a Mon Sep 17 00:00:00 2001 From: Varun Gandhi Date: Thu, 28 Nov 2024 16:16:08 +0800 Subject: [PATCH 3/3] Add a symbol role for function calls --- bindings/go/scip/scip.pb.go | 325 +++---- bindings/haskell/src/Proto/Scip.hs | 1115 +++++++++++----------- bindings/rust/src/generated/scip.rs | 1363 ++++++++++++++------------- bindings/typescript/scip.ts | 3 +- docs/scip.md | 1 + scip.proto | 2 + 6 files changed, 1421 insertions(+), 1388 deletions(-) diff --git a/bindings/go/scip/scip.pb.go b/bindings/go/scip/scip.pb.go index 2445c788..71ad41f0 100644 --- a/bindings/go/scip/scip.pb.go +++ b/bindings/go/scip/scip.pb.go @@ -224,19 +224,22 @@ const ( // and Objective-C, as well as `val` declarations in interface // files in languages like SML and OCaml. SymbolRole_ForwardDefinition SymbolRole = 64 + // Does this occurrence correspond to a function call? + SymbolRole_Call SymbolRole = 128 ) // Enum value maps for SymbolRole. var ( SymbolRole_name = map[int32]string{ - 0: "UnspecifiedSymbolRole", - 1: "Definition", - 2: "Import", - 4: "WriteAccess", - 8: "ReadAccess", - 16: "Generated", - 32: "Test", - 64: "ForwardDefinition", + 0: "UnspecifiedSymbolRole", + 1: "Definition", + 2: "Import", + 4: "WriteAccess", + 8: "ReadAccess", + 16: "Generated", + 32: "Test", + 64: "ForwardDefinition", + 128: "Call", } SymbolRole_value = map[string]int32{ "UnspecifiedSymbolRole": 0, @@ -247,6 +250,7 @@ var ( "Generated": 16, "Test": 32, "ForwardDefinition": 64, + "Call": 128, } ) @@ -2967,7 +2971,7 @@ var file_scip_proto_rawDesc = []byte{ 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x55, 0x54, 0x46, 0x33, 0x32, 0x43, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x6d, - 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x03, 0x2a, 0x94, 0x01, 0x0a, 0x0a, + 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x03, 0x2a, 0x9f, 0x01, 0x0a, 0x0a, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, @@ -2977,157 +2981,158 @@ var file_scip_proto_rawDesc = []byte{ 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, 0x10, 0x20, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x40, 0x2a, 0xea, 0x06, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, - 0x64, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x75, 0x6e, - 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, - 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4b, - 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x1a, - 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, - 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x1b, - 0x0a, 0x17, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x10, - 0x0d, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x10, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x0e, - 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, 0x12, 0x13, - 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, - 0x6f, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x10, 0x13, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, - 0x14, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x15, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, - 0x67, 0x65, 0x78, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x16, 0x12, 0x11, 0x0a, 0x0d, 0x52, - 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x17, 0x12, 0x11, - 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x10, - 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x65, 0x72, 0x10, 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4a, 0x6f, - 0x69, 0x6e, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x1c, - 0x12, 0x18, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x10, 0x1e, - 0x12, 0x14, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x6f, - 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x21, 0x12, 0x07, - 0x0a, 0x03, 0x54, 0x61, 0x67, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x23, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, - 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x24, 0x1a, 0x02, 0x10, 0x01, 0x2a, - 0x56, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x55, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, - 0x04, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x04, 0x2a, 0x4e, 0x0a, 0x0d, 0x44, 0x69, 0x61, 0x67, 0x6e, - 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6e, 0x65, 0x63, 0x65, - 0x73, 0x73, 0x61, 0x72, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0x9b, 0x0a, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x41, 0x42, 0x41, 0x50, 0x10, 0x3c, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x70, 0x65, 0x78, 0x10, - 0x60, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x4c, 0x10, 0x31, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, - 0x61, 0x10, 0x27, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x67, 0x64, 0x61, 0x10, 0x2d, 0x12, 0x0c, 0x0a, - 0x08, 0x41, 0x73, 0x63, 0x69, 0x69, 0x44, 0x6f, 0x63, 0x10, 0x56, 0x12, 0x0c, 0x0a, 0x08, 0x41, - 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x10, 0x3a, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x77, 0x6b, - 0x10, 0x42, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x61, 0x74, 0x10, 0x44, 0x12, 0x0a, 0x0a, 0x06, 0x42, - 0x69, 0x62, 0x54, 0x65, 0x58, 0x10, 0x51, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x22, 0x12, 0x09, - 0x0a, 0x05, 0x43, 0x4f, 0x42, 0x4f, 0x4c, 0x10, 0x3b, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x50, 0x50, - 0x10, 0x23, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x53, 0x10, 0x1a, 0x12, 0x0a, 0x0a, 0x06, 0x43, - 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x6f, 0x6a, 0x75, - 0x72, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x10, 0x15, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x4c, 0x69, 0x73, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x6f, 0x71, 0x10, 0x2f, 0x12, - 0x08, 0x0a, 0x04, 0x43, 0x55, 0x44, 0x41, 0x10, 0x61, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x61, 0x72, - 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x10, 0x39, 0x12, - 0x08, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x6f, 0x63, - 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x79, 0x61, - 0x6c, 0x6f, 0x67, 0x10, 0x32, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, 0x78, 0x69, 0x72, 0x10, - 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x12, 0x12, 0x0a, 0x0a, - 0x06, 0x46, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x73, - 0x68, 0x10, 0x41, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, 0x18, 0x12, 0x0b, 0x0a, - 0x07, 0x46, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, - 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, - 0x74, 0x5f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, - 0x74, 0x5f, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x6f, - 0x10, 0x21, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x10, 0x62, 0x12, - 0x0a, 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x79, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, - 0x54, 0x4d, 0x4c, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x61, 0x63, 0x6b, 0x10, 0x14, 0x12, - 0x0e, 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x61, 0x72, 0x73, 0x10, 0x5a, 0x12, - 0x0b, 0x0a, 0x07, 0x48, 0x61, 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x2c, 0x12, 0x09, 0x0a, 0x05, - 0x49, 0x64, 0x72, 0x69, 0x73, 0x10, 0x2e, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x6e, 0x69, 0x10, 0x48, - 0x12, 0x05, 0x0a, 0x01, 0x4a, 0x10, 0x33, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, - 0x4b, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x61, 0x76, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, - 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x4a, - 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5d, - 0x12, 0x0b, 0x0a, 0x07, 0x4a, 0x73, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x10, 0x4c, 0x12, 0x09, 0x0a, - 0x05, 0x4a, 0x75, 0x6c, 0x69, 0x61, 0x10, 0x37, 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x75, 0x73, 0x74, - 0x66, 0x69, 0x6c, 0x65, 0x10, 0x6d, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x6f, 0x74, 0x6c, 0x69, 0x6e, - 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x61, 0x54, 0x65, 0x58, 0x10, 0x53, 0x12, 0x08, 0x0a, - 0x04, 0x4c, 0x65, 0x61, 0x6e, 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x73, 0x73, 0x10, - 0x1b, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x75, 0x61, 0x10, 0x0c, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x75, - 0x61, 0x75, 0x10, 0x6c, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x6b, 0x65, 0x66, 0x69, 0x6c, 0x65, - 0x10, 0x4f, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x54, - 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x74, 0x6c, 0x61, 0x62, 0x10, 0x34, 0x12, 0x0a, 0x0a, 0x06, - 0x4e, 0x69, 0x63, 0x6b, 0x65, 0x6c, 0x10, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x69, 0x78, 0x10, - 0x4d, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, 0x24, 0x12, 0x11, 0x0a, - 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x50, 0x50, 0x10, 0x25, - 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x61, 0x73, 0x63, 0x61, 0x6c, 0x10, 0x63, 0x12, 0x07, 0x0a, 0x03, - 0x50, 0x48, 0x50, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x53, 0x51, 0x4c, 0x10, 0x46, - 0x12, 0x08, 0x0a, 0x04, 0x50, 0x65, 0x72, 0x6c, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x6f, - 0x77, 0x65, 0x72, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x10, 0x43, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, - 0x6f, 0x6c, 0x6f, 0x67, 0x10, 0x47, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x10, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x10, 0x0f, - 0x12, 0x05, 0x0a, 0x01, 0x52, 0x10, 0x36, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x61, 0x6b, 0x75, 0x10, 0x0e, 0x12, 0x09, 0x0a, - 0x05, 0x52, 0x61, 0x7a, 0x6f, 0x72, 0x10, 0x3e, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x72, - 0x6f, 0x10, 0x66, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x65, 0x53, 0x54, 0x10, 0x55, 0x12, 0x08, 0x0a, - 0x04, 0x52, 0x75, 0x62, 0x79, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x73, 0x74, 0x10, - 0x28, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x53, 0x10, 0x3d, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x43, - 0x53, 0x53, 0x10, 0x1d, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x4c, 0x10, 0x2b, 0x12, 0x07, 0x0a, - 0x03, 0x53, 0x51, 0x4c, 0x10, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x61, 0x73, 0x73, 0x10, 0x1c, - 0x12, 0x09, 0x0a, 0x05, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x65, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x65, 0x6c, 0x6c, - 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x40, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x6b, 0x79, 0x6c, - 0x61, 0x72, 0x6b, 0x10, 0x4e, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x6b, - 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x10, 0x5f, 0x12, 0x0a, - 0x0a, 0x06, 0x53, 0x76, 0x65, 0x6c, 0x74, 0x65, 0x10, 0x6a, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x77, - 0x69, 0x66, 0x74, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x63, 0x6c, 0x10, 0x65, 0x12, 0x08, - 0x0a, 0x04, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x49, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x65, 0x58, 0x10, - 0x52, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x68, 0x72, 0x69, 0x66, 0x74, 0x10, 0x67, 0x12, 0x0e, 0x0a, - 0x0a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x17, 0x12, 0x13, 0x0a, - 0x0f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, - 0x10, 0x5e, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x69, 0x6c, 0x6f, 0x67, 0x10, 0x68, 0x12, - 0x08, 0x0a, 0x04, 0x56, 0x48, 0x44, 0x4c, 0x10, 0x69, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x69, 0x73, - 0x75, 0x61, 0x6c, 0x42, 0x61, 0x73, 0x69, 0x63, 0x10, 0x3f, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x75, - 0x65, 0x10, 0x19, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x10, 0x35, - 0x12, 0x07, 0x0a, 0x03, 0x58, 0x4d, 0x4c, 0x10, 0x1f, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x53, 0x4c, - 0x10, 0x20, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x4a, 0x12, 0x07, 0x0a, 0x03, - 0x5a, 0x69, 0x67, 0x10, 0x26, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, - 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x67, 0x6f, - 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x10, 0x40, 0x12, 0x09, 0x0a, 0x04, 0x43, 0x61, 0x6c, 0x6c, 0x10, 0x80, 0x01, 0x2a, 0xea, 0x06, + 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x15, + 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6e, 0x74, 0x61, + 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, + 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x10, 0x07, 0x12, 0x12, 0x0a, + 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, 0x75, 0x6c, 0x6c, 0x10, + 0x08, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x0b, 0x12, + 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x17, 0x0a, 0x13, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x0e, 0x1a, 0x02, 0x08, 0x01, 0x12, + 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x10, 0x11, 0x12, 0x1d, + 0x0a, 0x19, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, + 0x6f, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x12, 0x12, 0x12, 0x0a, + 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, + 0x13, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, + 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, 0x14, 0x12, 0x17, 0x0a, 0x13, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x10, 0x15, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x73, + 0x63, 0x61, 0x70, 0x65, 0x10, 0x16, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x17, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x67, + 0x65, 0x78, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, + 0x52, 0x65, 0x67, 0x65, 0x78, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x19, + 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0x1a, 0x12, + 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x1c, 0x12, 0x18, 0x0a, 0x14, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, + 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x43, + 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, + 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x4c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, + 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x21, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x61, 0x67, + 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x10, 0x23, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x65, 0x72, 0x10, 0x24, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0x56, 0x0a, 0x08, 0x53, 0x65, + 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x69, 0x6e, 0x74, + 0x10, 0x04, 0x2a, 0x4e, 0x0a, 0x0d, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x10, + 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, 0x79, + 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x10, 0x02, 0x2a, 0x9b, 0x0a, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, + 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x42, 0x41, 0x50, + 0x10, 0x3c, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x70, 0x65, 0x78, 0x10, 0x60, 0x12, 0x07, 0x0a, 0x03, + 0x41, 0x50, 0x4c, 0x10, 0x31, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, 0x61, 0x10, 0x27, 0x12, 0x08, + 0x0a, 0x04, 0x41, 0x67, 0x64, 0x61, 0x10, 0x2d, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x63, 0x69, + 0x69, 0x44, 0x6f, 0x63, 0x10, 0x56, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, + 0x6c, 0x79, 0x10, 0x3a, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x77, 0x6b, 0x10, 0x42, 0x12, 0x07, 0x0a, + 0x03, 0x42, 0x61, 0x74, 0x10, 0x44, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x69, 0x62, 0x54, 0x65, 0x58, + 0x10, 0x51, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x22, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x42, + 0x4f, 0x4c, 0x10, 0x3b, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x50, 0x50, 0x10, 0x23, 0x12, 0x07, 0x0a, + 0x03, 0x43, 0x53, 0x53, 0x10, 0x1a, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x53, 0x68, 0x61, 0x72, 0x70, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x6f, 0x6a, 0x75, 0x72, 0x65, 0x10, 0x08, 0x12, + 0x10, 0x0a, 0x0c, 0x43, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, + 0x15, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x70, 0x10, + 0x09, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x6f, 0x71, 0x10, 0x2f, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x55, + 0x44, 0x41, 0x10, 0x61, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x61, 0x72, 0x74, 0x10, 0x03, 0x12, 0x0a, + 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x10, 0x39, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x69, + 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, + 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x79, 0x61, 0x6c, 0x6f, 0x67, 0x10, 0x32, + 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, 0x78, 0x69, 0x72, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, + 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x53, 0x68, 0x61, + 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x73, 0x68, 0x10, 0x41, 0x12, 0x08, + 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6f, 0x72, 0x74, + 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x52, 0x65, 0x62, + 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x6f, 0x10, 0x21, 0x12, 0x0b, 0x0a, + 0x07, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x10, 0x62, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x72, + 0x6f, 0x6f, 0x76, 0x79, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x1e, + 0x12, 0x08, 0x0a, 0x04, 0x48, 0x61, 0x63, 0x6b, 0x10, 0x14, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x61, 0x72, 0x73, 0x10, 0x5a, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x61, + 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x2c, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x64, 0x72, 0x69, 0x73, + 0x10, 0x2e, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x6e, 0x69, 0x10, 0x48, 0x12, 0x05, 0x0a, 0x01, 0x4a, + 0x10, 0x33, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x4b, 0x12, 0x08, 0x0a, 0x04, + 0x4a, 0x61, 0x76, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5d, 0x12, 0x0b, 0x0a, 0x07, 0x4a, + 0x73, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x10, 0x4c, 0x12, 0x09, 0x0a, 0x05, 0x4a, 0x75, 0x6c, 0x69, + 0x61, 0x10, 0x37, 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x75, 0x73, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x10, + 0x6d, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x6f, 0x74, 0x6c, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x09, 0x0a, + 0x05, 0x4c, 0x61, 0x54, 0x65, 0x58, 0x10, 0x53, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x61, 0x6e, + 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x73, 0x73, 0x10, 0x1b, 0x12, 0x07, 0x0a, 0x03, + 0x4c, 0x75, 0x61, 0x10, 0x0c, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x75, 0x61, 0x75, 0x10, 0x6c, 0x12, + 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x6b, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x4f, 0x12, 0x0c, 0x0a, + 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x54, 0x12, 0x0a, 0x0a, 0x06, 0x4d, + 0x61, 0x74, 0x6c, 0x61, 0x62, 0x10, 0x34, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x69, 0x63, 0x6b, 0x65, + 0x6c, 0x10, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x69, 0x78, 0x10, 0x4d, 0x12, 0x09, 0x0a, 0x05, + 0x4f, 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, 0x24, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x50, 0x50, 0x10, 0x25, 0x12, 0x0a, 0x0a, 0x06, 0x50, + 0x61, 0x73, 0x63, 0x61, 0x6c, 0x10, 0x63, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x48, 0x50, 0x10, 0x13, + 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x53, 0x51, 0x4c, 0x10, 0x46, 0x12, 0x08, 0x0a, 0x04, 0x50, + 0x65, 0x72, 0x6c, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x68, + 0x65, 0x6c, 0x6c, 0x10, 0x43, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x67, 0x10, + 0x47, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x10, 0x64, 0x12, + 0x0a, 0x0a, 0x06, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x05, 0x0a, 0x01, 0x52, + 0x10, 0x36, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x0b, 0x12, 0x08, + 0x0a, 0x04, 0x52, 0x61, 0x6b, 0x75, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x61, 0x7a, 0x6f, + 0x72, 0x10, 0x3e, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x72, 0x6f, 0x10, 0x66, 0x12, 0x08, + 0x0a, 0x04, 0x52, 0x65, 0x53, 0x54, 0x10, 0x55, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x62, 0x79, + 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x73, 0x74, 0x10, 0x28, 0x12, 0x07, 0x0a, 0x03, + 0x53, 0x41, 0x53, 0x10, 0x3d, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x43, 0x53, 0x53, 0x10, 0x1d, 0x12, + 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x4c, 0x10, 0x2b, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x51, 0x4c, 0x10, + 0x45, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x61, 0x73, 0x73, 0x10, 0x1c, 0x12, 0x09, 0x0a, 0x05, 0x53, + 0x63, 0x61, 0x6c, 0x61, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, + 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x10, 0x40, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x10, 0x4e, + 0x12, 0x09, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x6b, 0x12, 0x0c, 0x0a, 0x08, 0x53, + 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x10, 0x5f, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x76, 0x65, + 0x6c, 0x74, 0x65, 0x10, 0x6a, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x77, 0x69, 0x66, 0x74, 0x10, 0x02, + 0x12, 0x07, 0x0a, 0x03, 0x54, 0x63, 0x6c, 0x10, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x4d, + 0x4c, 0x10, 0x49, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x65, 0x58, 0x10, 0x52, 0x12, 0x0a, 0x0a, 0x06, + 0x54, 0x68, 0x72, 0x69, 0x66, 0x74, 0x10, 0x67, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65, + 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x79, 0x70, 0x65, + 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5e, 0x12, 0x0b, 0x0a, + 0x07, 0x56, 0x65, 0x72, 0x69, 0x6c, 0x6f, 0x67, 0x10, 0x68, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x48, + 0x44, 0x4c, 0x10, 0x69, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x42, 0x61, + 0x73, 0x69, 0x63, 0x10, 0x3f, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x75, 0x65, 0x10, 0x19, 0x12, 0x0b, + 0x0a, 0x07, 0x57, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x10, 0x35, 0x12, 0x07, 0x0a, 0x03, 0x58, + 0x4d, 0x4c, 0x10, 0x1f, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x53, 0x4c, 0x10, 0x20, 0x12, 0x08, 0x0a, + 0x04, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x4a, 0x12, 0x07, 0x0a, 0x03, 0x5a, 0x69, 0x67, 0x10, 0x26, + 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, + 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x70, + 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/bindings/haskell/src/Proto/Scip.hs b/bindings/haskell/src/Proto/Scip.hs index 3798b5d8..49efaa9d 100644 --- a/bindings/haskell/src/Proto/Scip.hs +++ b/bindings/haskell/src/Proto/Scip.hs @@ -5631,6 +5631,7 @@ data SymbolRole Generated | Test | ForwardDefinition | + Call | SymbolRole'Unrecognized !SymbolRole'UnrecognizedValue deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord) instance Data.ProtoLens.MessageEnum SymbolRole where @@ -5642,6 +5643,7 @@ instance Data.ProtoLens.MessageEnum SymbolRole where maybeToEnum 16 = Prelude.Just Generated maybeToEnum 32 = Prelude.Just Test maybeToEnum 64 = Prelude.Just ForwardDefinition + maybeToEnum 128 = Prelude.Just Call maybeToEnum k = Prelude.Just (SymbolRole'Unrecognized @@ -5654,6 +5656,7 @@ instance Data.ProtoLens.MessageEnum SymbolRole where showEnum Generated = "Generated" showEnum Test = "Test" showEnum ForwardDefinition = "ForwardDefinition" + showEnum Call = "Call" showEnum (SymbolRole'Unrecognized (SymbolRole'UnrecognizedValue k)) = Prelude.show k readEnum k @@ -5667,11 +5670,12 @@ instance Data.ProtoLens.MessageEnum SymbolRole where | (Prelude.==) k "Test" = Prelude.Just Test | (Prelude.==) k "ForwardDefinition" = Prelude.Just ForwardDefinition + | (Prelude.==) k "Call" = Prelude.Just Call | Prelude.otherwise = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum instance Prelude.Bounded SymbolRole where minBound = UnspecifiedSymbolRole - maxBound = ForwardDefinition + maxBound = Call instance Prelude.Enum SymbolRole where toEnum k__ = Prelude.maybe @@ -5687,11 +5691,12 @@ instance Prelude.Enum SymbolRole where fromEnum Generated = 16 fromEnum Test = 32 fromEnum ForwardDefinition = 64 + fromEnum Call = 128 fromEnum (SymbolRole'Unrecognized (SymbolRole'UnrecognizedValue k)) = Prelude.fromIntegral k - succ ForwardDefinition + succ Call = Prelude.error - "SymbolRole.succ: bad argument ForwardDefinition. This value would be out of bounds." + "SymbolRole.succ: bad argument Call. This value would be out of bounds." succ UnspecifiedSymbolRole = Definition succ Definition = Import succ Import = WriteAccess @@ -5699,6 +5704,7 @@ instance Prelude.Enum SymbolRole where succ ReadAccess = Generated succ Generated = Test succ Test = ForwardDefinition + succ ForwardDefinition = Call succ (SymbolRole'Unrecognized _) = Prelude.error "SymbolRole.succ: bad argument: unrecognized value" pred UnspecifiedSymbolRole @@ -5711,6 +5717,7 @@ instance Prelude.Enum SymbolRole where pred Generated = ReadAccess pred Test = Generated pred ForwardDefinition = Test + pred Call = ForwardDefinition pred (SymbolRole'Unrecognized _) = Prelude.error "SymbolRole.pred: bad argument: unrecognized value" enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom @@ -6539,7 +6546,7 @@ packedFileDescriptor \\ESCUnspecifiedPositionEncoding\DLE\NUL\DC2#\n\ \\USUTF8CodeUnitOffsetFromLineStart\DLE\SOH\DC2$\n\ \ UTF16CodeUnitOffsetFromLineStart\DLE\STX\DC2$\n\ - \ UTF32CodeUnitOffsetFromLineStart\DLE\ETX*\148\SOH\n\ + \ UTF32CodeUnitOffsetFromLineStart\DLE\ETX*\159\SOH\n\ \\n\ \SymbolRole\DC2\EM\n\ \\NAKUnspecifiedSymbolRole\DLE\NUL\DC2\SO\n\ @@ -6552,7 +6559,8 @@ packedFileDescriptor \ReadAccess\DLE\b\DC2\r\n\ \\tGenerated\DLE\DLE\DC2\b\n\ \\EOTTest\DLE \DC2\NAK\n\ - \\DC1ForwardDefinition\DLE@*\234\ACK\n\ + \\DC1ForwardDefinition\DLE@\DC2\t\n\ + \\EOTCall\DLE\128\SOH*\234\ACK\n\ \\n\ \SyntaxKind\DC2\EM\n\ \\NAKUnspecifiedSyntaxKind\DLE\NUL\DC2\v\n\ @@ -6746,9 +6754,9 @@ packedFileDescriptor \\ETXXML\DLE\US\DC2\a\n\ \\ETXXSL\DLE \DC2\b\n\ \\EOTYAML\DLEJ\DC2\a\n\ - \\ETXZig\DLE&B/Z-github.com/sourcegraph/scip/bindings/go/scip/J\217\217\STX\n\ + \\ETXZig\DLE&B/Z-github.com/sourcegraph/scip/bindings/go/scip/J\188\218\STX\n\ \\a\DC2\ENQ\n\ - \\NUL\223\a\SOH\n\ + \\NUL\225\a\SOH\n\ \\130\EOT\n\ \\SOH\f\DC2\ETX\n\ \\NUL\DC22\247\ETX An index contains one or more pieces of information about a given piece of\n\ @@ -8257,7 +8265,7 @@ packedFileDescriptor \\r\n\ \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\222\EOT\ETB\CAN\n\ \\136\ETX\n\ - \\STX\ENQ\ETX\DC2\ACK\231\EOT\NUL\253\EOT\SOH\SUB\249\STX SymbolRole declares what \"role\" a symbol has in an occurrence. A role is\n\ + \\STX\ENQ\ETX\DC2\ACK\231\EOT\NUL\255\EOT\SOH\SUB\249\STX SymbolRole declares what \"role\" a symbol has in an occurrence. A role is\n\ \ encoded as a bitset where each bit represents a different role. For example,\n\ \ to determine if the `Import` role is set, test whether the second bit of the\n\ \ enum value is defined. In pseudocode, this can be implemented with the\n\ @@ -8326,304 +8334,311 @@ packedFileDescriptor \\ENQ\ENQ\ETX\STX\a\SOH\DC2\EOT\252\EOT\STX\DC3\n\ \\r\n\ \\ENQ\ENQ\ETX\STX\a\STX\DC2\EOT\252\EOT\SYN\SUB\n\ + \C\n\ + \\EOT\ENQ\ETX\STX\b\DC2\EOT\254\EOT\STX\SO\SUB5 Does this occurrence correspond to a function call?\n\ + \\n\ + \\r\n\ + \\ENQ\ENQ\ETX\STX\b\SOH\DC2\EOT\254\EOT\STX\ACK\n\ + \\r\n\ + \\ENQ\ENQ\ETX\STX\b\STX\DC2\EOT\254\EOT\t\r\n\ \\f\n\ - \\STX\ENQ\EOT\DC2\ACK\255\EOT\NUL\220\ENQ\SOH\n\ + \\STX\ENQ\EOT\DC2\ACK\129\ENQ\NUL\222\ENQ\SOH\n\ \\v\n\ - \\ETX\ENQ\EOT\SOH\DC2\EOT\255\EOT\ENQ\SI\n\ + \\ETX\ENQ\EOT\SOH\DC2\EOT\129\ENQ\ENQ\SI\n\ \\v\n\ - \\ETX\ENQ\EOT\ETX\DC2\EOT\128\ENQ\STX\FS\n\ + \\ETX\ENQ\EOT\ETX\DC2\EOT\130\ENQ\STX\FS\n\ \\f\n\ - \\EOT\ENQ\EOT\ETX\STX\DC2\EOT\128\ENQ\STX\FS\n\ + \\EOT\ENQ\EOT\ETX\STX\DC2\EOT\130\ENQ\STX\FS\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\130\ENQ\STX\FS\n\ + \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\132\ENQ\STX\FS\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\130\ENQ\STX\ETB\n\ + \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\132\ENQ\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\130\ENQ\SUB\ESC\n\ + \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\132\ENQ\SUB\ESC\n\ \;\n\ - \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\133\ENQ\STX\SO\SUB- Comment, including comment markers and text\n\ + \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\135\ENQ\STX\SO\SUB- Comment, including comment markers and text\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\133\ENQ\STX\t\n\ + \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\135\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\133\ENQ\f\r\n\ + \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\135\ENQ\f\r\n\ \\ESC\n\ - \\EOT\ENQ\EOT\STX\STX\DC2\EOT\136\ENQ\STX\ESC\SUB\r `;` `.` `,`\n\ + \\EOT\ENQ\EOT\STX\STX\DC2\EOT\138\ENQ\STX\ESC\SUB\r `;` `.` `,`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\136\ENQ\STX\SYN\n\ + \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\138\ENQ\STX\SYN\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\136\ENQ\EM\SUB\n\ + \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\138\ENQ\EM\SUB\n\ \2\n\ - \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\138\ENQ\STX\EM\SUB$ (), {}, [] when used syntactically\n\ + \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\140\ENQ\STX\EM\SUB$ (), {}, [] when used syntactically\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETX\SOH\DC2\EOT\138\ENQ\STX\DC4\n\ + \\ENQ\ENQ\EOT\STX\ETX\SOH\DC2\EOT\140\ENQ\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\138\ENQ\ETB\CAN\n\ + \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\140\ENQ\ETB\CAN\n\ \5\n\ - \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\141\ENQ\STX\SO\SUB' `if`, `else`, `return`, `class`, etc.\n\ + \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\143\ENQ\STX\SO\SUB' `if`, `else`, `return`, `class`, etc.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EOT\SOH\DC2\EOT\141\ENQ\STX\t\n\ + \\ENQ\ENQ\EOT\STX\EOT\SOH\DC2\EOT\143\ENQ\STX\t\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\141\ENQ\f\r\n\ + \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\143\ENQ\f\r\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\ENQ\DC2\EOT\142\ENQ\STX*\n\ + \\EOT\ENQ\EOT\STX\ENQ\DC2\EOT\144\ENQ\STX*\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ENQ\SOH\DC2\EOT\142\ENQ\STX\DC3\n\ + \\ENQ\ENQ\EOT\STX\ENQ\SOH\DC2\EOT\144\ENQ\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ENQ\STX\DC2\EOT\142\ENQ\SYN\ETB\n\ + \\ENQ\ENQ\EOT\STX\ENQ\STX\DC2\EOT\144\ENQ\SYN\ETB\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ENQ\ETX\DC2\EOT\142\ENQ\CAN)\n\ + \\ENQ\ENQ\EOT\STX\ENQ\ETX\DC2\EOT\144\ENQ\CAN)\n\ \\SO\n\ - \\ACK\ENQ\EOT\STX\ENQ\ETX\SOH\DC2\EOT\142\ENQ\EM(\n\ + \\ACK\ENQ\EOT\STX\ENQ\ETX\SOH\DC2\EOT\144\ENQ\EM(\n\ \\RS\n\ - \\EOT\ENQ\EOT\STX\ACK\DC2\EOT\145\ENQ\STX\EM\SUB\DLE `+`, `*`, etc.\n\ + \\EOT\ENQ\EOT\STX\ACK\DC2\EOT\147\ENQ\STX\EM\SUB\DLE `+`, `*`, etc.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ACK\SOH\DC2\EOT\145\ENQ\STX\DC4\n\ + \\ENQ\ENQ\EOT\STX\ACK\SOH\DC2\EOT\147\ENQ\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ACK\STX\DC2\EOT\145\ENQ\ETB\CAN\n\ + \\ENQ\ENQ\EOT\STX\ACK\STX\DC2\EOT\147\ENQ\ETB\CAN\n\ \X\n\ - \\EOT\ENQ\EOT\STX\a\DC2\EOT\148\ENQ\STX\DC1\SUBJ non-specific catch-all for any identifier not better described elsewhere\n\ + \\EOT\ENQ\EOT\STX\a\DC2\EOT\150\ENQ\STX\DC1\SUBJ non-specific catch-all for any identifier not better described elsewhere\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\a\SOH\DC2\EOT\148\ENQ\STX\f\n\ + \\ENQ\ENQ\EOT\STX\a\SOH\DC2\EOT\150\ENQ\STX\f\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\a\STX\DC2\EOT\148\ENQ\SI\DLE\n\ + \\ENQ\ENQ\EOT\STX\a\STX\DC2\EOT\150\ENQ\SI\DLE\n\ \N\n\ - \\EOT\ENQ\EOT\STX\b\DC2\EOT\150\ENQ\STX\CAN\SUB@ Identifiers builtin to the language: `min`, `print` in Python.\n\ + \\EOT\ENQ\EOT\STX\b\DC2\EOT\152\ENQ\STX\CAN\SUB@ Identifiers builtin to the language: `min`, `print` in Python.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\b\SOH\DC2\EOT\150\ENQ\STX\DC3\n\ + \\ENQ\ENQ\EOT\STX\b\SOH\DC2\EOT\152\ENQ\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\b\STX\DC2\EOT\150\ENQ\SYN\ETB\n\ + \\ENQ\ENQ\EOT\STX\b\STX\DC2\EOT\152\ENQ\SYN\ETB\n\ \[\n\ - \\EOT\ENQ\EOT\STX\t\DC2\EOT\152\ENQ\STX\NAK\SUBM Identifiers representing `null`-like values: `None` in Python, `nil` in Go.\n\ + \\EOT\ENQ\EOT\STX\t\DC2\EOT\154\ENQ\STX\NAK\SUBM Identifiers representing `null`-like values: `None` in Python, `nil` in Go.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\t\SOH\DC2\EOT\152\ENQ\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX\t\SOH\DC2\EOT\154\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\t\STX\DC2\EOT\152\ENQ\DC3\DC4\n\ + \\ENQ\ENQ\EOT\STX\t\STX\DC2\EOT\154\ENQ\DC3\DC4\n\ \.\n\ \\EOT\ENQ\EOT\STX\n\ - \\DC2\EOT\154\ENQ\STX\EM\SUB `xyz` in `const xyz = \"hello\"`\n\ + \\DC2\EOT\156\ENQ\STX\EM\SUB `xyz` in `const xyz = \"hello\"`\n\ \\n\ \\r\n\ \\ENQ\ENQ\EOT\STX\n\ - \\SOH\DC2\EOT\154\ENQ\STX\DC4\n\ + \\SOH\DC2\EOT\156\ENQ\STX\DC4\n\ \\r\n\ \\ENQ\ENQ\EOT\STX\n\ - \\STX\DC2\EOT\154\ENQ\ETB\CAN\n\ + \\STX\DC2\EOT\156\ENQ\ETB\CAN\n\ \'\n\ - \\EOT\ENQ\EOT\STX\v\DC2\EOT\156\ENQ\STX\US\SUB\EM `var X = \"hello\"` in Go\n\ + \\EOT\ENQ\EOT\STX\v\DC2\EOT\158\ENQ\STX\US\SUB\EM `var X = \"hello\"` in Go\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\v\SOH\DC2\EOT\156\ENQ\STX\EM\n\ + \\ENQ\ENQ\EOT\STX\v\SOH\DC2\EOT\158\ENQ\STX\EM\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\v\STX\DC2\EOT\156\ENQ\FS\RS\n\ + \\ENQ\ENQ\EOT\STX\v\STX\DC2\EOT\158\ENQ\FS\RS\n\ \3\n\ - \\EOT\ENQ\EOT\STX\f\DC2\EOT\158\ENQ\STX\ESC\SUB% Parameter definition and references\n\ + \\EOT\ENQ\EOT\STX\f\DC2\EOT\160\ENQ\STX\ESC\SUB% Parameter definition and references\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\f\SOH\DC2\EOT\158\ENQ\STX\NAK\n\ + \\ENQ\ENQ\EOT\STX\f\SOH\DC2\EOT\160\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\f\STX\DC2\EOT\158\ENQ\CAN\SUB\n\ + \\ENQ\ENQ\EOT\STX\f\STX\DC2\EOT\160\ENQ\CAN\SUB\n\ \X\n\ - \\EOT\ENQ\EOT\STX\r\DC2\EOT\160\ENQ\STX\ETB\SUBJ Identifiers for variable definitions and references within a local scope\n\ + \\EOT\ENQ\EOT\STX\r\DC2\EOT\162\ENQ\STX\ETB\SUBJ Identifiers for variable definitions and references within a local scope\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\r\SOH\DC2\EOT\160\ENQ\STX\DC1\n\ + \\ENQ\ENQ\EOT\STX\r\SOH\DC2\EOT\162\ENQ\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\r\STX\DC2\EOT\160\ENQ\DC4\SYN\n\ + \\ENQ\ENQ\EOT\STX\r\STX\DC2\EOT\162\ENQ\DC4\SYN\n\ \K\n\ - \\EOT\ENQ\EOT\STX\SO\DC2\EOT\162\ENQ\STX\SUB\SUB= Identifiers that shadow other identifiers in an outer scope\n\ + \\EOT\ENQ\EOT\STX\SO\DC2\EOT\164\ENQ\STX\SUB\SUB= Identifiers that shadow other identifiers in an outer scope\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SO\SOH\DC2\EOT\162\ENQ\STX\DC4\n\ + \\ENQ\ENQ\EOT\STX\SO\SOH\DC2\EOT\164\ENQ\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SO\STX\DC2\EOT\162\ENQ\ETB\EM\n\ + \\ENQ\ENQ\EOT\STX\SO\STX\DC2\EOT\164\ENQ\ETB\EM\n\ \\205\SOH\n\ - \\EOT\ENQ\EOT\STX\SI\DC2\EOT\167\ENQ\STX\ESC\SUB\190\SOH Identifier representing a unit of code abstraction and/or namespacing.\n\ + \\EOT\ENQ\EOT\STX\SI\DC2\EOT\169\ENQ\STX\ESC\SUB\190\SOH Identifier representing a unit of code abstraction and/or namespacing.\n\ \\n\ \ NOTE: This corresponds to a package in Go and JVM languages,\n\ \ and a module in languages like Python and JavaScript.\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SI\SOH\DC2\EOT\167\ENQ\STX\NAK\n\ + \\ENQ\ENQ\EOT\STX\SI\SOH\DC2\EOT\169\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SI\STX\DC2\EOT\167\ENQ\CAN\SUB\n\ + \\ENQ\ENQ\EOT\STX\SI\STX\DC2\EOT\169\ENQ\CAN\SUB\n\ \\f\n\ - \\EOT\ENQ\EOT\STX\DLE\DC2\EOT\168\ENQ\STX*\n\ + \\EOT\ENQ\EOT\STX\DLE\DC2\EOT\170\ENQ\STX*\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DLE\SOH\DC2\EOT\168\ENQ\STX\DC2\n\ + \\ENQ\ENQ\EOT\STX\DLE\SOH\DC2\EOT\170\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DLE\STX\DC2\EOT\168\ENQ\NAK\ETB\n\ + \\ENQ\ENQ\EOT\STX\DLE\STX\DC2\EOT\170\ENQ\NAK\ETB\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DLE\ETX\DC2\EOT\168\ENQ\CAN)\n\ + \\ENQ\ENQ\EOT\STX\DLE\ETX\DC2\EOT\170\ENQ\CAN)\n\ \\SO\n\ - \\ACK\ENQ\EOT\STX\DLE\ETX\SOH\DC2\EOT\168\ENQ\EM(\n\ + \\ACK\ENQ\EOT\STX\DLE\ETX\SOH\DC2\EOT\170\ENQ\EM(\n\ \4\n\ - \\EOT\ENQ\EOT\STX\DC1\DC2\EOT\171\ENQ\STX\SUB\SUB& Function references, including calls\n\ + \\EOT\ENQ\EOT\STX\DC1\DC2\EOT\173\ENQ\STX\SUB\SUB& Function references, including calls\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC1\SOH\DC2\EOT\171\ENQ\STX\DC4\n\ + \\ENQ\ENQ\EOT\STX\DC1\SOH\DC2\EOT\173\ENQ\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC1\STX\DC2\EOT\171\ENQ\ETB\EM\n\ + \\ENQ\ENQ\EOT\STX\DC1\STX\DC2\EOT\173\ENQ\ETB\EM\n\ \(\n\ - \\EOT\ENQ\EOT\STX\DC2\DC2\EOT\173\ENQ\STX$\SUB\SUB Function definition only\n\ + \\EOT\ENQ\EOT\STX\DC2\DC2\EOT\175\ENQ\STX$\SUB\SUB Function definition only\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC2\SOH\DC2\EOT\173\ENQ\STX\RS\n\ + \\ENQ\ENQ\EOT\STX\DC2\SOH\DC2\EOT\175\ENQ\STX\RS\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC2\STX\DC2\EOT\173\ENQ!#\n\ + \\ENQ\ENQ\EOT\STX\DC2\STX\DC2\EOT\175\ENQ!#\n\ \7\n\ - \\EOT\ENQ\EOT\STX\DC3\DC2\EOT\176\ENQ\STX\ETB\SUB) Macro references, including invocations\n\ + \\EOT\ENQ\EOT\STX\DC3\DC2\EOT\178\ENQ\STX\ETB\SUB) Macro references, including invocations\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC3\SOH\DC2\EOT\176\ENQ\STX\DC1\n\ + \\ENQ\ENQ\EOT\STX\DC3\SOH\DC2\EOT\178\ENQ\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC3\STX\DC2\EOT\176\ENQ\DC4\SYN\n\ + \\ENQ\ENQ\EOT\STX\DC3\STX\DC2\EOT\178\ENQ\DC4\SYN\n\ \%\n\ - \\EOT\ENQ\EOT\STX\DC4\DC2\EOT\178\ENQ\STX!\SUB\ETB Macro definition only\n\ + \\EOT\ENQ\EOT\STX\DC4\DC2\EOT\180\ENQ\STX!\SUB\ETB Macro definition only\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC4\SOH\DC2\EOT\178\ENQ\STX\ESC\n\ + \\ENQ\ENQ\EOT\STX\DC4\SOH\DC2\EOT\180\ENQ\STX\ESC\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\DC4\STX\DC2\EOT\178\ENQ\RS \n\ + \\ENQ\ENQ\EOT\STX\DC4\STX\DC2\EOT\180\ENQ\RS \n\ \!\n\ - \\EOT\ENQ\EOT\STX\NAK\DC2\EOT\181\ENQ\STX\SYN\SUB\DC3 non-builtin types\n\ + \\EOT\ENQ\EOT\STX\NAK\DC2\EOT\183\ENQ\STX\SYN\SUB\DC3 non-builtin types\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NAK\SOH\DC2\EOT\181\ENQ\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX\NAK\SOH\DC2\EOT\183\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\NAK\STX\DC2\EOT\181\ENQ\DC3\NAK\n\ + \\ENQ\ENQ\EOT\STX\NAK\STX\DC2\EOT\183\ENQ\DC3\NAK\n\ \K\n\ - \\EOT\ENQ\EOT\STX\SYN\DC2\EOT\183\ENQ\STX\GS\SUB= builtin types only, such as `str` for Python or `int` in Go\n\ + \\EOT\ENQ\EOT\STX\SYN\DC2\EOT\185\ENQ\STX\GS\SUB= builtin types only, such as `str` for Python or `int` in Go\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SYN\SOH\DC2\EOT\183\ENQ\STX\ETB\n\ + \\ENQ\ENQ\EOT\STX\SYN\SOH\DC2\EOT\185\ENQ\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SYN\STX\DC2\EOT\183\ENQ\SUB\FS\n\ + \\ENQ\ENQ\EOT\STX\SYN\STX\DC2\EOT\185\ENQ\SUB\FS\n\ \7\n\ - \\EOT\ENQ\EOT\STX\ETB\DC2\EOT\186\ENQ\STX\ESC\SUB) Python decorators, c-like __attribute__\n\ + \\EOT\ENQ\EOT\STX\ETB\DC2\EOT\188\ENQ\STX\ESC\SUB) Python decorators, c-like __attribute__\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETB\SOH\DC2\EOT\186\ENQ\STX\NAK\n\ + \\ENQ\ENQ\EOT\STX\ETB\SOH\DC2\EOT\188\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ETB\STX\DC2\EOT\186\ENQ\CAN\SUB\n\ + \\ENQ\ENQ\EOT\STX\ETB\STX\DC2\EOT\188\ENQ\CAN\SUB\n\ \\DC4\n\ - \\EOT\ENQ\EOT\STX\CAN\DC2\EOT\189\ENQ\STX\DC3\SUB\ACK `\\b`\n\ + \\EOT\ENQ\EOT\STX\CAN\DC2\EOT\191\ENQ\STX\DC3\SUB\ACK `\\b`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\CAN\SOH\DC2\EOT\189\ENQ\STX\r\n\ + \\ENQ\ENQ\EOT\STX\CAN\SOH\DC2\EOT\191\ENQ\STX\r\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\CAN\STX\DC2\EOT\189\ENQ\DLE\DC2\n\ + \\ENQ\ENQ\EOT\STX\CAN\STX\DC2\EOT\191\ENQ\DLE\DC2\n\ \\CAN\n\ - \\EOT\ENQ\EOT\STX\EM\DC2\EOT\191\ENQ\STX\NAK\SUB\n\ + \\EOT\ENQ\EOT\STX\EM\DC2\EOT\193\ENQ\STX\NAK\SUB\n\ \ `*`, `+`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EM\SOH\DC2\EOT\191\ENQ\STX\SI\n\ + \\ENQ\ENQ\EOT\STX\EM\SOH\DC2\EOT\193\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\EM\STX\DC2\EOT\191\ENQ\DC2\DC4\n\ + \\ENQ\ENQ\EOT\STX\EM\STX\DC2\EOT\193\ENQ\DC2\DC4\n\ \\DC3\n\ - \\EOT\ENQ\EOT\STX\SUB\DC2\EOT\193\ENQ\STX\NAK\SUB\ENQ `.`\n\ + \\EOT\ENQ\EOT\STX\SUB\DC2\EOT\195\ENQ\STX\NAK\SUB\ENQ `.`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SUB\SOH\DC2\EOT\193\ENQ\STX\SI\n\ + \\ENQ\ENQ\EOT\STX\SUB\SOH\DC2\EOT\195\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\SUB\STX\DC2\EOT\193\ENQ\DC2\DC4\n\ + \\ENQ\ENQ\EOT\STX\SUB\STX\DC2\EOT\195\ENQ\DC2\DC4\n\ \\"\n\ - \\EOT\ENQ\EOT\STX\ESC\DC2\EOT\195\ENQ\STX\SYN\SUB\DC4 `(`, `)`, `[`, `]`\n\ + \\EOT\ENQ\EOT\STX\ESC\DC2\EOT\197\ENQ\STX\SYN\SUB\DC4 `(`, `)`, `[`, `]`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ESC\SOH\DC2\EOT\195\ENQ\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX\ESC\SOH\DC2\EOT\197\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\ESC\STX\DC2\EOT\195\ENQ\DC3\NAK\n\ + \\ENQ\ENQ\EOT\STX\ESC\STX\DC2\EOT\197\ENQ\DC3\NAK\n\ \\CAN\n\ - \\EOT\ENQ\EOT\STX\FS\DC2\EOT\197\ENQ\STX\DC1\SUB\n\ + \\EOT\ENQ\EOT\STX\FS\DC2\EOT\199\ENQ\STX\DC1\SUB\n\ \ `|`, `-`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\FS\SOH\DC2\EOT\197\ENQ\STX\v\n\ + \\ENQ\ENQ\EOT\STX\FS\SOH\DC2\EOT\199\ENQ\STX\v\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\FS\STX\DC2\EOT\197\ENQ\SO\DLE\n\ + \\ENQ\ENQ\EOT\STX\FS\STX\DC2\EOT\199\ENQ\SO\DLE\n\ \0\n\ - \\EOT\ENQ\EOT\STX\GS\DC2\EOT\200\ENQ\STX\NAK\SUB\" Literal strings: \"Hello, world!\"\n\ + \\EOT\ENQ\EOT\STX\GS\DC2\EOT\202\ENQ\STX\NAK\SUB\" Literal strings: \"Hello, world!\"\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\GS\SOH\DC2\EOT\200\ENQ\STX\SI\n\ + \\ENQ\ENQ\EOT\STX\GS\SOH\DC2\EOT\202\ENQ\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\GS\STX\DC2\EOT\200\ENQ\DC2\DC4\n\ + \\ENQ\ENQ\EOT\STX\GS\STX\DC2\EOT\202\ENQ\DC2\DC4\n\ \-\n\ - \\EOT\ENQ\EOT\STX\RS\DC2\EOT\202\ENQ\STX\ESC\SUB\US non-regex escapes: \"\\t\", \"\\n\"\n\ + \\EOT\ENQ\EOT\STX\RS\DC2\EOT\204\ENQ\STX\ESC\SUB\US non-regex escapes: \"\\t\", \"\\n\"\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\RS\SOH\DC2\EOT\202\ENQ\STX\NAK\n\ + \\ENQ\ENQ\EOT\STX\RS\SOH\DC2\EOT\204\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\RS\STX\DC2\EOT\202\ENQ\CAN\SUB\n\ + \\ENQ\ENQ\EOT\STX\RS\STX\DC2\EOT\204\ENQ\CAN\SUB\n\ \_\n\ - \\EOT\ENQ\EOT\STX\US\DC2\EOT\204\ENQ\STX\FS\SUBQ datetimes within strings, special words within a string, `{}` in format strings\n\ + \\EOT\ENQ\EOT\STX\US\DC2\EOT\206\ENQ\STX\FS\SUBQ datetimes within strings, special words within a string, `{}` in format strings\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\US\SOH\DC2\EOT\204\ENQ\STX\SYN\n\ + \\ENQ\ENQ\EOT\STX\US\SOH\DC2\EOT\206\ENQ\STX\SYN\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\US\STX\DC2\EOT\204\ENQ\EM\ESC\n\ + \\ENQ\ENQ\EOT\STX\US\STX\DC2\EOT\206\ENQ\EM\ESC\n\ \G\n\ - \\EOT\ENQ\EOT\STX \DC2\EOT\206\ENQ\STX\CAN\SUB9 \"key\" in { \"key\": \"value\" }, useful for example in JSON\n\ + \\EOT\ENQ\EOT\STX \DC2\EOT\208\ENQ\STX\CAN\SUB9 \"key\" in { \"key\": \"value\" }, useful for example in JSON\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX \SOH\DC2\EOT\206\ENQ\STX\DC2\n\ + \\ENQ\ENQ\EOT\STX \SOH\DC2\EOT\208\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX \STX\DC2\EOT\206\ENQ\NAK\ETB\n\ + \\ENQ\ENQ\EOT\STX \STX\DC2\EOT\208\ENQ\NAK\ETB\n\ \V\n\ - \\EOT\ENQ\EOT\STX!\DC2\EOT\208\ENQ\STX\CAN\SUBH 'c' or similar, in languages that differentiate strings and characters\n\ + \\EOT\ENQ\EOT\STX!\DC2\EOT\210\ENQ\STX\CAN\SUBH 'c' or similar, in languages that differentiate strings and characters\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX!\SOH\DC2\EOT\208\ENQ\STX\DC2\n\ + \\ENQ\ENQ\EOT\STX!\SOH\DC2\EOT\210\ENQ\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX!\STX\DC2\EOT\208\ENQ\NAK\ETB\n\ + \\ENQ\ENQ\EOT\STX!\STX\DC2\EOT\210\ENQ\NAK\ETB\n\ \9\n\ - \\EOT\ENQ\EOT\STX\"\DC2\EOT\210\ENQ\STX\SYN\SUB+ Literal numbers, both floats and integers\n\ + \\EOT\ENQ\EOT\STX\"\DC2\EOT\212\ENQ\STX\SYN\SUB+ Literal numbers, both floats and integers\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\"\SOH\DC2\EOT\210\ENQ\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX\"\SOH\DC2\EOT\212\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX\"\STX\DC2\EOT\210\ENQ\DC3\NAK\n\ + \\ENQ\ENQ\EOT\STX\"\STX\DC2\EOT\212\ENQ\DC3\NAK\n\ \\US\n\ - \\EOT\ENQ\EOT\STX#\DC2\EOT\212\ENQ\STX\SYN\SUB\DC1 `true`, `false`\n\ + \\EOT\ENQ\EOT\STX#\DC2\EOT\214\ENQ\STX\SYN\SUB\DC1 `true`, `false`\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX#\SOH\DC2\EOT\212\ENQ\STX\DLE\n\ + \\ENQ\ENQ\EOT\STX#\SOH\DC2\EOT\214\ENQ\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX#\STX\DC2\EOT\212\ENQ\DC3\NAK\n\ + \\ENQ\ENQ\EOT\STX#\STX\DC2\EOT\214\ENQ\DC3\NAK\n\ \&\n\ - \\EOT\ENQ\EOT\STX$\DC2\EOT\215\ENQ\STX\v\SUB\CAN Used for XML-like tags\n\ + \\EOT\ENQ\EOT\STX$\DC2\EOT\217\ENQ\STX\v\SUB\CAN Used for XML-like tags\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX$\SOH\DC2\EOT\215\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\EOT\STX$\SOH\DC2\EOT\217\ENQ\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX$\STX\DC2\EOT\215\ENQ\b\n\ + \\ENQ\ENQ\EOT\STX$\STX\DC2\EOT\217\ENQ\b\n\ \\n\ \/\n\ - \\EOT\ENQ\EOT\STX%\DC2\EOT\217\ENQ\STX\DC4\SUB! Attribute name in XML-like tags\n\ + \\EOT\ENQ\EOT\STX%\DC2\EOT\219\ENQ\STX\DC4\SUB! Attribute name in XML-like tags\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX%\SOH\DC2\EOT\217\ENQ\STX\SO\n\ + \\ENQ\ENQ\EOT\STX%\SOH\DC2\EOT\219\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX%\STX\DC2\EOT\217\ENQ\DC1\DC3\n\ + \\ENQ\ENQ\EOT\STX%\STX\DC2\EOT\219\ENQ\DC1\DC3\n\ \,\n\ - \\EOT\ENQ\EOT\STX&\DC2\EOT\219\ENQ\STX\DC4\SUB\RS Delimiters for XML-like tags\n\ + \\EOT\ENQ\EOT\STX&\DC2\EOT\221\ENQ\STX\DC4\SUB\RS Delimiters for XML-like tags\n\ \\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX&\SOH\DC2\EOT\219\ENQ\STX\SO\n\ + \\ENQ\ENQ\EOT\STX&\SOH\DC2\EOT\221\ENQ\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\EOT\STX&\STX\DC2\EOT\219\ENQ\DC1\DC3\n\ + \\ENQ\ENQ\EOT\STX&\STX\DC2\EOT\221\ENQ\DC1\DC3\n\ \\249\SOH\n\ \\STX\EOT\n\ - \\DC2\ACK\227\ENQ\NUL\196\ACK\SOH\SUB\234\SOH Occurrence associates a source position with a symbol and/or highlighting\n\ + \\DC2\ACK\229\ENQ\NUL\198\ACK\SOH\SUB\234\SOH Occurrence associates a source position with a symbol and/or highlighting\n\ \ information.\n\ \\n\ \ If possible, indexers should try to bundle logically related information\n\ @@ -8631,10 +8646,10 @@ packedFileDescriptor \\n\ \\v\n\ \\ETX\EOT\n\ - \\SOH\DC2\EOT\227\ENQ\b\DC2\n\ + \\SOH\DC2\EOT\229\ENQ\b\DC2\n\ \\232\b\n\ \\EOT\EOT\n\ - \\STX\NUL\DC2\EOT\251\ENQ\STX\ESC\SUB\217\b Half-open [start, end) range of this occurrence. Must be exactly three or four\n\ + \\STX\NUL\DC2\EOT\253\ENQ\STX\ESC\SUB\217\b Half-open [start, end) range of this occurrence. Must be exactly three or four\n\ \ elements:\n\ \\n\ \ - Four elements: `[startLine, startCharacter, endLine, endCharacter]`\n\ @@ -8660,48 +8675,48 @@ packedFileDescriptor \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\NUL\EOT\DC2\EOT\251\ENQ\STX\n\ + \\STX\NUL\EOT\DC2\EOT\253\ENQ\STX\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\NUL\ENQ\DC2\EOT\251\ENQ\v\DLE\n\ + \\STX\NUL\ENQ\DC2\EOT\253\ENQ\v\DLE\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\NUL\SOH\DC2\EOT\251\ENQ\DC1\SYN\n\ + \\STX\NUL\SOH\DC2\EOT\253\ENQ\DC1\SYN\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\NUL\ETX\DC2\EOT\251\ENQ\EM\SUB\n\ + \\STX\NUL\ETX\DC2\EOT\253\ENQ\EM\SUB\n\ \\138\SOH\n\ \\EOT\EOT\n\ - \\STX\SOH\DC2\EOT\254\ENQ\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\ + \\STX\SOH\DC2\EOT\128\ACK\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\ \ `SymbolInformation.symbol` for how to format symbols as strings.\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\SOH\ENQ\DC2\EOT\254\ENQ\STX\b\n\ + \\STX\SOH\ENQ\DC2\EOT\128\ACK\STX\b\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\SOH\SOH\DC2\EOT\254\ENQ\t\SI\n\ + \\STX\SOH\SOH\DC2\EOT\128\ACK\t\SI\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\SOH\ETX\DC2\EOT\254\ENQ\DC2\DC3\n\ + \\STX\SOH\ETX\DC2\EOT\128\ACK\DC2\DC3\n\ \\151\SOH\n\ \\EOT\EOT\n\ - \\STX\STX\DC2\EOT\129\ACK\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\ + \\STX\STX\DC2\EOT\131\ACK\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\ \ See `SymbolRole`'s documentation for how to read and write this field.\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\STX\ENQ\DC2\EOT\129\ACK\STX\a\n\ + \\STX\STX\ENQ\DC2\EOT\131\ACK\STX\a\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\STX\SOH\DC2\EOT\129\ACK\b\DC4\n\ + \\STX\STX\SOH\DC2\EOT\131\ACK\b\DC4\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\STX\ETX\DC2\EOT\129\ACK\ETB\CAN\n\ + \\STX\STX\ETX\DC2\EOT\131\ACK\ETB\CAN\n\ \\241\ETX\n\ \\EOT\EOT\n\ - \\STX\ETX\DC2\EOT\138\ACK\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\ + \\STX\ETX\DC2\EOT\140\ACK\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\ \ empty, the `Symbol.documentation` field is used instead. One example\n\ \ where this field might be useful is when the symbol represents a generic\n\ \ function (with abstract type parameters such as `List`) and at this\n\ @@ -8712,50 +8727,50 @@ packedFileDescriptor \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ETX\EOT\DC2\EOT\138\ACK\STX\n\ + \\STX\ETX\EOT\DC2\EOT\140\ACK\STX\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ETX\ENQ\DC2\EOT\138\ACK\v\DC1\n\ + \\STX\ETX\ENQ\DC2\EOT\140\ACK\v\DC1\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ETX\SOH\DC2\EOT\138\ACK\DC2(\n\ + \\STX\ETX\SOH\DC2\EOT\140\ACK\DC2(\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ETX\ETX\DC2\EOT\138\ACK+,\n\ + \\STX\ETX\ETX\DC2\EOT\140\ACK+,\n\ \X\n\ \\EOT\EOT\n\ - \\STX\EOT\DC2\EOT\140\ACK\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\ + \\STX\EOT\DC2\EOT\142\ACK\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\EOT\ACK\DC2\EOT\140\ACK\STX\f\n\ + \\STX\EOT\ACK\DC2\EOT\142\ACK\STX\f\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\EOT\SOH\DC2\EOT\140\ACK\r\CAN\n\ + \\STX\EOT\SOH\DC2\EOT\142\ACK\r\CAN\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\EOT\ETX\DC2\EOT\140\ACK\ESC\FS\n\ + \\STX\EOT\ETX\DC2\EOT\142\ACK\ESC\FS\n\ \W\n\ \\EOT\EOT\n\ - \\STX\ENQ\DC2\EOT\142\ACK\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\ + \\STX\ENQ\DC2\EOT\144\ACK\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ENQ\EOT\DC2\EOT\142\ACK\STX\n\ + \\STX\ENQ\EOT\DC2\EOT\144\ACK\STX\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ENQ\ACK\DC2\EOT\142\ACK\v\NAK\n\ + \\STX\ENQ\ACK\DC2\EOT\144\ACK\v\NAK\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ENQ\SOH\DC2\EOT\142\ACK\SYN!\n\ + \\STX\ENQ\SOH\DC2\EOT\144\ACK\SYN!\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ENQ\ETX\DC2\EOT\142\ACK$%\n\ + \\STX\ENQ\ETX\DC2\EOT\144\ACK$%\n\ \\183\SO\n\ \\EOT\EOT\n\ - \\STX\ACK\DC2\EOT\195\ACK\STX%\SUB\168\SO (optional) Using the same encoding as the sibling `range` field, half-open\n\ + \\STX\ACK\DC2\EOT\197\ACK\STX%\SUB\168\SO (optional) Using the same encoding as the sibling `range` field, half-open\n\ \ source range of the nearest non-trivial enclosing AST node. This range must\n\ \ enclose the `range` field. Example applications that make use of the\n\ \ enclosing_range field:\n\ @@ -8810,132 +8825,132 @@ packedFileDescriptor \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ACK\EOT\DC2\EOT\195\ACK\STX\n\ + \\STX\ACK\EOT\DC2\EOT\197\ACK\STX\n\ \\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ACK\ENQ\DC2\EOT\195\ACK\v\DLE\n\ + \\STX\ACK\ENQ\DC2\EOT\197\ACK\v\DLE\n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ACK\SOH\DC2\EOT\195\ACK\DC1 \n\ + \\STX\ACK\SOH\DC2\EOT\197\ACK\DC1 \n\ \\r\n\ \\ENQ\EOT\n\ - \\STX\ACK\ETX\DC2\EOT\195\ACK#$\n\ + \\STX\ACK\ETX\DC2\EOT\197\ACK#$\n\ \w\n\ - \\STX\EOT\v\DC2\ACK\200\ACK\NUL\211\ACK\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\ + \\STX\EOT\v\DC2\ACK\202\ACK\NUL\213\ACK\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\ \ reported for a document.\n\ \\n\ \\v\n\ - \\ETX\EOT\v\SOH\DC2\EOT\200\ACK\b\DC2\n\ + \\ETX\EOT\v\SOH\DC2\EOT\202\ACK\b\DC2\n\ \W\n\ - \\EOT\EOT\v\STX\NUL\DC2\EOT\202\ACK\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\ + \\EOT\EOT\v\STX\NUL\DC2\EOT\204\ACK\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\ \\n\ \\r\n\ - \\ENQ\EOT\v\STX\NUL\ACK\DC2\EOT\202\ACK\STX\n\ + \\ENQ\EOT\v\STX\NUL\ACK\DC2\EOT\204\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\v\STX\NUL\SOH\DC2\EOT\202\ACK\v\DC3\n\ + \\ENQ\EOT\v\STX\NUL\SOH\DC2\EOT\204\ACK\v\DC3\n\ \\r\n\ - \\ENQ\EOT\v\STX\NUL\ETX\DC2\EOT\202\ACK\SYN\ETB\n\ + \\ENQ\EOT\v\STX\NUL\ETX\DC2\EOT\204\ACK\SYN\ETB\n\ \]\n\ - \\EOT\EOT\v\STX\SOH\DC2\EOT\204\ACK\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\ + \\EOT\EOT\v\STX\SOH\DC2\EOT\206\ACK\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\ \\n\ \\r\n\ - \\ENQ\EOT\v\STX\SOH\ENQ\DC2\EOT\204\ACK\STX\b\n\ + \\ENQ\EOT\v\STX\SOH\ENQ\DC2\EOT\206\ACK\STX\b\n\ \\r\n\ - \\ENQ\EOT\v\STX\SOH\SOH\DC2\EOT\204\ACK\t\r\n\ + \\ENQ\EOT\v\STX\SOH\SOH\DC2\EOT\206\ACK\t\r\n\ \\r\n\ - \\ENQ\EOT\v\STX\SOH\ETX\DC2\EOT\204\ACK\DLE\DC1\n\ + \\ENQ\EOT\v\STX\SOH\ETX\DC2\EOT\206\ACK\DLE\DC1\n\ \+\n\ - \\EOT\EOT\v\STX\STX\DC2\EOT\206\ACK\STX\NAK\SUB\GS Message of this diagnostic.\n\ + \\EOT\EOT\v\STX\STX\DC2\EOT\208\ACK\STX\NAK\SUB\GS Message of this diagnostic.\n\ \\n\ \\r\n\ - \\ENQ\EOT\v\STX\STX\ENQ\DC2\EOT\206\ACK\STX\b\n\ + \\ENQ\EOT\v\STX\STX\ENQ\DC2\EOT\208\ACK\STX\b\n\ \\r\n\ - \\ENQ\EOT\v\STX\STX\SOH\DC2\EOT\206\ACK\t\DLE\n\ + \\ENQ\EOT\v\STX\STX\SOH\DC2\EOT\208\ACK\t\DLE\n\ \\r\n\ - \\ENQ\EOT\v\STX\STX\ETX\DC2\EOT\206\ACK\DC3\DC4\n\ + \\ENQ\EOT\v\STX\STX\ETX\DC2\EOT\208\ACK\DC3\DC4\n\ \~\n\ - \\EOT\EOT\v\STX\ETX\DC2\EOT\209\ACK\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\ + \\EOT\EOT\v\STX\ETX\DC2\EOT\211\ACK\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\ \ 'typescript' or 'super lint'.\n\ \\n\ \\r\n\ - \\ENQ\EOT\v\STX\ETX\ENQ\DC2\EOT\209\ACK\STX\b\n\ + \\ENQ\EOT\v\STX\ETX\ENQ\DC2\EOT\211\ACK\STX\b\n\ \\r\n\ - \\ENQ\EOT\v\STX\ETX\SOH\DC2\EOT\209\ACK\t\SI\n\ + \\ENQ\EOT\v\STX\ETX\SOH\DC2\EOT\211\ACK\t\SI\n\ \\r\n\ - \\ENQ\EOT\v\STX\ETX\ETX\DC2\EOT\209\ACK\DC2\DC3\n\ + \\ENQ\EOT\v\STX\ETX\ETX\DC2\EOT\211\ACK\DC2\DC3\n\ \\f\n\ - \\EOT\EOT\v\STX\EOT\DC2\EOT\210\ACK\STX\"\n\ + \\EOT\EOT\v\STX\EOT\DC2\EOT\212\ACK\STX\"\n\ \\r\n\ - \\ENQ\EOT\v\STX\EOT\EOT\DC2\EOT\210\ACK\STX\n\ + \\ENQ\EOT\v\STX\EOT\EOT\DC2\EOT\212\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\v\STX\EOT\ACK\DC2\EOT\210\ACK\v\CAN\n\ + \\ENQ\EOT\v\STX\EOT\ACK\DC2\EOT\212\ACK\v\CAN\n\ \\r\n\ - \\ENQ\EOT\v\STX\EOT\SOH\DC2\EOT\210\ACK\EM\GS\n\ + \\ENQ\EOT\v\STX\EOT\SOH\DC2\EOT\212\ACK\EM\GS\n\ \\r\n\ - \\ENQ\EOT\v\STX\EOT\ETX\DC2\EOT\210\ACK !\n\ + \\ENQ\EOT\v\STX\EOT\ETX\DC2\EOT\212\ACK !\n\ \\f\n\ - \\STX\ENQ\ENQ\DC2\ACK\213\ACK\NUL\219\ACK\SOH\n\ + \\STX\ENQ\ENQ\DC2\ACK\215\ACK\NUL\221\ACK\SOH\n\ \\v\n\ - \\ETX\ENQ\ENQ\SOH\DC2\EOT\213\ACK\ENQ\r\n\ + \\ETX\ENQ\ENQ\SOH\DC2\EOT\215\ACK\ENQ\r\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\214\ACK\STX\SUB\n\ + \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\216\ACK\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\214\ACK\STX\NAK\n\ + \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\216\ACK\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\214\ACK\CAN\EM\n\ + \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\216\ACK\CAN\EM\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\215\ACK\STX\f\n\ + \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\217\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\215\ACK\STX\a\n\ + \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\217\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\215\ACK\n\ + \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\217\ACK\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\216\ACK\STX\SO\n\ + \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\218\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\216\ACK\STX\t\n\ + \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\218\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\216\ACK\f\r\n\ + \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\218\ACK\f\r\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\ETX\DC2\EOT\217\ACK\STX\DC2\n\ + \\EOT\ENQ\ENQ\STX\ETX\DC2\EOT\219\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\ETX\SOH\DC2\EOT\217\ACK\STX\r\n\ + \\ENQ\ENQ\ENQ\STX\ETX\SOH\DC2\EOT\219\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\ETX\STX\DC2\EOT\217\ACK\DLE\DC1\n\ + \\ENQ\ENQ\ENQ\STX\ETX\STX\DC2\EOT\219\ACK\DLE\DC1\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\EOT\DC2\EOT\218\ACK\STX\v\n\ + \\EOT\ENQ\ENQ\STX\EOT\DC2\EOT\220\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\EOT\SOH\DC2\EOT\218\ACK\STX\ACK\n\ + \\ENQ\ENQ\ENQ\STX\EOT\SOH\DC2\EOT\220\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\EOT\STX\DC2\EOT\218\ACK\t\n\ + \\ENQ\ENQ\ENQ\STX\EOT\STX\DC2\EOT\220\ACK\t\n\ \\n\ \\f\n\ - \\STX\ENQ\ACK\DC2\ACK\221\ACK\NUL\225\ACK\SOH\n\ + \\STX\ENQ\ACK\DC2\ACK\223\ACK\NUL\227\ACK\SOH\n\ \\v\n\ - \\ETX\ENQ\ACK\SOH\DC2\EOT\221\ACK\ENQ\DC2\n\ + \\ETX\ENQ\ACK\SOH\DC2\EOT\223\ACK\ENQ\DC2\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\222\ACK\STX\US\n\ + \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\224\ACK\STX\US\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\222\ACK\STX\SUB\n\ + \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\224\ACK\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\222\ACK\GS\RS\n\ + \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\224\ACK\GS\RS\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\223\ACK\STX\DC2\n\ + \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\225\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\223\ACK\STX\r\n\ + \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\225\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\223\ACK\DLE\DC1\n\ + \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\225\ACK\DLE\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\STX\DC2\EOT\224\ACK\STX\DC1\n\ + \\EOT\ENQ\ACK\STX\STX\DC2\EOT\226\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\224\ACK\STX\f\n\ + \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\226\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\224\ACK\SI\DLE\n\ + \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\226\ACK\SI\DLE\n\ \\208\ETX\n\ - \\STX\ENQ\a\DC2\ACK\233\ACK\NUL\223\a\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\ + \\STX\ENQ\a\DC2\ACK\235\ACK\NUL\225\a\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\ \ for the `Document.language` field. The primary purpose of this enum is to\n\ \ prevent a situation where we have a single programming language ends up with\n\ \ multiple string representations. For example, the C++ language uses the name\n\ @@ -8943,708 +8958,708 @@ packedFileDescriptor \ Feel free to send a pull-request to add missing programming languages.\n\ \\n\ \\v\n\ - \\ETX\ENQ\a\SOH\DC2\EOT\233\ACK\ENQ\r\n\ + \\ETX\ENQ\a\SOH\DC2\EOT\235\ACK\ENQ\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\NUL\DC2\EOT\234\ACK\STX\SUB\n\ + \\EOT\ENQ\a\STX\NUL\DC2\EOT\236\ACK\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NUL\SOH\DC2\EOT\234\ACK\STX\NAK\n\ + \\ENQ\ENQ\a\STX\NUL\SOH\DC2\EOT\236\ACK\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NUL\STX\DC2\EOT\234\ACK\CAN\EM\n\ + \\ENQ\ENQ\a\STX\NUL\STX\DC2\EOT\236\ACK\CAN\EM\n\ \\f\n\ - \\EOT\ENQ\a\STX\SOH\DC2\EOT\235\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\SOH\DC2\EOT\237\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SOH\SOH\DC2\EOT\235\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\SOH\SOH\DC2\EOT\237\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SOH\STX\DC2\EOT\235\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\SOH\STX\DC2\EOT\237\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\STX\DC2\EOT\236\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\STX\DC2\EOT\238\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\STX\SOH\DC2\EOT\236\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\STX\SOH\DC2\EOT\238\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\STX\STX\DC2\EOT\236\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\STX\STX\DC2\EOT\238\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\ETX\DC2\EOT\237\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\ETX\DC2\EOT\239\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETX\SOH\DC2\EOT\237\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\ETX\SOH\DC2\EOT\239\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETX\STX\DC2\EOT\237\ACK\b\n\ + \\ENQ\ENQ\a\STX\ETX\STX\DC2\EOT\239\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\EOT\DC2\EOT\238\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\EOT\DC2\EOT\240\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EOT\SOH\DC2\EOT\238\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\EOT\SOH\DC2\EOT\240\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EOT\STX\DC2\EOT\238\ACK\b\n\ + \\ENQ\ENQ\a\STX\EOT\STX\DC2\EOT\240\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\ENQ\DC2\EOT\239\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\ENQ\DC2\EOT\241\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ENQ\SOH\DC2\EOT\239\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\ENQ\SOH\DC2\EOT\241\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ENQ\STX\DC2\EOT\239\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\ENQ\STX\DC2\EOT\241\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\ACK\DC2\EOT\240\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX\ACK\DC2\EOT\242\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ACK\SOH\DC2\EOT\240\ACK\STX\n\ + \\ENQ\ENQ\a\STX\ACK\SOH\DC2\EOT\242\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ACK\STX\DC2\EOT\240\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX\ACK\STX\DC2\EOT\242\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX\a\DC2\EOT\241\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX\a\DC2\EOT\243\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX\a\SOH\DC2\EOT\241\ACK\STX\n\ + \\ENQ\ENQ\a\STX\a\SOH\DC2\EOT\243\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\a\STX\DC2\EOT\241\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX\a\STX\DC2\EOT\243\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX\b\DC2\EOT\242\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\b\DC2\EOT\244\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\b\SOH\DC2\EOT\242\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\b\SOH\DC2\EOT\244\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\b\STX\DC2\EOT\242\ACK\b\n\ + \\ENQ\ENQ\a\STX\b\STX\DC2\EOT\244\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\t\DC2\EOT\243\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\t\DC2\EOT\245\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\t\SOH\DC2\EOT\243\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\t\SOH\DC2\EOT\245\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\t\STX\DC2\EOT\243\ACK\b\n\ + \\ENQ\ENQ\a\STX\t\STX\DC2\EOT\245\ACK\b\n\ \\n\ \\f\n\ \\EOT\ENQ\a\STX\n\ - \\DC2\EOT\244\ACK\STX\SO\n\ + \\DC2\EOT\246\ACK\STX\SO\n\ \\r\n\ \\ENQ\ENQ\a\STX\n\ - \\SOH\DC2\EOT\244\ACK\STX\b\n\ + \\SOH\DC2\EOT\246\ACK\STX\b\n\ \\r\n\ \\ENQ\ENQ\a\STX\n\ - \\STX\DC2\EOT\244\ACK\v\r\n\ + \\STX\DC2\EOT\246\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\v\DC2\EOT\245\ACK\STX\t\n\ + \\EOT\ENQ\a\STX\v\DC2\EOT\247\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX\v\SOH\DC2\EOT\245\ACK\STX\ETX\n\ + \\ENQ\ENQ\a\STX\v\SOH\DC2\EOT\247\ACK\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\a\STX\v\STX\DC2\EOT\245\ACK\ACK\b\n\ + \\ENQ\ENQ\a\STX\v\STX\DC2\EOT\247\ACK\ACK\b\n\ \\f\n\ - \\EOT\ENQ\a\STX\f\DC2\EOT\246\ACK\STX\r\n\ + \\EOT\ENQ\a\STX\f\DC2\EOT\248\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX\f\SOH\DC2\EOT\246\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX\f\SOH\DC2\EOT\248\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX\f\STX\DC2\EOT\246\ACK\n\ + \\ENQ\ENQ\a\STX\f\STX\DC2\EOT\248\ACK\n\ \\f\n\ \H\n\ - \\EOT\ENQ\a\STX\r\DC2\EOT\247\ACK\STX\v\": C++ (the name \"CPP\" was chosen for consistency with LSP)\n\ + \\EOT\ENQ\a\STX\r\DC2\EOT\249\ACK\STX\v\": C++ (the name \"CPP\" was chosen for consistency with LSP)\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\r\SOH\DC2\EOT\247\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\r\SOH\DC2\EOT\249\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\r\STX\DC2\EOT\247\ACK\b\n\ + \\ENQ\ENQ\a\STX\r\STX\DC2\EOT\249\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\SO\DC2\EOT\248\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\SO\DC2\EOT\250\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SO\SOH\DC2\EOT\248\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\SO\SOH\DC2\EOT\250\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SO\STX\DC2\EOT\248\ACK\b\n\ + \\ENQ\ENQ\a\STX\SO\STX\DC2\EOT\250\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\SI\DC2\EOT\249\ACK\STX\r\n\ + \\EOT\ENQ\a\STX\SI\DC2\EOT\251\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SI\SOH\DC2\EOT\249\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\SI\SOH\DC2\EOT\251\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SI\STX\DC2\EOT\249\ACK\v\f\n\ + \\ENQ\ENQ\a\STX\SI\STX\DC2\EOT\251\ACK\v\f\n\ \\f\n\ - \\EOT\ENQ\a\STX\DLE\DC2\EOT\250\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\DLE\DC2\EOT\252\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DLE\SOH\DC2\EOT\250\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX\DLE\SOH\DC2\EOT\252\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DLE\STX\DC2\EOT\250\ACK\f\r\n\ + \\ENQ\ENQ\a\STX\DLE\STX\DC2\EOT\252\ACK\f\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC1\DC2\EOT\251\ACK\STX\DC4\n\ + \\EOT\ENQ\a\STX\DC1\DC2\EOT\253\ACK\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC1\SOH\DC2\EOT\251\ACK\STX\SO\n\ + \\ENQ\ENQ\a\STX\DC1\SOH\DC2\EOT\253\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC1\STX\DC2\EOT\251\ACK\DC1\DC3\n\ + \\ENQ\ENQ\a\STX\DC1\STX\DC2\EOT\253\ACK\DC1\DC3\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC2\DC2\EOT\252\ACK\STX\DC1\n\ + \\EOT\ENQ\a\STX\DC2\DC2\EOT\254\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC2\SOH\DC2\EOT\252\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX\DC2\SOH\DC2\EOT\254\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC2\STX\DC2\EOT\252\ACK\SI\DLE\n\ + \\ENQ\ENQ\a\STX\DC2\STX\DC2\EOT\254\ACK\SI\DLE\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC3\DC2\EOT\253\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\DC3\DC2\EOT\255\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC3\SOH\DC2\EOT\253\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\DC3\SOH\DC2\EOT\255\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC3\STX\DC2\EOT\253\ACK\b\n\ + \\ENQ\ENQ\a\STX\DC3\STX\DC2\EOT\255\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC4\DC2\EOT\254\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\DC4\DC2\EOT\128\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC4\SOH\DC2\EOT\254\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\DC4\SOH\DC2\EOT\128\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC4\STX\DC2\EOT\254\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\DC4\STX\DC2\EOT\128\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\NAK\DC2\EOT\255\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\NAK\DC2\EOT\129\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NAK\SOH\DC2\EOT\255\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\NAK\SOH\DC2\EOT\129\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NAK\STX\DC2\EOT\255\ACK\t\n\ + \\ENQ\ENQ\a\STX\NAK\STX\DC2\EOT\129\a\t\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\SYN\DC2\EOT\128\a\STX\SO\n\ + \\EOT\ENQ\a\STX\SYN\DC2\EOT\130\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SYN\SOH\DC2\EOT\128\a\STX\b\n\ + \\ENQ\ENQ\a\STX\SYN\SOH\DC2\EOT\130\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SYN\STX\DC2\EOT\128\a\v\r\n\ + \\ENQ\ENQ\a\STX\SYN\STX\DC2\EOT\130\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\ETB\DC2\EOT\129\a\STX\f\n\ + \\EOT\ENQ\a\STX\ETB\DC2\EOT\131\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETB\SOH\DC2\EOT\129\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX\ETB\SOH\DC2\EOT\131\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETB\STX\DC2\EOT\129\a\t\v\n\ + \\ENQ\ENQ\a\STX\ETB\STX\DC2\EOT\131\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\CAN\DC2\EOT\130\a\STX\DC2\n\ + \\EOT\ENQ\a\STX\CAN\DC2\EOT\132\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX\CAN\SOH\DC2\EOT\130\a\STX\f\n\ + \\ENQ\ENQ\a\STX\CAN\SOH\DC2\EOT\132\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\CAN\STX\DC2\EOT\130\a\SI\DC1\n\ + \\ENQ\ENQ\a\STX\CAN\STX\DC2\EOT\132\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX\EM\DC2\EOT\131\a\STX\SO\n\ + \\EOT\ENQ\a\STX\EM\DC2\EOT\133\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EM\SOH\DC2\EOT\131\a\STX\b\n\ + \\ENQ\ENQ\a\STX\EM\SOH\DC2\EOT\133\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EM\STX\DC2\EOT\131\a\v\r\n\ + \\ENQ\ENQ\a\STX\EM\STX\DC2\EOT\133\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\SUB\DC2\EOT\132\a\STX\SO\n\ + \\EOT\ENQ\a\STX\SUB\DC2\EOT\134\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SUB\SOH\DC2\EOT\132\a\STX\b\n\ + \\ENQ\ENQ\a\STX\SUB\SOH\DC2\EOT\134\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SUB\STX\DC2\EOT\132\a\v\r\n\ + \\ENQ\ENQ\a\STX\SUB\STX\DC2\EOT\134\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\ESC\DC2\EOT\133\a\STX\SO\n\ + \\EOT\ENQ\a\STX\ESC\DC2\EOT\135\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ESC\SOH\DC2\EOT\133\a\STX\b\n\ + \\ENQ\ENQ\a\STX\ESC\SOH\DC2\EOT\135\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ESC\STX\DC2\EOT\133\a\v\r\n\ + \\ENQ\ENQ\a\STX\ESC\STX\DC2\EOT\135\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\FS\DC2\EOT\134\a\STX\SO\n\ + \\EOT\ENQ\a\STX\FS\DC2\EOT\136\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\FS\SOH\DC2\EOT\134\a\STX\b\n\ + \\ENQ\ENQ\a\STX\FS\SOH\DC2\EOT\136\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\FS\STX\DC2\EOT\134\a\v\r\n\ + \\ENQ\ENQ\a\STX\FS\STX\DC2\EOT\136\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\GS\DC2\EOT\135\a\STX\f\n\ + \\EOT\ENQ\a\STX\GS\DC2\EOT\137\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\GS\SOH\DC2\EOT\135\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX\GS\SOH\DC2\EOT\137\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\GS\STX\DC2\EOT\135\a\t\v\n\ + \\ENQ\ENQ\a\STX\GS\STX\DC2\EOT\137\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\RS\DC2\EOT\136\a\STX\f\n\ + \\EOT\ENQ\a\STX\RS\DC2\EOT\138\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\RS\SOH\DC2\EOT\136\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX\RS\SOH\DC2\EOT\138\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\RS\STX\DC2\EOT\136\a\t\v\n\ + \\ENQ\ENQ\a\STX\RS\STX\DC2\EOT\138\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\US\DC2\EOT\137\a\STX\SI\n\ + \\EOT\ENQ\a\STX\US\DC2\EOT\139\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX\US\SOH\DC2\EOT\137\a\STX\t\n\ + \\ENQ\ENQ\a\STX\US\SOH\DC2\EOT\139\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX\US\STX\DC2\EOT\137\a\f\SO\n\ + \\ENQ\ENQ\a\STX\US\STX\DC2\EOT\139\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX \DC2\EOT\138\a\STX\DC2\n\ + \\EOT\ENQ\a\STX \DC2\EOT\140\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX \SOH\DC2\EOT\138\a\STX\f\n\ + \\ENQ\ENQ\a\STX \SOH\DC2\EOT\140\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX \STX\DC2\EOT\138\a\SI\DC1\n\ + \\ENQ\ENQ\a\STX \STX\DC2\EOT\140\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX!\DC2\EOT\139\a\STX\DC2\n\ + \\EOT\ENQ\a\STX!\DC2\EOT\141\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX!\SOH\DC2\EOT\139\a\STX\f\n\ + \\ENQ\ENQ\a\STX!\SOH\DC2\EOT\141\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX!\STX\DC2\EOT\139\a\SI\DC1\n\ + \\ENQ\ENQ\a\STX!\STX\DC2\EOT\141\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX\"\DC2\EOT\140\a\STX\DC2\n\ + \\EOT\ENQ\a\STX\"\DC2\EOT\142\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX\"\SOH\DC2\EOT\140\a\STX\f\n\ + \\ENQ\ENQ\a\STX\"\SOH\DC2\EOT\142\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\"\STX\DC2\EOT\140\a\SI\DC1\n\ + \\ENQ\ENQ\a\STX\"\STX\DC2\EOT\142\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX#\DC2\EOT\141\a\STX\n\ + \\EOT\ENQ\a\STX#\DC2\EOT\143\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX#\SOH\DC2\EOT\141\a\STX\EOT\n\ + \\ENQ\ENQ\a\STX#\SOH\DC2\EOT\143\a\STX\EOT\n\ \\r\n\ - \\ENQ\ENQ\a\STX#\STX\DC2\EOT\141\a\a\t\n\ + \\ENQ\ENQ\a\STX#\STX\DC2\EOT\143\a\a\t\n\ \\f\n\ - \\EOT\ENQ\a\STX$\DC2\EOT\142\a\STX\SI\n\ + \\EOT\ENQ\a\STX$\DC2\EOT\144\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX$\SOH\DC2\EOT\142\a\STX\t\n\ + \\ENQ\ENQ\a\STX$\SOH\DC2\EOT\144\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX$\STX\DC2\EOT\142\a\f\SO\n\ + \\ENQ\ENQ\a\STX$\STX\DC2\EOT\144\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX%\DC2\EOT\143\a\STX\r\n\ + \\EOT\ENQ\a\STX%\DC2\EOT\145\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX%\SOH\DC2\EOT\143\a\STX\b\n\ + \\ENQ\ENQ\a\STX%\SOH\DC2\EOT\145\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX%\STX\DC2\EOT\143\a\v\f\n\ + \\ENQ\ENQ\a\STX%\STX\DC2\EOT\145\a\v\f\n\ \\f\n\ - \\EOT\ENQ\a\STX&\DC2\EOT\144\a\STX\f\n\ + \\EOT\ENQ\a\STX&\DC2\EOT\146\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX&\SOH\DC2\EOT\144\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX&\SOH\DC2\EOT\146\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX&\STX\DC2\EOT\144\a\t\v\n\ + \\ENQ\ENQ\a\STX&\STX\DC2\EOT\146\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX'\DC2\EOT\145\a\STX\f\n\ + \\EOT\ENQ\a\STX'\DC2\EOT\147\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX'\SOH\DC2\EOT\145\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX'\SOH\DC2\EOT\147\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX'\STX\DC2\EOT\145\a\t\v\n\ + \\ENQ\ENQ\a\STX'\STX\DC2\EOT\147\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX(\DC2\EOT\146\a\STX\DC2\n\ + \\EOT\ENQ\a\STX(\DC2\EOT\148\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX(\SOH\DC2\EOT\146\a\STX\f\n\ + \\ENQ\ENQ\a\STX(\SOH\DC2\EOT\148\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX(\STX\DC2\EOT\146\a\SI\DC1\n\ + \\ENQ\ENQ\a\STX(\STX\DC2\EOT\148\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX)\DC2\EOT\147\a\STX\SI\n\ + \\EOT\ENQ\a\STX)\DC2\EOT\149\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX)\SOH\DC2\EOT\147\a\STX\t\n\ + \\ENQ\ENQ\a\STX)\SOH\DC2\EOT\149\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX)\STX\DC2\EOT\147\a\f\SO\n\ + \\ENQ\ENQ\a\STX)\STX\DC2\EOT\149\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX*\DC2\EOT\148\a\STX\r\n\ + \\EOT\ENQ\a\STX*\DC2\EOT\150\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX*\SOH\DC2\EOT\148\a\STX\a\n\ + \\ENQ\ENQ\a\STX*\SOH\DC2\EOT\150\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX*\STX\DC2\EOT\148\a\n\ + \\ENQ\ENQ\a\STX*\STX\DC2\EOT\150\a\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX+\DC2\EOT\149\a\STX\v\n\ + \\EOT\ENQ\a\STX+\DC2\EOT\151\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX+\SOH\DC2\EOT\149\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STX+\SOH\DC2\EOT\151\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX+\STX\DC2\EOT\149\a\b\n\ + \\ENQ\ENQ\a\STX+\STX\DC2\EOT\151\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX,\DC2\EOT\150\a\STX\t\n\ + \\EOT\ENQ\a\STX,\DC2\EOT\152\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX,\SOH\DC2\EOT\150\a\STX\ETX\n\ + \\ENQ\ENQ\a\STX,\SOH\DC2\EOT\152\a\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\a\STX,\STX\DC2\EOT\150\a\ACK\b\n\ + \\ENQ\ENQ\a\STX,\STX\DC2\EOT\152\a\ACK\b\n\ \\f\n\ - \\EOT\ENQ\a\STX-\DC2\EOT\151\a\STX\f\n\ + \\EOT\ENQ\a\STX-\DC2\EOT\153\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX-\SOH\DC2\EOT\151\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX-\SOH\DC2\EOT\153\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX-\STX\DC2\EOT\151\a\t\v\n\ + \\ENQ\ENQ\a\STX-\STX\DC2\EOT\153\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX.\DC2\EOT\152\a\STX\v\n\ + \\EOT\ENQ\a\STX.\DC2\EOT\154\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX.\SOH\DC2\EOT\152\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX.\SOH\DC2\EOT\154\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX.\STX\DC2\EOT\152\a\t\n\ + \\ENQ\ENQ\a\STX.\STX\DC2\EOT\154\a\t\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX/\DC2\EOT\153\a\STX\DC2\n\ + \\EOT\ENQ\a\STX/\DC2\EOT\155\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX/\SOH\DC2\EOT\153\a\STX\f\n\ + \\ENQ\ENQ\a\STX/\SOH\DC2\EOT\155\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX/\STX\DC2\EOT\153\a\SI\DC1\n\ + \\ENQ\ENQ\a\STX/\STX\DC2\EOT\155\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX0\DC2\EOT\154\a\STX\ETB\n\ + \\EOT\ENQ\a\STX0\DC2\EOT\156\a\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\a\STX0\SOH\DC2\EOT\154\a\STX\DC1\n\ + \\ENQ\ENQ\a\STX0\SOH\DC2\EOT\156\a\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STX0\STX\DC2\EOT\154\a\DC4\SYN\n\ + \\ENQ\ENQ\a\STX0\STX\DC2\EOT\156\a\DC4\SYN\n\ \\f\n\ - \\EOT\ENQ\a\STX1\DC2\EOT\155\a\STX\SI\n\ + \\EOT\ENQ\a\STX1\DC2\EOT\157\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX1\SOH\DC2\EOT\155\a\STX\t\n\ + \\ENQ\ENQ\a\STX1\SOH\DC2\EOT\157\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX1\STX\DC2\EOT\155\a\f\SO\n\ + \\ENQ\ENQ\a\STX1\STX\DC2\EOT\157\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX2\DC2\EOT\156\a\STX\SO\n\ + \\EOT\ENQ\a\STX2\DC2\EOT\158\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX2\SOH\DC2\EOT\156\a\STX\a\n\ + \\ENQ\ENQ\a\STX2\SOH\DC2\EOT\158\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX2\STX\DC2\EOT\156\a\v\r\n\ + \\ENQ\ENQ\a\STX2\STX\DC2\EOT\158\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX3\DC2\EOT\157\a\STX\DC1\n\ + \\EOT\ENQ\a\STX3\DC2\EOT\159\a\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STX3\SOH\DC2\EOT\157\a\STX\n\ + \\ENQ\ENQ\a\STX3\SOH\DC2\EOT\159\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX3\STX\DC2\EOT\157\a\r\DLE\n\ + \\ENQ\ENQ\a\STX3\STX\DC2\EOT\159\a\r\DLE\n\ \\f\n\ - \\EOT\ENQ\a\STX4\DC2\EOT\158\a\STX\r\n\ + \\EOT\ENQ\a\STX4\DC2\EOT\160\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX4\SOH\DC2\EOT\158\a\STX\b\n\ + \\ENQ\ENQ\a\STX4\SOH\DC2\EOT\160\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX4\STX\DC2\EOT\158\a\v\f\n\ + \\ENQ\ENQ\a\STX4\STX\DC2\EOT\160\a\v\f\n\ \\f\n\ - \\EOT\ENQ\a\STX5\DC2\EOT\159\a\STX\r\n\ + \\EOT\ENQ\a\STX5\DC2\EOT\161\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX5\SOH\DC2\EOT\159\a\STX\a\n\ + \\ENQ\ENQ\a\STX5\SOH\DC2\EOT\161\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX5\STX\DC2\EOT\159\a\n\ + \\ENQ\ENQ\a\STX5\STX\DC2\EOT\161\a\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX6\DC2\EOT\160\a\STX\f\n\ + \\EOT\ENQ\a\STX6\DC2\EOT\162\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX6\SOH\DC2\EOT\160\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX6\SOH\DC2\EOT\162\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX6\STX\DC2\EOT\160\a\t\v\n\ + \\ENQ\ENQ\a\STX6\STX\DC2\EOT\162\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX7\DC2\EOT\161\a\STX\f\n\ + \\EOT\ENQ\a\STX7\DC2\EOT\163\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX7\SOH\DC2\EOT\161\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX7\SOH\DC2\EOT\163\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX7\STX\DC2\EOT\161\a\t\v\n\ + \\ENQ\ENQ\a\STX7\STX\DC2\EOT\163\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX8\DC2\EOT\162\a\STX\v\n\ + \\EOT\ENQ\a\STX8\DC2\EOT\164\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX8\SOH\DC2\EOT\162\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STX8\SOH\DC2\EOT\164\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX8\STX\DC2\EOT\162\a\b\n\ + \\ENQ\ENQ\a\STX8\STX\DC2\EOT\164\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX9\DC2\EOT\163\a\STX\r\n\ + \\EOT\ENQ\a\STX9\DC2\EOT\165\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX9\SOH\DC2\EOT\163\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX9\SOH\DC2\EOT\165\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX9\STX\DC2\EOT\163\a\t\f\n\ + \\ENQ\ENQ\a\STX9\STX\DC2\EOT\165\a\t\f\n\ \\f\n\ - \\EOT\ENQ\a\STX:\DC2\EOT\164\a\STX\DLE\n\ + \\EOT\ENQ\a\STX:\DC2\EOT\166\a\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX:\SOH\DC2\EOT\164\a\STX\n\ + \\ENQ\ENQ\a\STX:\SOH\DC2\EOT\166\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX:\STX\DC2\EOT\164\a\r\SI\n\ + \\ENQ\ENQ\a\STX:\STX\DC2\EOT\166\a\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX;\DC2\EOT\165\a\STX\DLE\n\ + \\EOT\ENQ\a\STX;\DC2\EOT\167\a\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX;\SOH\DC2\EOT\165\a\STX\n\ + \\ENQ\ENQ\a\STX;\SOH\DC2\EOT\167\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX;\STX\DC2\EOT\165\a\r\SI\n\ + \\ENQ\ENQ\a\STX;\STX\DC2\EOT\167\a\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX<\DC2\EOT\166\a\STX\SO\n\ + \\EOT\ENQ\a\STX<\DC2\EOT\168\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX<\SOH\DC2\EOT\166\a\STX\b\n\ + \\ENQ\ENQ\a\STX<\SOH\DC2\EOT\168\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX<\STX\DC2\EOT\166\a\v\r\n\ + \\ENQ\ENQ\a\STX<\STX\DC2\EOT\168\a\v\r\n\ \(\n\ - \\EOT\ENQ\a\STX=\DC2\EOT\167\a\STX\SI\"\SUB https://nickel-lang.org/\n\ + \\EOT\ENQ\a\STX=\DC2\EOT\169\a\STX\SI\"\SUB https://nickel-lang.org/\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX=\SOH\DC2\EOT\167\a\STX\b\n\ + \\ENQ\ENQ\a\STX=\SOH\DC2\EOT\169\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX=\STX\DC2\EOT\167\a\v\SO\n\ + \\ENQ\ENQ\a\STX=\STX\DC2\EOT\169\a\v\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX>\DC2\EOT\168\a\STX\v\n\ + \\EOT\ENQ\a\STX>\DC2\EOT\170\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX>\SOH\DC2\EOT\168\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STX>\SOH\DC2\EOT\170\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX>\STX\DC2\EOT\168\a\b\n\ + \\ENQ\ENQ\a\STX>\STX\DC2\EOT\170\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX?\DC2\EOT\169\a\STX\r\n\ + \\EOT\ENQ\a\STX?\DC2\EOT\171\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX?\SOH\DC2\EOT\169\a\STX\a\n\ + \\ENQ\ENQ\a\STX?\SOH\DC2\EOT\171\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX?\STX\DC2\EOT\169\a\n\ + \\ENQ\ENQ\a\STX?\STX\DC2\EOT\171\a\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX@\DC2\EOT\170\a\STX\DC3\n\ + \\EOT\ENQ\a\STX@\DC2\EOT\172\a\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\a\STX@\SOH\DC2\EOT\170\a\STX\r\n\ + \\ENQ\ENQ\a\STX@\SOH\DC2\EOT\172\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX@\STX\DC2\EOT\170\a\DLE\DC2\n\ + \\ENQ\ENQ\a\STX@\STX\DC2\EOT\172\a\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\a\STXA\DC2\EOT\171\a\STX\NAK\n\ + \\EOT\ENQ\a\STXA\DC2\EOT\173\a\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\a\STXA\SOH\DC2\EOT\171\a\STX\SI\n\ + \\ENQ\ENQ\a\STXA\SOH\DC2\EOT\173\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXA\STX\DC2\EOT\171\a\DC2\DC4\n\ + \\ENQ\ENQ\a\STXA\STX\DC2\EOT\173\a\DC2\DC4\n\ \\f\n\ - \\EOT\ENQ\a\STXB\DC2\EOT\172\a\STX\SO\n\ + \\EOT\ENQ\a\STXB\DC2\EOT\174\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXB\SOH\DC2\EOT\172\a\STX\b\n\ + \\ENQ\ENQ\a\STXB\SOH\DC2\EOT\174\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXB\STX\DC2\EOT\172\a\v\r\n\ + \\ENQ\ENQ\a\STXB\STX\DC2\EOT\174\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXC\DC2\EOT\173\a\STX\v\n\ + \\EOT\ENQ\a\STXC\DC2\EOT\175\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXC\SOH\DC2\EOT\173\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STXC\SOH\DC2\EOT\175\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXC\STX\DC2\EOT\173\a\b\n\ + \\ENQ\ENQ\a\STXC\STX\DC2\EOT\175\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXD\DC2\EOT\174\a\STX\r\n\ + \\EOT\ENQ\a\STXD\DC2\EOT\176\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXD\SOH\DC2\EOT\174\a\STX\a\n\ + \\ENQ\ENQ\a\STXD\SOH\DC2\EOT\176\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXD\STX\DC2\EOT\174\a\n\ + \\ENQ\ENQ\a\STXD\STX\DC2\EOT\176\a\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STXE\DC2\EOT\175\a\STX\f\n\ + \\EOT\ENQ\a\STXE\DC2\EOT\177\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXE\SOH\DC2\EOT\175\a\STX\ACK\n\ + \\ENQ\ENQ\a\STXE\SOH\DC2\EOT\177\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXE\STX\DC2\EOT\175\a\t\v\n\ + \\ENQ\ENQ\a\STXE\STX\DC2\EOT\177\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXF\DC2\EOT\176\a\STX\DC2\n\ + \\EOT\ENQ\a\STXF\DC2\EOT\178\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STXF\SOH\DC2\EOT\176\a\STX\f\n\ + \\ENQ\ENQ\a\STXF\SOH\DC2\EOT\178\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXF\STX\DC2\EOT\176\a\SI\DC1\n\ + \\ENQ\ENQ\a\STXF\STX\DC2\EOT\178\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STXG\DC2\EOT\177\a\STX\SO\n\ + \\EOT\ENQ\a\STXG\DC2\EOT\179\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXG\SOH\DC2\EOT\177\a\STX\b\n\ + \\ENQ\ENQ\a\STXG\SOH\DC2\EOT\179\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXG\STX\DC2\EOT\177\a\v\r\n\ + \\ENQ\ENQ\a\STXG\STX\DC2\EOT\179\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXH\DC2\EOT\178\a\STX\DC1\n\ + \\EOT\ENQ\a\STXH\DC2\EOT\180\a\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STXH\SOH\DC2\EOT\178\a\STX\n\ + \\ENQ\ENQ\a\STXH\SOH\DC2\EOT\180\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXH\STX\DC2\EOT\178\a\r\DLE\n\ + \\ENQ\ENQ\a\STXH\STX\DC2\EOT\180\a\r\DLE\n\ \\f\n\ - \\EOT\ENQ\a\STXI\DC2\EOT\179\a\STX\SO\n\ + \\EOT\ENQ\a\STXI\DC2\EOT\181\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXI\SOH\DC2\EOT\179\a\STX\b\n\ + \\ENQ\ENQ\a\STXI\SOH\DC2\EOT\181\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXI\STX\DC2\EOT\179\a\v\r\n\ + \\ENQ\ENQ\a\STXI\STX\DC2\EOT\181\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXJ\DC2\EOT\180\a\STX\t\n\ + \\EOT\ENQ\a\STXJ\DC2\EOT\182\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXJ\SOH\DC2\EOT\180\a\STX\ETX\n\ + \\ENQ\ENQ\a\STXJ\SOH\DC2\EOT\182\a\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\a\STXJ\STX\DC2\EOT\180\a\ACK\b\n\ + \\ENQ\ENQ\a\STXJ\STX\DC2\EOT\182\a\ACK\b\n\ \\f\n\ - \\EOT\ENQ\a\STXK\DC2\EOT\181\a\STX\SO\n\ + \\EOT\ENQ\a\STXK\DC2\EOT\183\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXK\SOH\DC2\EOT\181\a\STX\b\n\ + \\ENQ\ENQ\a\STXK\SOH\DC2\EOT\183\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXK\STX\DC2\EOT\181\a\v\r\n\ + \\ENQ\ENQ\a\STXK\STX\DC2\EOT\183\a\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXL\DC2\EOT\182\a\STX\f\n\ + \\EOT\ENQ\a\STXL\DC2\EOT\184\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXL\SOH\DC2\EOT\182\a\STX\ACK\n\ + \\ENQ\ENQ\a\STXL\SOH\DC2\EOT\184\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXL\STX\DC2\EOT\182\a\t\v\n\ + \\ENQ\ENQ\a\STXL\STX\DC2\EOT\184\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXM\DC2\EOT\183\a\STX\r\n\ + \\EOT\ENQ\a\STXM\DC2\EOT\185\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXM\SOH\DC2\EOT\183\a\STX\a\n\ + \\ENQ\ENQ\a\STXM\SOH\DC2\EOT\185\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXM\STX\DC2\EOT\183\a\n\ + \\ENQ\ENQ\a\STXM\STX\DC2\EOT\185\a\n\ \\f\n\ \2\n\ - \\EOT\ENQ\a\STXN\DC2\EOT\184\a\STX\SO\"$ Internal language for testing SCIP\n\ + \\EOT\ENQ\a\STXN\DC2\EOT\186\a\STX\SO\"$ Internal language for testing SCIP\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXN\SOH\DC2\EOT\184\a\STX\a\n\ + \\ENQ\ENQ\a\STXN\SOH\DC2\EOT\186\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXN\STX\DC2\EOT\184\a\n\ + \\ENQ\ENQ\a\STXN\STX\DC2\EOT\186\a\n\ \\r\n\ \\f\n\ - \\EOT\ENQ\a\STXO\DC2\EOT\185\a\STX\f\n\ + \\EOT\ENQ\a\STXO\DC2\EOT\187\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXO\SOH\DC2\EOT\185\a\STX\ACK\n\ + \\ENQ\ENQ\a\STXO\SOH\DC2\EOT\187\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXO\STX\DC2\EOT\185\a\t\v\n\ + \\ENQ\ENQ\a\STXO\STX\DC2\EOT\187\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXP\DC2\EOT\186\a\STX\f\n\ + \\EOT\ENQ\a\STXP\DC2\EOT\188\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXP\SOH\DC2\EOT\186\a\STX\ACK\n\ + \\ENQ\ENQ\a\STXP\SOH\DC2\EOT\188\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXP\STX\DC2\EOT\186\a\t\v\n\ + \\ENQ\ENQ\a\STXP\STX\DC2\EOT\188\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXQ\DC2\EOT\187\a\STX\f\n\ + \\EOT\ENQ\a\STXQ\DC2\EOT\189\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXQ\SOH\DC2\EOT\187\a\STX\ACK\n\ + \\ENQ\ENQ\a\STXQ\SOH\DC2\EOT\189\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXQ\STX\DC2\EOT\187\a\t\v\n\ + \\ENQ\ENQ\a\STXQ\STX\DC2\EOT\189\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXR\DC2\EOT\188\a\STX\v\n\ + \\EOT\ENQ\a\STXR\DC2\EOT\190\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXR\SOH\DC2\EOT\188\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STXR\SOH\DC2\EOT\190\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXR\STX\DC2\EOT\188\a\b\n\ + \\ENQ\ENQ\a\STXR\STX\DC2\EOT\190\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXS\DC2\EOT\189\a\STX\f\n\ + \\EOT\ENQ\a\STXS\DC2\EOT\191\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXS\SOH\DC2\EOT\189\a\STX\ACK\n\ + \\ENQ\ENQ\a\STXS\SOH\DC2\EOT\191\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXS\STX\DC2\EOT\189\a\t\v\n\ + \\ENQ\ENQ\a\STXS\STX\DC2\EOT\191\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXT\DC2\EOT\190\a\STX\v\n\ + \\EOT\ENQ\a\STXT\DC2\EOT\192\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXT\SOH\DC2\EOT\190\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STXT\SOH\DC2\EOT\192\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXT\STX\DC2\EOT\190\a\b\n\ + \\ENQ\ENQ\a\STXT\STX\DC2\EOT\192\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXU\DC2\EOT\191\a\STX\v\n\ + \\EOT\ENQ\a\STXU\DC2\EOT\193\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXU\SOH\DC2\EOT\191\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STXU\SOH\DC2\EOT\193\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXU\STX\DC2\EOT\191\a\b\n\ + \\ENQ\ENQ\a\STXU\STX\DC2\EOT\193\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXV\DC2\EOT\192\a\STX\f\n\ + \\EOT\ENQ\a\STXV\DC2\EOT\194\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXV\SOH\DC2\EOT\192\a\STX\ACK\n\ + \\ENQ\ENQ\a\STXV\SOH\DC2\EOT\194\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXV\STX\DC2\EOT\192\a\t\v\n\ + \\ENQ\ENQ\a\STXV\STX\DC2\EOT\194\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXW\DC2\EOT\193\a\STX\f\n\ + \\EOT\ENQ\a\STXW\DC2\EOT\195\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXW\SOH\DC2\EOT\193\a\STX\a\n\ + \\ENQ\ENQ\a\STXW\SOH\DC2\EOT\195\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXW\STX\DC2\EOT\193\a\n\ + \\ENQ\ENQ\a\STXW\STX\DC2\EOT\195\a\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\a\STXX\DC2\EOT\194\a\STX\SO\n\ + \\EOT\ENQ\a\STXX\DC2\EOT\196\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXX\SOH\DC2\EOT\194\a\STX\b\n\ + \\ENQ\ENQ\a\STXX\SOH\DC2\EOT\196\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXX\STX\DC2\EOT\194\a\v\r\n\ + \\ENQ\ENQ\a\STXX\STX\DC2\EOT\196\a\v\r\n\ \\DC4\n\ - \\EOT\ENQ\a\STXY\DC2\EOT\195\a\STX\DC3\"\ACK Bash\n\ + \\EOT\ENQ\a\STXY\DC2\EOT\197\a\STX\DC3\"\ACK Bash\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXY\SOH\DC2\EOT\195\a\STX\r\n\ + \\ENQ\ENQ\a\STXY\SOH\DC2\EOT\197\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXY\STX\DC2\EOT\195\a\DLE\DC2\n\ + \\ENQ\ENQ\a\STXY\STX\DC2\EOT\197\a\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\a\STXZ\DC2\EOT\196\a\STX\SI\n\ + \\EOT\ENQ\a\STXZ\DC2\EOT\198\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXZ\SOH\DC2\EOT\196\a\STX\t\n\ + \\ENQ\ENQ\a\STXZ\SOH\DC2\EOT\198\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXZ\STX\DC2\EOT\196\a\f\SO\n\ + \\ENQ\ENQ\a\STXZ\STX\DC2\EOT\198\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX[\DC2\EOT\197\a\STX\SO\n\ + \\EOT\ENQ\a\STX[\DC2\EOT\199\a\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX[\SOH\DC2\EOT\197\a\STX\a\n\ + \\ENQ\ENQ\a\STX[\SOH\DC2\EOT\199\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX[\STX\DC2\EOT\197\a\n\ + \\ENQ\ENQ\a\STX[\STX\DC2\EOT\199\a\n\ \\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\\\DC2\EOT\198\a\STX\DLE\n\ + \\EOT\ENQ\a\STX\\\DC2\EOT\200\a\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX\\\SOH\DC2\EOT\198\a\STX\n\ + \\ENQ\ENQ\a\STX\\\SOH\DC2\EOT\200\a\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\\\STX\DC2\EOT\198\a\r\SI\n\ + \\ENQ\ENQ\a\STX\\\STX\DC2\EOT\200\a\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX]\DC2\EOT\199\a\STX\SI\n\ + \\EOT\ENQ\a\STX]\DC2\EOT\201\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX]\SOH\DC2\EOT\199\a\STX\b\n\ + \\ENQ\ENQ\a\STX]\SOH\DC2\EOT\201\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX]\STX\DC2\EOT\199\a\v\SO\n\ + \\ENQ\ENQ\a\STX]\STX\DC2\EOT\201\a\v\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX^\DC2\EOT\200\a\STX\f\n\ + \\EOT\ENQ\a\STX^\DC2\EOT\202\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX^\SOH\DC2\EOT\200\a\STX\a\n\ + \\ENQ\ENQ\a\STX^\SOH\DC2\EOT\202\a\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX^\STX\DC2\EOT\200\a\n\ + \\ENQ\ENQ\a\STX^\STX\DC2\EOT\202\a\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\a\STX_\DC2\EOT\201\a\STX\f\n\ + \\EOT\ENQ\a\STX_\DC2\EOT\203\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX_\SOH\DC2\EOT\201\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STX_\SOH\DC2\EOT\203\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX_\STX\DC2\EOT\201\a\b\v\n\ + \\ENQ\ENQ\a\STX_\STX\DC2\EOT\203\a\b\v\n\ \\f\n\ - \\EOT\ENQ\a\STX`\DC2\EOT\202\a\STX\f\n\ + \\EOT\ENQ\a\STX`\DC2\EOT\204\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX`\SOH\DC2\EOT\202\a\STX\ACK\n\ + \\ENQ\ENQ\a\STX`\SOH\DC2\EOT\204\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX`\STX\DC2\EOT\202\a\t\v\n\ + \\ENQ\ENQ\a\STX`\STX\DC2\EOT\204\a\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXa\DC2\EOT\203\a\STX\v\n\ + \\EOT\ENQ\a\STXa\DC2\EOT\205\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXa\SOH\DC2\EOT\203\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STXa\SOH\DC2\EOT\205\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXa\STX\DC2\EOT\203\a\b\n\ + \\ENQ\ENQ\a\STXa\STX\DC2\EOT\205\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXb\DC2\EOT\204\a\STX\SI\n\ + \\EOT\ENQ\a\STXb\DC2\EOT\206\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXb\SOH\DC2\EOT\204\a\STX\b\n\ + \\ENQ\ENQ\a\STXb\SOH\DC2\EOT\206\a\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXb\STX\DC2\EOT\204\a\v\SO\n\ + \\ENQ\ENQ\a\STXb\STX\DC2\EOT\206\a\v\SO\n\ \\f\n\ - \\EOT\ENQ\a\STXc\DC2\EOT\205\a\STX\DC2\n\ + \\EOT\ENQ\a\STXc\DC2\EOT\207\a\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STXc\SOH\DC2\EOT\205\a\STX\f\n\ + \\ENQ\ENQ\a\STXc\SOH\DC2\EOT\207\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXc\STX\DC2\EOT\205\a\SI\DC1\n\ + \\ENQ\ENQ\a\STXc\STX\DC2\EOT\207\a\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STXd\DC2\EOT\206\a\STX\ETB\n\ + \\EOT\ENQ\a\STXd\DC2\EOT\208\a\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\a\STXd\SOH\DC2\EOT\206\a\STX\DC1\n\ + \\ENQ\ENQ\a\STXd\SOH\DC2\EOT\208\a\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STXd\STX\DC2\EOT\206\a\DC4\SYN\n\ + \\ENQ\ENQ\a\STXd\STX\DC2\EOT\208\a\DC4\SYN\n\ \\f\n\ - \\EOT\ENQ\a\STXe\DC2\EOT\207\a\STX\DLE\n\ + \\EOT\ENQ\a\STXe\DC2\EOT\209\a\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STXe\SOH\DC2\EOT\207\a\STX\t\n\ + \\ENQ\ENQ\a\STXe\SOH\DC2\EOT\209\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXe\STX\DC2\EOT\207\a\f\SI\n\ + \\ENQ\ENQ\a\STXe\STX\DC2\EOT\209\a\f\SI\n\ \\f\n\ - \\EOT\ENQ\a\STXf\DC2\EOT\208\a\STX\r\n\ + \\EOT\ENQ\a\STXf\DC2\EOT\210\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXf\SOH\DC2\EOT\208\a\STX\ACK\n\ + \\ENQ\ENQ\a\STXf\SOH\DC2\EOT\210\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXf\STX\DC2\EOT\208\a\t\f\n\ + \\ENQ\ENQ\a\STXf\STX\DC2\EOT\210\a\t\f\n\ \\f\n\ - \\EOT\ENQ\a\STXg\DC2\EOT\209\a\STX\DC3\n\ + \\EOT\ENQ\a\STXg\DC2\EOT\211\a\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\a\STXg\SOH\DC2\EOT\209\a\STX\r\n\ + \\ENQ\ENQ\a\STXg\SOH\DC2\EOT\211\a\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXg\STX\DC2\EOT\209\a\DLE\DC2\n\ + \\ENQ\ENQ\a\STXg\STX\DC2\EOT\211\a\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\a\STXh\DC2\EOT\210\a\STX\v\n\ + \\EOT\ENQ\a\STXh\DC2\EOT\212\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXh\SOH\DC2\EOT\210\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STXh\SOH\DC2\EOT\212\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXh\STX\DC2\EOT\210\a\b\n\ + \\ENQ\ENQ\a\STXh\STX\DC2\EOT\212\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXi\DC2\EOT\211\a\STX\SI\n\ + \\EOT\ENQ\a\STXi\DC2\EOT\213\a\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXi\SOH\DC2\EOT\211\a\STX\t\n\ + \\ENQ\ENQ\a\STXi\SOH\DC2\EOT\213\a\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXi\STX\DC2\EOT\211\a\f\SO\n\ + \\ENQ\ENQ\a\STXi\STX\DC2\EOT\213\a\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STXj\DC2\EOT\212\a\STX\v\n\ + \\EOT\ENQ\a\STXj\DC2\EOT\214\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXj\SOH\DC2\EOT\212\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STXj\SOH\DC2\EOT\214\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXj\STX\DC2\EOT\212\a\b\n\ + \\ENQ\ENQ\a\STXj\STX\DC2\EOT\214\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXk\DC2\EOT\213\a\STX\v\n\ + \\EOT\ENQ\a\STXk\DC2\EOT\215\a\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXk\SOH\DC2\EOT\213\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STXk\SOH\DC2\EOT\215\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXk\STX\DC2\EOT\213\a\b\n\ + \\ENQ\ENQ\a\STXk\STX\DC2\EOT\215\a\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXl\DC2\EOT\214\a\STX\f\n\ + \\EOT\ENQ\a\STXl\DC2\EOT\216\a\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXl\SOH\DC2\EOT\214\a\STX\ACK\n\ + \\ENQ\ENQ\a\STXl\SOH\DC2\EOT\216\a\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXl\STX\DC2\EOT\214\a\t\v\n\ + \\ENQ\ENQ\a\STXl\STX\DC2\EOT\216\a\t\v\n\ \\147\ETX\n\ - \\EOT\ENQ\a\STXm\DC2\EOT\215\a\STX\v\"\132\ETX NextLanguage = 111;\n\ + \\EOT\ENQ\a\STXm\DC2\EOT\217\a\STX\v\"\132\ETX NextLanguage = 111;\n\ \ Steps add a new language:\n\ \ 1. Copy-paste the \"NextLanguage = N\" line above\n\ \ 2. Increment \"NextLanguage = N\" to \"NextLanguage = N+1\"\n\ @@ -9653,7 +9668,7 @@ packedFileDescriptor \ 5. (optional) Add a brief comment behind the language if the name is not self-explanatory\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXm\SOH\DC2\EOT\215\a\STX\ENQ\n\ + \\ENQ\ENQ\a\STXm\SOH\DC2\EOT\217\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXm\STX\DC2\EOT\215\a\b\n\ + \\ENQ\ENQ\a\STXm\STX\DC2\EOT\217\a\b\n\ \b\ACKproto3" \ No newline at end of file diff --git a/bindings/rust/src/generated/scip.rs b/bindings/rust/src/generated/scip.rs index cb67b2a5..067f294e 100644 --- a/bindings/rust/src/generated/scip.rs +++ b/bindings/rust/src/generated/scip.rs @@ -3503,6 +3503,8 @@ pub enum SymbolRole { Test = 32, // @@protoc_insertion_point(enum_value:scip.SymbolRole.ForwardDefinition) ForwardDefinition = 64, + // @@protoc_insertion_point(enum_value:scip.SymbolRole.Call) + Call = 128, } impl ::protobuf::Enum for SymbolRole { @@ -3522,6 +3524,7 @@ impl ::protobuf::Enum for SymbolRole { 16 => ::std::option::Option::Some(SymbolRole::Generated), 32 => ::std::option::Option::Some(SymbolRole::Test), 64 => ::std::option::Option::Some(SymbolRole::ForwardDefinition), + 128 => ::std::option::Option::Some(SymbolRole::Call), _ => ::std::option::Option::None } } @@ -3536,6 +3539,7 @@ impl ::protobuf::Enum for SymbolRole { "Generated" => ::std::option::Option::Some(SymbolRole::Generated), "Test" => ::std::option::Option::Some(SymbolRole::Test), "ForwardDefinition" => ::std::option::Option::Some(SymbolRole::ForwardDefinition), + "Call" => ::std::option::Option::Some(SymbolRole::Call), _ => ::std::option::Option::None } } @@ -3549,6 +3553,7 @@ impl ::protobuf::Enum for SymbolRole { SymbolRole::Generated, SymbolRole::Test, SymbolRole::ForwardDefinition, + SymbolRole::Call, ]; } @@ -3568,6 +3573,7 @@ impl ::protobuf::EnumFull for SymbolRole { SymbolRole::Generated => 5, SymbolRole::Test => 6, SymbolRole::ForwardDefinition => 7, + SymbolRole::Call => 8, }; Self::enum_descriptor().value_by_index(index) } @@ -4883,140 +4889,140 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \n\x05UTF16\x10\x02*\xa4\x01\n\x10PositionEncoding\x12\x1f\n\x1bUnspecif\ iedPositionEncoding\x10\0\x12#\n\x1fUTF8CodeUnitOffsetFromLineStart\x10\ \x01\x12$\n\x20UTF16CodeUnitOffsetFromLineStart\x10\x02\x12$\n\x20UTF32C\ - odeUnitOffsetFromLineStart\x10\x03*\x94\x01\n\nSymbolRole\x12\x19\n\x15U\ + odeUnitOffsetFromLineStart\x10\x03*\x9f\x01\n\nSymbolRole\x12\x19\n\x15U\ nspecifiedSymbolRole\x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\x06Impo\ rt\x10\x02\x12\x0f\n\x0bWriteAccess\x10\x04\x12\x0e\n\nReadAccess\x10\ \x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\x04Test\x10\x20\x12\x15\n\x11F\ - orwardDefinition\x10@*\xea\x06\n\nSyntaxKind\x12\x19\n\x15UnspecifiedSyn\ - taxKind\x10\0\x12\x0b\n\x07Comment\x10\x01\x12\x18\n\x14PunctuationDelim\ - iter\x10\x02\x12\x16\n\x12PunctuationBracket\x10\x03\x12\x0b\n\x07Keywor\ - d\x10\x04\x12\x19\n\x11IdentifierKeyword\x10\x04\x1a\x02\x08\x01\x12\x16\ - \n\x12IdentifierOperator\x10\x05\x12\x0e\n\nIdentifier\x10\x06\x12\x15\n\ - \x11IdentifierBuiltin\x10\x07\x12\x12\n\x0eIdentifierNull\x10\x08\x12\ - \x16\n\x12IdentifierConstant\x10\t\x12\x1b\n\x17IdentifierMutableGlobal\ - \x10\n\x12\x17\n\x13IdentifierParameter\x10\x0b\x12\x13\n\x0fIdentifierL\ - ocal\x10\x0c\x12\x16\n\x12IdentifierShadowed\x10\r\x12\x17\n\x13Identifi\ - erNamespace\x10\x0e\x12\x18\n\x10IdentifierModule\x10\x0e\x1a\x02\x08\ - \x01\x12\x16\n\x12IdentifierFunction\x10\x0f\x12\x20\n\x1cIdentifierFunc\ - tionDefinition\x10\x10\x12\x13\n\x0fIdentifierMacro\x10\x11\x12\x1d\n\ - \x19IdentifierMacroDefinition\x10\x12\x12\x12\n\x0eIdentifierType\x10\ - \x13\x12\x19\n\x15IdentifierBuiltinType\x10\x14\x12\x17\n\x13IdentifierA\ - ttribute\x10\x15\x12\x0f\n\x0bRegexEscape\x10\x16\x12\x11\n\rRegexRepeat\ - ed\x10\x17\x12\x11\n\rRegexWildcard\x10\x18\x12\x12\n\x0eRegexDelimiter\ - \x10\x19\x12\r\n\tRegexJoin\x10\x1a\x12\x11\n\rStringLiteral\x10\x1b\x12\ - \x17\n\x13StringLiteralEscape\x10\x1c\x12\x18\n\x14StringLiteralSpecial\ - \x10\x1d\x12\x14\n\x10StringLiteralKey\x10\x1e\x12\x14\n\x10CharacterLit\ - eral\x10\x1f\x12\x12\n\x0eNumericLiteral\x10\x20\x12\x12\n\x0eBooleanLit\ - eral\x10!\x12\x07\n\x03Tag\x10\"\x12\x10\n\x0cTagAttribute\x10#\x12\x10\ - \n\x0cTagDelimiter\x10$\x1a\x02\x10\x01*V\n\x08Severity\x12\x17\n\x13Uns\ - pecifiedSeverity\x10\0\x12\t\n\x05Error\x10\x01\x12\x0b\n\x07Warning\x10\ - \x02\x12\x0f\n\x0bInformation\x10\x03\x12\x08\n\x04Hint\x10\x04*N\n\rDia\ - gnosticTag\x12\x1c\n\x18UnspecifiedDiagnosticTag\x10\0\x12\x0f\n\x0bUnne\ - cessary\x10\x01\x12\x0e\n\nDeprecated\x10\x02*\x9b\n\n\x08Language\x12\ - \x17\n\x13UnspecifiedLanguage\x10\0\x12\x08\n\x04ABAP\x10<\x12\x08\n\x04\ - Apex\x10`\x12\x07\n\x03APL\x101\x12\x07\n\x03Ada\x10'\x12\x08\n\x04Agda\ - \x10-\x12\x0c\n\x08AsciiDoc\x10V\x12\x0c\n\x08Assembly\x10:\x12\x07\n\ - \x03Awk\x10B\x12\x07\n\x03Bat\x10D\x12\n\n\x06BibTeX\x10Q\x12\x05\n\x01C\ - \x10\"\x12\t\n\x05COBOL\x10;\x12\x07\n\x03CPP\x10#\x12\x07\n\x03CSS\x10\ - \x1a\x12\n\n\x06CSharp\x10\x01\x12\x0b\n\x07Clojure\x10\x08\x12\x10\n\ - \x0cCoffeescript\x10\x15\x12\x0e\n\nCommonLisp\x10\t\x12\x07\n\x03Coq\ - \x10/\x12\x08\n\x04CUDA\x10a\x12\x08\n\x04Dart\x10\x03\x12\n\n\x06Delphi\ - \x109\x12\x08\n\x04Diff\x10X\x12\x0e\n\nDockerfile\x10P\x12\n\n\x06Dyalo\ - g\x102\x12\n\n\x06Elixir\x10\x11\x12\n\n\x06Erlang\x10\x12\x12\n\n\x06FS\ - harp\x10*\x12\x08\n\x04Fish\x10A\x12\x08\n\x04Flow\x10\x18\x12\x0b\n\x07\ - Fortran\x108\x12\x0e\n\nGit_Commit\x10[\x12\x0e\n\nGit_Config\x10Y\x12\ - \x0e\n\nGit_Rebase\x10\\\x12\x06\n\x02Go\x10!\x12\x0b\n\x07GraphQL\x10b\ - \x12\n\n\x06Groovy\x10\x07\x12\x08\n\x04HTML\x10\x1e\x12\x08\n\x04Hack\ - \x10\x14\x12\x0e\n\nHandlebars\x10Z\x12\x0b\n\x07Haskell\x10,\x12\t\n\ - \x05Idris\x10.\x12\x07\n\x03Ini\x10H\x12\x05\n\x01J\x103\x12\x08\n\x04JS\ - ON\x10K\x12\x08\n\x04Java\x10\x06\x12\x0e\n\nJavaScript\x10\x16\x12\x13\ - \n\x0fJavaScriptReact\x10]\x12\x0b\n\x07Jsonnet\x10L\x12\t\n\x05Julia\ - \x107\x12\x0c\n\x08Justfile\x10m\x12\n\n\x06Kotlin\x10\x04\x12\t\n\x05La\ - TeX\x10S\x12\x08\n\x04Lean\x100\x12\x08\n\x04Less\x10\x1b\x12\x07\n\x03L\ - ua\x10\x0c\x12\x08\n\x04Luau\x10l\x12\x0c\n\x08Makefile\x10O\x12\x0c\n\ - \x08Markdown\x10T\x12\n\n\x06Matlab\x104\x12\n\n\x06Nickel\x10n\x12\x07\ - \n\x03Nix\x10M\x12\t\n\x05OCaml\x10)\x12\x0f\n\x0bObjective_C\x10$\x12\ - \x11\n\rObjective_CPP\x10%\x12\n\n\x06Pascal\x10c\x12\x07\n\x03PHP\x10\ - \x13\x12\t\n\x05PLSQL\x10F\x12\x08\n\x04Perl\x10\r\x12\x0e\n\nPowerShell\ - \x10C\x12\n\n\x06Prolog\x10G\x12\x0c\n\x08Protobuf\x10d\x12\n\n\x06Pytho\ - n\x10\x0f\x12\x05\n\x01R\x106\x12\n\n\x06Racket\x10\x0b\x12\x08\n\x04Rak\ - u\x10\x0e\x12\t\n\x05Razor\x10>\x12\t\n\x05Repro\x10f\x12\x08\n\x04ReST\ - \x10U\x12\x08\n\x04Ruby\x10\x10\x12\x08\n\x04Rust\x10(\x12\x07\n\x03SAS\ - \x10=\x12\x08\n\x04SCSS\x10\x1d\x12\x07\n\x03SML\x10+\x12\x07\n\x03SQL\ - \x10E\x12\x08\n\x04Sass\x10\x1c\x12\t\n\x05Scala\x10\x05\x12\n\n\x06Sche\ - me\x10\n\x12\x0f\n\x0bShellScript\x10@\x12\x0b\n\x07Skylark\x10N\x12\t\n\ - \x05Slang\x10k\x12\x0c\n\x08Solidity\x10_\x12\n\n\x06Svelte\x10j\x12\t\n\ - \x05Swift\x10\x02\x12\x07\n\x03Tcl\x10e\x12\x08\n\x04TOML\x10I\x12\x07\n\ - \x03TeX\x10R\x12\n\n\x06Thrift\x10g\x12\x0e\n\nTypeScript\x10\x17\x12\ - \x13\n\x0fTypeScriptReact\x10^\x12\x0b\n\x07Verilog\x10h\x12\x08\n\x04VH\ - DL\x10i\x12\x0f\n\x0bVisualBasic\x10?\x12\x07\n\x03Vue\x10\x19\x12\x0b\n\ - \x07Wolfram\x105\x12\x07\n\x03XML\x10\x1f\x12\x07\n\x03XSL\x10\x20\x12\ - \x08\n\x04YAML\x10J\x12\x07\n\x03Zig\x10&B/Z-github.com/sourcegraph/scip\ - /bindings/go/scip/J\xd9\xd9\x02\n\x07\x12\x05\n\0\xdf\x07\x01\n\x82\x04\ - \n\x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20index\x20contains\x20one\ - \x20or\x20more\x20pieces\x20of\x20information\x20about\x20a\x20given\x20\ - piece\x20of\n\x20source\x20code\x20or\x20software\x20artifact.\x20Comple\ - mentary\x20information\x20can\x20be\x20merged\n\x20together\x20from\x20m\ - ultiple\x20sources\x20to\x20provide\x20a\x20unified\x20code\x20intellige\ - nce\n\x20experience.\n\n\x20Programs\x20producing\x20a\x20file\x20of\x20\ - this\x20format\x20is\x20an\x20\"indexer\"\x20and\x20may\x20operate\n\x20\ - somewhere\x20on\x20the\x20spectrum\x20between\x20precision,\x20such\x20a\ - s\x20indexes\x20produced\x20by\n\x20compiler-backed\x20indexers,\x20and\ - \x20heurstics,\x20such\x20as\x20indexes\x20produced\x20by\x20local\n\x20\ - syntax-directed\x20analysis\x20for\x20scope\x20rules.\n\n\x08\n\x01\x02\ - \x12\x03\x0c\0\r\n\x08\n\x01\x08\x12\x03\x0e\0D\n\t\n\x02\x08\x0b\x12\ - \x03\x0e\0D\n\xd0\x03\n\x02\x04\0\x12\x04\x16\0\x1f\x01\x1a\xc3\x03\x20I\ - ndex\x20represents\x20a\x20complete\x20SCIP\x20index\x20for\x20a\x20work\ - space\x20this\x20is\x20rooted\x20at\x20a\n\x20single\x20directory.\x20An\ - \x20Index\x20message\x20payload\x20can\x20have\x20a\x20large\x20memory\ - \x20footprint\n\x20and\x20it's\x20therefore\x20recommended\x20to\x20emit\ - \x20and\x20consume\x20an\x20Index\x20payload\x20one\x20field\n\x20value\ - \x20at\x20a\x20time.\x20To\x20permit\x20streaming\x20consumption\x20of\ - \x20an\x20Index\x20payload,\x20the\n\x20`metadata`\x20field\x20must\x20a\ - ppear\x20at\x20the\x20start\x20of\x20the\x20stream\x20and\x20must\x20onl\ - y\x20appear\n\x20once\x20in\x20the\x20stream.\x20Other\x20field\x20value\ - s\x20may\x20appear\x20in\x20any\x20order.\n\n\n\n\x03\x04\0\x01\x12\x03\ - \x16\x08\r\n)\n\x04\x04\0\x02\0\x12\x03\x18\x02\x18\x1a\x1c\x20Metadata\ - \x20about\x20this\x20index.\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x18\ - \x02\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x18\x0b\x13\n\x0c\n\x05\x04\0\ - \x02\0\x03\x12\x03\x18\x16\x17\n3\n\x04\x04\0\x02\x01\x12\x03\x1a\x02\"\ - \x1a&\x20Documents\x20that\x20belong\x20to\x20this\x20index.\n\n\x0c\n\ - \x05\x04\0\x02\x01\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\x04\0\x02\x01\x06\ - \x12\x03\x1a\x0b\x13\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x1a\x14\x1d\n\ - \x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x1a\x20!\n\xc2\x01\n\x04\x04\0\x02\ - \x02\x12\x03\x1c\x022\x1a6\x20(DEPRECATED):\x20Use\x20Document.external_\ - symbols\x20instead.\n\"}\x20IMPORTANT:\x20When\x20adding\x20a\x20new\x20\ - field\x20to\x20`Index`\x20here,\x20add\x20a\x20matching\n\x20function\ - \x20in\x20`IndexVisitor`\x20and\x20update\x20`ParseStreaming`.\n\n\x0c\n\ - \x05\x04\0\x02\x02\x04\x12\x03\x1c\x02\n\n\x0c\n\x05\x04\0\x02\x02\x06\ - \x12\x03\x1c\x0b\x1c\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x1c\x1d-\n\ - \x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x1c01\n\n\n\x02\x04\x01\x12\x04!\0.\ - \x01\n\n\n\x03\x04\x01\x01\x12\x03!\x08\x10\nN\n\x04\x04\x01\x02\0\x12\ - \x03#\x02\x1e\x1aA\x20Which\x20version\x20of\x20this\x20protocol\x20was\ - \x20used\x20to\x20generate\x20this\x20index?\n\n\x0c\n\x05\x04\x01\x02\0\ - \x06\x12\x03#\x02\x11\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03#\x12\x19\n\ - \x0c\n\x05\x04\x01\x02\0\x03\x12\x03#\x1c\x1d\nC\n\x04\x04\x01\x02\x01\ - \x12\x03%\x02\x19\x1a6\x20Information\x20about\x20the\x20tool\x20that\ - \x20produced\x20this\x20index.\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\ - %\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03%\x0b\x14\n\x0c\n\x05\x04\ - \x01\x02\x01\x03\x12\x03%\x17\x18\n\xa2\x01\n\x04\x04\x01\x02\x02\x12\ - \x03)\x02\x1a\x1a\x94\x01\x20URI-encoded\x20absolute\x20path\x20to\x20th\ - e\x20root\x20directory\x20of\x20this\x20index.\x20All\n\x20documents\x20\ - in\x20this\x20index\x20must\x20appear\x20in\x20a\x20subdirectory\x20of\ - \x20this\x20root\n\x20directory.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\ - \x03)\x02\x08\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03)\t\x15\n\x0c\n\x05\ - \x04\x01\x02\x02\x03\x12\x03)\x18\x19\n\xe0\x01\n\x04\x04\x01\x02\x03\ - \x12\x03-\x02*\x1a\xd2\x01\x20Text\x20encoding\x20of\x20the\x20source\ - \x20files\x20on\x20disk\x20that\x20are\x20referenced\x20from\n\x20`Docum\ - ent.relative_path`.\x20This\x20value\x20is\x20unrelated\x20to\x20the\x20\ - `Document.text`\n\x20field,\x20which\x20is\x20a\x20Protobuf\x20string\ - \x20and\x20hence\x20must\x20be\x20UTF-8\x20encoded.\n\n\x0c\n\x05\x04\ - \x01\x02\x03\x06\x12\x03-\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\ - \x03-\x0f%\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03-()\n\n\n\x02\x05\0\ - \x12\x040\02\x01\n\n\n\x03\x05\0\x01\x12\x030\x05\x14\n\x0b\n\x04\x05\0\ - \x02\0\x12\x031\x02!\n\x0c\n\x05\x05\0\x02\0\x01\x12\x031\x02\x1c\n\x0c\ - \n\x05\x05\0\x02\0\x02\x12\x031\x1f\x20\n\n\n\x02\x05\x01\x12\x044\08\ - \x01\n\n\n\x03\x05\x01\x01\x12\x034\x05\x11\n\x0b\n\x04\x05\x01\x02\0\ + orwardDefinition\x10@\x12\t\n\x04Call\x10\x80\x01*\xea\x06\n\nSyntaxKind\ + \x12\x19\n\x15UnspecifiedSyntaxKind\x10\0\x12\x0b\n\x07Comment\x10\x01\ + \x12\x18\n\x14PunctuationDelimiter\x10\x02\x12\x16\n\x12PunctuationBrack\ + et\x10\x03\x12\x0b\n\x07Keyword\x10\x04\x12\x19\n\x11IdentifierKeyword\ + \x10\x04\x1a\x02\x08\x01\x12\x16\n\x12IdentifierOperator\x10\x05\x12\x0e\ + \n\nIdentifier\x10\x06\x12\x15\n\x11IdentifierBuiltin\x10\x07\x12\x12\n\ + \x0eIdentifierNull\x10\x08\x12\x16\n\x12IdentifierConstant\x10\t\x12\x1b\ + \n\x17IdentifierMutableGlobal\x10\n\x12\x17\n\x13IdentifierParameter\x10\ + \x0b\x12\x13\n\x0fIdentifierLocal\x10\x0c\x12\x16\n\x12IdentifierShadowe\ + d\x10\r\x12\x17\n\x13IdentifierNamespace\x10\x0e\x12\x18\n\x10Identifier\ + Module\x10\x0e\x1a\x02\x08\x01\x12\x16\n\x12IdentifierFunction\x10\x0f\ + \x12\x20\n\x1cIdentifierFunctionDefinition\x10\x10\x12\x13\n\x0fIdentifi\ + erMacro\x10\x11\x12\x1d\n\x19IdentifierMacroDefinition\x10\x12\x12\x12\n\ + \x0eIdentifierType\x10\x13\x12\x19\n\x15IdentifierBuiltinType\x10\x14\ + \x12\x17\n\x13IdentifierAttribute\x10\x15\x12\x0f\n\x0bRegexEscape\x10\ + \x16\x12\x11\n\rRegexRepeated\x10\x17\x12\x11\n\rRegexWildcard\x10\x18\ + \x12\x12\n\x0eRegexDelimiter\x10\x19\x12\r\n\tRegexJoin\x10\x1a\x12\x11\ + \n\rStringLiteral\x10\x1b\x12\x17\n\x13StringLiteralEscape\x10\x1c\x12\ + \x18\n\x14StringLiteralSpecial\x10\x1d\x12\x14\n\x10StringLiteralKey\x10\ + \x1e\x12\x14\n\x10CharacterLiteral\x10\x1f\x12\x12\n\x0eNumericLiteral\ + \x10\x20\x12\x12\n\x0eBooleanLiteral\x10!\x12\x07\n\x03Tag\x10\"\x12\x10\ + \n\x0cTagAttribute\x10#\x12\x10\n\x0cTagDelimiter\x10$\x1a\x02\x10\x01*V\ + \n\x08Severity\x12\x17\n\x13UnspecifiedSeverity\x10\0\x12\t\n\x05Error\ + \x10\x01\x12\x0b\n\x07Warning\x10\x02\x12\x0f\n\x0bInformation\x10\x03\ + \x12\x08\n\x04Hint\x10\x04*N\n\rDiagnosticTag\x12\x1c\n\x18UnspecifiedDi\ + agnosticTag\x10\0\x12\x0f\n\x0bUnnecessary\x10\x01\x12\x0e\n\nDeprecated\ + \x10\x02*\x9b\n\n\x08Language\x12\x17\n\x13UnspecifiedLanguage\x10\0\x12\ + \x08\n\x04ABAP\x10<\x12\x08\n\x04Apex\x10`\x12\x07\n\x03APL\x101\x12\x07\ + \n\x03Ada\x10'\x12\x08\n\x04Agda\x10-\x12\x0c\n\x08AsciiDoc\x10V\x12\x0c\ + \n\x08Assembly\x10:\x12\x07\n\x03Awk\x10B\x12\x07\n\x03Bat\x10D\x12\n\n\ + \x06BibTeX\x10Q\x12\x05\n\x01C\x10\"\x12\t\n\x05COBOL\x10;\x12\x07\n\x03\ + CPP\x10#\x12\x07\n\x03CSS\x10\x1a\x12\n\n\x06CSharp\x10\x01\x12\x0b\n\ + \x07Clojure\x10\x08\x12\x10\n\x0cCoffeescript\x10\x15\x12\x0e\n\nCommonL\ + isp\x10\t\x12\x07\n\x03Coq\x10/\x12\x08\n\x04CUDA\x10a\x12\x08\n\x04Dart\ + \x10\x03\x12\n\n\x06Delphi\x109\x12\x08\n\x04Diff\x10X\x12\x0e\n\nDocker\ + file\x10P\x12\n\n\x06Dyalog\x102\x12\n\n\x06Elixir\x10\x11\x12\n\n\x06Er\ + lang\x10\x12\x12\n\n\x06FSharp\x10*\x12\x08\n\x04Fish\x10A\x12\x08\n\x04\ + Flow\x10\x18\x12\x0b\n\x07Fortran\x108\x12\x0e\n\nGit_Commit\x10[\x12\ + \x0e\n\nGit_Config\x10Y\x12\x0e\n\nGit_Rebase\x10\\\x12\x06\n\x02Go\x10!\ + \x12\x0b\n\x07GraphQL\x10b\x12\n\n\x06Groovy\x10\x07\x12\x08\n\x04HTML\ + \x10\x1e\x12\x08\n\x04Hack\x10\x14\x12\x0e\n\nHandlebars\x10Z\x12\x0b\n\ + \x07Haskell\x10,\x12\t\n\x05Idris\x10.\x12\x07\n\x03Ini\x10H\x12\x05\n\ + \x01J\x103\x12\x08\n\x04JSON\x10K\x12\x08\n\x04Java\x10\x06\x12\x0e\n\nJ\ + avaScript\x10\x16\x12\x13\n\x0fJavaScriptReact\x10]\x12\x0b\n\x07Jsonnet\ + \x10L\x12\t\n\x05Julia\x107\x12\x0c\n\x08Justfile\x10m\x12\n\n\x06Kotlin\ + \x10\x04\x12\t\n\x05LaTeX\x10S\x12\x08\n\x04Lean\x100\x12\x08\n\x04Less\ + \x10\x1b\x12\x07\n\x03Lua\x10\x0c\x12\x08\n\x04Luau\x10l\x12\x0c\n\x08Ma\ + kefile\x10O\x12\x0c\n\x08Markdown\x10T\x12\n\n\x06Matlab\x104\x12\n\n\ + \x06Nickel\x10n\x12\x07\n\x03Nix\x10M\x12\t\n\x05OCaml\x10)\x12\x0f\n\ + \x0bObjective_C\x10$\x12\x11\n\rObjective_CPP\x10%\x12\n\n\x06Pascal\x10\ + c\x12\x07\n\x03PHP\x10\x13\x12\t\n\x05PLSQL\x10F\x12\x08\n\x04Perl\x10\r\ + \x12\x0e\n\nPowerShell\x10C\x12\n\n\x06Prolog\x10G\x12\x0c\n\x08Protobuf\ + \x10d\x12\n\n\x06Python\x10\x0f\x12\x05\n\x01R\x106\x12\n\n\x06Racket\ + \x10\x0b\x12\x08\n\x04Raku\x10\x0e\x12\t\n\x05Razor\x10>\x12\t\n\x05Repr\ + o\x10f\x12\x08\n\x04ReST\x10U\x12\x08\n\x04Ruby\x10\x10\x12\x08\n\x04Rus\ + t\x10(\x12\x07\n\x03SAS\x10=\x12\x08\n\x04SCSS\x10\x1d\x12\x07\n\x03SML\ + \x10+\x12\x07\n\x03SQL\x10E\x12\x08\n\x04Sass\x10\x1c\x12\t\n\x05Scala\ + \x10\x05\x12\n\n\x06Scheme\x10\n\x12\x0f\n\x0bShellScript\x10@\x12\x0b\n\ + \x07Skylark\x10N\x12\t\n\x05Slang\x10k\x12\x0c\n\x08Solidity\x10_\x12\n\ + \n\x06Svelte\x10j\x12\t\n\x05Swift\x10\x02\x12\x07\n\x03Tcl\x10e\x12\x08\ + \n\x04TOML\x10I\x12\x07\n\x03TeX\x10R\x12\n\n\x06Thrift\x10g\x12\x0e\n\n\ + TypeScript\x10\x17\x12\x13\n\x0fTypeScriptReact\x10^\x12\x0b\n\x07Verilo\ + g\x10h\x12\x08\n\x04VHDL\x10i\x12\x0f\n\x0bVisualBasic\x10?\x12\x07\n\ + \x03Vue\x10\x19\x12\x0b\n\x07Wolfram\x105\x12\x07\n\x03XML\x10\x1f\x12\ + \x07\n\x03XSL\x10\x20\x12\x08\n\x04YAML\x10J\x12\x07\n\x03Zig\x10&B/Z-gi\ + thub.com/sourcegraph/scip/bindings/go/scip/J\xbc\xda\x02\n\x07\x12\x05\n\ + \0\xe1\x07\x01\n\x82\x04\n\x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20ind\ + ex\x20contains\x20one\x20or\x20more\x20pieces\x20of\x20information\x20ab\ + out\x20a\x20given\x20piece\x20of\n\x20source\x20code\x20or\x20software\ + \x20artifact.\x20Complementary\x20information\x20can\x20be\x20merged\n\ + \x20together\x20from\x20multiple\x20sources\x20to\x20provide\x20a\x20uni\ + fied\x20code\x20intelligence\n\x20experience.\n\n\x20Programs\x20produci\ + ng\x20a\x20file\x20of\x20this\x20format\x20is\x20an\x20\"indexer\"\x20an\ + d\x20may\x20operate\n\x20somewhere\x20on\x20the\x20spectrum\x20between\ + \x20precision,\x20such\x20as\x20indexes\x20produced\x20by\n\x20compiler-\ + backed\x20indexers,\x20and\x20heurstics,\x20such\x20as\x20indexes\x20pro\ + duced\x20by\x20local\n\x20syntax-directed\x20analysis\x20for\x20scope\ + \x20rules.\n\n\x08\n\x01\x02\x12\x03\x0c\0\r\n\x08\n\x01\x08\x12\x03\x0e\ + \0D\n\t\n\x02\x08\x0b\x12\x03\x0e\0D\n\xd0\x03\n\x02\x04\0\x12\x04\x16\0\ + \x1f\x01\x1a\xc3\x03\x20Index\x20represents\x20a\x20complete\x20SCIP\x20\ + index\x20for\x20a\x20workspace\x20this\x20is\x20rooted\x20at\x20a\n\x20s\ + ingle\x20directory.\x20An\x20Index\x20message\x20payload\x20can\x20have\ + \x20a\x20large\x20memory\x20footprint\n\x20and\x20it's\x20therefore\x20r\ + ecommended\x20to\x20emit\x20and\x20consume\x20an\x20Index\x20payload\x20\ + one\x20field\n\x20value\x20at\x20a\x20time.\x20To\x20permit\x20streaming\ + \x20consumption\x20of\x20an\x20Index\x20payload,\x20the\n\x20`metadata`\ + \x20field\x20must\x20appear\x20at\x20the\x20start\x20of\x20the\x20stream\ + \x20and\x20must\x20only\x20appear\n\x20once\x20in\x20the\x20stream.\x20O\ + ther\x20field\x20values\x20may\x20appear\x20in\x20any\x20order.\n\n\n\n\ + \x03\x04\0\x01\x12\x03\x16\x08\r\n)\n\x04\x04\0\x02\0\x12\x03\x18\x02\ + \x18\x1a\x1c\x20Metadata\x20about\x20this\x20index.\n\n\x0c\n\x05\x04\0\ + \x02\0\x06\x12\x03\x18\x02\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x18\x0b\ + \x13\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x18\x16\x17\n3\n\x04\x04\0\x02\ + \x01\x12\x03\x1a\x02\"\x1a&\x20Documents\x20that\x20belong\x20to\x20this\ + \x20index.\n\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\ + \x04\0\x02\x01\x06\x12\x03\x1a\x0b\x13\n\x0c\n\x05\x04\0\x02\x01\x01\x12\ + \x03\x1a\x14\x1d\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x1a\x20!\n\xc2\ + \x01\n\x04\x04\0\x02\x02\x12\x03\x1c\x022\x1a6\x20(DEPRECATED):\x20Use\ + \x20Document.external_symbols\x20instead.\n\"}\x20IMPORTANT:\x20When\x20\ + adding\x20a\x20new\x20field\x20to\x20`Index`\x20here,\x20add\x20a\x20mat\ + ching\n\x20function\x20in\x20`IndexVisitor`\x20and\x20update\x20`ParseSt\ + reaming`.\n\n\x0c\n\x05\x04\0\x02\x02\x04\x12\x03\x1c\x02\n\n\x0c\n\x05\ + \x04\0\x02\x02\x06\x12\x03\x1c\x0b\x1c\n\x0c\n\x05\x04\0\x02\x02\x01\x12\ + \x03\x1c\x1d-\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x1c01\n\n\n\x02\x04\ + \x01\x12\x04!\0.\x01\n\n\n\x03\x04\x01\x01\x12\x03!\x08\x10\nN\n\x04\x04\ + \x01\x02\0\x12\x03#\x02\x1e\x1aA\x20Which\x20version\x20of\x20this\x20pr\ + otocol\x20was\x20used\x20to\x20generate\x20this\x20index?\n\n\x0c\n\x05\ + \x04\x01\x02\0\x06\x12\x03#\x02\x11\n\x0c\n\x05\x04\x01\x02\0\x01\x12\ + \x03#\x12\x19\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03#\x1c\x1d\nC\n\x04\ + \x04\x01\x02\x01\x12\x03%\x02\x19\x1a6\x20Information\x20about\x20the\ + \x20tool\x20that\x20produced\x20this\x20index.\n\n\x0c\n\x05\x04\x01\x02\ + \x01\x06\x12\x03%\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03%\x0b\x14\ + \n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03%\x17\x18\n\xa2\x01\n\x04\x04\ + \x01\x02\x02\x12\x03)\x02\x1a\x1a\x94\x01\x20URI-encoded\x20absolute\x20\ + path\x20to\x20the\x20root\x20directory\x20of\x20this\x20index.\x20All\n\ + \x20documents\x20in\x20this\x20index\x20must\x20appear\x20in\x20a\x20sub\ + directory\x20of\x20this\x20root\n\x20directory.\n\n\x0c\n\x05\x04\x01\ + \x02\x02\x05\x12\x03)\x02\x08\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03)\t\ + \x15\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03)\x18\x19\n\xe0\x01\n\x04\ + \x04\x01\x02\x03\x12\x03-\x02*\x1a\xd2\x01\x20Text\x20encoding\x20of\x20\ + the\x20source\x20files\x20on\x20disk\x20that\x20are\x20referenced\x20fro\ + m\n\x20`Document.relative_path`.\x20This\x20value\x20is\x20unrelated\x20\ + to\x20the\x20`Document.text`\n\x20field,\x20which\x20is\x20a\x20Protobuf\ + \x20string\x20and\x20hence\x20must\x20be\x20UTF-8\x20encoded.\n\n\x0c\n\ + \x05\x04\x01\x02\x03\x06\x12\x03-\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\ + \x01\x12\x03-\x0f%\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03-()\n\n\n\x02\ + \x05\0\x12\x040\02\x01\n\n\n\x03\x05\0\x01\x12\x030\x05\x14\n\x0b\n\x04\ + \x05\0\x02\0\x12\x031\x02!\n\x0c\n\x05\x05\0\x02\0\x01\x12\x031\x02\x1c\ + \n\x0c\n\x05\x05\0\x02\0\x02\x12\x031\x1f\x20\n\n\n\x02\x05\x01\x12\x044\ + \08\x01\n\n\n\x03\x05\x01\x01\x12\x034\x05\x11\n\x0b\n\x04\x05\x01\x02\0\ \x12\x035\x02\x1e\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x035\x02\x19\n\x0c\n\ \x05\x05\x01\x02\0\x02\x12\x035\x1c\x1d\n\x0b\n\x04\x05\x01\x02\x01\x12\ \x036\x02\x0b\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x036\x02\x06\n\x0c\n\ @@ -5784,7 +5790,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ ships\x20on\x20adding\x20a\x20new\x20field\x20here.\n\n\r\n\x05\x04\t\ \x02\x04\x05\x12\x04\xde\x04\x02\x06\n\r\n\x05\x04\t\x02\x04\x01\x12\x04\ \xde\x04\x07\x14\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\xde\x04\x17\x18\n\ - \x88\x03\n\x02\x05\x03\x12\x06\xe7\x04\0\xfd\x04\x01\x1a\xf9\x02\x20Symb\ + \x88\x03\n\x02\x05\x03\x12\x06\xe7\x04\0\xff\x04\x01\x1a\xf9\x02\x20Symb\ olRole\x20declares\x20what\x20\"role\"\x20a\x20symbol\x20has\x20in\x20an\ \x20occurrence.\x20A\x20role\x20is\n\x20encoded\x20as\x20a\x20bitset\x20\ where\x20each\x20bit\x20represents\x20a\x20different\x20role.\x20For\x20\ @@ -5823,555 +5829,558 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20like\x20C,\x20C++\n\x20and\x20Objective-C,\x20as\x20well\x20as\x20`v\ al`\x20declarations\x20in\x20interface\n\x20files\x20in\x20languages\x20\ like\x20SML\x20and\x20OCaml.\n\n\r\n\x05\x05\x03\x02\x07\x01\x12\x04\xfc\ - \x04\x02\x13\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\xfc\x04\x16\x1a\n\x0c\ - \n\x02\x05\x04\x12\x06\xff\x04\0\xdc\x05\x01\n\x0b\n\x03\x05\x04\x01\x12\ - \x04\xff\x04\x05\x0f\n\x0b\n\x03\x05\x04\x03\x12\x04\x80\x05\x02\x1c\n\ - \x0c\n\x04\x05\x04\x03\x02\x12\x04\x80\x05\x02\x1c\n\x0c\n\x04\x05\x04\ - \x02\0\x12\x04\x82\x05\x02\x1c\n\r\n\x05\x05\x04\x02\0\x01\x12\x04\x82\ - \x05\x02\x17\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\x82\x05\x1a\x1b\n;\n\ - \x04\x05\x04\x02\x01\x12\x04\x85\x05\x02\x0e\x1a-\x20Comment,\x20includi\ - ng\x20comment\x20markers\x20and\x20text\n\n\r\n\x05\x05\x04\x02\x01\x01\ - \x12\x04\x85\x05\x02\t\n\r\n\x05\x05\x04\x02\x01\x02\x12\x04\x85\x05\x0c\ - \r\n\x1b\n\x04\x05\x04\x02\x02\x12\x04\x88\x05\x02\x1b\x1a\r\x20`;`\x20`\ - .`\x20`,`\n\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\x88\x05\x02\x16\n\r\n\ - \x05\x05\x04\x02\x02\x02\x12\x04\x88\x05\x19\x1a\n2\n\x04\x05\x04\x02\ - \x03\x12\x04\x8a\x05\x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20used\ - \x20syntactically\n\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\x8a\x05\x02\ - \x14\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\x8a\x05\x17\x18\n5\n\x04\x05\ - \x04\x02\x04\x12\x04\x8d\x05\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return\ - `,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\x8d\x05\ - \x02\t\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\x8d\x05\x0c\r\n\x0c\n\x04\ - \x05\x04\x02\x05\x12\x04\x8e\x05\x02*\n\r\n\x05\x05\x04\x02\x05\x01\x12\ - \x04\x8e\x05\x02\x13\n\r\n\x05\x05\x04\x02\x05\x02\x12\x04\x8e\x05\x16\ - \x17\n\r\n\x05\x05\x04\x02\x05\x03\x12\x04\x8e\x05\x18)\n\x0e\n\x06\x05\ - \x04\x02\x05\x03\x01\x12\x04\x8e\x05\x19(\n\x1e\n\x04\x05\x04\x02\x06\ - \x12\x04\x91\x05\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\ - \x04\x02\x06\x01\x12\x04\x91\x05\x02\x14\n\r\n\x05\x05\x04\x02\x06\x02\ - \x12\x04\x91\x05\x17\x18\nX\n\x04\x05\x04\x02\x07\x12\x04\x94\x05\x02\ - \x11\x1aJ\x20non-specific\x20catch-all\x20for\x20any\x20identifier\x20no\ - t\x20better\x20described\x20elsewhere\n\n\r\n\x05\x05\x04\x02\x07\x01\ - \x12\x04\x94\x05\x02\x0c\n\r\n\x05\x05\x04\x02\x07\x02\x12\x04\x94\x05\ - \x0f\x10\nN\n\x04\x05\x04\x02\x08\x12\x04\x96\x05\x02\x18\x1a@\x20Identi\ - fiers\x20builtin\x20to\x20the\x20language:\x20`min`,\x20`print`\x20in\ - \x20Python.\n\n\r\n\x05\x05\x04\x02\x08\x01\x12\x04\x96\x05\x02\x13\n\r\ - \n\x05\x05\x04\x02\x08\x02\x12\x04\x96\x05\x16\x17\n[\n\x04\x05\x04\x02\ - \t\x12\x04\x98\x05\x02\x15\x1aM\x20Identifiers\x20representing\x20`null`\ - -like\x20values:\x20`None`\x20in\x20Python,\x20`nil`\x20in\x20Go.\n\n\r\ - \n\x05\x05\x04\x02\t\x01\x12\x04\x98\x05\x02\x10\n\r\n\x05\x05\x04\x02\t\ - \x02\x12\x04\x98\x05\x13\x14\n.\n\x04\x05\x04\x02\n\x12\x04\x9a\x05\x02\ - \x19\x1a\x20\x20`xyz`\x20in\x20`const\x20xyz\x20=\x20\"hello\"`\n\n\r\n\ - \x05\x05\x04\x02\n\x01\x12\x04\x9a\x05\x02\x14\n\r\n\x05\x05\x04\x02\n\ - \x02\x12\x04\x9a\x05\x17\x18\n'\n\x04\x05\x04\x02\x0b\x12\x04\x9c\x05\ - \x02\x1f\x1a\x19\x20`var\x20X\x20=\x20\"hello\"`\x20in\x20Go\n\n\r\n\x05\ - \x05\x04\x02\x0b\x01\x12\x04\x9c\x05\x02\x19\n\r\n\x05\x05\x04\x02\x0b\ - \x02\x12\x04\x9c\x05\x1c\x1e\n3\n\x04\x05\x04\x02\x0c\x12\x04\x9e\x05\ - \x02\x1b\x1a%\x20Parameter\x20definition\x20and\x20references\n\n\r\n\ - \x05\x05\x04\x02\x0c\x01\x12\x04\x9e\x05\x02\x15\n\r\n\x05\x05\x04\x02\ - \x0c\x02\x12\x04\x9e\x05\x18\x1a\nX\n\x04\x05\x04\x02\r\x12\x04\xa0\x05\ - \x02\x17\x1aJ\x20Identifiers\x20for\x20variable\x20definitions\x20and\ - \x20references\x20within\x20a\x20local\x20scope\n\n\r\n\x05\x05\x04\x02\ - \r\x01\x12\x04\xa0\x05\x02\x11\n\r\n\x05\x05\x04\x02\r\x02\x12\x04\xa0\ - \x05\x14\x16\nK\n\x04\x05\x04\x02\x0e\x12\x04\xa2\x05\x02\x1a\x1a=\x20Id\ - entifiers\x20that\x20shadow\x20other\x20identifiers\x20in\x20an\x20outer\ - \x20scope\n\n\r\n\x05\x05\x04\x02\x0e\x01\x12\x04\xa2\x05\x02\x14\n\r\n\ - \x05\x05\x04\x02\x0e\x02\x12\x04\xa2\x05\x17\x19\n\xcd\x01\n\x04\x05\x04\ - \x02\x0f\x12\x04\xa7\x05\x02\x1b\x1a\xbe\x01\x20Identifier\x20representi\ - ng\x20a\x20unit\x20of\x20code\x20abstraction\x20and/or\x20namespacing.\n\ - \n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20package\x20in\x20Go\x20\ - and\x20JVM\x20languages,\n\x20and\x20a\x20module\x20in\x20languages\x20l\ - ike\x20Python\x20and\x20JavaScript.\n\n\r\n\x05\x05\x04\x02\x0f\x01\x12\ - \x04\xa7\x05\x02\x15\n\r\n\x05\x05\x04\x02\x0f\x02\x12\x04\xa7\x05\x18\ - \x1a\n\x0c\n\x04\x05\x04\x02\x10\x12\x04\xa8\x05\x02*\n\r\n\x05\x05\x04\ - \x02\x10\x01\x12\x04\xa8\x05\x02\x12\n\r\n\x05\x05\x04\x02\x10\x02\x12\ - \x04\xa8\x05\x15\x17\n\r\n\x05\x05\x04\x02\x10\x03\x12\x04\xa8\x05\x18)\ - \n\x0e\n\x06\x05\x04\x02\x10\x03\x01\x12\x04\xa8\x05\x19(\n4\n\x04\x05\ - \x04\x02\x11\x12\x04\xab\x05\x02\x1a\x1a&\x20Function\x20references,\x20\ - including\x20calls\n\n\r\n\x05\x05\x04\x02\x11\x01\x12\x04\xab\x05\x02\ - \x14\n\r\n\x05\x05\x04\x02\x11\x02\x12\x04\xab\x05\x17\x19\n(\n\x04\x05\ - \x04\x02\x12\x12\x04\xad\x05\x02$\x1a\x1a\x20Function\x20definition\x20o\ - nly\n\n\r\n\x05\x05\x04\x02\x12\x01\x12\x04\xad\x05\x02\x1e\n\r\n\x05\ - \x05\x04\x02\x12\x02\x12\x04\xad\x05!#\n7\n\x04\x05\x04\x02\x13\x12\x04\ - \xb0\x05\x02\x17\x1a)\x20Macro\x20references,\x20including\x20invocation\ - s\n\n\r\n\x05\x05\x04\x02\x13\x01\x12\x04\xb0\x05\x02\x11\n\r\n\x05\x05\ - \x04\x02\x13\x02\x12\x04\xb0\x05\x14\x16\n%\n\x04\x05\x04\x02\x14\x12\ - \x04\xb2\x05\x02!\x1a\x17\x20Macro\x20definition\x20only\n\n\r\n\x05\x05\ - \x04\x02\x14\x01\x12\x04\xb2\x05\x02\x1b\n\r\n\x05\x05\x04\x02\x14\x02\ - \x12\x04\xb2\x05\x1e\x20\n!\n\x04\x05\x04\x02\x15\x12\x04\xb5\x05\x02\ - \x16\x1a\x13\x20non-builtin\x20types\n\n\r\n\x05\x05\x04\x02\x15\x01\x12\ - \x04\xb5\x05\x02\x10\n\r\n\x05\x05\x04\x02\x15\x02\x12\x04\xb5\x05\x13\ - \x15\nK\n\x04\x05\x04\x02\x16\x12\x04\xb7\x05\x02\x1d\x1a=\x20builtin\ - \x20types\x20only,\x20such\x20as\x20`str`\x20for\x20Python\x20or\x20`int\ - `\x20in\x20Go\n\n\r\n\x05\x05\x04\x02\x16\x01\x12\x04\xb7\x05\x02\x17\n\ - \r\n\x05\x05\x04\x02\x16\x02\x12\x04\xb7\x05\x1a\x1c\n7\n\x04\x05\x04\ - \x02\x17\x12\x04\xba\x05\x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\ - \x20__attribute__\n\n\r\n\x05\x05\x04\x02\x17\x01\x12\x04\xba\x05\x02\ - \x15\n\r\n\x05\x05\x04\x02\x17\x02\x12\x04\xba\x05\x18\x1a\n\x14\n\x04\ - \x05\x04\x02\x18\x12\x04\xbd\x05\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\ - \x05\x04\x02\x18\x01\x12\x04\xbd\x05\x02\r\n\r\n\x05\x05\x04\x02\x18\x02\ - \x12\x04\xbd\x05\x10\x12\n\x18\n\x04\x05\x04\x02\x19\x12\x04\xbf\x05\x02\ - \x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x04\x02\x19\x01\x12\x04\xbf\ - \x05\x02\x0f\n\r\n\x05\x05\x04\x02\x19\x02\x12\x04\xbf\x05\x12\x14\n\x13\ - \n\x04\x05\x04\x02\x1a\x12\x04\xc1\x05\x02\x15\x1a\x05\x20`.`\n\n\r\n\ - \x05\x05\x04\x02\x1a\x01\x12\x04\xc1\x05\x02\x0f\n\r\n\x05\x05\x04\x02\ - \x1a\x02\x12\x04\xc1\x05\x12\x14\n\"\n\x04\x05\x04\x02\x1b\x12\x04\xc3\ - \x05\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x04\ - \x02\x1b\x01\x12\x04\xc3\x05\x02\x10\n\r\n\x05\x05\x04\x02\x1b\x02\x12\ - \x04\xc3\x05\x13\x15\n\x18\n\x04\x05\x04\x02\x1c\x12\x04\xc5\x05\x02\x11\ - \x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x04\x02\x1c\x01\x12\x04\xc5\x05\ - \x02\x0b\n\r\n\x05\x05\x04\x02\x1c\x02\x12\x04\xc5\x05\x0e\x10\n0\n\x04\ - \x05\x04\x02\x1d\x12\x04\xc8\x05\x02\x15\x1a\"\x20Literal\x20strings:\ - \x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x04\x02\x1d\x01\x12\x04\xc8\x05\ - \x02\x0f\n\r\n\x05\x05\x04\x02\x1d\x02\x12\x04\xc8\x05\x12\x14\n-\n\x04\ - \x05\x04\x02\x1e\x12\x04\xca\x05\x02\x1b\x1a\x1f\x20non-regex\x20escapes\ - :\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x04\x02\x1e\x01\x12\x04\xca\x05\ - \x02\x15\n\r\n\x05\x05\x04\x02\x1e\x02\x12\x04\xca\x05\x18\x1a\n_\n\x04\ - \x05\x04\x02\x1f\x12\x04\xcc\x05\x02\x1c\x1aQ\x20datetimes\x20within\x20\ - strings,\x20special\x20words\x20within\x20a\x20string,\x20`{}`\x20in\x20\ - format\x20strings\n\n\r\n\x05\x05\x04\x02\x1f\x01\x12\x04\xcc\x05\x02\ - \x16\n\r\n\x05\x05\x04\x02\x1f\x02\x12\x04\xcc\x05\x19\x1b\nG\n\x04\x05\ - \x04\x02\x20\x12\x04\xce\x05\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\ - \":\x20\"value\"\x20},\x20useful\x20for\x20example\x20in\x20JSON\n\n\r\n\ - \x05\x05\x04\x02\x20\x01\x12\x04\xce\x05\x02\x12\n\r\n\x05\x05\x04\x02\ - \x20\x02\x12\x04\xce\x05\x15\x17\nV\n\x04\x05\x04\x02!\x12\x04\xd0\x05\ - \x02\x18\x1aH\x20'c'\x20or\x20similar,\x20in\x20languages\x20that\x20dif\ - ferentiate\x20strings\x20and\x20characters\n\n\r\n\x05\x05\x04\x02!\x01\ - \x12\x04\xd0\x05\x02\x12\n\r\n\x05\x05\x04\x02!\x02\x12\x04\xd0\x05\x15\ - \x17\n9\n\x04\x05\x04\x02\"\x12\x04\xd2\x05\x02\x16\x1a+\x20Literal\x20n\ - umbers,\x20both\x20floats\x20and\x20integers\n\n\r\n\x05\x05\x04\x02\"\ - \x01\x12\x04\xd2\x05\x02\x10\n\r\n\x05\x05\x04\x02\"\x02\x12\x04\xd2\x05\ - \x13\x15\n\x1f\n\x04\x05\x04\x02#\x12\x04\xd4\x05\x02\x16\x1a\x11\x20`tr\ - ue`,\x20`false`\n\n\r\n\x05\x05\x04\x02#\x01\x12\x04\xd4\x05\x02\x10\n\r\ - \n\x05\x05\x04\x02#\x02\x12\x04\xd4\x05\x13\x15\n&\n\x04\x05\x04\x02$\ - \x12\x04\xd7\x05\x02\x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\ - \r\n\x05\x05\x04\x02$\x01\x12\x04\xd7\x05\x02\x05\n\r\n\x05\x05\x04\x02$\ - \x02\x12\x04\xd7\x05\x08\n\n/\n\x04\x05\x04\x02%\x12\x04\xd9\x05\x02\x14\ - \x1a!\x20Attribute\x20name\x20in\x20XML-like\x20tags\n\n\r\n\x05\x05\x04\ - \x02%\x01\x12\x04\xd9\x05\x02\x0e\n\r\n\x05\x05\x04\x02%\x02\x12\x04\xd9\ - \x05\x11\x13\n,\n\x04\x05\x04\x02&\x12\x04\xdb\x05\x02\x14\x1a\x1e\x20De\ - limiters\x20for\x20XML-like\x20tags\n\n\r\n\x05\x05\x04\x02&\x01\x12\x04\ - \xdb\x05\x02\x0e\n\r\n\x05\x05\x04\x02&\x02\x12\x04\xdb\x05\x11\x13\n\ - \xf9\x01\n\x02\x04\n\x12\x06\xe3\x05\0\xc4\x06\x01\x1a\xea\x01\x20Occurr\ - ence\x20associates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20\ - and/or\x20highlighting\n\x20information.\n\n\x20If\x20possible,\x20index\ - ers\x20should\x20try\x20to\x20bundle\x20logically\x20related\x20informat\ - ion\n\x20across\x20occurrences\x20into\x20a\x20single\x20occurrence\x20t\ - o\x20reduce\x20payload\x20sizes.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xe3\x05\ - \x08\x12\n\xe8\x08\n\x04\x04\n\x02\0\x12\x04\xfb\x05\x02\x1b\x1a\xd9\x08\ - \x20Half-open\x20[start,\x20end)\x20range\x20of\x20this\x20occurrence.\ - \x20Must\x20be\x20exactly\x20three\x20or\x20four\n\x20elements:\n\n\x20-\ - \x20Four\x20elements:\x20`[startLine,\x20startCharacter,\x20endLine,\x20\ - endCharacter]`\n\x20-\x20Three\x20elements:\x20`[startLine,\x20startChar\ - acter,\x20endCharacter]`.\x20The\x20end\x20line\n\x20\x20\x20is\x20infer\ - red\x20to\x20have\x20the\x20same\x20value\x20as\x20the\x20start\x20line.\ - \n\n\x20It\x20is\x20allowed\x20for\x20the\x20range\x20to\x20be\x20empty\ - \x20(i.e.\x20start==end).\n\n\x20Line\x20numbers\x20and\x20characters\ - \x20are\x20always\x200-based.\x20Make\x20sure\x20to\x20increment\x20the\ - \n\x20line/character\x20values\x20before\x20displaying\x20them\x20in\x20\ - an\x20editor-like\x20UI\x20because\n\x20editors\x20conventionally\x20use\ - \x201-based\x20numbers.\n\n\x20The\x20'character'\x20value\x20is\x20inte\ - rpreted\x20based\x20on\x20the\x20PositionEncoding\x20for\n\x20the\x20Doc\ - ument.\n\n\x20Historical\x20note:\x20the\x20original\x20draft\x20of\x20t\ - his\x20schema\x20had\x20a\x20`Range`\x20message\n\x20type\x20with\x20`st\ - art`\x20and\x20`end`\x20fields\x20of\x20type\x20`Position`,\x20mirroring\ - \x20LSP.\n\x20Benchmarks\x20revealed\x20that\x20this\x20encoding\x20was\ - \x20inefficient\x20and\x20that\x20we\x20could\n\x20reduce\x20the\x20tota\ - l\x20payload\x20size\x20of\x20an\x20index\x20by\x2050%\x20by\x20using\ - \x20`repeated\x20int32`\n\x20instead.\x20The\x20`repeated\x20int32`\x20e\ - ncoding\x20is\x20admittedly\x20more\x20embarrassing\x20to\n\x20work\x20w\ - ith\x20in\x20some\x20programming\x20languages\x20but\x20we\x20hope\x20th\ - e\x20performance\n\x20improvements\x20make\x20up\x20for\x20it.\n\n\r\n\ - \x05\x04\n\x02\0\x04\x12\x04\xfb\x05\x02\n\n\r\n\x05\x04\n\x02\0\x05\x12\ - \x04\xfb\x05\x0b\x10\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xfb\x05\x11\x16\n\ - \r\n\x05\x04\n\x02\0\x03\x12\x04\xfb\x05\x19\x1a\n\x8a\x01\n\x04\x04\n\ - \x02\x01\x12\x04\xfe\x05\x02\x14\x1a|\x20(optional)\x20The\x20symbol\x20\ - that\x20appears\x20at\x20this\x20position.\x20See\n\x20`SymbolInformatio\ - n.symbol`\x20for\x20how\x20to\x20format\x20symbols\x20as\x20strings.\n\n\ - \r\n\x05\x04\n\x02\x01\x05\x12\x04\xfe\x05\x02\x08\n\r\n\x05\x04\n\x02\ - \x01\x01\x12\x04\xfe\x05\t\x0f\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xfe\ - \x05\x12\x13\n\x97\x01\n\x04\x04\n\x02\x02\x12\x04\x81\x06\x02\x19\x1a\ - \x88\x01\x20(optional)\x20Bitset\x20containing\x20`SymbolRole`s\x20in\ - \x20this\x20occurrence.\n\x20See\x20`SymbolRole`'s\x20documentation\x20f\ - or\x20how\x20to\x20read\x20and\x20write\x20this\x20field.\n\n\r\n\x05\ - \x04\n\x02\x02\x05\x12\x04\x81\x06\x02\x07\n\r\n\x05\x04\n\x02\x02\x01\ - \x12\x04\x81\x06\x08\x14\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\x81\x06\x17\ - \x18\n\xf1\x03\n\x04\x04\n\x02\x03\x12\x04\x8a\x06\x02-\x1a\xe2\x03\x20(\ - optional)\x20CommonMark-formatted\x20documentation\x20for\x20this\x20spe\ - cific\x20range.\x20If\n\x20empty,\x20the\x20`Symbol.documentation`\x20fi\ - eld\x20is\x20used\x20instead.\x20One\x20example\n\x20where\x20this\x20fi\ - eld\x20might\x20be\x20useful\x20is\x20when\x20the\x20symbol\x20represent\ - s\x20a\x20generic\n\x20function\x20(with\x20abstract\x20type\x20paramete\ - rs\x20such\x20as\x20`List`)\x20and\x20at\x20this\n\x20occurrence\x20w\ - e\x20know\x20the\x20exact\x20values\x20(such\x20as\x20`List`).\n\ - \n\x20This\x20field\x20can\x20also\x20be\x20used\x20for\x20dynamically\ - \x20or\x20gradually\x20typed\x20languages,\n\x20which\x20commonly\x20all\ - ow\x20for\x20type-changing\x20assignment.\n\n\r\n\x05\x04\n\x02\x03\x04\ - \x12\x04\x8a\x06\x02\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\x8a\x06\x0b\ - \x11\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\x8a\x06\x12(\n\r\n\x05\x04\n\ - \x02\x03\x03\x12\x04\x8a\x06+,\nX\n\x04\x04\n\x02\x04\x12\x04\x8c\x06\ - \x02\x1d\x1aJ\x20(optional)\x20What\x20syntax\x20highlighting\x20class\ - \x20should\x20be\x20used\x20for\x20this\x20range?\n\n\r\n\x05\x04\n\x02\ - \x04\x06\x12\x04\x8c\x06\x02\x0c\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\x8c\ - \x06\r\x18\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\x8c\x06\x1b\x1c\nW\n\x04\ - \x04\n\x02\x05\x12\x04\x8e\x06\x02&\x1aI\x20(optional)\x20Diagnostics\ - \x20that\x20have\x20been\x20reported\x20for\x20this\x20specific\x20range\ - .\n\n\r\n\x05\x04\n\x02\x05\x04\x12\x04\x8e\x06\x02\n\n\r\n\x05\x04\n\ - \x02\x05\x06\x12\x04\x8e\x06\x0b\x15\n\r\n\x05\x04\n\x02\x05\x01\x12\x04\ - \x8e\x06\x16!\n\r\n\x05\x04\n\x02\x05\x03\x12\x04\x8e\x06$%\n\xb7\x0e\n\ - \x04\x04\n\x02\x06\x12\x04\xc3\x06\x02%\x1a\xa8\x0e\x20(optional)\x20Usi\ - ng\x20the\x20same\x20encoding\x20as\x20the\x20sibling\x20`range`\x20fiel\ - d,\x20half-open\n\x20source\x20range\x20of\x20the\x20nearest\x20non-triv\ - ial\x20enclosing\x20AST\x20node.\x20This\x20range\x20must\n\x20enclose\ - \x20the\x20`range`\x20field.\x20Example\x20applications\x20that\x20make\ - \x20use\x20of\x20the\n\x20enclosing_range\x20field:\n\n\x20-\x20Call\x20\ - hierarchies:\x20to\x20determine\x20what\x20symbols\x20are\x20references\ - \x20from\x20the\x20body\n\x20\x20\x20of\x20a\x20function\n\x20-\x20Symbo\ - l\x20outline:\x20to\x20display\x20breadcrumbs\x20from\x20the\x20cursor\ - \x20position\x20to\x20the\n\x20\x20\x20root\x20of\x20the\x20file\n\x20-\ - \x20Expand\x20selection:\x20to\x20select\x20the\x20nearest\x20enclosing\ - \x20AST\x20node.\n\x20-\x20Highlight\x20range:\x20to\x20indicate\x20the\ - \x20AST\x20expression\x20that\x20is\x20associated\x20with\x20a\n\x20\x20\ - \x20hover\x20popover\n\n\x20For\x20definition\x20occurrences,\x20the\x20\ - enclosing\x20range\x20should\x20indicate\x20the\n\x20start/end\x20bounds\ - \x20of\x20the\x20entire\x20definition\x20AST\x20node,\x20including\n\x20\ - documentation.\n\x20```\n\x20const\x20n\x20=\x203\n\x20\x20\x20\x20\x20\ - \x20\x20^\x20range\n\x20^^^^^^^^^^^\x20enclosing_range\n\n\x20/**\x20Par\ - ses\x20the\x20string\x20into\x20something\x20*/\n\x20^\x20enclosing_rang\ - e\x20start\x20--------------------------------------|\n\x20function\x20p\ - arse(input\x20string):\x20string\x20{\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20range\x20\x20\x20\x20\x20\ + \x04\x02\x13\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\xfc\x04\x16\x1a\nC\n\ + \x04\x05\x03\x02\x08\x12\x04\xfe\x04\x02\x0e\x1a5\x20Does\x20this\x20occ\ + urrence\x20correspond\x20to\x20a\x20function\x20call?\n\n\r\n\x05\x05\ + \x03\x02\x08\x01\x12\x04\xfe\x04\x02\x06\n\r\n\x05\x05\x03\x02\x08\x02\ + \x12\x04\xfe\x04\t\r\n\x0c\n\x02\x05\x04\x12\x06\x81\x05\0\xde\x05\x01\n\ + \x0b\n\x03\x05\x04\x01\x12\x04\x81\x05\x05\x0f\n\x0b\n\x03\x05\x04\x03\ + \x12\x04\x82\x05\x02\x1c\n\x0c\n\x04\x05\x04\x03\x02\x12\x04\x82\x05\x02\ + \x1c\n\x0c\n\x04\x05\x04\x02\0\x12\x04\x84\x05\x02\x1c\n\r\n\x05\x05\x04\ + \x02\0\x01\x12\x04\x84\x05\x02\x17\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\ + \x84\x05\x1a\x1b\n;\n\x04\x05\x04\x02\x01\x12\x04\x87\x05\x02\x0e\x1a-\ + \x20Comment,\x20including\x20comment\x20markers\x20and\x20text\n\n\r\n\ + \x05\x05\x04\x02\x01\x01\x12\x04\x87\x05\x02\t\n\r\n\x05\x05\x04\x02\x01\ + \x02\x12\x04\x87\x05\x0c\r\n\x1b\n\x04\x05\x04\x02\x02\x12\x04\x8a\x05\ + \x02\x1b\x1a\r\x20`;`\x20`.`\x20`,`\n\n\r\n\x05\x05\x04\x02\x02\x01\x12\ + \x04\x8a\x05\x02\x16\n\r\n\x05\x05\x04\x02\x02\x02\x12\x04\x8a\x05\x19\ + \x1a\n2\n\x04\x05\x04\x02\x03\x12\x04\x8c\x05\x02\x19\x1a$\x20(),\x20{},\ + \x20[]\x20when\x20used\x20syntactically\n\n\r\n\x05\x05\x04\x02\x03\x01\ + \x12\x04\x8c\x05\x02\x14\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\x8c\x05\ + \x17\x18\n5\n\x04\x05\x04\x02\x04\x12\x04\x8f\x05\x02\x0e\x1a'\x20`if`,\ + \x20`else`,\x20`return`,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x04\x02\x04\ + \x01\x12\x04\x8f\x05\x02\t\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\x8f\x05\ + \x0c\r\n\x0c\n\x04\x05\x04\x02\x05\x12\x04\x90\x05\x02*\n\r\n\x05\x05\ + \x04\x02\x05\x01\x12\x04\x90\x05\x02\x13\n\r\n\x05\x05\x04\x02\x05\x02\ + \x12\x04\x90\x05\x16\x17\n\r\n\x05\x05\x04\x02\x05\x03\x12\x04\x90\x05\ + \x18)\n\x0e\n\x06\x05\x04\x02\x05\x03\x01\x12\x04\x90\x05\x19(\n\x1e\n\ + \x04\x05\x04\x02\x06\x12\x04\x93\x05\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20\ + etc.\n\n\r\n\x05\x05\x04\x02\x06\x01\x12\x04\x93\x05\x02\x14\n\r\n\x05\ + \x05\x04\x02\x06\x02\x12\x04\x93\x05\x17\x18\nX\n\x04\x05\x04\x02\x07\ + \x12\x04\x96\x05\x02\x11\x1aJ\x20non-specific\x20catch-all\x20for\x20any\ + \x20identifier\x20not\x20better\x20described\x20elsewhere\n\n\r\n\x05\ + \x05\x04\x02\x07\x01\x12\x04\x96\x05\x02\x0c\n\r\n\x05\x05\x04\x02\x07\ + \x02\x12\x04\x96\x05\x0f\x10\nN\n\x04\x05\x04\x02\x08\x12\x04\x98\x05\ + \x02\x18\x1a@\x20Identifiers\x20builtin\x20to\x20the\x20language:\x20`mi\ + n`,\x20`print`\x20in\x20Python.\n\n\r\n\x05\x05\x04\x02\x08\x01\x12\x04\ + \x98\x05\x02\x13\n\r\n\x05\x05\x04\x02\x08\x02\x12\x04\x98\x05\x16\x17\n\ + [\n\x04\x05\x04\x02\t\x12\x04\x9a\x05\x02\x15\x1aM\x20Identifiers\x20rep\ + resenting\x20`null`-like\x20values:\x20`None`\x20in\x20Python,\x20`nil`\ + \x20in\x20Go.\n\n\r\n\x05\x05\x04\x02\t\x01\x12\x04\x9a\x05\x02\x10\n\r\ + \n\x05\x05\x04\x02\t\x02\x12\x04\x9a\x05\x13\x14\n.\n\x04\x05\x04\x02\n\ + \x12\x04\x9c\x05\x02\x19\x1a\x20\x20`xyz`\x20in\x20`const\x20xyz\x20=\ + \x20\"hello\"`\n\n\r\n\x05\x05\x04\x02\n\x01\x12\x04\x9c\x05\x02\x14\n\r\ + \n\x05\x05\x04\x02\n\x02\x12\x04\x9c\x05\x17\x18\n'\n\x04\x05\x04\x02\ + \x0b\x12\x04\x9e\x05\x02\x1f\x1a\x19\x20`var\x20X\x20=\x20\"hello\"`\x20\ + in\x20Go\n\n\r\n\x05\x05\x04\x02\x0b\x01\x12\x04\x9e\x05\x02\x19\n\r\n\ + \x05\x05\x04\x02\x0b\x02\x12\x04\x9e\x05\x1c\x1e\n3\n\x04\x05\x04\x02\ + \x0c\x12\x04\xa0\x05\x02\x1b\x1a%\x20Parameter\x20definition\x20and\x20r\ + eferences\n\n\r\n\x05\x05\x04\x02\x0c\x01\x12\x04\xa0\x05\x02\x15\n\r\n\ + \x05\x05\x04\x02\x0c\x02\x12\x04\xa0\x05\x18\x1a\nX\n\x04\x05\x04\x02\r\ + \x12\x04\xa2\x05\x02\x17\x1aJ\x20Identifiers\x20for\x20variable\x20defin\ + itions\x20and\x20references\x20within\x20a\x20local\x20scope\n\n\r\n\x05\ + \x05\x04\x02\r\x01\x12\x04\xa2\x05\x02\x11\n\r\n\x05\x05\x04\x02\r\x02\ + \x12\x04\xa2\x05\x14\x16\nK\n\x04\x05\x04\x02\x0e\x12\x04\xa4\x05\x02\ + \x1a\x1a=\x20Identifiers\x20that\x20shadow\x20other\x20identifiers\x20in\ + \x20an\x20outer\x20scope\n\n\r\n\x05\x05\x04\x02\x0e\x01\x12\x04\xa4\x05\ + \x02\x14\n\r\n\x05\x05\x04\x02\x0e\x02\x12\x04\xa4\x05\x17\x19\n\xcd\x01\ + \n\x04\x05\x04\x02\x0f\x12\x04\xa9\x05\x02\x1b\x1a\xbe\x01\x20Identifier\ + \x20representing\x20a\x20unit\x20of\x20code\x20abstraction\x20and/or\x20\ + namespacing.\n\n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20package\ + \x20in\x20Go\x20and\x20JVM\x20languages,\n\x20and\x20a\x20module\x20in\ + \x20languages\x20like\x20Python\x20and\x20JavaScript.\n\n\r\n\x05\x05\ + \x04\x02\x0f\x01\x12\x04\xa9\x05\x02\x15\n\r\n\x05\x05\x04\x02\x0f\x02\ + \x12\x04\xa9\x05\x18\x1a\n\x0c\n\x04\x05\x04\x02\x10\x12\x04\xaa\x05\x02\ + *\n\r\n\x05\x05\x04\x02\x10\x01\x12\x04\xaa\x05\x02\x12\n\r\n\x05\x05\ + \x04\x02\x10\x02\x12\x04\xaa\x05\x15\x17\n\r\n\x05\x05\x04\x02\x10\x03\ + \x12\x04\xaa\x05\x18)\n\x0e\n\x06\x05\x04\x02\x10\x03\x01\x12\x04\xaa\ + \x05\x19(\n4\n\x04\x05\x04\x02\x11\x12\x04\xad\x05\x02\x1a\x1a&\x20Funct\ + ion\x20references,\x20including\x20calls\n\n\r\n\x05\x05\x04\x02\x11\x01\ + \x12\x04\xad\x05\x02\x14\n\r\n\x05\x05\x04\x02\x11\x02\x12\x04\xad\x05\ + \x17\x19\n(\n\x04\x05\x04\x02\x12\x12\x04\xaf\x05\x02$\x1a\x1a\x20Functi\ + on\x20definition\x20only\n\n\r\n\x05\x05\x04\x02\x12\x01\x12\x04\xaf\x05\ + \x02\x1e\n\r\n\x05\x05\x04\x02\x12\x02\x12\x04\xaf\x05!#\n7\n\x04\x05\ + \x04\x02\x13\x12\x04\xb2\x05\x02\x17\x1a)\x20Macro\x20references,\x20inc\ + luding\x20invocations\n\n\r\n\x05\x05\x04\x02\x13\x01\x12\x04\xb2\x05\ + \x02\x11\n\r\n\x05\x05\x04\x02\x13\x02\x12\x04\xb2\x05\x14\x16\n%\n\x04\ + \x05\x04\x02\x14\x12\x04\xb4\x05\x02!\x1a\x17\x20Macro\x20definition\x20\ + only\n\n\r\n\x05\x05\x04\x02\x14\x01\x12\x04\xb4\x05\x02\x1b\n\r\n\x05\ + \x05\x04\x02\x14\x02\x12\x04\xb4\x05\x1e\x20\n!\n\x04\x05\x04\x02\x15\ + \x12\x04\xb7\x05\x02\x16\x1a\x13\x20non-builtin\x20types\n\n\r\n\x05\x05\ + \x04\x02\x15\x01\x12\x04\xb7\x05\x02\x10\n\r\n\x05\x05\x04\x02\x15\x02\ + \x12\x04\xb7\x05\x13\x15\nK\n\x04\x05\x04\x02\x16\x12\x04\xb9\x05\x02\ + \x1d\x1a=\x20builtin\x20types\x20only,\x20such\x20as\x20`str`\x20for\x20\ + Python\x20or\x20`int`\x20in\x20Go\n\n\r\n\x05\x05\x04\x02\x16\x01\x12\ + \x04\xb9\x05\x02\x17\n\r\n\x05\x05\x04\x02\x16\x02\x12\x04\xb9\x05\x1a\ + \x1c\n7\n\x04\x05\x04\x02\x17\x12\x04\xbc\x05\x02\x1b\x1a)\x20Python\x20\ + decorators,\x20c-like\x20__attribute__\n\n\r\n\x05\x05\x04\x02\x17\x01\ + \x12\x04\xbc\x05\x02\x15\n\r\n\x05\x05\x04\x02\x17\x02\x12\x04\xbc\x05\ + \x18\x1a\n\x14\n\x04\x05\x04\x02\x18\x12\x04\xbf\x05\x02\x13\x1a\x06\x20\ + `\\b`\n\n\r\n\x05\x05\x04\x02\x18\x01\x12\x04\xbf\x05\x02\r\n\r\n\x05\ + \x05\x04\x02\x18\x02\x12\x04\xbf\x05\x10\x12\n\x18\n\x04\x05\x04\x02\x19\ + \x12\x04\xc1\x05\x02\x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x04\x02\ + \x19\x01\x12\x04\xc1\x05\x02\x0f\n\r\n\x05\x05\x04\x02\x19\x02\x12\x04\ + \xc1\x05\x12\x14\n\x13\n\x04\x05\x04\x02\x1a\x12\x04\xc3\x05\x02\x15\x1a\ + \x05\x20`.`\n\n\r\n\x05\x05\x04\x02\x1a\x01\x12\x04\xc3\x05\x02\x0f\n\r\ + \n\x05\x05\x04\x02\x1a\x02\x12\x04\xc3\x05\x12\x14\n\"\n\x04\x05\x04\x02\ + \x1b\x12\x04\xc5\x05\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\n\n\ + \r\n\x05\x05\x04\x02\x1b\x01\x12\x04\xc5\x05\x02\x10\n\r\n\x05\x05\x04\ + \x02\x1b\x02\x12\x04\xc5\x05\x13\x15\n\x18\n\x04\x05\x04\x02\x1c\x12\x04\ + \xc7\x05\x02\x11\x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x04\x02\x1c\x01\ + \x12\x04\xc7\x05\x02\x0b\n\r\n\x05\x05\x04\x02\x1c\x02\x12\x04\xc7\x05\ + \x0e\x10\n0\n\x04\x05\x04\x02\x1d\x12\x04\xca\x05\x02\x15\x1a\"\x20Liter\ + al\x20strings:\x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x04\x02\x1d\x01\ + \x12\x04\xca\x05\x02\x0f\n\r\n\x05\x05\x04\x02\x1d\x02\x12\x04\xca\x05\ + \x12\x14\n-\n\x04\x05\x04\x02\x1e\x12\x04\xcc\x05\x02\x1b\x1a\x1f\x20non\ + -regex\x20escapes:\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x04\x02\x1e\ + \x01\x12\x04\xcc\x05\x02\x15\n\r\n\x05\x05\x04\x02\x1e\x02\x12\x04\xcc\ + \x05\x18\x1a\n_\n\x04\x05\x04\x02\x1f\x12\x04\xce\x05\x02\x1c\x1aQ\x20da\ + tetimes\x20within\x20strings,\x20special\x20words\x20within\x20a\x20stri\ + ng,\x20`{}`\x20in\x20format\x20strings\n\n\r\n\x05\x05\x04\x02\x1f\x01\ + \x12\x04\xce\x05\x02\x16\n\r\n\x05\x05\x04\x02\x1f\x02\x12\x04\xce\x05\ + \x19\x1b\nG\n\x04\x05\x04\x02\x20\x12\x04\xd0\x05\x02\x18\x1a9\x20\"key\ + \"\x20in\x20{\x20\"key\":\x20\"value\"\x20},\x20useful\x20for\x20example\ + \x20in\x20JSON\n\n\r\n\x05\x05\x04\x02\x20\x01\x12\x04\xd0\x05\x02\x12\n\ + \r\n\x05\x05\x04\x02\x20\x02\x12\x04\xd0\x05\x15\x17\nV\n\x04\x05\x04\ + \x02!\x12\x04\xd2\x05\x02\x18\x1aH\x20'c'\x20or\x20similar,\x20in\x20lan\ + guages\x20that\x20differentiate\x20strings\x20and\x20characters\n\n\r\n\ + \x05\x05\x04\x02!\x01\x12\x04\xd2\x05\x02\x12\n\r\n\x05\x05\x04\x02!\x02\ + \x12\x04\xd2\x05\x15\x17\n9\n\x04\x05\x04\x02\"\x12\x04\xd4\x05\x02\x16\ + \x1a+\x20Literal\x20numbers,\x20both\x20floats\x20and\x20integers\n\n\r\ + \n\x05\x05\x04\x02\"\x01\x12\x04\xd4\x05\x02\x10\n\r\n\x05\x05\x04\x02\"\ + \x02\x12\x04\xd4\x05\x13\x15\n\x1f\n\x04\x05\x04\x02#\x12\x04\xd6\x05\ + \x02\x16\x1a\x11\x20`true`,\x20`false`\n\n\r\n\x05\x05\x04\x02#\x01\x12\ + \x04\xd6\x05\x02\x10\n\r\n\x05\x05\x04\x02#\x02\x12\x04\xd6\x05\x13\x15\ + \n&\n\x04\x05\x04\x02$\x12\x04\xd9\x05\x02\x0b\x1a\x18\x20Used\x20for\ + \x20XML-like\x20tags\n\n\r\n\x05\x05\x04\x02$\x01\x12\x04\xd9\x05\x02\ + \x05\n\r\n\x05\x05\x04\x02$\x02\x12\x04\xd9\x05\x08\n\n/\n\x04\x05\x04\ + \x02%\x12\x04\xdb\x05\x02\x14\x1a!\x20Attribute\x20name\x20in\x20XML-lik\ + e\x20tags\n\n\r\n\x05\x05\x04\x02%\x01\x12\x04\xdb\x05\x02\x0e\n\r\n\x05\ + \x05\x04\x02%\x02\x12\x04\xdb\x05\x11\x13\n,\n\x04\x05\x04\x02&\x12\x04\ + \xdd\x05\x02\x14\x1a\x1e\x20Delimiters\x20for\x20XML-like\x20tags\n\n\r\ + \n\x05\x05\x04\x02&\x01\x12\x04\xdd\x05\x02\x0e\n\r\n\x05\x05\x04\x02&\ + \x02\x12\x04\xdd\x05\x11\x13\n\xf9\x01\n\x02\x04\n\x12\x06\xe5\x05\0\xc6\ + \x06\x01\x1a\xea\x01\x20Occurrence\x20associates\x20a\x20source\x20posit\ + ion\x20with\x20a\x20symbol\x20and/or\x20highlighting\n\x20information.\n\ + \n\x20If\x20possible,\x20indexers\x20should\x20try\x20to\x20bundle\x20lo\ + gically\x20related\x20information\n\x20across\x20occurrences\x20into\x20\ + a\x20single\x20occurrence\x20to\x20reduce\x20payload\x20sizes.\n\n\x0b\n\ + \x03\x04\n\x01\x12\x04\xe5\x05\x08\x12\n\xe8\x08\n\x04\x04\n\x02\0\x12\ + \x04\xfd\x05\x02\x1b\x1a\xd9\x08\x20Half-open\x20[start,\x20end)\x20rang\ + e\x20of\x20this\x20occurrence.\x20Must\x20be\x20exactly\x20three\x20or\ + \x20four\n\x20elements:\n\n\x20-\x20Four\x20elements:\x20`[startLine,\ + \x20startCharacter,\x20endLine,\x20endCharacter]`\n\x20-\x20Three\x20ele\ + ments:\x20`[startLine,\x20startCharacter,\x20endCharacter]`.\x20The\x20e\ + nd\x20line\n\x20\x20\x20is\x20inferred\x20to\x20have\x20the\x20same\x20v\ + alue\x20as\x20the\x20start\x20line.\n\n\x20It\x20is\x20allowed\x20for\ + \x20the\x20range\x20to\x20be\x20empty\x20(i.e.\x20start==end).\n\n\x20Li\ + ne\x20numbers\x20and\x20characters\x20are\x20always\x200-based.\x20Make\ + \x20sure\x20to\x20increment\x20the\n\x20line/character\x20values\x20befo\ + re\x20displaying\x20them\x20in\x20an\x20editor-like\x20UI\x20because\n\ + \x20editors\x20conventionally\x20use\x201-based\x20numbers.\n\n\x20The\ + \x20'character'\x20value\x20is\x20interpreted\x20based\x20on\x20the\x20P\ + ositionEncoding\x20for\n\x20the\x20Document.\n\n\x20Historical\x20note:\ + \x20the\x20original\x20draft\x20of\x20this\x20schema\x20had\x20a\x20`Ran\ + ge`\x20message\n\x20type\x20with\x20`start`\x20and\x20`end`\x20fields\ + \x20of\x20type\x20`Position`,\x20mirroring\x20LSP.\n\x20Benchmarks\x20re\ + vealed\x20that\x20this\x20encoding\x20was\x20inefficient\x20and\x20that\ + \x20we\x20could\n\x20reduce\x20the\x20total\x20payload\x20size\x20of\x20\ + an\x20index\x20by\x2050%\x20by\x20using\x20`repeated\x20int32`\n\x20inst\ + ead.\x20The\x20`repeated\x20int32`\x20encoding\x20is\x20admittedly\x20mo\ + re\x20embarrassing\x20to\n\x20work\x20with\x20in\x20some\x20programming\ + \x20languages\x20but\x20we\x20hope\x20the\x20performance\n\x20improvemen\ + ts\x20make\x20up\x20for\x20it.\n\n\r\n\x05\x04\n\x02\0\x04\x12\x04\xfd\ + \x05\x02\n\n\r\n\x05\x04\n\x02\0\x05\x12\x04\xfd\x05\x0b\x10\n\r\n\x05\ + \x04\n\x02\0\x01\x12\x04\xfd\x05\x11\x16\n\r\n\x05\x04\n\x02\0\x03\x12\ + \x04\xfd\x05\x19\x1a\n\x8a\x01\n\x04\x04\n\x02\x01\x12\x04\x80\x06\x02\ + \x14\x1a|\x20(optional)\x20The\x20symbol\x20that\x20appears\x20at\x20thi\ + s\x20position.\x20See\n\x20`SymbolInformation.symbol`\x20for\x20how\x20t\ + o\x20format\x20symbols\x20as\x20strings.\n\n\r\n\x05\x04\n\x02\x01\x05\ + \x12\x04\x80\x06\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\x80\x06\t\ + \x0f\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\x80\x06\x12\x13\n\x97\x01\n\x04\ + \x04\n\x02\x02\x12\x04\x83\x06\x02\x19\x1a\x88\x01\x20(optional)\x20Bits\ + et\x20containing\x20`SymbolRole`s\x20in\x20this\x20occurrence.\n\x20See\ + \x20`SymbolRole`'s\x20documentation\x20for\x20how\x20to\x20read\x20and\ + \x20write\x20this\x20field.\n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\x83\ + \x06\x02\x07\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\x83\x06\x08\x14\n\r\n\ + \x05\x04\n\x02\x02\x03\x12\x04\x83\x06\x17\x18\n\xf1\x03\n\x04\x04\n\x02\ + \x03\x12\x04\x8c\x06\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-format\ + ted\x20documentation\x20for\x20this\x20specific\x20range.\x20If\n\x20emp\ + ty,\x20the\x20`Symbol.documentation`\x20field\x20is\x20used\x20instead.\ + \x20One\x20example\n\x20where\x20this\x20field\x20might\x20be\x20useful\ + \x20is\x20when\x20the\x20symbol\x20represents\x20a\x20generic\n\x20funct\ + ion\x20(with\x20abstract\x20type\x20parameters\x20such\x20as\x20`List\ + `)\x20and\x20at\x20this\n\x20occurrence\x20we\x20know\x20the\x20exact\ + \x20values\x20(such\x20as\x20`List`).\n\n\x20This\x20field\x20ca\ + n\x20also\x20be\x20used\x20for\x20dynamically\x20or\x20gradually\x20type\ + d\x20languages,\n\x20which\x20commonly\x20allow\x20for\x20type-changing\ + \x20assignment.\n\n\r\n\x05\x04\n\x02\x03\x04\x12\x04\x8c\x06\x02\n\n\r\ + \n\x05\x04\n\x02\x03\x05\x12\x04\x8c\x06\x0b\x11\n\r\n\x05\x04\n\x02\x03\ + \x01\x12\x04\x8c\x06\x12(\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\x8c\x06+,\ + \nX\n\x04\x04\n\x02\x04\x12\x04\x8e\x06\x02\x1d\x1aJ\x20(optional)\x20Wh\ + at\x20syntax\x20highlighting\x20class\x20should\x20be\x20used\x20for\x20\ + this\x20range?\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\x8e\x06\x02\x0c\n\r\ + \n\x05\x04\n\x02\x04\x01\x12\x04\x8e\x06\r\x18\n\r\n\x05\x04\n\x02\x04\ + \x03\x12\x04\x8e\x06\x1b\x1c\nW\n\x04\x04\n\x02\x05\x12\x04\x90\x06\x02&\ + \x1aI\x20(optional)\x20Diagnostics\x20that\x20have\x20been\x20reported\ + \x20for\x20this\x20specific\x20range.\n\n\r\n\x05\x04\n\x02\x05\x04\x12\ + \x04\x90\x06\x02\n\n\r\n\x05\x04\n\x02\x05\x06\x12\x04\x90\x06\x0b\x15\n\ + \r\n\x05\x04\n\x02\x05\x01\x12\x04\x90\x06\x16!\n\r\n\x05\x04\n\x02\x05\ + \x03\x12\x04\x90\x06$%\n\xb7\x0e\n\x04\x04\n\x02\x06\x12\x04\xc5\x06\x02\ + %\x1a\xa8\x0e\x20(optional)\x20Using\x20the\x20same\x20encoding\x20as\ + \x20the\x20sibling\x20`range`\x20field,\x20half-open\n\x20source\x20rang\ + e\x20of\x20the\x20nearest\x20non-trivial\x20enclosing\x20AST\x20node.\ + \x20This\x20range\x20must\n\x20enclose\x20the\x20`range`\x20field.\x20Ex\ + ample\x20applications\x20that\x20make\x20use\x20of\x20the\n\x20enclosing\ + _range\x20field:\n\n\x20-\x20Call\x20hierarchies:\x20to\x20determine\x20\ + what\x20symbols\x20are\x20references\x20from\x20the\x20body\n\x20\x20\ + \x20of\x20a\x20function\n\x20-\x20Symbol\x20outline:\x20to\x20display\ + \x20breadcrumbs\x20from\x20the\x20cursor\x20position\x20to\x20the\n\x20\ + \x20\x20root\x20of\x20the\x20file\n\x20-\x20Expand\x20selection:\x20to\ + \x20select\x20the\x20nearest\x20enclosing\x20AST\x20node.\n\x20-\x20High\ + light\x20range:\x20to\x20indicate\x20the\x20AST\x20expression\x20that\ + \x20is\x20associated\x20with\x20a\n\x20\x20\x20hover\x20popover\n\n\x20F\ + or\x20definition\x20occurrences,\x20the\x20enclosing\x20range\x20should\ + \x20indicate\x20the\n\x20start/end\x20bounds\x20of\x20the\x20entire\x20d\ + efinition\x20AST\x20node,\x20including\n\x20documentation.\n\x20```\n\ + \x20const\x20n\x20=\x203\n\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20^^\ + ^^^^^^^^^\x20enclosing_range\n\n\x20/**\x20Parses\x20the\x20string\x20in\ + to\x20something\x20*/\n\x20^\x20enclosing_range\x20start\x20------------\ + --------------------------|\n\x20function\x20parse(input\x20string):\x20\ + string\x20{\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20^^^^^\x20range\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20\x20\x20\x20\x20r\ + eturn\x20input.slice(n)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20|\n\x20\x20\x20\x20\x20return\x20input.slice(n)\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20|\n\x20}\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20}\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20|\n\x20^\x20enclosing_range\x20end\x20<-------------\ - --------------------------|\n\x20```\n\n\x20Any\x20attributes/decorators\ - /attached\x20macros\x20should\x20also\x20be\x20part\x20of\x20the\n\x20en\ - closing\x20range.\n\n\x20```python\n\x20@cache\n\x20^\x20enclosing_range\ - \x20start---------------------|\n\x20def\x20factorial(n):\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20|\n\x20\x20\x20\x20\x20return\x20n\x20*\x20facto\ - rial(n-1)\x20if\x20n\x20else\x201\x20\x20\x20|\n\x20<\x20enclosing_range\ - \x20end-----------------------|\n\n\x20```\n\n\x20For\x20reference\x20oc\ - currences,\x20the\x20enclosing\x20range\x20should\x20indicate\x20the\x20\ - start/end\n\x20bounds\x20of\x20the\x20parent\x20expression.\n\x20```\n\ - \x20const\x20a\x20=\x20a.b\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20^\x20range\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^\x20e\ - nclosing_range\n\x20const\x20b\x20=\x20a.b(41).f(42).g(43)\n\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^\x20ran\ - ge\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^^^^^^^^\x20enclosi\ - ng_range\n\x20```\n\n\r\n\x05\x04\n\x02\x06\x04\x12\x04\xc3\x06\x02\n\n\ - \r\n\x05\x04\n\x02\x06\x05\x12\x04\xc3\x06\x0b\x10\n\r\n\x05\x04\n\x02\ - \x06\x01\x12\x04\xc3\x06\x11\x20\n\r\n\x05\x04\n\x02\x06\x03\x12\x04\xc3\ - \x06#$\nw\n\x02\x04\x0b\x12\x06\xc8\x06\0\xd3\x06\x01\x1ai\x20Represents\ - \x20a\x20diagnostic,\x20such\x20as\x20a\x20compiler\x20error\x20or\x20wa\ - rning,\x20which\x20should\x20be\n\x20reported\x20for\x20a\x20document.\n\ - \n\x0b\n\x03\x04\x0b\x01\x12\x04\xc8\x06\x08\x12\nW\n\x04\x04\x0b\x02\0\ - \x12\x04\xca\x06\x02\x18\x1aI\x20Should\x20this\x20diagnostic\x20be\x20r\ - eported\x20as\x20an\x20error,\x20warning,\x20info,\x20or\x20hint?\n\n\r\ - \n\x05\x04\x0b\x02\0\x06\x12\x04\xca\x06\x02\n\n\r\n\x05\x04\x0b\x02\0\ - \x01\x12\x04\xca\x06\x0b\x13\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xca\x06\ - \x16\x17\n]\n\x04\x04\x0b\x02\x01\x12\x04\xcc\x06\x02\x12\x1aO\x20(optio\ - nal)\x20Code\x20of\x20this\x20diagnostic,\x20which\x20might\x20appear\ - \x20in\x20the\x20user\x20interface.\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\ - \x04\xcc\x06\x02\x08\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xcc\x06\t\r\n\ - \r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xcc\x06\x10\x11\n+\n\x04\x04\x0b\ - \x02\x02\x12\x04\xce\x06\x02\x15\x1a\x1d\x20Message\x20of\x20this\x20dia\ - gnostic.\n\n\r\n\x05\x04\x0b\x02\x02\x05\x12\x04\xce\x06\x02\x08\n\r\n\ - \x05\x04\x0b\x02\x02\x01\x12\x04\xce\x06\t\x10\n\r\n\x05\x04\x0b\x02\x02\ - \x03\x12\x04\xce\x06\x13\x14\n~\n\x04\x04\x0b\x02\x03\x12\x04\xd1\x06\ - \x02\x14\x1ap\x20(optional)\x20Human-readable\x20string\x20describing\ - \x20the\x20source\x20of\x20this\x20diagnostic,\x20e.g.\n\x20'typescript'\ - \x20or\x20'super\x20lint'.\n\n\r\n\x05\x04\x0b\x02\x03\x05\x12\x04\xd1\ - \x06\x02\x08\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\xd1\x06\t\x0f\n\r\n\ - \x05\x04\x0b\x02\x03\x03\x12\x04\xd1\x06\x12\x13\n\x0c\n\x04\x04\x0b\x02\ - \x04\x12\x04\xd2\x06\x02\"\n\r\n\x05\x04\x0b\x02\x04\x04\x12\x04\xd2\x06\ - \x02\n\n\r\n\x05\x04\x0b\x02\x04\x06\x12\x04\xd2\x06\x0b\x18\n\r\n\x05\ - \x04\x0b\x02\x04\x01\x12\x04\xd2\x06\x19\x1d\n\r\n\x05\x04\x0b\x02\x04\ - \x03\x12\x04\xd2\x06\x20!\n\x0c\n\x02\x05\x05\x12\x06\xd5\x06\0\xdb\x06\ - \x01\n\x0b\n\x03\x05\x05\x01\x12\x04\xd5\x06\x05\r\n\x0c\n\x04\x05\x05\ - \x02\0\x12\x04\xd6\x06\x02\x1a\n\r\n\x05\x05\x05\x02\0\x01\x12\x04\xd6\ - \x06\x02\x15\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\xd6\x06\x18\x19\n\x0c\n\ - \x04\x05\x05\x02\x01\x12\x04\xd7\x06\x02\x0c\n\r\n\x05\x05\x05\x02\x01\ - \x01\x12\x04\xd7\x06\x02\x07\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\xd7\ - \x06\n\x0b\n\x0c\n\x04\x05\x05\x02\x02\x12\x04\xd8\x06\x02\x0e\n\r\n\x05\ - \x05\x05\x02\x02\x01\x12\x04\xd8\x06\x02\t\n\r\n\x05\x05\x05\x02\x02\x02\ - \x12\x04\xd8\x06\x0c\r\n\x0c\n\x04\x05\x05\x02\x03\x12\x04\xd9\x06\x02\ - \x12\n\r\n\x05\x05\x05\x02\x03\x01\x12\x04\xd9\x06\x02\r\n\r\n\x05\x05\ - \x05\x02\x03\x02\x12\x04\xd9\x06\x10\x11\n\x0c\n\x04\x05\x05\x02\x04\x12\ - \x04\xda\x06\x02\x0b\n\r\n\x05\x05\x05\x02\x04\x01\x12\x04\xda\x06\x02\ - \x06\n\r\n\x05\x05\x05\x02\x04\x02\x12\x04\xda\x06\t\n\n\x0c\n\x02\x05\ - \x06\x12\x06\xdd\x06\0\xe1\x06\x01\n\x0b\n\x03\x05\x06\x01\x12\x04\xdd\ - \x06\x05\x12\n\x0c\n\x04\x05\x06\x02\0\x12\x04\xde\x06\x02\x1f\n\r\n\x05\ - \x05\x06\x02\0\x01\x12\x04\xde\x06\x02\x1a\n\r\n\x05\x05\x06\x02\0\x02\ - \x12\x04\xde\x06\x1d\x1e\n\x0c\n\x04\x05\x06\x02\x01\x12\x04\xdf\x06\x02\ - \x12\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xdf\x06\x02\r\n\r\n\x05\x05\ - \x06\x02\x01\x02\x12\x04\xdf\x06\x10\x11\n\x0c\n\x04\x05\x06\x02\x02\x12\ - \x04\xe0\x06\x02\x11\n\r\n\x05\x05\x06\x02\x02\x01\x12\x04\xe0\x06\x02\ - \x0c\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\xe0\x06\x0f\x10\n\xd0\x03\n\ - \x02\x05\x07\x12\x06\xe9\x06\0\xdf\x07\x01\x1a\xc1\x03\x20Language\x20st\ - andardises\x20names\x20of\x20common\x20programming\x20languages\x20that\ - \x20can\x20be\x20used\n\x20for\x20the\x20`Document.language`\x20field.\ - \x20The\x20primary\x20purpose\x20of\x20this\x20enum\x20is\x20to\n\x20pre\ - vent\x20a\x20situation\x20where\x20we\x20have\x20a\x20single\x20programm\ - ing\x20language\x20ends\x20up\x20with\n\x20multiple\x20string\x20represe\ - ntations.\x20For\x20example,\x20the\x20C++\x20language\x20uses\x20the\ - \x20name\n\x20\"CPP\"\x20in\x20this\x20enum\x20and\x20other\x20names\x20\ - such\x20as\x20\"cpp\"\x20are\x20incompatible.\n\x20Feel\x20free\x20to\ - \x20send\x20a\x20pull-request\x20to\x20add\x20missing\x20programming\x20\ - languages.\n\n\x0b\n\x03\x05\x07\x01\x12\x04\xe9\x06\x05\r\n\x0c\n\x04\ - \x05\x07\x02\0\x12\x04\xea\x06\x02\x1a\n\r\n\x05\x05\x07\x02\0\x01\x12\ - \x04\xea\x06\x02\x15\n\r\n\x05\x05\x07\x02\0\x02\x12\x04\xea\x06\x18\x19\ - \n\x0c\n\x04\x05\x07\x02\x01\x12\x04\xeb\x06\x02\x0c\n\r\n\x05\x05\x07\ - \x02\x01\x01\x12\x04\xeb\x06\x02\x06\n\r\n\x05\x05\x07\x02\x01\x02\x12\ - \x04\xeb\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x02\x12\x04\xec\x06\x02\x0c\n\ - \r\n\x05\x05\x07\x02\x02\x01\x12\x04\xec\x06\x02\x06\n\r\n\x05\x05\x07\ - \x02\x02\x02\x12\x04\xec\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x03\x12\x04\ - \xed\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x03\x01\x12\x04\xed\x06\x02\x05\n\ - \r\n\x05\x05\x07\x02\x03\x02\x12\x04\xed\x06\x08\n\n\x0c\n\x04\x05\x07\ - \x02\x04\x12\x04\xee\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x04\x01\x12\x04\ - \xee\x06\x02\x05\n\r\n\x05\x05\x07\x02\x04\x02\x12\x04\xee\x06\x08\n\n\ - \x0c\n\x04\x05\x07\x02\x05\x12\x04\xef\x06\x02\x0c\n\r\n\x05\x05\x07\x02\ - \x05\x01\x12\x04\xef\x06\x02\x06\n\r\n\x05\x05\x07\x02\x05\x02\x12\x04\ - \xef\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x06\x12\x04\xf0\x06\x02\x10\n\r\n\ - \x05\x05\x07\x02\x06\x01\x12\x04\xf0\x06\x02\n\n\r\n\x05\x05\x07\x02\x06\ - \x02\x12\x04\xf0\x06\r\x0f\n\x0c\n\x04\x05\x07\x02\x07\x12\x04\xf1\x06\ - \x02\x10\n\r\n\x05\x05\x07\x02\x07\x01\x12\x04\xf1\x06\x02\n\n\r\n\x05\ - \x05\x07\x02\x07\x02\x12\x04\xf1\x06\r\x0f\n\x0c\n\x04\x05\x07\x02\x08\ - \x12\x04\xf2\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x08\x01\x12\x04\xf2\x06\ - \x02\x05\n\r\n\x05\x05\x07\x02\x08\x02\x12\x04\xf2\x06\x08\n\n\x0c\n\x04\ - \x05\x07\x02\t\x12\x04\xf3\x06\x02\x0b\n\r\n\x05\x05\x07\x02\t\x01\x12\ - \x04\xf3\x06\x02\x05\n\r\n\x05\x05\x07\x02\t\x02\x12\x04\xf3\x06\x08\n\n\ - \x0c\n\x04\x05\x07\x02\n\x12\x04\xf4\x06\x02\x0e\n\r\n\x05\x05\x07\x02\n\ - \x01\x12\x04\xf4\x06\x02\x08\n\r\n\x05\x05\x07\x02\n\x02\x12\x04\xf4\x06\ - \x0b\r\n\x0c\n\x04\x05\x07\x02\x0b\x12\x04\xf5\x06\x02\t\n\r\n\x05\x05\ - \x07\x02\x0b\x01\x12\x04\xf5\x06\x02\x03\n\r\n\x05\x05\x07\x02\x0b\x02\ - \x12\x04\xf5\x06\x06\x08\n\x0c\n\x04\x05\x07\x02\x0c\x12\x04\xf6\x06\x02\ - \r\n\r\n\x05\x05\x07\x02\x0c\x01\x12\x04\xf6\x06\x02\x07\n\r\n\x05\x05\ - \x07\x02\x0c\x02\x12\x04\xf6\x06\n\x0c\nH\n\x04\x05\x07\x02\r\x12\x04\ - \xf7\x06\x02\x0b\":\x20C++\x20(the\x20name\x20\"CPP\"\x20was\x20chosen\ - \x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\x05\x07\x02\r\x01\x12\ - \x04\xf7\x06\x02\x05\n\r\n\x05\x05\x07\x02\r\x02\x12\x04\xf7\x06\x08\n\n\ - \x0c\n\x04\x05\x07\x02\x0e\x12\x04\xf8\x06\x02\x0b\n\r\n\x05\x05\x07\x02\ - \x0e\x01\x12\x04\xf8\x06\x02\x05\n\r\n\x05\x05\x07\x02\x0e\x02\x12\x04\ - \xf8\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x0f\x12\x04\xf9\x06\x02\r\n\r\n\ - \x05\x05\x07\x02\x0f\x01\x12\x04\xf9\x06\x02\x08\n\r\n\x05\x05\x07\x02\ - \x0f\x02\x12\x04\xf9\x06\x0b\x0c\n\x0c\n\x04\x05\x07\x02\x10\x12\x04\xfa\ - \x06\x02\x0e\n\r\n\x05\x05\x07\x02\x10\x01\x12\x04\xfa\x06\x02\t\n\r\n\ - \x05\x05\x07\x02\x10\x02\x12\x04\xfa\x06\x0c\r\n\x0c\n\x04\x05\x07\x02\ - \x11\x12\x04\xfb\x06\x02\x14\n\r\n\x05\x05\x07\x02\x11\x01\x12\x04\xfb\ - \x06\x02\x0e\n\r\n\x05\x05\x07\x02\x11\x02\x12\x04\xfb\x06\x11\x13\n\x0c\ - \n\x04\x05\x07\x02\x12\x12\x04\xfc\x06\x02\x11\n\r\n\x05\x05\x07\x02\x12\ - \x01\x12\x04\xfc\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x12\x02\x12\x04\xfc\ - \x06\x0f\x10\n\x0c\n\x04\x05\x07\x02\x13\x12\x04\xfd\x06\x02\x0b\n\r\n\ - \x05\x05\x07\x02\x13\x01\x12\x04\xfd\x06\x02\x05\n\r\n\x05\x05\x07\x02\ - \x13\x02\x12\x04\xfd\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x14\x12\x04\xfe\ - \x06\x02\x0c\n\r\n\x05\x05\x07\x02\x14\x01\x12\x04\xfe\x06\x02\x06\n\r\n\ - \x05\x05\x07\x02\x14\x02\x12\x04\xfe\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\ - \x15\x12\x04\xff\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x15\x01\x12\x04\xff\ - \x06\x02\x06\n\r\n\x05\x05\x07\x02\x15\x02\x12\x04\xff\x06\t\n\n\x0c\n\ - \x04\x05\x07\x02\x16\x12\x04\x80\x07\x02\x0e\n\r\n\x05\x05\x07\x02\x16\ - \x01\x12\x04\x80\x07\x02\x08\n\r\n\x05\x05\x07\x02\x16\x02\x12\x04\x80\ - \x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x17\x12\x04\x81\x07\x02\x0c\n\r\n\x05\ - \x05\x07\x02\x17\x01\x12\x04\x81\x07\x02\x06\n\r\n\x05\x05\x07\x02\x17\ - \x02\x12\x04\x81\x07\t\x0b\n\x0c\n\x04\x05\x07\x02\x18\x12\x04\x82\x07\ - \x02\x12\n\r\n\x05\x05\x07\x02\x18\x01\x12\x04\x82\x07\x02\x0c\n\r\n\x05\ - \x05\x07\x02\x18\x02\x12\x04\x82\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02\x19\ - \x12\x04\x83\x07\x02\x0e\n\r\n\x05\x05\x07\x02\x19\x01\x12\x04\x83\x07\ - \x02\x08\n\r\n\x05\x05\x07\x02\x19\x02\x12\x04\x83\x07\x0b\r\n\x0c\n\x04\ - \x05\x07\x02\x1a\x12\x04\x84\x07\x02\x0e\n\r\n\x05\x05\x07\x02\x1a\x01\ - \x12\x04\x84\x07\x02\x08\n\r\n\x05\x05\x07\x02\x1a\x02\x12\x04\x84\x07\ - \x0b\r\n\x0c\n\x04\x05\x07\x02\x1b\x12\x04\x85\x07\x02\x0e\n\r\n\x05\x05\ - \x07\x02\x1b\x01\x12\x04\x85\x07\x02\x08\n\r\n\x05\x05\x07\x02\x1b\x02\ - \x12\x04\x85\x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x1c\x12\x04\x86\x07\x02\ - \x0e\n\r\n\x05\x05\x07\x02\x1c\x01\x12\x04\x86\x07\x02\x08\n\r\n\x05\x05\ - \x07\x02\x1c\x02\x12\x04\x86\x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x1d\x12\ - \x04\x87\x07\x02\x0c\n\r\n\x05\x05\x07\x02\x1d\x01\x12\x04\x87\x07\x02\ - \x06\n\r\n\x05\x05\x07\x02\x1d\x02\x12\x04\x87\x07\t\x0b\n\x0c\n\x04\x05\ - \x07\x02\x1e\x12\x04\x88\x07\x02\x0c\n\r\n\x05\x05\x07\x02\x1e\x01\x12\ - \x04\x88\x07\x02\x06\n\r\n\x05\x05\x07\x02\x1e\x02\x12\x04\x88\x07\t\x0b\ - \n\x0c\n\x04\x05\x07\x02\x1f\x12\x04\x89\x07\x02\x0f\n\r\n\x05\x05\x07\ - \x02\x1f\x01\x12\x04\x89\x07\x02\t\n\r\n\x05\x05\x07\x02\x1f\x02\x12\x04\ - \x89\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02\x20\x12\x04\x8a\x07\x02\x12\n\r\ - \n\x05\x05\x07\x02\x20\x01\x12\x04\x8a\x07\x02\x0c\n\r\n\x05\x05\x07\x02\ - \x20\x02\x12\x04\x8a\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02!\x12\x04\x8b\ - \x07\x02\x12\n\r\n\x05\x05\x07\x02!\x01\x12\x04\x8b\x07\x02\x0c\n\r\n\ - \x05\x05\x07\x02!\x02\x12\x04\x8b\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02\"\ - \x12\x04\x8c\x07\x02\x12\n\r\n\x05\x05\x07\x02\"\x01\x12\x04\x8c\x07\x02\ - \x0c\n\r\n\x05\x05\x07\x02\"\x02\x12\x04\x8c\x07\x0f\x11\n\x0c\n\x04\x05\ - \x07\x02#\x12\x04\x8d\x07\x02\n\n\r\n\x05\x05\x07\x02#\x01\x12\x04\x8d\ - \x07\x02\x04\n\r\n\x05\x05\x07\x02#\x02\x12\x04\x8d\x07\x07\t\n\x0c\n\ - \x04\x05\x07\x02$\x12\x04\x8e\x07\x02\x0f\n\r\n\x05\x05\x07\x02$\x01\x12\ - \x04\x8e\x07\x02\t\n\r\n\x05\x05\x07\x02$\x02\x12\x04\x8e\x07\x0c\x0e\n\ - \x0c\n\x04\x05\x07\x02%\x12\x04\x8f\x07\x02\r\n\r\n\x05\x05\x07\x02%\x01\ - \x12\x04\x8f\x07\x02\x08\n\r\n\x05\x05\x07\x02%\x02\x12\x04\x8f\x07\x0b\ - \x0c\n\x0c\n\x04\x05\x07\x02&\x12\x04\x90\x07\x02\x0c\n\r\n\x05\x05\x07\ - \x02&\x01\x12\x04\x90\x07\x02\x06\n\r\n\x05\x05\x07\x02&\x02\x12\x04\x90\ - \x07\t\x0b\n\x0c\n\x04\x05\x07\x02'\x12\x04\x91\x07\x02\x0c\n\r\n\x05\ - \x05\x07\x02'\x01\x12\x04\x91\x07\x02\x06\n\r\n\x05\x05\x07\x02'\x02\x12\ - \x04\x91\x07\t\x0b\n\x0c\n\x04\x05\x07\x02(\x12\x04\x92\x07\x02\x12\n\r\ - \n\x05\x05\x07\x02(\x01\x12\x04\x92\x07\x02\x0c\n\r\n\x05\x05\x07\x02(\ - \x02\x12\x04\x92\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02)\x12\x04\x93\x07\ - \x02\x0f\n\r\n\x05\x05\x07\x02)\x01\x12\x04\x93\x07\x02\t\n\r\n\x05\x05\ - \x07\x02)\x02\x12\x04\x93\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02*\x12\x04\ - \x94\x07\x02\r\n\r\n\x05\x05\x07\x02*\x01\x12\x04\x94\x07\x02\x07\n\r\n\ - \x05\x05\x07\x02*\x02\x12\x04\x94\x07\n\x0c\n\x0c\n\x04\x05\x07\x02+\x12\ - \x04\x95\x07\x02\x0b\n\r\n\x05\x05\x07\x02+\x01\x12\x04\x95\x07\x02\x05\ - \n\r\n\x05\x05\x07\x02+\x02\x12\x04\x95\x07\x08\n\n\x0c\n\x04\x05\x07\ - \x02,\x12\x04\x96\x07\x02\t\n\r\n\x05\x05\x07\x02,\x01\x12\x04\x96\x07\ - \x02\x03\n\r\n\x05\x05\x07\x02,\x02\x12\x04\x96\x07\x06\x08\n\x0c\n\x04\ - \x05\x07\x02-\x12\x04\x97\x07\x02\x0c\n\r\n\x05\x05\x07\x02-\x01\x12\x04\ - \x97\x07\x02\x06\n\r\n\x05\x05\x07\x02-\x02\x12\x04\x97\x07\t\x0b\n\x0c\ - \n\x04\x05\x07\x02.\x12\x04\x98\x07\x02\x0b\n\r\n\x05\x05\x07\x02.\x01\ - \x12\x04\x98\x07\x02\x06\n\r\n\x05\x05\x07\x02.\x02\x12\x04\x98\x07\t\n\ - \n\x0c\n\x04\x05\x07\x02/\x12\x04\x99\x07\x02\x12\n\r\n\x05\x05\x07\x02/\ - \x01\x12\x04\x99\x07\x02\x0c\n\r\n\x05\x05\x07\x02/\x02\x12\x04\x99\x07\ - \x0f\x11\n\x0c\n\x04\x05\x07\x020\x12\x04\x9a\x07\x02\x17\n\r\n\x05\x05\ - \x07\x020\x01\x12\x04\x9a\x07\x02\x11\n\r\n\x05\x05\x07\x020\x02\x12\x04\ - \x9a\x07\x14\x16\n\x0c\n\x04\x05\x07\x021\x12\x04\x9b\x07\x02\x0f\n\r\n\ - \x05\x05\x07\x021\x01\x12\x04\x9b\x07\x02\t\n\r\n\x05\x05\x07\x021\x02\ - \x12\x04\x9b\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x022\x12\x04\x9c\x07\x02\ - \x0e\n\r\n\x05\x05\x07\x022\x01\x12\x04\x9c\x07\x02\x07\n\r\n\x05\x05\ - \x07\x022\x02\x12\x04\x9c\x07\x0b\r\n\x0c\n\x04\x05\x07\x023\x12\x04\x9d\ - \x07\x02\x11\n\r\n\x05\x05\x07\x023\x01\x12\x04\x9d\x07\x02\n\n\r\n\x05\ - \x05\x07\x023\x02\x12\x04\x9d\x07\r\x10\n\x0c\n\x04\x05\x07\x024\x12\x04\ - \x9e\x07\x02\r\n\r\n\x05\x05\x07\x024\x01\x12\x04\x9e\x07\x02\x08\n\r\n\ - \x05\x05\x07\x024\x02\x12\x04\x9e\x07\x0b\x0c\n\x0c\n\x04\x05\x07\x025\ - \x12\x04\x9f\x07\x02\r\n\r\n\x05\x05\x07\x025\x01\x12\x04\x9f\x07\x02\ - \x07\n\r\n\x05\x05\x07\x025\x02\x12\x04\x9f\x07\n\x0c\n\x0c\n\x04\x05\ - \x07\x026\x12\x04\xa0\x07\x02\x0c\n\r\n\x05\x05\x07\x026\x01\x12\x04\xa0\ - \x07\x02\x06\n\r\n\x05\x05\x07\x026\x02\x12\x04\xa0\x07\t\x0b\n\x0c\n\ - \x04\x05\x07\x027\x12\x04\xa1\x07\x02\x0c\n\r\n\x05\x05\x07\x027\x01\x12\ - \x04\xa1\x07\x02\x06\n\r\n\x05\x05\x07\x027\x02\x12\x04\xa1\x07\t\x0b\n\ - \x0c\n\x04\x05\x07\x028\x12\x04\xa2\x07\x02\x0b\n\r\n\x05\x05\x07\x028\ - \x01\x12\x04\xa2\x07\x02\x05\n\r\n\x05\x05\x07\x028\x02\x12\x04\xa2\x07\ - \x08\n\n\x0c\n\x04\x05\x07\x029\x12\x04\xa3\x07\x02\r\n\r\n\x05\x05\x07\ - \x029\x01\x12\x04\xa3\x07\x02\x06\n\r\n\x05\x05\x07\x029\x02\x12\x04\xa3\ - \x07\t\x0c\n\x0c\n\x04\x05\x07\x02:\x12\x04\xa4\x07\x02\x10\n\r\n\x05\ - \x05\x07\x02:\x01\x12\x04\xa4\x07\x02\n\n\r\n\x05\x05\x07\x02:\x02\x12\ - \x04\xa4\x07\r\x0f\n\x0c\n\x04\x05\x07\x02;\x12\x04\xa5\x07\x02\x10\n\r\ - \n\x05\x05\x07\x02;\x01\x12\x04\xa5\x07\x02\n\n\r\n\x05\x05\x07\x02;\x02\ - \x12\x04\xa5\x07\r\x0f\n\x0c\n\x04\x05\x07\x02<\x12\x04\xa6\x07\x02\x0e\ - \n\r\n\x05\x05\x07\x02<\x01\x12\x04\xa6\x07\x02\x08\n\r\n\x05\x05\x07\ - \x02<\x02\x12\x04\xa6\x07\x0b\r\n(\n\x04\x05\x07\x02=\x12\x04\xa7\x07\ - \x02\x0f\"\x1a\x20https://nickel-lang.org/\n\n\r\n\x05\x05\x07\x02=\x01\ - \x12\x04\xa7\x07\x02\x08\n\r\n\x05\x05\x07\x02=\x02\x12\x04\xa7\x07\x0b\ - \x0e\n\x0c\n\x04\x05\x07\x02>\x12\x04\xa8\x07\x02\x0b\n\r\n\x05\x05\x07\ - \x02>\x01\x12\x04\xa8\x07\x02\x05\n\r\n\x05\x05\x07\x02>\x02\x12\x04\xa8\ - \x07\x08\n\n\x0c\n\x04\x05\x07\x02?\x12\x04\xa9\x07\x02\r\n\r\n\x05\x05\ - \x07\x02?\x01\x12\x04\xa9\x07\x02\x07\n\r\n\x05\x05\x07\x02?\x02\x12\x04\ - \xa9\x07\n\x0c\n\x0c\n\x04\x05\x07\x02@\x12\x04\xaa\x07\x02\x13\n\r\n\ - \x05\x05\x07\x02@\x01\x12\x04\xaa\x07\x02\r\n\r\n\x05\x05\x07\x02@\x02\ - \x12\x04\xaa\x07\x10\x12\n\x0c\n\x04\x05\x07\x02A\x12\x04\xab\x07\x02\ - \x15\n\r\n\x05\x05\x07\x02A\x01\x12\x04\xab\x07\x02\x0f\n\r\n\x05\x05\ - \x07\x02A\x02\x12\x04\xab\x07\x12\x14\n\x0c\n\x04\x05\x07\x02B\x12\x04\ - \xac\x07\x02\x0e\n\r\n\x05\x05\x07\x02B\x01\x12\x04\xac\x07\x02\x08\n\r\ - \n\x05\x05\x07\x02B\x02\x12\x04\xac\x07\x0b\r\n\x0c\n\x04\x05\x07\x02C\ - \x12\x04\xad\x07\x02\x0b\n\r\n\x05\x05\x07\x02C\x01\x12\x04\xad\x07\x02\ - \x05\n\r\n\x05\x05\x07\x02C\x02\x12\x04\xad\x07\x08\n\n\x0c\n\x04\x05\ - \x07\x02D\x12\x04\xae\x07\x02\r\n\r\n\x05\x05\x07\x02D\x01\x12\x04\xae\ - \x07\x02\x07\n\r\n\x05\x05\x07\x02D\x02\x12\x04\xae\x07\n\x0c\n\x0c\n\ - \x04\x05\x07\x02E\x12\x04\xaf\x07\x02\x0c\n\r\n\x05\x05\x07\x02E\x01\x12\ - \x04\xaf\x07\x02\x06\n\r\n\x05\x05\x07\x02E\x02\x12\x04\xaf\x07\t\x0b\n\ - \x0c\n\x04\x05\x07\x02F\x12\x04\xb0\x07\x02\x12\n\r\n\x05\x05\x07\x02F\ - \x01\x12\x04\xb0\x07\x02\x0c\n\r\n\x05\x05\x07\x02F\x02\x12\x04\xb0\x07\ - \x0f\x11\n\x0c\n\x04\x05\x07\x02G\x12\x04\xb1\x07\x02\x0e\n\r\n\x05\x05\ - \x07\x02G\x01\x12\x04\xb1\x07\x02\x08\n\r\n\x05\x05\x07\x02G\x02\x12\x04\ - \xb1\x07\x0b\r\n\x0c\n\x04\x05\x07\x02H\x12\x04\xb2\x07\x02\x11\n\r\n\ - \x05\x05\x07\x02H\x01\x12\x04\xb2\x07\x02\n\n\r\n\x05\x05\x07\x02H\x02\ - \x12\x04\xb2\x07\r\x10\n\x0c\n\x04\x05\x07\x02I\x12\x04\xb3\x07\x02\x0e\ - \n\r\n\x05\x05\x07\x02I\x01\x12\x04\xb3\x07\x02\x08\n\r\n\x05\x05\x07\ - \x02I\x02\x12\x04\xb3\x07\x0b\r\n\x0c\n\x04\x05\x07\x02J\x12\x04\xb4\x07\ - \x02\t\n\r\n\x05\x05\x07\x02J\x01\x12\x04\xb4\x07\x02\x03\n\r\n\x05\x05\ - \x07\x02J\x02\x12\x04\xb4\x07\x06\x08\n\x0c\n\x04\x05\x07\x02K\x12\x04\ - \xb5\x07\x02\x0e\n\r\n\x05\x05\x07\x02K\x01\x12\x04\xb5\x07\x02\x08\n\r\ - \n\x05\x05\x07\x02K\x02\x12\x04\xb5\x07\x0b\r\n\x0c\n\x04\x05\x07\x02L\ - \x12\x04\xb6\x07\x02\x0c\n\r\n\x05\x05\x07\x02L\x01\x12\x04\xb6\x07\x02\ - \x06\n\r\n\x05\x05\x07\x02L\x02\x12\x04\xb6\x07\t\x0b\n\x0c\n\x04\x05\ - \x07\x02M\x12\x04\xb7\x07\x02\r\n\r\n\x05\x05\x07\x02M\x01\x12\x04\xb7\ - \x07\x02\x07\n\r\n\x05\x05\x07\x02M\x02\x12\x04\xb7\x07\n\x0c\n2\n\x04\ - \x05\x07\x02N\x12\x04\xb8\x07\x02\x0e\"$\x20Internal\x20language\x20for\ - \x20testing\x20SCIP\n\n\r\n\x05\x05\x07\x02N\x01\x12\x04\xb8\x07\x02\x07\ - \n\r\n\x05\x05\x07\x02N\x02\x12\x04\xb8\x07\n\r\n\x0c\n\x04\x05\x07\x02O\ - \x12\x04\xb9\x07\x02\x0c\n\r\n\x05\x05\x07\x02O\x01\x12\x04\xb9\x07\x02\ - \x06\n\r\n\x05\x05\x07\x02O\x02\x12\x04\xb9\x07\t\x0b\n\x0c\n\x04\x05\ - \x07\x02P\x12\x04\xba\x07\x02\x0c\n\r\n\x05\x05\x07\x02P\x01\x12\x04\xba\ - \x07\x02\x06\n\r\n\x05\x05\x07\x02P\x02\x12\x04\xba\x07\t\x0b\n\x0c\n\ - \x04\x05\x07\x02Q\x12\x04\xbb\x07\x02\x0c\n\r\n\x05\x05\x07\x02Q\x01\x12\ - \x04\xbb\x07\x02\x06\n\r\n\x05\x05\x07\x02Q\x02\x12\x04\xbb\x07\t\x0b\n\ - \x0c\n\x04\x05\x07\x02R\x12\x04\xbc\x07\x02\x0b\n\r\n\x05\x05\x07\x02R\ - \x01\x12\x04\xbc\x07\x02\x05\n\r\n\x05\x05\x07\x02R\x02\x12\x04\xbc\x07\ - \x08\n\n\x0c\n\x04\x05\x07\x02S\x12\x04\xbd\x07\x02\x0c\n\r\n\x05\x05\ - \x07\x02S\x01\x12\x04\xbd\x07\x02\x06\n\r\n\x05\x05\x07\x02S\x02\x12\x04\ - \xbd\x07\t\x0b\n\x0c\n\x04\x05\x07\x02T\x12\x04\xbe\x07\x02\x0b\n\r\n\ - \x05\x05\x07\x02T\x01\x12\x04\xbe\x07\x02\x05\n\r\n\x05\x05\x07\x02T\x02\ - \x12\x04\xbe\x07\x08\n\n\x0c\n\x04\x05\x07\x02U\x12\x04\xbf\x07\x02\x0b\ - \n\r\n\x05\x05\x07\x02U\x01\x12\x04\xbf\x07\x02\x05\n\r\n\x05\x05\x07\ - \x02U\x02\x12\x04\xbf\x07\x08\n\n\x0c\n\x04\x05\x07\x02V\x12\x04\xc0\x07\ - \x02\x0c\n\r\n\x05\x05\x07\x02V\x01\x12\x04\xc0\x07\x02\x06\n\r\n\x05\ - \x05\x07\x02V\x02\x12\x04\xc0\x07\t\x0b\n\x0c\n\x04\x05\x07\x02W\x12\x04\ - \xc1\x07\x02\x0c\n\r\n\x05\x05\x07\x02W\x01\x12\x04\xc1\x07\x02\x07\n\r\ - \n\x05\x05\x07\x02W\x02\x12\x04\xc1\x07\n\x0b\n\x0c\n\x04\x05\x07\x02X\ - \x12\x04\xc2\x07\x02\x0e\n\r\n\x05\x05\x07\x02X\x01\x12\x04\xc2\x07\x02\ - \x08\n\r\n\x05\x05\x07\x02X\x02\x12\x04\xc2\x07\x0b\r\n\x14\n\x04\x05\ - \x07\x02Y\x12\x04\xc3\x07\x02\x13\"\x06\x20Bash\n\n\r\n\x05\x05\x07\x02Y\ - \x01\x12\x04\xc3\x07\x02\r\n\r\n\x05\x05\x07\x02Y\x02\x12\x04\xc3\x07\ - \x10\x12\n\x0c\n\x04\x05\x07\x02Z\x12\x04\xc4\x07\x02\x0f\n\r\n\x05\x05\ - \x07\x02Z\x01\x12\x04\xc4\x07\x02\t\n\r\n\x05\x05\x07\x02Z\x02\x12\x04\ - \xc4\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02[\x12\x04\xc5\x07\x02\x0e\n\r\n\ - \x05\x05\x07\x02[\x01\x12\x04\xc5\x07\x02\x07\n\r\n\x05\x05\x07\x02[\x02\ - \x12\x04\xc5\x07\n\r\n\x0c\n\x04\x05\x07\x02\\\x12\x04\xc6\x07\x02\x10\n\ - \r\n\x05\x05\x07\x02\\\x01\x12\x04\xc6\x07\x02\n\n\r\n\x05\x05\x07\x02\\\ - \x02\x12\x04\xc6\x07\r\x0f\n\x0c\n\x04\x05\x07\x02]\x12\x04\xc7\x07\x02\ - \x0f\n\r\n\x05\x05\x07\x02]\x01\x12\x04\xc7\x07\x02\x08\n\r\n\x05\x05\ - \x07\x02]\x02\x12\x04\xc7\x07\x0b\x0e\n\x0c\n\x04\x05\x07\x02^\x12\x04\ - \xc8\x07\x02\x0c\n\r\n\x05\x05\x07\x02^\x01\x12\x04\xc8\x07\x02\x07\n\r\ - \n\x05\x05\x07\x02^\x02\x12\x04\xc8\x07\n\x0b\n\x0c\n\x04\x05\x07\x02_\ - \x12\x04\xc9\x07\x02\x0c\n\r\n\x05\x05\x07\x02_\x01\x12\x04\xc9\x07\x02\ - \x05\n\r\n\x05\x05\x07\x02_\x02\x12\x04\xc9\x07\x08\x0b\n\x0c\n\x04\x05\ - \x07\x02`\x12\x04\xca\x07\x02\x0c\n\r\n\x05\x05\x07\x02`\x01\x12\x04\xca\ - \x07\x02\x06\n\r\n\x05\x05\x07\x02`\x02\x12\x04\xca\x07\t\x0b\n\x0c\n\ - \x04\x05\x07\x02a\x12\x04\xcb\x07\x02\x0b\n\r\n\x05\x05\x07\x02a\x01\x12\ - \x04\xcb\x07\x02\x05\n\r\n\x05\x05\x07\x02a\x02\x12\x04\xcb\x07\x08\n\n\ - \x0c\n\x04\x05\x07\x02b\x12\x04\xcc\x07\x02\x0f\n\r\n\x05\x05\x07\x02b\ - \x01\x12\x04\xcc\x07\x02\x08\n\r\n\x05\x05\x07\x02b\x02\x12\x04\xcc\x07\ - \x0b\x0e\n\x0c\n\x04\x05\x07\x02c\x12\x04\xcd\x07\x02\x12\n\r\n\x05\x05\ - \x07\x02c\x01\x12\x04\xcd\x07\x02\x0c\n\r\n\x05\x05\x07\x02c\x02\x12\x04\ - \xcd\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02d\x12\x04\xce\x07\x02\x17\n\r\n\ - \x05\x05\x07\x02d\x01\x12\x04\xce\x07\x02\x11\n\r\n\x05\x05\x07\x02d\x02\ - \x12\x04\xce\x07\x14\x16\n\x0c\n\x04\x05\x07\x02e\x12\x04\xcf\x07\x02\ - \x10\n\r\n\x05\x05\x07\x02e\x01\x12\x04\xcf\x07\x02\t\n\r\n\x05\x05\x07\ - \x02e\x02\x12\x04\xcf\x07\x0c\x0f\n\x0c\n\x04\x05\x07\x02f\x12\x04\xd0\ - \x07\x02\r\n\r\n\x05\x05\x07\x02f\x01\x12\x04\xd0\x07\x02\x06\n\r\n\x05\ - \x05\x07\x02f\x02\x12\x04\xd0\x07\t\x0c\n\x0c\n\x04\x05\x07\x02g\x12\x04\ - \xd1\x07\x02\x13\n\r\n\x05\x05\x07\x02g\x01\x12\x04\xd1\x07\x02\r\n\r\n\ - \x05\x05\x07\x02g\x02\x12\x04\xd1\x07\x10\x12\n\x0c\n\x04\x05\x07\x02h\ - \x12\x04\xd2\x07\x02\x0b\n\r\n\x05\x05\x07\x02h\x01\x12\x04\xd2\x07\x02\ - \x05\n\r\n\x05\x05\x07\x02h\x02\x12\x04\xd2\x07\x08\n\n\x0c\n\x04\x05\ - \x07\x02i\x12\x04\xd3\x07\x02\x0f\n\r\n\x05\x05\x07\x02i\x01\x12\x04\xd3\ - \x07\x02\t\n\r\n\x05\x05\x07\x02i\x02\x12\x04\xd3\x07\x0c\x0e\n\x0c\n\ - \x04\x05\x07\x02j\x12\x04\xd4\x07\x02\x0b\n\r\n\x05\x05\x07\x02j\x01\x12\ - \x04\xd4\x07\x02\x05\n\r\n\x05\x05\x07\x02j\x02\x12\x04\xd4\x07\x08\n\n\ - \x0c\n\x04\x05\x07\x02k\x12\x04\xd5\x07\x02\x0b\n\r\n\x05\x05\x07\x02k\ - \x01\x12\x04\xd5\x07\x02\x05\n\r\n\x05\x05\x07\x02k\x02\x12\x04\xd5\x07\ - \x08\n\n\x0c\n\x04\x05\x07\x02l\x12\x04\xd6\x07\x02\x0c\n\r\n\x05\x05\ - \x07\x02l\x01\x12\x04\xd6\x07\x02\x06\n\r\n\x05\x05\x07\x02l\x02\x12\x04\ - \xd6\x07\t\x0b\n\x93\x03\n\x04\x05\x07\x02m\x12\x04\xd7\x07\x02\x0b\"\ - \x84\x03\x20NextLanguage\x20=\x20111;\n\x20Steps\x20add\x20a\x20new\x20l\ - anguage:\n\x201.\x20Copy-paste\x20the\x20\"NextLanguage\x20=\x20N\"\x20l\ - ine\x20above\n\x202.\x20Increment\x20\"NextLanguage\x20=\x20N\"\x20to\ - \x20\"NextLanguage\x20=\x20N+1\"\n\x203.\x20Replace\x20\"NextLanguage\ - \x20=\x20N\"\x20with\x20the\x20name\x20of\x20the\x20new\x20language.\n\ - \x204.\x20Move\x20the\x20new\x20language\x20to\x20the\x20correct\x20line\ - \x20above\x20using\x20alphabetical\x20order\n\x205.\x20(optional)\x20Add\ - \x20a\x20brief\x20comment\x20behind\x20the\x20language\x20if\x20the\x20n\ - ame\x20is\x20not\x20self-explanatory\n\n\r\n\x05\x05\x07\x02m\x01\x12\ - \x04\xd7\x07\x02\x05\n\r\n\x05\x05\x07\x02m\x02\x12\x04\xd7\x07\x08\nb\ - \x06proto3\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20^\ + \x20enclosing_range\x20end\x20<---------------------------------------|\ + \n\x20```\n\n\x20Any\x20attributes/decorators/attached\x20macros\x20shou\ + ld\x20also\x20be\x20part\x20of\x20the\n\x20enclosing\x20range.\n\n\x20``\ + `python\n\x20@cache\n\x20^\x20enclosing_range\x20start------------------\ + ---|\n\x20def\x20factorial(n):\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\ + \x20\x20\x20\x20\x20return\x20n\x20*\x20factorial(n-1)\x20if\x20n\x20els\ + e\x201\x20\x20\x20|\n\x20<\x20enclosing_range\x20end--------------------\ + ---|\n\n\x20```\n\n\x20For\x20reference\x20occurrences,\x20the\x20enclos\ + ing\x20range\x20should\x20indicate\x20the\x20start/end\n\x20bounds\x20of\ + \x20the\x20parent\x20expression.\n\x20```\n\x20const\x20a\x20=\x20a.b\n\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20^^^\x20enclosing_range\n\x20const\ + \x20b\x20=\x20a.b(41).f(42).g(43)\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20^^^^^^^^^^^^^\x20enclosing_range\n\x20```\n\n\r\ + \n\x05\x04\n\x02\x06\x04\x12\x04\xc5\x06\x02\n\n\r\n\x05\x04\n\x02\x06\ + \x05\x12\x04\xc5\x06\x0b\x10\n\r\n\x05\x04\n\x02\x06\x01\x12\x04\xc5\x06\ + \x11\x20\n\r\n\x05\x04\n\x02\x06\x03\x12\x04\xc5\x06#$\nw\n\x02\x04\x0b\ + \x12\x06\xca\x06\0\xd5\x06\x01\x1ai\x20Represents\x20a\x20diagnostic,\ + \x20such\x20as\x20a\x20compiler\x20error\x20or\x20warning,\x20which\x20s\ + hould\x20be\n\x20reported\x20for\x20a\x20document.\n\n\x0b\n\x03\x04\x0b\ + \x01\x12\x04\xca\x06\x08\x12\nW\n\x04\x04\x0b\x02\0\x12\x04\xcc\x06\x02\ + \x18\x1aI\x20Should\x20this\x20diagnostic\x20be\x20reported\x20as\x20an\ + \x20error,\x20warning,\x20info,\x20or\x20hint?\n\n\r\n\x05\x04\x0b\x02\0\ + \x06\x12\x04\xcc\x06\x02\n\n\r\n\x05\x04\x0b\x02\0\x01\x12\x04\xcc\x06\ + \x0b\x13\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xcc\x06\x16\x17\n]\n\x04\ + \x04\x0b\x02\x01\x12\x04\xce\x06\x02\x12\x1aO\x20(optional)\x20Code\x20o\ + f\x20this\x20diagnostic,\x20which\x20might\x20appear\x20in\x20the\x20use\ + r\x20interface.\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\x04\xce\x06\x02\x08\ + \n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xce\x06\t\r\n\r\n\x05\x04\x0b\x02\ + \x01\x03\x12\x04\xce\x06\x10\x11\n+\n\x04\x04\x0b\x02\x02\x12\x04\xd0\ + \x06\x02\x15\x1a\x1d\x20Message\x20of\x20this\x20diagnostic.\n\n\r\n\x05\ + \x04\x0b\x02\x02\x05\x12\x04\xd0\x06\x02\x08\n\r\n\x05\x04\x0b\x02\x02\ + \x01\x12\x04\xd0\x06\t\x10\n\r\n\x05\x04\x0b\x02\x02\x03\x12\x04\xd0\x06\ + \x13\x14\n~\n\x04\x04\x0b\x02\x03\x12\x04\xd3\x06\x02\x14\x1ap\x20(optio\ + nal)\x20Human-readable\x20string\x20describing\x20the\x20source\x20of\ + \x20this\x20diagnostic,\x20e.g.\n\x20'typescript'\x20or\x20'super\x20lin\ + t'.\n\n\r\n\x05\x04\x0b\x02\x03\x05\x12\x04\xd3\x06\x02\x08\n\r\n\x05\ + \x04\x0b\x02\x03\x01\x12\x04\xd3\x06\t\x0f\n\r\n\x05\x04\x0b\x02\x03\x03\ + \x12\x04\xd3\x06\x12\x13\n\x0c\n\x04\x04\x0b\x02\x04\x12\x04\xd4\x06\x02\ + \"\n\r\n\x05\x04\x0b\x02\x04\x04\x12\x04\xd4\x06\x02\n\n\r\n\x05\x04\x0b\ + \x02\x04\x06\x12\x04\xd4\x06\x0b\x18\n\r\n\x05\x04\x0b\x02\x04\x01\x12\ + \x04\xd4\x06\x19\x1d\n\r\n\x05\x04\x0b\x02\x04\x03\x12\x04\xd4\x06\x20!\ + \n\x0c\n\x02\x05\x05\x12\x06\xd7\x06\0\xdd\x06\x01\n\x0b\n\x03\x05\x05\ + \x01\x12\x04\xd7\x06\x05\r\n\x0c\n\x04\x05\x05\x02\0\x12\x04\xd8\x06\x02\ + \x1a\n\r\n\x05\x05\x05\x02\0\x01\x12\x04\xd8\x06\x02\x15\n\r\n\x05\x05\ + \x05\x02\0\x02\x12\x04\xd8\x06\x18\x19\n\x0c\n\x04\x05\x05\x02\x01\x12\ + \x04\xd9\x06\x02\x0c\n\r\n\x05\x05\x05\x02\x01\x01\x12\x04\xd9\x06\x02\ + \x07\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\xd9\x06\n\x0b\n\x0c\n\x04\x05\ + \x05\x02\x02\x12\x04\xda\x06\x02\x0e\n\r\n\x05\x05\x05\x02\x02\x01\x12\ + \x04\xda\x06\x02\t\n\r\n\x05\x05\x05\x02\x02\x02\x12\x04\xda\x06\x0c\r\n\ + \x0c\n\x04\x05\x05\x02\x03\x12\x04\xdb\x06\x02\x12\n\r\n\x05\x05\x05\x02\ + \x03\x01\x12\x04\xdb\x06\x02\r\n\r\n\x05\x05\x05\x02\x03\x02\x12\x04\xdb\ + \x06\x10\x11\n\x0c\n\x04\x05\x05\x02\x04\x12\x04\xdc\x06\x02\x0b\n\r\n\ + \x05\x05\x05\x02\x04\x01\x12\x04\xdc\x06\x02\x06\n\r\n\x05\x05\x05\x02\ + \x04\x02\x12\x04\xdc\x06\t\n\n\x0c\n\x02\x05\x06\x12\x06\xdf\x06\0\xe3\ + \x06\x01\n\x0b\n\x03\x05\x06\x01\x12\x04\xdf\x06\x05\x12\n\x0c\n\x04\x05\ + \x06\x02\0\x12\x04\xe0\x06\x02\x1f\n\r\n\x05\x05\x06\x02\0\x01\x12\x04\ + \xe0\x06\x02\x1a\n\r\n\x05\x05\x06\x02\0\x02\x12\x04\xe0\x06\x1d\x1e\n\ + \x0c\n\x04\x05\x06\x02\x01\x12\x04\xe1\x06\x02\x12\n\r\n\x05\x05\x06\x02\ + \x01\x01\x12\x04\xe1\x06\x02\r\n\r\n\x05\x05\x06\x02\x01\x02\x12\x04\xe1\ + \x06\x10\x11\n\x0c\n\x04\x05\x06\x02\x02\x12\x04\xe2\x06\x02\x11\n\r\n\ + \x05\x05\x06\x02\x02\x01\x12\x04\xe2\x06\x02\x0c\n\r\n\x05\x05\x06\x02\ + \x02\x02\x12\x04\xe2\x06\x0f\x10\n\xd0\x03\n\x02\x05\x07\x12\x06\xeb\x06\ + \0\xe1\x07\x01\x1a\xc1\x03\x20Language\x20standardises\x20names\x20of\ + \x20common\x20programming\x20languages\x20that\x20can\x20be\x20used\n\ + \x20for\x20the\x20`Document.language`\x20field.\x20The\x20primary\x20pur\ + pose\x20of\x20this\x20enum\x20is\x20to\n\x20prevent\x20a\x20situation\ + \x20where\x20we\x20have\x20a\x20single\x20programming\x20language\x20end\ + s\x20up\x20with\n\x20multiple\x20string\x20representations.\x20For\x20ex\ + ample,\x20the\x20C++\x20language\x20uses\x20the\x20name\n\x20\"CPP\"\x20\ + in\x20this\x20enum\x20and\x20other\x20names\x20such\x20as\x20\"cpp\"\x20\ + are\x20incompatible.\n\x20Feel\x20free\x20to\x20send\x20a\x20pull-reques\ + t\x20to\x20add\x20missing\x20programming\x20languages.\n\n\x0b\n\x03\x05\ + \x07\x01\x12\x04\xeb\x06\x05\r\n\x0c\n\x04\x05\x07\x02\0\x12\x04\xec\x06\ + \x02\x1a\n\r\n\x05\x05\x07\x02\0\x01\x12\x04\xec\x06\x02\x15\n\r\n\x05\ + \x05\x07\x02\0\x02\x12\x04\xec\x06\x18\x19\n\x0c\n\x04\x05\x07\x02\x01\ + \x12\x04\xed\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x01\x01\x12\x04\xed\x06\ + \x02\x06\n\r\n\x05\x05\x07\x02\x01\x02\x12\x04\xed\x06\t\x0b\n\x0c\n\x04\ + \x05\x07\x02\x02\x12\x04\xee\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x02\x01\ + \x12\x04\xee\x06\x02\x06\n\r\n\x05\x05\x07\x02\x02\x02\x12\x04\xee\x06\t\ + \x0b\n\x0c\n\x04\x05\x07\x02\x03\x12\x04\xef\x06\x02\x0b\n\r\n\x05\x05\ + \x07\x02\x03\x01\x12\x04\xef\x06\x02\x05\n\r\n\x05\x05\x07\x02\x03\x02\ + \x12\x04\xef\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x04\x12\x04\xf0\x06\x02\ + \x0b\n\r\n\x05\x05\x07\x02\x04\x01\x12\x04\xf0\x06\x02\x05\n\r\n\x05\x05\ + \x07\x02\x04\x02\x12\x04\xf0\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x05\x12\ + \x04\xf1\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x05\x01\x12\x04\xf1\x06\x02\ + \x06\n\r\n\x05\x05\x07\x02\x05\x02\x12\x04\xf1\x06\t\x0b\n\x0c\n\x04\x05\ + \x07\x02\x06\x12\x04\xf2\x06\x02\x10\n\r\n\x05\x05\x07\x02\x06\x01\x12\ + \x04\xf2\x06\x02\n\n\r\n\x05\x05\x07\x02\x06\x02\x12\x04\xf2\x06\r\x0f\n\ + \x0c\n\x04\x05\x07\x02\x07\x12\x04\xf3\x06\x02\x10\n\r\n\x05\x05\x07\x02\ + \x07\x01\x12\x04\xf3\x06\x02\n\n\r\n\x05\x05\x07\x02\x07\x02\x12\x04\xf3\ + \x06\r\x0f\n\x0c\n\x04\x05\x07\x02\x08\x12\x04\xf4\x06\x02\x0b\n\r\n\x05\ + \x05\x07\x02\x08\x01\x12\x04\xf4\x06\x02\x05\n\r\n\x05\x05\x07\x02\x08\ + \x02\x12\x04\xf4\x06\x08\n\n\x0c\n\x04\x05\x07\x02\t\x12\x04\xf5\x06\x02\ + \x0b\n\r\n\x05\x05\x07\x02\t\x01\x12\x04\xf5\x06\x02\x05\n\r\n\x05\x05\ + \x07\x02\t\x02\x12\x04\xf5\x06\x08\n\n\x0c\n\x04\x05\x07\x02\n\x12\x04\ + \xf6\x06\x02\x0e\n\r\n\x05\x05\x07\x02\n\x01\x12\x04\xf6\x06\x02\x08\n\r\ + \n\x05\x05\x07\x02\n\x02\x12\x04\xf6\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\ + \x0b\x12\x04\xf7\x06\x02\t\n\r\n\x05\x05\x07\x02\x0b\x01\x12\x04\xf7\x06\ + \x02\x03\n\r\n\x05\x05\x07\x02\x0b\x02\x12\x04\xf7\x06\x06\x08\n\x0c\n\ + \x04\x05\x07\x02\x0c\x12\x04\xf8\x06\x02\r\n\r\n\x05\x05\x07\x02\x0c\x01\ + \x12\x04\xf8\x06\x02\x07\n\r\n\x05\x05\x07\x02\x0c\x02\x12\x04\xf8\x06\n\ + \x0c\nH\n\x04\x05\x07\x02\r\x12\x04\xf9\x06\x02\x0b\":\x20C++\x20(the\ + \x20name\x20\"CPP\"\x20was\x20chosen\x20for\x20consistency\x20with\x20LS\ + P)\n\n\r\n\x05\x05\x07\x02\r\x01\x12\x04\xf9\x06\x02\x05\n\r\n\x05\x05\ + \x07\x02\r\x02\x12\x04\xf9\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x0e\x12\x04\ + \xfa\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x0e\x01\x12\x04\xfa\x06\x02\x05\n\ + \r\n\x05\x05\x07\x02\x0e\x02\x12\x04\xfa\x06\x08\n\n\x0c\n\x04\x05\x07\ + \x02\x0f\x12\x04\xfb\x06\x02\r\n\r\n\x05\x05\x07\x02\x0f\x01\x12\x04\xfb\ + \x06\x02\x08\n\r\n\x05\x05\x07\x02\x0f\x02\x12\x04\xfb\x06\x0b\x0c\n\x0c\ + \n\x04\x05\x07\x02\x10\x12\x04\xfc\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x10\ + \x01\x12\x04\xfc\x06\x02\t\n\r\n\x05\x05\x07\x02\x10\x02\x12\x04\xfc\x06\ + \x0c\r\n\x0c\n\x04\x05\x07\x02\x11\x12\x04\xfd\x06\x02\x14\n\r\n\x05\x05\ + \x07\x02\x11\x01\x12\x04\xfd\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x11\x02\ + \x12\x04\xfd\x06\x11\x13\n\x0c\n\x04\x05\x07\x02\x12\x12\x04\xfe\x06\x02\ + \x11\n\r\n\x05\x05\x07\x02\x12\x01\x12\x04\xfe\x06\x02\x0c\n\r\n\x05\x05\ + \x07\x02\x12\x02\x12\x04\xfe\x06\x0f\x10\n\x0c\n\x04\x05\x07\x02\x13\x12\ + \x04\xff\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x13\x01\x12\x04\xff\x06\x02\ + \x05\n\r\n\x05\x05\x07\x02\x13\x02\x12\x04\xff\x06\x08\n\n\x0c\n\x04\x05\ + \x07\x02\x14\x12\x04\x80\x07\x02\x0c\n\r\n\x05\x05\x07\x02\x14\x01\x12\ + \x04\x80\x07\x02\x06\n\r\n\x05\x05\x07\x02\x14\x02\x12\x04\x80\x07\t\x0b\ + \n\x0c\n\x04\x05\x07\x02\x15\x12\x04\x81\x07\x02\x0b\n\r\n\x05\x05\x07\ + \x02\x15\x01\x12\x04\x81\x07\x02\x06\n\r\n\x05\x05\x07\x02\x15\x02\x12\ + \x04\x81\x07\t\n\n\x0c\n\x04\x05\x07\x02\x16\x12\x04\x82\x07\x02\x0e\n\r\ + \n\x05\x05\x07\x02\x16\x01\x12\x04\x82\x07\x02\x08\n\r\n\x05\x05\x07\x02\ + \x16\x02\x12\x04\x82\x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x17\x12\x04\x83\ + \x07\x02\x0c\n\r\n\x05\x05\x07\x02\x17\x01\x12\x04\x83\x07\x02\x06\n\r\n\ + \x05\x05\x07\x02\x17\x02\x12\x04\x83\x07\t\x0b\n\x0c\n\x04\x05\x07\x02\ + \x18\x12\x04\x84\x07\x02\x12\n\r\n\x05\x05\x07\x02\x18\x01\x12\x04\x84\ + \x07\x02\x0c\n\r\n\x05\x05\x07\x02\x18\x02\x12\x04\x84\x07\x0f\x11\n\x0c\ + \n\x04\x05\x07\x02\x19\x12\x04\x85\x07\x02\x0e\n\r\n\x05\x05\x07\x02\x19\ + \x01\x12\x04\x85\x07\x02\x08\n\r\n\x05\x05\x07\x02\x19\x02\x12\x04\x85\ + \x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x1a\x12\x04\x86\x07\x02\x0e\n\r\n\x05\ + \x05\x07\x02\x1a\x01\x12\x04\x86\x07\x02\x08\n\r\n\x05\x05\x07\x02\x1a\ + \x02\x12\x04\x86\x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x1b\x12\x04\x87\x07\ + \x02\x0e\n\r\n\x05\x05\x07\x02\x1b\x01\x12\x04\x87\x07\x02\x08\n\r\n\x05\ + \x05\x07\x02\x1b\x02\x12\x04\x87\x07\x0b\r\n\x0c\n\x04\x05\x07\x02\x1c\ + \x12\x04\x88\x07\x02\x0e\n\r\n\x05\x05\x07\x02\x1c\x01\x12\x04\x88\x07\ + \x02\x08\n\r\n\x05\x05\x07\x02\x1c\x02\x12\x04\x88\x07\x0b\r\n\x0c\n\x04\ + \x05\x07\x02\x1d\x12\x04\x89\x07\x02\x0c\n\r\n\x05\x05\x07\x02\x1d\x01\ + \x12\x04\x89\x07\x02\x06\n\r\n\x05\x05\x07\x02\x1d\x02\x12\x04\x89\x07\t\ + \x0b\n\x0c\n\x04\x05\x07\x02\x1e\x12\x04\x8a\x07\x02\x0c\n\r\n\x05\x05\ + \x07\x02\x1e\x01\x12\x04\x8a\x07\x02\x06\n\r\n\x05\x05\x07\x02\x1e\x02\ + \x12\x04\x8a\x07\t\x0b\n\x0c\n\x04\x05\x07\x02\x1f\x12\x04\x8b\x07\x02\ + \x0f\n\r\n\x05\x05\x07\x02\x1f\x01\x12\x04\x8b\x07\x02\t\n\r\n\x05\x05\ + \x07\x02\x1f\x02\x12\x04\x8b\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02\x20\x12\ + \x04\x8c\x07\x02\x12\n\r\n\x05\x05\x07\x02\x20\x01\x12\x04\x8c\x07\x02\ + \x0c\n\r\n\x05\x05\x07\x02\x20\x02\x12\x04\x8c\x07\x0f\x11\n\x0c\n\x04\ + \x05\x07\x02!\x12\x04\x8d\x07\x02\x12\n\r\n\x05\x05\x07\x02!\x01\x12\x04\ + \x8d\x07\x02\x0c\n\r\n\x05\x05\x07\x02!\x02\x12\x04\x8d\x07\x0f\x11\n\ + \x0c\n\x04\x05\x07\x02\"\x12\x04\x8e\x07\x02\x12\n\r\n\x05\x05\x07\x02\"\ + \x01\x12\x04\x8e\x07\x02\x0c\n\r\n\x05\x05\x07\x02\"\x02\x12\x04\x8e\x07\ + \x0f\x11\n\x0c\n\x04\x05\x07\x02#\x12\x04\x8f\x07\x02\n\n\r\n\x05\x05\ + \x07\x02#\x01\x12\x04\x8f\x07\x02\x04\n\r\n\x05\x05\x07\x02#\x02\x12\x04\ + \x8f\x07\x07\t\n\x0c\n\x04\x05\x07\x02$\x12\x04\x90\x07\x02\x0f\n\r\n\ + \x05\x05\x07\x02$\x01\x12\x04\x90\x07\x02\t\n\r\n\x05\x05\x07\x02$\x02\ + \x12\x04\x90\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02%\x12\x04\x91\x07\x02\r\ + \n\r\n\x05\x05\x07\x02%\x01\x12\x04\x91\x07\x02\x08\n\r\n\x05\x05\x07\ + \x02%\x02\x12\x04\x91\x07\x0b\x0c\n\x0c\n\x04\x05\x07\x02&\x12\x04\x92\ + \x07\x02\x0c\n\r\n\x05\x05\x07\x02&\x01\x12\x04\x92\x07\x02\x06\n\r\n\ + \x05\x05\x07\x02&\x02\x12\x04\x92\x07\t\x0b\n\x0c\n\x04\x05\x07\x02'\x12\ + \x04\x93\x07\x02\x0c\n\r\n\x05\x05\x07\x02'\x01\x12\x04\x93\x07\x02\x06\ + \n\r\n\x05\x05\x07\x02'\x02\x12\x04\x93\x07\t\x0b\n\x0c\n\x04\x05\x07\ + \x02(\x12\x04\x94\x07\x02\x12\n\r\n\x05\x05\x07\x02(\x01\x12\x04\x94\x07\ + \x02\x0c\n\r\n\x05\x05\x07\x02(\x02\x12\x04\x94\x07\x0f\x11\n\x0c\n\x04\ + \x05\x07\x02)\x12\x04\x95\x07\x02\x0f\n\r\n\x05\x05\x07\x02)\x01\x12\x04\ + \x95\x07\x02\t\n\r\n\x05\x05\x07\x02)\x02\x12\x04\x95\x07\x0c\x0e\n\x0c\ + \n\x04\x05\x07\x02*\x12\x04\x96\x07\x02\r\n\r\n\x05\x05\x07\x02*\x01\x12\ + \x04\x96\x07\x02\x07\n\r\n\x05\x05\x07\x02*\x02\x12\x04\x96\x07\n\x0c\n\ + \x0c\n\x04\x05\x07\x02+\x12\x04\x97\x07\x02\x0b\n\r\n\x05\x05\x07\x02+\ + \x01\x12\x04\x97\x07\x02\x05\n\r\n\x05\x05\x07\x02+\x02\x12\x04\x97\x07\ + \x08\n\n\x0c\n\x04\x05\x07\x02,\x12\x04\x98\x07\x02\t\n\r\n\x05\x05\x07\ + \x02,\x01\x12\x04\x98\x07\x02\x03\n\r\n\x05\x05\x07\x02,\x02\x12\x04\x98\ + \x07\x06\x08\n\x0c\n\x04\x05\x07\x02-\x12\x04\x99\x07\x02\x0c\n\r\n\x05\ + \x05\x07\x02-\x01\x12\x04\x99\x07\x02\x06\n\r\n\x05\x05\x07\x02-\x02\x12\ + \x04\x99\x07\t\x0b\n\x0c\n\x04\x05\x07\x02.\x12\x04\x9a\x07\x02\x0b\n\r\ + \n\x05\x05\x07\x02.\x01\x12\x04\x9a\x07\x02\x06\n\r\n\x05\x05\x07\x02.\ + \x02\x12\x04\x9a\x07\t\n\n\x0c\n\x04\x05\x07\x02/\x12\x04\x9b\x07\x02\ + \x12\n\r\n\x05\x05\x07\x02/\x01\x12\x04\x9b\x07\x02\x0c\n\r\n\x05\x05\ + \x07\x02/\x02\x12\x04\x9b\x07\x0f\x11\n\x0c\n\x04\x05\x07\x020\x12\x04\ + \x9c\x07\x02\x17\n\r\n\x05\x05\x07\x020\x01\x12\x04\x9c\x07\x02\x11\n\r\ + \n\x05\x05\x07\x020\x02\x12\x04\x9c\x07\x14\x16\n\x0c\n\x04\x05\x07\x021\ + \x12\x04\x9d\x07\x02\x0f\n\r\n\x05\x05\x07\x021\x01\x12\x04\x9d\x07\x02\ + \t\n\r\n\x05\x05\x07\x021\x02\x12\x04\x9d\x07\x0c\x0e\n\x0c\n\x04\x05\ + \x07\x022\x12\x04\x9e\x07\x02\x0e\n\r\n\x05\x05\x07\x022\x01\x12\x04\x9e\ + \x07\x02\x07\n\r\n\x05\x05\x07\x022\x02\x12\x04\x9e\x07\x0b\r\n\x0c\n\ + \x04\x05\x07\x023\x12\x04\x9f\x07\x02\x11\n\r\n\x05\x05\x07\x023\x01\x12\ + \x04\x9f\x07\x02\n\n\r\n\x05\x05\x07\x023\x02\x12\x04\x9f\x07\r\x10\n\ + \x0c\n\x04\x05\x07\x024\x12\x04\xa0\x07\x02\r\n\r\n\x05\x05\x07\x024\x01\ + \x12\x04\xa0\x07\x02\x08\n\r\n\x05\x05\x07\x024\x02\x12\x04\xa0\x07\x0b\ + \x0c\n\x0c\n\x04\x05\x07\x025\x12\x04\xa1\x07\x02\r\n\r\n\x05\x05\x07\ + \x025\x01\x12\x04\xa1\x07\x02\x07\n\r\n\x05\x05\x07\x025\x02\x12\x04\xa1\ + \x07\n\x0c\n\x0c\n\x04\x05\x07\x026\x12\x04\xa2\x07\x02\x0c\n\r\n\x05\ + \x05\x07\x026\x01\x12\x04\xa2\x07\x02\x06\n\r\n\x05\x05\x07\x026\x02\x12\ + \x04\xa2\x07\t\x0b\n\x0c\n\x04\x05\x07\x027\x12\x04\xa3\x07\x02\x0c\n\r\ + \n\x05\x05\x07\x027\x01\x12\x04\xa3\x07\x02\x06\n\r\n\x05\x05\x07\x027\ + \x02\x12\x04\xa3\x07\t\x0b\n\x0c\n\x04\x05\x07\x028\x12\x04\xa4\x07\x02\ + \x0b\n\r\n\x05\x05\x07\x028\x01\x12\x04\xa4\x07\x02\x05\n\r\n\x05\x05\ + \x07\x028\x02\x12\x04\xa4\x07\x08\n\n\x0c\n\x04\x05\x07\x029\x12\x04\xa5\ + \x07\x02\r\n\r\n\x05\x05\x07\x029\x01\x12\x04\xa5\x07\x02\x06\n\r\n\x05\ + \x05\x07\x029\x02\x12\x04\xa5\x07\t\x0c\n\x0c\n\x04\x05\x07\x02:\x12\x04\ + \xa6\x07\x02\x10\n\r\n\x05\x05\x07\x02:\x01\x12\x04\xa6\x07\x02\n\n\r\n\ + \x05\x05\x07\x02:\x02\x12\x04\xa6\x07\r\x0f\n\x0c\n\x04\x05\x07\x02;\x12\ + \x04\xa7\x07\x02\x10\n\r\n\x05\x05\x07\x02;\x01\x12\x04\xa7\x07\x02\n\n\ + \r\n\x05\x05\x07\x02;\x02\x12\x04\xa7\x07\r\x0f\n\x0c\n\x04\x05\x07\x02<\ + \x12\x04\xa8\x07\x02\x0e\n\r\n\x05\x05\x07\x02<\x01\x12\x04\xa8\x07\x02\ + \x08\n\r\n\x05\x05\x07\x02<\x02\x12\x04\xa8\x07\x0b\r\n(\n\x04\x05\x07\ + \x02=\x12\x04\xa9\x07\x02\x0f\"\x1a\x20https://nickel-lang.org/\n\n\r\n\ + \x05\x05\x07\x02=\x01\x12\x04\xa9\x07\x02\x08\n\r\n\x05\x05\x07\x02=\x02\ + \x12\x04\xa9\x07\x0b\x0e\n\x0c\n\x04\x05\x07\x02>\x12\x04\xaa\x07\x02\ + \x0b\n\r\n\x05\x05\x07\x02>\x01\x12\x04\xaa\x07\x02\x05\n\r\n\x05\x05\ + \x07\x02>\x02\x12\x04\xaa\x07\x08\n\n\x0c\n\x04\x05\x07\x02?\x12\x04\xab\ + \x07\x02\r\n\r\n\x05\x05\x07\x02?\x01\x12\x04\xab\x07\x02\x07\n\r\n\x05\ + \x05\x07\x02?\x02\x12\x04\xab\x07\n\x0c\n\x0c\n\x04\x05\x07\x02@\x12\x04\ + \xac\x07\x02\x13\n\r\n\x05\x05\x07\x02@\x01\x12\x04\xac\x07\x02\r\n\r\n\ + \x05\x05\x07\x02@\x02\x12\x04\xac\x07\x10\x12\n\x0c\n\x04\x05\x07\x02A\ + \x12\x04\xad\x07\x02\x15\n\r\n\x05\x05\x07\x02A\x01\x12\x04\xad\x07\x02\ + \x0f\n\r\n\x05\x05\x07\x02A\x02\x12\x04\xad\x07\x12\x14\n\x0c\n\x04\x05\ + \x07\x02B\x12\x04\xae\x07\x02\x0e\n\r\n\x05\x05\x07\x02B\x01\x12\x04\xae\ + \x07\x02\x08\n\r\n\x05\x05\x07\x02B\x02\x12\x04\xae\x07\x0b\r\n\x0c\n\ + \x04\x05\x07\x02C\x12\x04\xaf\x07\x02\x0b\n\r\n\x05\x05\x07\x02C\x01\x12\ + \x04\xaf\x07\x02\x05\n\r\n\x05\x05\x07\x02C\x02\x12\x04\xaf\x07\x08\n\n\ + \x0c\n\x04\x05\x07\x02D\x12\x04\xb0\x07\x02\r\n\r\n\x05\x05\x07\x02D\x01\ + \x12\x04\xb0\x07\x02\x07\n\r\n\x05\x05\x07\x02D\x02\x12\x04\xb0\x07\n\ + \x0c\n\x0c\n\x04\x05\x07\x02E\x12\x04\xb1\x07\x02\x0c\n\r\n\x05\x05\x07\ + \x02E\x01\x12\x04\xb1\x07\x02\x06\n\r\n\x05\x05\x07\x02E\x02\x12\x04\xb1\ + \x07\t\x0b\n\x0c\n\x04\x05\x07\x02F\x12\x04\xb2\x07\x02\x12\n\r\n\x05\ + \x05\x07\x02F\x01\x12\x04\xb2\x07\x02\x0c\n\r\n\x05\x05\x07\x02F\x02\x12\ + \x04\xb2\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02G\x12\x04\xb3\x07\x02\x0e\n\ + \r\n\x05\x05\x07\x02G\x01\x12\x04\xb3\x07\x02\x08\n\r\n\x05\x05\x07\x02G\ + \x02\x12\x04\xb3\x07\x0b\r\n\x0c\n\x04\x05\x07\x02H\x12\x04\xb4\x07\x02\ + \x11\n\r\n\x05\x05\x07\x02H\x01\x12\x04\xb4\x07\x02\n\n\r\n\x05\x05\x07\ + \x02H\x02\x12\x04\xb4\x07\r\x10\n\x0c\n\x04\x05\x07\x02I\x12\x04\xb5\x07\ + \x02\x0e\n\r\n\x05\x05\x07\x02I\x01\x12\x04\xb5\x07\x02\x08\n\r\n\x05\ + \x05\x07\x02I\x02\x12\x04\xb5\x07\x0b\r\n\x0c\n\x04\x05\x07\x02J\x12\x04\ + \xb6\x07\x02\t\n\r\n\x05\x05\x07\x02J\x01\x12\x04\xb6\x07\x02\x03\n\r\n\ + \x05\x05\x07\x02J\x02\x12\x04\xb6\x07\x06\x08\n\x0c\n\x04\x05\x07\x02K\ + \x12\x04\xb7\x07\x02\x0e\n\r\n\x05\x05\x07\x02K\x01\x12\x04\xb7\x07\x02\ + \x08\n\r\n\x05\x05\x07\x02K\x02\x12\x04\xb7\x07\x0b\r\n\x0c\n\x04\x05\ + \x07\x02L\x12\x04\xb8\x07\x02\x0c\n\r\n\x05\x05\x07\x02L\x01\x12\x04\xb8\ + \x07\x02\x06\n\r\n\x05\x05\x07\x02L\x02\x12\x04\xb8\x07\t\x0b\n\x0c\n\ + \x04\x05\x07\x02M\x12\x04\xb9\x07\x02\r\n\r\n\x05\x05\x07\x02M\x01\x12\ + \x04\xb9\x07\x02\x07\n\r\n\x05\x05\x07\x02M\x02\x12\x04\xb9\x07\n\x0c\n2\ + \n\x04\x05\x07\x02N\x12\x04\xba\x07\x02\x0e\"$\x20Internal\x20language\ + \x20for\x20testing\x20SCIP\n\n\r\n\x05\x05\x07\x02N\x01\x12\x04\xba\x07\ + \x02\x07\n\r\n\x05\x05\x07\x02N\x02\x12\x04\xba\x07\n\r\n\x0c\n\x04\x05\ + \x07\x02O\x12\x04\xbb\x07\x02\x0c\n\r\n\x05\x05\x07\x02O\x01\x12\x04\xbb\ + \x07\x02\x06\n\r\n\x05\x05\x07\x02O\x02\x12\x04\xbb\x07\t\x0b\n\x0c\n\ + \x04\x05\x07\x02P\x12\x04\xbc\x07\x02\x0c\n\r\n\x05\x05\x07\x02P\x01\x12\ + \x04\xbc\x07\x02\x06\n\r\n\x05\x05\x07\x02P\x02\x12\x04\xbc\x07\t\x0b\n\ + \x0c\n\x04\x05\x07\x02Q\x12\x04\xbd\x07\x02\x0c\n\r\n\x05\x05\x07\x02Q\ + \x01\x12\x04\xbd\x07\x02\x06\n\r\n\x05\x05\x07\x02Q\x02\x12\x04\xbd\x07\ + \t\x0b\n\x0c\n\x04\x05\x07\x02R\x12\x04\xbe\x07\x02\x0b\n\r\n\x05\x05\ + \x07\x02R\x01\x12\x04\xbe\x07\x02\x05\n\r\n\x05\x05\x07\x02R\x02\x12\x04\ + \xbe\x07\x08\n\n\x0c\n\x04\x05\x07\x02S\x12\x04\xbf\x07\x02\x0c\n\r\n\ + \x05\x05\x07\x02S\x01\x12\x04\xbf\x07\x02\x06\n\r\n\x05\x05\x07\x02S\x02\ + \x12\x04\xbf\x07\t\x0b\n\x0c\n\x04\x05\x07\x02T\x12\x04\xc0\x07\x02\x0b\ + \n\r\n\x05\x05\x07\x02T\x01\x12\x04\xc0\x07\x02\x05\n\r\n\x05\x05\x07\ + \x02T\x02\x12\x04\xc0\x07\x08\n\n\x0c\n\x04\x05\x07\x02U\x12\x04\xc1\x07\ + \x02\x0b\n\r\n\x05\x05\x07\x02U\x01\x12\x04\xc1\x07\x02\x05\n\r\n\x05\ + \x05\x07\x02U\x02\x12\x04\xc1\x07\x08\n\n\x0c\n\x04\x05\x07\x02V\x12\x04\ + \xc2\x07\x02\x0c\n\r\n\x05\x05\x07\x02V\x01\x12\x04\xc2\x07\x02\x06\n\r\ + \n\x05\x05\x07\x02V\x02\x12\x04\xc2\x07\t\x0b\n\x0c\n\x04\x05\x07\x02W\ + \x12\x04\xc3\x07\x02\x0c\n\r\n\x05\x05\x07\x02W\x01\x12\x04\xc3\x07\x02\ + \x07\n\r\n\x05\x05\x07\x02W\x02\x12\x04\xc3\x07\n\x0b\n\x0c\n\x04\x05\ + \x07\x02X\x12\x04\xc4\x07\x02\x0e\n\r\n\x05\x05\x07\x02X\x01\x12\x04\xc4\ + \x07\x02\x08\n\r\n\x05\x05\x07\x02X\x02\x12\x04\xc4\x07\x0b\r\n\x14\n\ + \x04\x05\x07\x02Y\x12\x04\xc5\x07\x02\x13\"\x06\x20Bash\n\n\r\n\x05\x05\ + \x07\x02Y\x01\x12\x04\xc5\x07\x02\r\n\r\n\x05\x05\x07\x02Y\x02\x12\x04\ + \xc5\x07\x10\x12\n\x0c\n\x04\x05\x07\x02Z\x12\x04\xc6\x07\x02\x0f\n\r\n\ + \x05\x05\x07\x02Z\x01\x12\x04\xc6\x07\x02\t\n\r\n\x05\x05\x07\x02Z\x02\ + \x12\x04\xc6\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02[\x12\x04\xc7\x07\x02\ + \x0e\n\r\n\x05\x05\x07\x02[\x01\x12\x04\xc7\x07\x02\x07\n\r\n\x05\x05\ + \x07\x02[\x02\x12\x04\xc7\x07\n\r\n\x0c\n\x04\x05\x07\x02\\\x12\x04\xc8\ + \x07\x02\x10\n\r\n\x05\x05\x07\x02\\\x01\x12\x04\xc8\x07\x02\n\n\r\n\x05\ + \x05\x07\x02\\\x02\x12\x04\xc8\x07\r\x0f\n\x0c\n\x04\x05\x07\x02]\x12\ + \x04\xc9\x07\x02\x0f\n\r\n\x05\x05\x07\x02]\x01\x12\x04\xc9\x07\x02\x08\ + \n\r\n\x05\x05\x07\x02]\x02\x12\x04\xc9\x07\x0b\x0e\n\x0c\n\x04\x05\x07\ + \x02^\x12\x04\xca\x07\x02\x0c\n\r\n\x05\x05\x07\x02^\x01\x12\x04\xca\x07\ + \x02\x07\n\r\n\x05\x05\x07\x02^\x02\x12\x04\xca\x07\n\x0b\n\x0c\n\x04\ + \x05\x07\x02_\x12\x04\xcb\x07\x02\x0c\n\r\n\x05\x05\x07\x02_\x01\x12\x04\ + \xcb\x07\x02\x05\n\r\n\x05\x05\x07\x02_\x02\x12\x04\xcb\x07\x08\x0b\n\ + \x0c\n\x04\x05\x07\x02`\x12\x04\xcc\x07\x02\x0c\n\r\n\x05\x05\x07\x02`\ + \x01\x12\x04\xcc\x07\x02\x06\n\r\n\x05\x05\x07\x02`\x02\x12\x04\xcc\x07\ + \t\x0b\n\x0c\n\x04\x05\x07\x02a\x12\x04\xcd\x07\x02\x0b\n\r\n\x05\x05\ + \x07\x02a\x01\x12\x04\xcd\x07\x02\x05\n\r\n\x05\x05\x07\x02a\x02\x12\x04\ + \xcd\x07\x08\n\n\x0c\n\x04\x05\x07\x02b\x12\x04\xce\x07\x02\x0f\n\r\n\ + \x05\x05\x07\x02b\x01\x12\x04\xce\x07\x02\x08\n\r\n\x05\x05\x07\x02b\x02\ + \x12\x04\xce\x07\x0b\x0e\n\x0c\n\x04\x05\x07\x02c\x12\x04\xcf\x07\x02\ + \x12\n\r\n\x05\x05\x07\x02c\x01\x12\x04\xcf\x07\x02\x0c\n\r\n\x05\x05\ + \x07\x02c\x02\x12\x04\xcf\x07\x0f\x11\n\x0c\n\x04\x05\x07\x02d\x12\x04\ + \xd0\x07\x02\x17\n\r\n\x05\x05\x07\x02d\x01\x12\x04\xd0\x07\x02\x11\n\r\ + \n\x05\x05\x07\x02d\x02\x12\x04\xd0\x07\x14\x16\n\x0c\n\x04\x05\x07\x02e\ + \x12\x04\xd1\x07\x02\x10\n\r\n\x05\x05\x07\x02e\x01\x12\x04\xd1\x07\x02\ + \t\n\r\n\x05\x05\x07\x02e\x02\x12\x04\xd1\x07\x0c\x0f\n\x0c\n\x04\x05\ + \x07\x02f\x12\x04\xd2\x07\x02\r\n\r\n\x05\x05\x07\x02f\x01\x12\x04\xd2\ + \x07\x02\x06\n\r\n\x05\x05\x07\x02f\x02\x12\x04\xd2\x07\t\x0c\n\x0c\n\ + \x04\x05\x07\x02g\x12\x04\xd3\x07\x02\x13\n\r\n\x05\x05\x07\x02g\x01\x12\ + \x04\xd3\x07\x02\r\n\r\n\x05\x05\x07\x02g\x02\x12\x04\xd3\x07\x10\x12\n\ + \x0c\n\x04\x05\x07\x02h\x12\x04\xd4\x07\x02\x0b\n\r\n\x05\x05\x07\x02h\ + \x01\x12\x04\xd4\x07\x02\x05\n\r\n\x05\x05\x07\x02h\x02\x12\x04\xd4\x07\ + \x08\n\n\x0c\n\x04\x05\x07\x02i\x12\x04\xd5\x07\x02\x0f\n\r\n\x05\x05\ + \x07\x02i\x01\x12\x04\xd5\x07\x02\t\n\r\n\x05\x05\x07\x02i\x02\x12\x04\ + \xd5\x07\x0c\x0e\n\x0c\n\x04\x05\x07\x02j\x12\x04\xd6\x07\x02\x0b\n\r\n\ + \x05\x05\x07\x02j\x01\x12\x04\xd6\x07\x02\x05\n\r\n\x05\x05\x07\x02j\x02\ + \x12\x04\xd6\x07\x08\n\n\x0c\n\x04\x05\x07\x02k\x12\x04\xd7\x07\x02\x0b\ + \n\r\n\x05\x05\x07\x02k\x01\x12\x04\xd7\x07\x02\x05\n\r\n\x05\x05\x07\ + \x02k\x02\x12\x04\xd7\x07\x08\n\n\x0c\n\x04\x05\x07\x02l\x12\x04\xd8\x07\ + \x02\x0c\n\r\n\x05\x05\x07\x02l\x01\x12\x04\xd8\x07\x02\x06\n\r\n\x05\ + \x05\x07\x02l\x02\x12\x04\xd8\x07\t\x0b\n\x93\x03\n\x04\x05\x07\x02m\x12\ + \x04\xd9\x07\x02\x0b\"\x84\x03\x20NextLanguage\x20=\x20111;\n\x20Steps\ + \x20add\x20a\x20new\x20language:\n\x201.\x20Copy-paste\x20the\x20\"NextL\ + anguage\x20=\x20N\"\x20line\x20above\n\x202.\x20Increment\x20\"NextLangu\ + age\x20=\x20N\"\x20to\x20\"NextLanguage\x20=\x20N+1\"\n\x203.\x20Replace\ + \x20\"NextLanguage\x20=\x20N\"\x20with\x20the\x20name\x20of\x20the\x20ne\ + w\x20language.\n\x204.\x20Move\x20the\x20new\x20language\x20to\x20the\ + \x20correct\x20line\x20above\x20using\x20alphabetical\x20order\n\x205.\ + \x20(optional)\x20Add\x20a\x20brief\x20comment\x20behind\x20the\x20langu\ + age\x20if\x20the\x20name\x20is\x20not\x20self-explanatory\n\n\r\n\x05\ + \x05\x07\x02m\x01\x12\x04\xd9\x07\x02\x05\n\r\n\x05\x05\x07\x02m\x02\x12\ + \x04\xd9\x07\x08\nb\x06proto3\ "; /// `FileDescriptorProto` object which was a source for this generated file diff --git a/bindings/typescript/scip.ts b/bindings/typescript/scip.ts index 5a936d25..8d8900fd 100644 --- a/bindings/typescript/scip.ts +++ b/bindings/typescript/scip.ts @@ -27,7 +27,8 @@ export namespace scip { ReadAccess = 8, Generated = 16, Test = 32, - ForwardDefinition = 64 + ForwardDefinition = 64, + Call = 128 } export enum SyntaxKind { UnspecifiedSyntaxKind = 0, diff --git a/docs/scip.md b/docs/scip.md index 23f4cfa0..aae6facd 100644 --- a/docs/scip.md +++ b/docs/scip.md @@ -835,6 +835,7 @@ logic: `const isImportRole = (role.value & SymbolRole.Import.value) > 0`. | 16 | Generated | Is the symbol in generated code? | | 32 | Test | Is the symbol in test code? | | 64 | ForwardDefinition | Is this a signature for a symbol that is defined elsewhere? | +| 128 | Call | Does this occurrence correspond to a function call? | Additional notes on **ForwardDefinition**: diff --git a/scip.proto b/scip.proto index cfe94ea5..951f1aa4 100644 --- a/scip.proto +++ b/scip.proto @@ -635,6 +635,8 @@ enum SymbolRole { // and Objective-C, as well as `val` declarations in interface // files in languages like SML and OCaml. ForwardDefinition = 0x40; + // Does this occurrence correspond to a function call? + Call = 0x80; } enum SyntaxKind {